Re: plpgsql execute vs. SELECT ... INTO - Mailing list pgsql-hackers

From Bruce Momjian
Subject Re: plpgsql execute vs. SELECT ... INTO
Date
Msg-id 201103160019.p2G0J1L25074@momjian.us
Whole thread Raw
In response to Re: plpgsql execute vs. SELECT ... INTO  (Bruce Momjian <bruce@momjian.us>)
List pgsql-hackers
Bruce Momjian wrote:
> Andrew Dunstan wrote:
> >
> >
> > On 11/05/2010 06:54 PM, Tom Lane wrote:
> > > Andrew Dunstan<andrew@dunslane.net>  writes:
> > >> The comment on the commit says:
> > >>      EXECUTE of a SELECT ... INTO now draws a 'not implemented' error,
> > >>      rather than executing the INTO clause with non-plpgsql semantics
> > >>      as it was doing for the last few weeks/months.  This keeps our options
> > >>      open for making it do the right plpgsql-ish thing in future without
> > >>      creating a backwards compatibility problem.  There is no loss of
> > >>      functionality since people can get the same behavior with CREATE TABLE AS.
> > >> Do we really still need to keep out options open on this after all that
> > >> time?
> > > I think it's still a good idea that it won't do something that is very
> > > much different from what a non-EXECUTE'd SELECT INTO will do.
> > >
> > > I forget, is there a HINT there suggesting CREATE TABLE AS?  Maybe we
> > > should add one if not.
> >
> > No, (see below) we should certainly improve that and document the
> > behavior, if we're going to keep it.
> >
> >                  if (*ptr == 'S' || *ptr == 's')
> >                      ereport(ERROR,
> >                              (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
> >                       errmsg("EXECUTE of SELECT ... INTO is not
> > implemented"),
> >                               errhint("You might want to use EXECUTE ...
> > INTO instead.")));
>
> Can someone suggest updated hint text, like this?
>
>   errhint("You might want to use EXECUTE ... INTO or EXECUTE CREATE TABLE AS instead.")));

OK, suggested wording improvement applied with attached patch.

--
  Bruce Momjian  <bruce@momjian.us>        http://momjian.us
  EnterpriseDB                             http://enterprisedb.com

  + It's impossible for everything to be true. +
diff --git a/src/pl/plpgsql/src/pl_exec.c b/src/pl/plpgsql/src/pl_exec.c
new file mode 100644
index 689686b..88cb8eb
*** a/src/pl/plpgsql/src/pl_exec.c
--- b/src/pl/plpgsql/src/pl_exec.c
*************** exec_stmt_dynexecute(PLpgSQL_execstate *
*** 3249,3255 ****
                      ereport(ERROR,
                              (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
                       errmsg("EXECUTE of SELECT ... INTO is not implemented"),
!                              errhint("You might want to use EXECUTE ... INTO instead.")));
                  break;
              }

--- 3249,3255 ----
                      ereport(ERROR,
                              (errcode(ERRCODE_FEATURE_NOT_SUPPORTED),
                       errmsg("EXECUTE of SELECT ... INTO is not implemented"),
!                              errhint("You might want to use EXECUTE ... INTO or EXECUTE CREATE TABLE ... AS
instead.")));
                  break;
              }


pgsql-hackers by date:

Previous
From: Bruce Momjian
Date:
Subject: Re: Avoiding repeated ON COMMIT truncation for temporary tables
Next
From: Jeff Davis
Date:
Subject: Re: Better estimates of index correlation