---
name: "catalogs"
section: "3pq"
platform: "linux"
package: "postgres95"
version: "1.01-1"
release: "Debian 1.2 (Rex)"
platforms: ["linux"]
url: "https://new.carta.tech/catalogs/3pq"
---

# catalogs(3pq)

## DESCRIPTION

In this section we list each of the attributes of the system catalogs and define their meanings.

## CLASS/TYPE SYSTEM CATALOGS

These catalogs form the core of the extensibility system:

```
	name	shared/local	description
	pg_aggregate	local	aggregate functions
	pg_am	local	access methods
	pg_amop	local	operators usable with specific access methods
	pg_amproc	local	procedures used with specific access methods
	pg_attribute	local	class attributes
	pg_class	local	classes
	pg_index	local	secondary indices
	pg_inherits	local	class inheritance hierarchy
	pg_language	local	procedure implementation languages
	pg_opclass	local	operator classes
	pg_operator	local	query language operators
	pg_proc	local	procedures (functions)
	pg_type	local	data types
```

## ENTITIES

These catalogs deal with identification of entities known throughout the site:

```
	name	shared/local	description
	pg_database	shared	current databases
	pg_group	shared	user groups
	pg_user	shared	valid users
```

## RULE SYSTEM CATALOGS

```
	name	shared/local	description
	pg_listener	local	processes waiting on alerters
	pg_prs2plans	local	instance system procedures
	pg_prs2rule	local	instance system rules
	pg_prs2stub	local	instance system ``stubs''
	pg_rewrite	local	rewrite system information
```

## LARGE OBJECT CATALOGS

These catalogs are specific to the Inversion file system and large objects in general:

```
	name	shared/local	description
	pg_lobj	local	description of a large object
	pg_naming	local	Inversion name space mapping
	pg_platter	local	jukebox platter inventory
	pg_plmap	local	jukebox platter extent map
```

## INTERNAL CATALOGS

These catalogs are internal classes that are not stored as normal heaps and cannot be accessed through normal means (attempting to do so causes an error).

```
	name	shared/local	description
	pg_log	shared	transaction commit/abort log
	pg_magic	shared	magic constant
	pg_time	shared	commit/abort times
	pg_variable	shared	special variable values
```

There are several other classes defined with “pg\_” names. Aside from those that end in “ind” (secondary indices), these are all obsolete or otherwise deprecated.

## CLASS/TYPE SYSTEM CATALOGS

