Re: BUG #8870: PL/PgSQL, SELECT .. INTO and the number of result columns

From: Marko Tiikkaja <marko(at)joh(dot)to>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: pgsql-bugs(at)postgresql(dot)org
Subject: Re: BUG #8870: PL/PgSQL, SELECT .. INTO and the number of result columns
Date: 2014-01-22 01:19:34
Message-ID: 52DF1CA6.8020800@joh.to
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On 1/19/14, 1:50 AM, I wrote:
> But making this check at run time doesn't seem too hard. How broken
> does the attached look?

A bit broken, now that I look at it in detail. In particular, I could
see someone doing something like:

CREATE TABLE lotsofcolumns(f1 int, f2 int, f3 int, ..);

DECLARE
f1 int;
f2 int;
BEGIN
SELECT * INTO f1, f2 FROM lotsofcolumns;

I can't say I think this is a good idea, but not sure breaking this case
is worth it either.

In bug #8893 there was some discussion which I interpreted to mean that
we could improve this a bit by checking the number of returned columns
during compile time if there's no * in the target list. Attached is a
crude patch attempting to do that, which appears to be working. Any
thoughts?

Regards,
Marko Tiikkaja

Attachment Content-Type Size
bug_8870_v2.patch text/plain 6.7 KB

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Tom Lane 2014-01-22 02:48:08 Re: BUG #8870: PL/PgSQL, SELECT .. INTO and the number of result columns
Previous Message Alvaro Herrera 2014-01-21 22:28:51 Re: Re: [BUGS] BUG #7873: pg_restore --clean tries to drop tables that don't exist