On 10/23/19 10:51 AM, Geoff Winkless wrote:
On Wed, 23 Oct 2019 at 16:42, Ravi Krishna <sr_kris...@aol.com> wrote:

select count(*) from bugtest where fld1 in ('a','b','c'
                                             'd','e');

Note the missing comma after 'c'.

PG takes it a syntactically right SQL and gives 3 as output.

In SQLServer it errors out SQL Error [102] [S0001]: Incorrect syntax near 'd'.

Can't believe this bug was never found before.  We ended up wasting lot of time 
to figure this out.
Simplify:

select 'a'
db-# 'b';
  ?column?
----------
  ab
(1 row)

This is not a bug.

https://www.postgresql.org/docs/9.2/sql-syntax-lexical.html

Two string constants that are only separated by whitespace with at
least one newline are concatenated and effectively treated as if the
string had been written as one constant.

Then -- since the 'e' is separated from 'd' by a comma, the result should be "4", not "3".

No doubt: it's a bug, no matter what the Pg devs say.

--
Angular momentum makes the world go 'round.


Reply via email to