Обсуждение: BUG #12242: No error - if there is no comma seperator
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
=======================================
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