Jason Hihn <jhihn@paytimepayroll.com> writes:
> I wish to track some additional info about users. Can I just add columns to
> the pg_shadow table?
Not without modifying the C code that manipulates pg_shadow (at the very
least, some routines in src/backend/commands/user.c would have to
change, and you'd need to update src/include/catalog/pg_shadow.h).
> Can I add a system table while I am at it? (how?)
What's your idea of a "system table"? Mine is one that some C code in
the backend knows about explicitly. Unless you've written some C code
that accesses a table, it's not a system table. The infrastructure for
doing this is at least a header in include/catalog/, usually more
depending on whether you need things like cache support for the new
table. You might care to look at all the code referencing one of the
lesser-used catalogs, perhaps pg_language or pg_cast, to get a sense of
what is involved.
> How do I back up the pg_ system tables?
They aren't backed up as such; all the useful content is included in the
schema information output by pg_dump or pg_dumpall.
regards, tom lane