Thread

Commits

  1. Add missing quote_identifier calls for CREATE TRIGGER ... REFERENCING.

  1. BUG #15440: pg_dump does not preserve quoted identifiers for statement-level trigger transition table names

    The Post Office <noreply@postgresql.org> — 2018-10-19T03:16:52Z

    The following bug has been logged on the website:
    
    Bug reference:      15440
    Logged by:          Karl Czajkowski
    Email address:      karlcz@isi.edu
    PostgreSQL version: 10.5
    Operating system:   Linux
    Description:        
    
    If I create a statement-level trigger using quoted identifiers with the new
    transition table feature in pg10 and dump the database with pg_dump, the
    dumped CREATE TRIGGER statements lack quotes on the identifier. This
    prevents the database from properly round-tripping through dump and restore.
     The restored triggers will bind the unquoted identifier as the transition
    table names, and my trigger function will encounter errors when it uses an
    unknown relation.
    
    Using a simple "sed" filter to rewrite my dump file repairs the dump, since
    pg_dump did dump the proper mixed-case spelling of an identifier and only
    omitted the wrapping double-quotation marks.
    
    As an example, consider a create trigger clause like: ... REFERENCING OLD
    TABLE AS "_myapp_oldtuples_Mixed_Case" ...
    
    It appears in the dumped SQL as: ... REFERENCING OLD TABLE AS
    _myapp_oldtuples_Mixed_Case ...
    
    
  2. Re: BUG #15440: pg_dump does not preserve quoted identifiers for statement-level trigger transition table names

    Tom Lane <tgl@sss.pgh.pa.us> — 2018-10-19T04:35:01Z

    =?utf-8?q?PG_Bug_reporting_form?= <noreply@postgresql.org> writes:
    > If I create a statement-level trigger using quoted identifiers with the new
    > transition table feature in pg10 and dump the database with pg_dump, the
    > dumped CREATE TRIGGER statements lack quotes on the identifier.
    
    Yup, missing quote_identifier calls in pg_get_triggerdef_worker.
    Will fix, thanks for the report!
    
    			regards, tom lane