psql: SELECT INTO with FETCH_COUNT enabled

Lists: pgsql-bugs
From: Josh Williams <joshwilliams(at)ij(dot)net>
To: pgsql-bugs(at)postgresql(dot)org
Subject: psql: SELECT INTO with FETCH_COUNT enabled
Date: 2010-05-25 04:31:25
Message-ID: 1274761885.4261.233.camel@minidragon
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs

While tinkering with some psql settings on 9.0beta1...

[local]:5432|postgres=# \set FETCH_COUNT 1
[local]:5432|postgres=# SELECT foo INTO bar FROM baz;
ERROR: DECLARE CURSOR cannot specify INTO
LINE 2: SELECT foo INTO bar FROM baz;
^
[local]:5432|postgres=#!

If I'm reading it right its using src/bin/psql/common.c's
is_select_command() to determine if the query is cursor-able, and that
function is just looking to see that the query starts with 'select' (or
'values'.)

I'm not sure catching a non-alias use of INTO will be all that easy here
without adding undue complexity. So considering no one else has
reported it at least than I've been able to find, +1 for leaving it as
is. Just thought I'd post it in case anyone has any better ideas for
tackling it.

- Josh


From: Bruce Momjian <bruce(at)momjian(dot)us>
To: Josh Williams <joshwilliams(at)ij(dot)net>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: psql: SELECT INTO with FETCH_COUNT enabled
Date: 2010-05-28 22:38:56
Message-ID: 201005282238.o4SMcu208435@momjian.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-bugs


I have added the following TODO:

Fix FETCH_COUNT to handle SELECT ... INTO and WITH queries
* http://archives.postgresql.org/pgsql-hackers/2010-05/msg01565.php
* http://archives.postgresql.org/pgsql-bugs/2010-05/msg00192.php

---------------------------------------------------------------------------

Josh Williams wrote:
> While tinkering with some psql settings on 9.0beta1...
>
> [local]:5432|postgres=# \set FETCH_COUNT 1
> [local]:5432|postgres=# SELECT foo INTO bar FROM baz;
> ERROR: DECLARE CURSOR cannot specify INTO
> LINE 2: SELECT foo INTO bar FROM baz;
> ^
> [local]:5432|postgres=#!
>
> If I'm reading it right its using src/bin/psql/common.c's
> is_select_command() to determine if the query is cursor-able, and that
> function is just looking to see that the query starts with 'select' (or
> 'values'.)
>
> I'm not sure catching a non-alias use of INTO will be all that easy here
> without adding undue complexity. So considering no one else has
> reported it at least than I've been able to find, +1 for leaving it as
> is. Just thought I'd post it in case anyone has any better ideas for
> tackling it.
>
> - Josh
>
>
>
> --
> Sent via pgsql-bugs mailing list (pgsql-bugs(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-bugs

--
Bruce Momjian <bruce(at)momjian(dot)us> http://momjian.us
EnterpriseDB http://enterprisedb.com