From: | Jeff Davis <pgsql(at)j-davis(dot)com> |
---|---|
To: | Hitoshi Harada <umi(dot)tanuki(at)gmail(dot)com> |
Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: INSERT ... VALUES... with ORDER BY / LIMIT |
Date: | 2010-10-01 18:53:49 |
Message-ID: | 1285959229.28506.21.camel@jdavis-ux.asterdata.local |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Fri, 2010-10-01 at 18:52 +0900, Hitoshi Harada wrote:
> While tackling the top-level CTEs patch, I found that INSERT ...
> VALUES isn't aware of ORDER BY / LIMIT.
>
> regression=# CREATE TABLE t1(x int);
> CREATE TABLE
> regression=# INSERT INTO t1 VALUES (1),(2),(3) LIMIT 1;
> INSERT 0 3
That looks like a bug to me. According to the documentation:
"Within larger commands, VALUES is syntactically allowed anywhere
that SELECT is. Because it is treated like a SELECT by the grammar,
it is possible to use the ORDER BY, LIMIT..."
-- http://www.postgresql.org/docs/9.0/static/sql-values.html
The doc for INSERT is a little less clear:
http://www.postgresql.org/docs/9.0/static/sql-insert.html
It explicitly makes room in the INSERT grammar for VALUES, but in that
branch of the grammar it doesn't make room for the ORDER BY, etc.
Regards,
Jeff Davis
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2010-10-01 19:14:14 | Re: So git pull is shorthand for what exactly? |
Previous Message | Pavel Stehule | 2010-10-01 18:34:46 | Re: patch: tsearch - some memory diet |