The following catalogs relate to the class/type system. /\*\
  \* aggregates\
  \*\
  \* see DEFINE AGGREGATE for an explanation of transition functions\
  \*/ pg\_aggregate\
     NameData      aggname	/\* aggregate name (e.g., "count") \*/\
     oid         aggowner	/\* usesysid of creator \*/\
     regproc     aggtransfn1	/\* first transition function \*/\
     regproc     aggtransfn2	/\* second transition function \*/\
     regproc     aggfinalfn	/\* final function \*/\
     oid         aggbasetype	/\* type of data on which aggregate\
 				   operates \*/\
     oid         aggtranstype1	/\* type returned by aggtransfn1 \*/\
     oid         aggtranstype2	/\* type returned by aggtransfn2 \*/\
     oid         aggfinaltype	/\* type returned by aggfinalfn \*/\
     text        agginitval1	/\* external format of initial\
 				   (starting) value of aggtransfn1 \*/\
     text        agginitval2	/\* external format of initial\
 				   (starting) value of aggtransfn2 \*/ pg\_am\
     NameData      amname		/\* access method name \*/\
     oid         amowner	/\* usesysid of creator \*/\
     char        amkind		/\* - deprecated \*/\
 				/\* originally:\
 				   h=hashed\
 				   o=ordered\
 				   s=special \*/\
     int2        amstrategies	/\* total NUMBER of strategies by which\
 				   we can traverse/search this AM \*/\
     int2        amsupport	/\* total NUMBER of support functions\
 				   that this AM uses \*/\
     regproc     amgettuple	/\* "next valid tuple" function \*/\
     regproc     aminsert	/\* "insert this tuple" function \*/\
     regproc     amdelete	/\* "delete this tuple" function \*/\
     regproc     amgetattr	/\* - deprecated \*/\
     regproc     amsetlock	/\* - deprecated \*/\
     regproc     amsettid	/\* - deprecated \*/\
     regproc     amfreetuple	/\* - deprecated \*/\
     regproc     ambeginscan	/\* "start new scan" function \*/\
     regproc     amrescan	/\* "restart this scan" function \*/\
     regproc     amendscan	/\* "end this scan" function \*/\
     regproc     ammarkpos	/\* "mark current scan position"\
 				   function \*/\
     regproc     amrestrpos	/\* "restore marked scan position"\
 				   function \*/\
     regproc     amopen		/\* - deprecated \*/\
     regproc     amclose	/\* - deprecated \*/\
     regproc     ambuild	/\* "build new index" function \*/\
     regproc     amcreate 	/\* - deprecated \*/\
     regproc     amdestroy	/\* - deprecated \*/ pg\_amop\
     oid         amopid		/\* access method with which this \
 				   operator be used \*/\
     oid         amopclaid	/\* operator class with which this\
 				   operator can be used \*/\
     oid         amopopr	/\* the operator \*/\
     int2        amopstrategy	/\* traversal/search strategy number\
 				   to which this operator applies \*/\
     regproc     amopselect	/\* function to calculate the operator\
 				   selectivity \*/\
     regproc     amopnpages	/\* function to calculate the number of\
 				   pages that will be examined \*/ pg\_amproc\
     oid         amid		/\* access method with which this\
 				   procedure is associated \*/\
     oid         amopclaid	/\* operator class with which this\
 				   operator can be used \*/\
     oid         amproc		/\* the procedure \*/\
     int2        amprocnum	/\* support function number to which\
 				   this operator applies \*/ pg\_class\
      NameData     relname	/\* class name \*/\
      oid        relowner	/\* usesysid of owner \*/\
      oid        relam	/\* access method \*/\
      int4       relpages	/\* # of 8KB pages \*/\
      int4       reltuples	/\* # of instances \*/\
      abstime    relexpires	/\* time after which instances are\
 				   deleted from non-archival storage \*/\
      reltime    relpreserved	/\* timespan after which instances are\
 				   deleted from non-archival storage \*/\
      bool       relhasindex	/\* does the class have a secondary\
 				   index? \*/\
      bool       relisshared	/\* is the class shared or local? \*/\
      char       relkind		/\* type of relation:\
 				   i=index\
 				   r=relation (heap)\
 				   s=special\
 				   u=uncatalogued (temporary) \*/\
      char       relarch	/\* archive mode:\
 			   h=heavy\
 			   l=light\
 			   n=none \*/\
      int2       relnatts	/\* current # of non-system\
 				   attributes \*/\
      int2       relsmgr	/\* storage manager:\
 			   0=magnetic disk\
 			   1=sony WORM jukebox\
 			   2=main memory \*/\
      int28      relkey	/\* - unused \*/\
      oid8       relkeyop	/\* - unused \*/\
      aclitem    relacl\[1\]	/\* access control lists \*/ pg\_attribute\
     oid         attrelid	/\* class containing this attribute \*/\
     NameData      attname	/\* attribute name \*/\
     oid         atttypid	/\* attribute type \*/\
     oid         attdefrel	/\* - deprecated \*/\
     int4        attnvals	/\* - deprecated \*/\
     oid         atttyparg	/\* - deprecated \*/\
     int2        attlen	/\* attribute length, in bytes\
 			   \-1=variable \*/\
     int2        attnum	/\* attribute number\
 			   \>0=user attribute\
 			   \<0=system attribute \*/\
     int2        attbound	/\* - deprecated \*/\
     bool        attbyval	/\* type passed by value? \*/\
     bool        attcanindex	/\* - deprecated \*/\
     oid         attproc	/\* - deprecated \*/\
     int4        attnelems	/\* # of array dimensions \*/\
     int4        attcacheoff	/\* cached offset into tuple \*/\
     bool        attisset	/\* is attribute set-valued? \*/ pg\_inherits\
     oid         inhrel	/\* child class \*/\
     oid         inhparent	/\* parent class \*/\
     int4        inhseqno	/\* - deprecated \*/\
     oid         indexrelid	/\* oid of secondary index class \*/\
     oid         indrelid	/\* oid of indexed heap class \*/\
     oid         indproc	/\* function to compute index key from\
 				   attribute(s) in heap\
 				   0=not a functional index \*/\
     int28       indkey	/\* attribute numbers of key \
 			   attribute(s) \*/\
     oid8        indclass	/\* opclass of each key \*/\
     bool        indisclustered	/\* is the index clustered?\
 				   \- unused \*/\
     bool        indisarchived	/\* is the index archival?\
 				   \- unused \*/\
     text        indpred	/\* query plan for partial index \
 			   predicate \*/ pg\_type\
     NameData      typname	/\* type name \*/\
     oid         typowner	/\* usesysid of owner \*/\
     int2        typlen	/\* length in internal form\
 			   \-1=variable-length \*/\
     int2        typprtlen	/\* length in external form \*/\
     bool        typbyval	/\* type passed by value? \*/\
     char        typtype	/\* kind of type:\
 			   c=catalog (composite)\
 			   b=base \*/\
     bool        typisdefined	/\* defined or still a shell? \*/\
     char        typdelim	/\* delimiter for array external form \*/\
     oid         typrelid	/\* class (if composite) \*/\
     oid         typelem	/\* type of each array element \*/\
     regproc     typinput	/\* external-internal conversion\
 				   function \*/ \
     regproc     typoutput	/\* internal-external conversion\
 				   function \*/\
     regproc     typreceive	/\* client-server conversion function \*/\
     regproc     typsend	/\* server-client conversion function \*/\
     text        typdefault	/\* default value \*/ pg\_operator\
     NameData      oprname	/\* operator name \*/\
     oid         oprowner	/\* usesysid of owner \*/\
     int2        oprprec	/\* - deprecated \*/\
     char        oprkind	/\* kind of operator:\
 			   b=binary\
 			   l=left unary\
 			   r=right unary \*/\
     bool        oprisleft	/\* is operator left/right associative? \*/\
     bool        oprcanhash	/\* is operator usable for hashjoin? \*/\
     oid         oprleft	/\* left operand type \*/\
     oid         oprright	/\* right operand type \*/\
     oid         oprresult	/\* result type \*/\
     oid         oprcom	/\* commutator operator \*/\
     oid         oprnegate	/\* negator operator \*/\
     oid         oprlsortop	/\* sort operator for left operand \*/\
     oid         oprrsortop	/\* sort operator for right operand \*/\
     regproc     oprcode	/\* function implementing this operator \*/\
     regproc     oprrest	/\* function to calculate operator\
 			   restriction selectivity \*/\
     regproc     oprjoin	/\* function to calculate operator \
 			   join selectivity \*/ pg\_opclass\
     NameData      opcname	/\* operator class name \*/ pg\_proc\
     NameData      proname	/\* function name \*/\
     oid         proowner	/\* usesysid of owner \*/\
     oid         prolang	/\* function implementation language \*/\
     bool        proisinh	/\* - deprecated \*/\
     bool        proistrusted	/\* run in server or untrusted function\
 				   process? \*/\
     bool        proiscachable	/\* can the function return values be\
 				   cached? \*/\
     int2        pronargs	/\* # of arguments \*/\
     bool        proretset	/\* does the function return a set?\
 				   \- unused \*/\
     oid         prorettype	/\* return type \*/\
     oid8        proargtypes	/\* argument types \*/\
     int4        probyte\_pct	/\* % of argument size (in bytes) that\
 				   needs to be examined in order to\
 				   compute the function \*/ \
     int4        properbyte\_cpu	/\* sensitivity of the function's\
 				   running time to the size of its\
 				   inputs \*/\
     int4        propercall\_cpu	/\* overhead of the function's\
 				   invocation (regardless of input\
 				   size) \*/\
     int4        prooutin\_ratio	/\* size of the function's output as a\
 				   percentage of the size of the input \*/\
     text        prosrc	/\* function definition (postquel only) \*/\
     bytea       probin	/\* path to object file (C only) \*/ pg\_language\
     NameData      lanname	/\* language name \*/\
     text        lancompiler	/\* - deprecated \*/

