[GRASS-user] Workaround for temporary table with SQL keywords as column names

Luí­s Moreira de Sousa luis.de.sousa at protonmail.ch
Thu Nov 4 09:46:42 PDT 2021


Dear all,

I am trying to transform a polygon layer to lines with a command like:
v.to.lines input=country_borders output=country_borders_lines --overwrite

This command fails because GRASS tries to create a temporary table whose column names are SQL keywords:

DBMI-PostgreSQL driver error:
Unable to execute:
CREATE TABLE country_borders_tmp_1513280_2 (cat integer,left integer,right integer)
ERROR: syntax error at or near "left"
LINE 1: ... TABLE country_borders_tmp_1513280_2 (cat integer,left integ...
^

For Postgres the correct command would have to be:
CREATE TABLE country_borders_tmp_1513280_2 (cat integer,"left" integer,"right" integer);

But could be different for other DBMS. In general it is not a good idea to use SQL keywords to name objects in a relational database.

To the question: is there a workaround for this problem? Can GRASS be instructed to not use SQL keywords as column names? Or somehow create valid SQL queries, for instance using double quotes?

Thank you.
--
Luís

Sent with [ProtonMail](https://protonmail.com/) Secure Email.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/grass-user/attachments/20211104/cd60da68/attachment.html>


More information about the grass-user mailing list