• Tom Lane's avatar
    Further fix dumping of views that contain just VALUES(...). · bf2efc55
    Tom Lane authored
    It turns out that commit e9f1c01b missed a case: we must print a
    VALUES clause in long format if get_query_def is given a resultDesc
    that would require the query's output column name(s) to be different
    from what the bare VALUES clause would produce.
    
    This applies in case an ALTER ... RENAME COLUMN has been done to
    a view that formerly could be printed in simple format, as shown
    in the added regression test case.  It also explains bug #16119
    from Dmitry Telpt, because it turns out that (unlike CREATE VIEW)
    CREATE MATERIALIZED VIEW fails to apply any column aliases it's
    given to the stored ON SELECT rule.  So to get them to be printed,
    we have to account for the resultDesc renaming.  It might be worth
    changing the matview code so that it creates the ON SELECT rule
    with the correct aliases; but we'd still need these messy checks in
    get_simple_values_rte to handle the case of a subsequent column
    rename, so any such change would be just neatnik-ism not a bug fix.
    
    Like the previous patch, back-patch to all supported branches.
    
    Discussion: https://postgr.es/m/16119-e64823f30a45a754@postgresql.org
    bf2efc55
rules.sql 38.6 KB