## ENTITIES

pg\_database\
     NameData      datname		/\* database name \*/\
     oid         datdba		/\* usesysid of database administrator \*/\
     text        datpath		/\* directory of database under\
 				   $PGDATA \*/  pg\_group\
     NameData      groname	/\* group name \*/\
     int2        grosysid	/\* group's UNIX group id \*/\
     int2        grolist\[1\]	/\* list of usesysids of group members \*/ pg\_user\
     NameData      usename		/\* user's name \*/\
     int2        usesysid	/\* user's UNIX user id \*/\
     bool        usecreatedb	/\* can user create databases? \*/\
     bool        usetrace	/\* can user set trace flags? \*/\
     bool        usesuper	/\* can user be POSTGRES superuser? \*/\
     bool        usecatupd	/\* can user update catalogs? \*/

## RULE SYSTEM CATALOGS

pg\_listener\
     NameData      relname	/\* class for which asynchronous \
 			   notification is desired \*/\
     int4        listenerpid	/\* process id of server corresponding\
 				   to a frontend program waiting for\
 				   asynchronous notification \*/\
     int4        notification	/\* whether an event notification for\
 				   this process id still pending \*/

pg\_prs2rule\
     NameData      prs2name	/\* rule name \*/\
     char        prs2eventtype	/\* rule event type:\
 				   R=retrieve\
 				   U=update (replace)\
 				   A=append\
 				   D=delete \*/\
     oid         prs2eventrel	/\* class to which event applies \*/\
     int2        prs2eventattr	/\* attribute to which event applies \*/\
     float8      necessary	/\* - deprecated \*/\
     float8      sufficient	/\* - deprecated \*/\
     text        prs2text	/\* text of original rule definition \*/ pg\_prs2plans\
     oid         prs2ruleid	/\* prs2rule instance for which this\
 				   plan is used \*/\
     int2        prs2planno	/\* plan number (one rule may invoke\
 				   multiple plans) \*/\
     text        prs2code	/\* external representation of the plan \*/ pg\_prs2stub\
     oid         prs2relid	/\* class to which this rule applies \*/\
     bool        prs2islast	/\* is this the last stub fragment? \*/\
     int4        prs2no		/\* stub fragment number \*/\
     stub        prs2stub	/\* stub fragment \*/ pg\_rewrite\
     NameData      rulename	/\* rule name \*/\
     char        ev\_type	/\* event type:\
 			   RETRIEVE, REPLACE, APPEND, DELETE\
 			   codes are parser-dependent (!?) \*/\
     oid         ev\_class	/\* class to which this rule applies \*/\
     int2        ev\_attr	/\* attribute to which this rule applies \*/\
     bool        is\_instead	/\* is this an "instead" rule? \*/\
     text        ev\_qual	/\* qualification with which to modify\
 			   (rewrite) the plan that triggered this\
 			   rule \*/\
     text        action	/\* parse tree of action \*/

