On Wed, 2005-08-31 at 15:29 -0400, Tom Lane wrote:
> Matt Miller <mattm@epx.com> writes:
> > I don't remember the last time I intended to write code that referenced
> > something that did not exist in the database.
>
> Almost every day, people try to write stuff like
>
> CREATE TEMP TABLE foo ... ;
> INSERT INTO foo ... ;
> etc etc
> DROP TABLE foo ;
Point taken.
PL/SQL requires all DDL to be dynamic SQL. For example:
execute immediate 'drop table foo';
The stuff inside the string is pretty-much ignored at compile time.
Maybe, then, my idealized PL/pgSQL compiler always allows DDL to
reference any object, but DML is checked against the catalog.