Re: [HACKERS] underscore split to alias
"Erik Rijkers" writes: > I am not sure this is a bug, but I was surprised by the following behaviour > in HEAD and 8.4.4 (instances built today, 2010.05.14): > Invalid (?) values like 123_456 are split before the underscore and > interpreted as > 123 as "456": All versions of postgres will parse 123_456 as an integer (123) immediately followed by an identifier (_456). In the particular context that this is all of a top-level SELECT item, the SQL spec requires that we parse this as an integer and a column alias (with an implied AS). We failed to do that before 8.4, but now honor the spec requirement that AS can be omitted. Personally I think that's one of the stupider, more error-prone aspects of the spec's syntax, but nonetheless it's required by spec regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers
[HACKERS] underscore split to alias
I am not sure this is a bug, but I was surprised by the following behaviour in HEAD and 8.4.4 (instances built today, 2010.05.14): Invalid (?) values like 123_456 are split before the underscore and interpreted as 123 as "456": $ psql -p 6591 -d testdb -c "select 123_456, current_setting('server_version')" _456 | current_setting --+- 123 | 9.0beta1 (1 row) $ psql -p 6584 -d testdb -c "select 123_456, current_setting('server_version')" _456 | current_setting --+- 123 | 8.4.4 (1 row) Older versions (8.3 thru 7.4) all give an error: $ psql -p 6583 -d testdb -c "select 123_456, current_setting('server_version')" ERROR: syntax error at or near "_456" LINE 1: select 123_456, current_setting('server_version') ^ The error given by the older servers seems justified. I assume this is a bug and not a deliberate change? thanks, Erik Rijkers -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers