Re: IMPORT FOREIGN SCHEMA can't be run in in pl/pgsql due to INTO

From: Merlin Moncure <mmoncure(at)gmail(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: IMPORT FOREIGN SCHEMA can't be run in in pl/pgsql due to INTO
Date: 2016-07-12 13:25:55
Message-ID: CAHyXU0wNEXysTEJq=+L0WeWWQRKfwC8hna87Ac2M7YRjGW3tdQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Mon, Jul 11, 2016 at 3:09 PM, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> wrote:
> Merlin Moncure <mmoncure(at)gmail(dot)com> writes:
>> Currently pl/pgsql interprets the mandatory INTO of IMPORT FOREIGN
>> SCHEMA as INTO variable.
>
> Ugh, that's definitely a bug.
>
>> I estimate this to be minor oversight in
>> pl/pgsql parsing with respect to the introduction of this statement.
>
> While we can certainly hack it by something along the lines of not
> recognizing INTO when the first token was IMPORT, the whole thing
> seems awfully messy and fragile. And it will certainly break again
> the next time somebody decides that INTO is le mot juste in some new
> SQL command. I wish we could think of a safer, more future-proof
> solution. I have no idea what that would be, though, short of
> deprecating INTO altogether.

This is a natural consequence of having two
almost-but-not-quite-the-same grammars handing the same shared
language. There are a similar set of annoyances compiling C with a
C++ compiler as we all know. In a perfect world, SQL procedural
extensions would be a proper superset and we'd have *one* grammar
handling everything. Among other niceties this would make moving
forward with stored procedures a much simpler discussion. Well, C'est
la vie :-D.

merlin

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message thomas.berger 2016-07-12 13:36:38 BUG #14244: wrong suffix for pg_size_pretty()
Previous Message Stephen Frost 2016-07-12 13:22:25 Re: Showing parallel status in \df+