From: | Pavel Stehule <pavel(dot)stehule(at)gmail(dot)com> |
---|---|
To: | Craig Ringer <craig(at)2ndquadrant(dot)com> |
Cc: | Joel Jacobson <joel(at)trustly(dot)com>, Pg Hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: PL/pgSQL 2 |
Date: | 2014-09-01 13:58:23 |
Message-ID: | CAFj8pRBkseBgpA+ajrh71tKbBLtbwpYqFG9HsO-_nLC6WpdXXA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
2014-09-01 15:52 GMT+02:00 Craig Ringer <craig(at)2ndquadrant(dot)com>:
> On 09/01/2014 05:04 PM, Joel Jacobson wrote:
> > From the top of my head, these are Things I personally would want to see
> > in plpgsql2:
>
> Oh, also, I'd *love* to improve how non-plannable statements with
> PL/PgSQL variable subsitutions behave.
>
> *I* understand why the following is wrong:
>
> DO
> $$
> DECLARE
> tablename text;
> BEGIN
> tablename := 'sometable';
> DROP TABLE tablename;
> END;
> $$;
>
> and produces:
>
> ERROR: table "tablename" does not exist
> CONTEXT: SQL statement "DROP TABLE tablename"
> PL/pgSQL function inline_code_block line 6 at SQL statement
>
>
> but going by the number of questions I see about this, and similar
> issues with ALTER USER and so on, it's not obvious to new users.
>
> It's not clear how to make this friendly without making it dangerous
> though. If you have:
>
> DROP TABLE x;
>
> then someone declares a variable
>
> x := 'customers';
>
> you don't want to suddenly be issuing a
>
> DROP TABLE customers;
>
> ... which is why I suspect this might need to be not 100% backward
> compatible, perhaps requiring a variable-marker prefix.
>
It is in ToDo - allow parametrization for COMMANDs.
But this is one point, when I am not sure if we would it. Now - situation
is very simply. Variables should not be used as table or column name. With
your proposal, the situation will by much more complex, and probably
variables should be used in SELECT * FROM x; but it can be ambiguous SELECT
x FROM table ... so maybe better to don't allow it
Regards
Pavel
>
> --
> Craig Ringer http://www.2ndQuadrant.com/
> PostgreSQL Development, 24x7 Support, Training & Services
>
>
> --
> Sent via pgsql-hackers mailing list (pgsql-hackers(at)postgresql(dot)org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-hackers
>
From | Date | Subject | |
---|---|---|---|
Next Message | Craig Ringer | 2014-09-01 14:01:33 | Re: PL/pgSQL 2 |
Previous Message | Amit Kapila | 2014-09-01 13:54:43 | Re: ALTER SYSTEM RESET? |