[gdal-dev] How to escape "desc" with OGR SQL?

Jukka Rahkonen jukka.rahkonen at maanmittauslaitos.fi
Thu Jun 16 10:59:26 PDT 2016


Even Rouault <even.rouault <at> spatialys.com> writes:

 
> On Windows shell I suppose ? Perhaps with \" (not tried)
> 
> ogrinfo -sql "select attr_2 as \"desc\" from test" test.shp

This really works for me on Windows.


> On Linux bash the following - using single quote for the full SQL - also
works 
> (not sure on Windows)

For sure does not work on Windows.

> ogrinfo -sql 'select attr_2 as "desc" from test' test.shp
> 
> > ERROR 1: SQL Expression Parsing Error: syntax error, unexpected DESC,
> > expecting identifier. Occurred around :
> > select attr_2 as desc from test
> >                  ^
> > I managed to do the job with SQLite dialect but I wonder if I found a bug
> > with using "desc" as an identifier.
> 
> Probably SQLite is more tolerant about using reserved keywords in non-
> ambiguous situations.

Ahh, I understand now. If I write just "desc" the double quotes are actually
removed but SQLite does not care in this case.  But I can't do select... as
"union" because now SQLite complains 
ERROR 1: In ExecuteSQL(): sqlite3_prepare(select attr_2 as union from test):
  near "union": syntax error

I must write it escaped select... as \"union\" instead so that double quotes
are protected. 

Are there other characters than " which may need escaping? I guess % and _
but probably there are more.

-Jukka Rahkonen-



More information about the gdal-dev mailing list