[GRASS-user] Problem with executing some type od queries (with
regular expresion parser)
Jarek Jasiewicz
jarekj at amu.edu.pl
Thu Oct 30 12:46:39 EDT 2008
As you wish:
D3/3: db_select_int()
D3/3: SQL: SELECT cat FROM streams_coor WHERE link::text IN(SELECT
regexp_split_to_table((SELECT branch FROM links WHERE keyid='168'), E'\\.'))
D3/3: Escaped SQL: SELECT cat FROM streams_coor WHERE link::text
IN(SELECT regexp_split_to_table((SELECT branch FROM links WHERE
keyid='168'), E'\\\\.'))
D3/3: describe_table()
As we see, there is a problem with escape \ backslash
grass (I don't know gis.m or db_select_int()) adds backslash before.
In pgAdmin I must add escape character manually as in example in post
before.
In gis.m this command should look like:
link::text IN(
SELECT regexp_split_to_table((
SELECT branch FROM links WHERE keyid='168'), E'\.'))
And everythik is OK. Porblem solved.
thank you very much for your hint. It was very helpful.
Jarek
Maris Nartiss pisze:
> Hello Jarek,
> please re-run Your gis.m with DEBUG=3
> g.gisenv set=DEBUG=3
>
> then redraw map and look into output pane for line:
> D3/3: db_select_int()
> D3/3: SQL: SELECT cat FROM ...
> and post result here.
> Ignore other error messages, that will popup.
>
> Maris.
>
>
> 2008/10/29, Jarek Jasiewicz <jarekj at amu.edu.pl>:
>
>> Hi
>> Well, I thing I expect too much, but for now grass has been suprising me
>> (positively) on cooperation GRASS - POstgreSQL
>>
>> I have a query which works well in PgAdmin:
>>
>> SELECT cat FROM streams_coor WHERE link::text IN(
>> SELECT regexp_split_to_table(
>> (SELECT branch FROM links WHERE keyid='168'), E'\\.'))
>>
>> the branch looks like this:
>> "89.88.166.169.168"
>>
>> and result are:
>>
>> 148
>> 150
>> 161
>> 168
>> 157
>>
>>
>>
>> If I try to use this query in gis.m "use sql query" field with proper
>> SQL syntax"
>>
>> link::text IN(
>> SELECT regexp_split_to_table((
>> SELECT branch FROM links WHERE keyid='168'), E'\\.'))
>>
>>
>> do not receive any error but also any result
>>
>> so where is problem?
>>
>> As far as I know GRASS simply send query to database and recive list of
>> cats as a result, so there could be the problem with parsing quotemarks
>> and escape marks in regular expresion?
>>
>> regards
>> Jarek
>> _______________________________________________
>> grass-user mailing list
>> grass-user at lists.osgeo.org
>> http://lists.osgeo.org/mailman/listinfo/grass-user
>>
>>
More information about the grass-user
mailing list