]> granicus.if.org Git - postgresql/commit
Behave correctly if INSERT ... VALUES is decorated with additional clauses.
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 3 Oct 2010 00:02:46 +0000 (20:02 -0400)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 3 Oct 2010 00:02:46 +0000 (20:02 -0400)
commit392c66f184dc4e70ff399b223724c4c03b59cb7d
tree905d8e725c77e8a04a04a1efcd66f72eb8929749
parente32229adfa0769281b0650c8f999d54079c97661
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