| 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: | Whole Thread | Raw Message | 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 |