Behave correctly if INSERT ... VALUES is decorated with additional clauses.
authorTom Lane
Sun, 3 Oct 2010 00:02:33 +0000 (20:02 -0400)
committerTom Lane
Sun, 3 Oct 2010 00:02:33 +0000 (20:02 -0400)
commitabcea94ee3679e5cf4ed81c69439f2b27d17bbc4
treee13453742224d4a0225a2866e258e19a2edb321a
parent060f576d0b32ed69ba7317c9a310016ac0d4df02
Behave correctly if INSERT ... VALUES is decorated with additional clauses.

In versions 8.2 and up, the grammar allows attaching ORDER BY, LIMIT,
FOR UPDATE, or WITH to VALUES, and hence to INSERT ... VALUES.  But the
special-case code for VALUES in transformInsertStmt() wasn't expecting any
of those, and just ignored them, leading to unexpected results.  Rather
than complicate the special-case path, just ensure that the presence of any
of those clauses makes us treat the query as if it had a general SELECT.
Per report from Hitoshi Harada.
src/backend/parser/analyze.c