## LARGE OBJECT CATALOGS

pg\_lobj\
     oid         ourid		/\* 'ourid' from pg\_naming that\
 				   identifies this object in the\
 				   Inversion file system namespace \*/\
     int4        objtype		/\* storage type code:\
 				   0=Inversion\
 				   1=Unix\
 				   2=External\
 				   3=Jaquith \*/\
     bytea       object\_descripto/\* opaque object-handle structure \*/ pg\_naming\
     NameData      filename	/\* filename component \*/\
     oid         ourid		/\* random oid used to identify this\
 				   instance in other instances (can't\
 				   use the actual oid for obscure\
 				   reasons \*/\
     oid         parentid	/\* pg\_naming instance of parent\
 				   Inversion file system directory \*/ pg\_platter\
      NameData     plname		/\* platter name \*/\
      int4       plstart		/\* the highest OCCUPIED extent \*/ pg\_plmap\
      oid        plid		/\* platter (in pg\_platter) on which\
 				   this extent (of blocks) resides \*/\
      oid        pldbid		/\* database of the class to which this\
 				   extent (of blocks) belongs \*/\
      oid        plrelid		/\* class to which this extend (of\
 				   blocks) belongs \*/\
      int4       plblkno		/\* starting block number within the\
 				   class \*/ \
      int4       ploffset	/\* offset within the platter at which\
 				   this extent begins \*/\
      int4       plextentsz	/\* length of this extent \*/
