postgres-github.git / summary / log / commit / refs

commit    a9c350d9ee66745aadcf7c0c95a567752a762171
Author:   Tom Lane <tgl@sss.pgh.pa.us>
Date:     Mon Apr 06 18:42:55 2026 +0000

    Don't try to re-order the subcommands of CREATE SCHEMA.
    
    transformCreateSchemaStmtElements has always believed that it is
    supposed to re-order the subcommands of CREATE SCHEMA into a safe
    execution order.  However, it is nowhere near being capable of doing
    that correctly.  Nor is there reason to think that it ever will be,
    or that that is a well-defined requirement.  (The SQL standard does
    say that it should be possible to do foreign-key forward references
    within CREATE SCHEMA, but it's not clear that the text requires
    anything more than that.)  Moreover, the problem will get worse as
    we add more subcommand types.  Let's just drop the whole idea and
    execute the commands in the order given, which seems like a much
    less astonishment-prone definition anyway.  The foreign-key issue
    will be handled in a follow-up patch.
    
    This will result in a release-note-worthy incompatibility,
    which is that forward references like
    	CREATE SCHEMA myschema
    	    CREATE VIEW myview AS SELECT * FROM mytable
    	    CREATE TABLE mytable (...);
    used to work and no longer will.  Considering how many closely
    related variants never worked, this isn't much of a loss.
    
    Along the way, pass down a ParseState so that we can provide an
    error cursor for "wrong schema name" and related errors, and fix
    transformCreateSchemaStmtElements so that it doesn't scribble
    on the parsetree passed to it.
    
    Author: Tom Lane <tgl@sss.pgh.pa.us>
    Reviewed-by: Kirill Reshke <reshkekirill@gmail.com>
    Reviewed-by: Jian He <jian.universality@gmail.com>
    Discussion: https://postgr.es/m/1075425.1732993688@sss.pgh.pa.us

[parent: 1ff3180ca016]