• Robert Haas's avatar
    Allow db.schema.table patterns, but complain about random garbage. · 4a66300a
    Robert Haas authored
    psql, pg_dump, and pg_amcheck share code to process object name
    patterns like 'foo*.bar*' to match all tables with names starting in
    'bar' that are in schemas starting with 'foo'. Before v14, any number
    of extra name parts were silently ignored, so a command line '\d
    foo.bar.baz.bletch.quux' was interpreted as '\d bletch.quux'.  In v14,
    as a result of commit 2c8726c4, we
    instead treated this as a request for table quux in a schema named
    'foo.bar.baz.bletch'. That caused problems for people like Justin
    Pryzby who were accustomed to copying strings of the form
    db.schema.table from messages generated by PostgreSQL itself and using
    them as arguments to \d.
    
    Accordingly, revise things so that if an object name pattern contains
    more parts than we're expecting, we throw an error, unless there's
    exactly one extra part and it matches the current database name.
    That way, thisdb.myschema.mytable is accepted as meaning just
    myschema.mytable, but otherdb.myschema.mytable is an error, and so
    is some.random.garbage.myschema.mytable.
    
    Mark Dilger, per report from Justin Pryzby and discussion among
    various people.
    
    Discussion: https://www.postgresql.org/message-id/20211013165426.GD27491%40telsasoft.com
    4a66300a
psql-ref.sgml 205 KB