Обсуждение: BUG #13502: parser misconstrues table alias
The following bug has been logged on the website: Bug reference: 13502 Logged by: Robert Stone Email address: floriparob@gmail.com PostgreSQL version: 9.4.4 Operating system: Debian stretch/sid Description: I aliased a table using the letters TO and the parser pulled an error. Happens in psql as well as the JDBC driver. By altering the table alias to TOL overcame the problem. dinkumerp=# SELECT TO.tol_id, TO.lang_code, SL.lang_name, TO.no_list_text, TO.table_comment FROM supported_languages SL, tables_opt_list TO WHERE TO.lang_code = SL.lang_code AND TO.table_key = 'COA' ORDER BY TO.lang_code; ERROR: syntax error at or near "TO" LINE 1: SELECT TO.tol_id, TO.lang_code, SL.lang_name, TO.no_list_tex... PostgreSQL 9.4.4 on x86_64-unknown-linux-gnu, compiled by gcc-4.9.real (Debian 4.9.2-20) 4.9.2, 64-bit (1 row)
floriparob@gmail.com writes: > I aliased a table using the letters TO and the parser pulled an error. TO is a fully reserved word. See http://www.postgresql.org/docs/9.4/static/sql-keywords-appendix.html regards, tom lane
On Wednesday, July 15, 2015, <floriparob@gmail.com> wrote: > The following bug has been logged on the website: > > Bug reference: 13502 > Logged by: Robert Stone > Email address: floriparob@gmail.com <javascript:;> > PostgreSQL version: 9.4.4 > Operating system: Debian stretch/sid > Description: > > I aliased a table using the letters TO and the parser pulled an error. > Happens in psql as well as the JDBC driver. > By altering the table alias to TOL overcame the problem. > > Since TO is fully reserved in the SQL syntax, including PostgreSQL's implementation, this is not surprising. If you really want to use those letters you need to double-quite them. "TO".column_name. http://www.postgresql.org/docs/9.4/interactive/sql-keywords-appendix.html David J.