Обсуждение: BUG #12242: No error - if there is no comma seperator

Поиск
Список
Период
Сортировка

BUG #12242: No error - if there is no comma seperator

От
omkar1103@gmail.com
Дата:
The following bug has been logged on the website:

Bug reference:      12242
Logged by:          Onkar Gaonkar
Email address:      omkar1103@gmail.com
PostgreSQL version: 9.3.3
Operating system:   Windows
Description:

Below script does not throw error
=======================================
SELECT
claim_status,
claim_key
FROM tbl_claim
WHERE claim_key IN
(
'1140799265'
'2129945595'
)
=======================================


Throws Error
=======================================
SELECT
claim_status,
claim_key
FROM tbl_claim
WHERE claim_key IN
(
'1140799265' '2129945595'
)


ERROR:  syntax error at or near "'2129945595'"
LINE 7: '1140799265' '2129945595'
                     ^
********** Error **********
ERROR: syntax error at or near "'2129945595'"
SQL state: 42601
Character: 113
=======================================

Re: BUG #12242: No error - if there is no comma seperator

От
Tom Lane
Дата:
omkar1103@gmail.com writes:
> Below script does not throw error
> =======================================
> SELECT
> claim_status,
> claim_key
> FROM tbl_claim
> WHERE claim_key IN
> (
> '1140799265'
> '2129945595'
> )

> Throws Error
> =======================================
> SELECT
> claim_status,
> claim_key
> FROM tbl_claim
> WHERE claim_key IN
> (
> '1140799265' '2129945595'
> )

Yup.  This is not only not a bug, it's behavior required by the SQL
standard.  Literal strings are concatenated automatically as long as
they're separated by a newline.  This is mentioned in the PG docs
under 4.1.2.1. String Constants:
http://www.postgresql.org/docs/9.3/static/sql-syntax-lexical.html#SQL-SYNTAX-CONSTANTS

(This is one of many decisions I'm sure the SQL committee would like
to have back, but we're pretty much stuck with it now.)

            regards, tom lane