[GRASS-dev] db.execute segfaults on simplest SQL query

This works:

$ v.db.select pts_out col=rast_val
rast_val
108.3656
102.906
41.60993

but, it's SQL counterpart segfaults:

$ echo "SELECT rast_val FROM pts_out" | db.execute
Segmentation fault
dbmi: Protocol error
ERROR: Error while executing: 'SELECT rast_val FROM pts_out
       '

DBF driver. Tested with latest 6.3 CVS. Has been the same in
6.3 CVS of 17.09.2007 at least and 6.2.2 CVS of 13.09.2007.

Shall I open a ticket in the tracker? If more info or test
dataset is needed pls let me know.

Maciek

Remember that v.db.select can follow to tables in
different mapsets while the db.* command cannot.

Can this be the issue?
If not, could you provide some code to repeat in
Spearfish or North Carolina dataset?

Markus

On Mon, Oct 08, 2007 at 10:08:59PM +0200, Maciej Sieczka wrote:

This works:

$ v.db.select pts_out col=rast_val
rast_val
108.3656
102.906
41.60993

but, it's SQL counterpart segfaults:

$ echo "SELECT rast_val FROM pts_out" | db.execute
Segmentation fault
dbmi: Protocol error
ERROR: Error while executing: 'SELECT rast_val FROM pts_out
       '

DBF driver. Tested with latest 6.3 CVS. Has been the same in
6.3 CVS of 17.09.2007 at least and 6.2.2 CVS of 13.09.2007.

Shall I open a ticket in the tracker? If more info or test
dataset is needed pls let me know.

Maciek

------------------
ITC -> dall'1 marzo 2007 Fondazione Bruno Kessler
ITC -> since 1 March 2007 Fondazione Bruno Kessler
------------------

On Mon, October 8, 2007 22:08, Maciej Sieczka wrote:

This works:

$ v.db.select pts_out col=rast_val
rast_val
108.3656
102.906
41.60993

but, it's SQL counterpart segfaults:

$ echo "SELECT rast_val FROM pts_out" | db.execute
Segmentation fault
dbmi: Protocol error
ERROR: Error while executing: 'SELECT rast_val FROM pts_out
       '

All select queries need to be sent via db.select. All other queries via
db.execute. I.e. try

$ echo "SELECT rast_val FROM pts_out" | db.select

Moritz

Moritz Lennert wrote:

On Mon, October 8, 2007 22:08, Maciej Sieczka wrote:

This works:

$ v.db.select pts_out col=rast_val
rast_val
108.3656
102.906
41.60993

but, it's SQL counterpart segfaults:

$ echo "SELECT rast_val FROM pts_out" | db.execute
Segmentation fault
dbmi: Protocol error
ERROR: Error while executing: 'SELECT rast_val FROM pts_out
       '

All select queries need to be sent via db.select. All other queries via
db.execute. I.e. try

$ echo "SELECT rast_val FROM pts_out" | db.select

Yes, perfect. Sorry for false alarm.

Anyway, if db.execute could not segfault and say something
instructive it would be great. Eg.:

"db.execute does not support SELECT queries. Use db.select
instead."

Maciek

On Mon, 2007-10-08 at 22:32 +0200, Maciej Sieczka wrote:

Moritz Lennert wrote:
> On Mon, October 8, 2007 22:08, Maciej Sieczka wrote:
>> This works:
>>
>> $ v.db.select pts_out col=rast_val
>> rast_val
>> 108.3656
>> 102.906
>> 41.60993
>>
>> but, it's SQL counterpart segfaults:
>>
>> $ echo "SELECT rast_val FROM pts_out" | db.execute
>> Segmentation fault
>> dbmi: Protocol error
>> ERROR: Error while executing: 'SELECT rast_val FROM pts_out
>> '

> All select queries need to be sent via db.select. All other queries via
> db.execute. I.e. try
>
> $ echo "SELECT rast_val FROM pts_out" | db.select

Yes, perfect. Sorry for false alarm.

Anyway, if db.execute could not segfault and say something
instructive it would be great. Eg.:

"db.execute does not support SELECT queries. Use db.select
instead."

Committed to CVS.

--
73, de Brad KB8UYR/6 <rez touchofmadness com>