Thread: pgsql-server/src/bin/psql describe.c

pgsql-server/src/bin/psql describe.c

From
momjian@postgresql.org (Bruce Momjian - CVS)
Date:
CVSROOT:    /cvsroot
Module name:    pgsql-server
Changes by:    momjian@postgresql.org    03/03/27 11:57:39

Modified files:
    src/bin/psql   : describe.c

Log message:
    New \d format:

    Example:

    test=# \d test
    Table "public.test"
    Column |  Type   | Modifiers
    --------+---------+-----------
    a      | integer | not null
    Indexes:
    "test_pkey" PRIMARY KEY btree (a)
    Check Constraints:
    "$2" CHECK (a > 1)
    Foreign Key Constraints:
    "$1" FOREIGN KEY (a) REFERENCES parent(b)
    Rules:
    myrule AS ON INSERT TO test DO INSTEAD NOTHING
    Triggers:
    "asdf asdf" AFTER INSERT OR DELETE ON test FOR EACH STATEMENT EXECUTE
    PROCEDURE update_pg_pwd_and_pg_group(),
    mytrigger AFTER INSERT OR DELETE ON test FOR EACH ROW EXECUTE PROCEDURE
    update_pg_pwd_and_pg_group()

    I have minimised the double quoting of identifiers as much as I could
    easily, and I will submit another patch when I have time to work on it that
    will use a 'fmtId' function to determine it exactly.

    I think it's a significant improvement in legibility...

    Obviously the table example above is slightly degenerate in that not many
    tables in production have heaps of (non-constraint) triggers and rules.

    Christopher Kings-Lynne