catalogs.3
上传用户:blenddy
上传日期:2007-01-07
资源大小:6495k
文件大小:16k
源码类别:

数据库系统

开发平台:

Unix_Linux

  1. ." This is -*-nroff-*-
  2. ." XXX standard disclaimer belongs here....
  3. ." $Header: /usr/local/cvsroot/pgsql/src/man/Attic/catalogs.3,v 1.6 1999/05/20 02:44:53 tgl Exp $
  4. .TH "SYSTEM CATALOGS" INTRO 03/13/94 PostgreSQL PostgreSQL
  5. .SH "Section 7 - System Catalogs"
  6. .de LS
  7. .PP
  8. .if n .ta 5 +13 +13
  9. .if t .ta 0.5i +1.3i +1.3i
  10. .in 0
  11. .nf
  12. ..
  13. .de LE
  14. .fi
  15. .in
  16. ..
  17. .SH "DESCRIPTION"
  18. In this
  19. section we list each of the attributes of the system catalogs and
  20. define their meanings.
  21. .SH "CLASS/TYPE SYSTEM CATALOGS"
  22. These catalogs form the core of the extensibility system:
  23. .LS
  24. fBnamefP fBshared/localfP fBdescriptionfP
  25. pg_aggregate local aggregate functions
  26. pg_am local access methods
  27. pg_amop local operators usable with specific access methods
  28. pg_amproc local procedures used with specific access methods
  29. pg_attribute local class attributes
  30. pg_class local classes
  31. pg_index local secondary indices
  32. pg_inherits local class inheritance hierarchy
  33. pg_language local procedure implementation languages
  34. pg_opclass local operator classes
  35. pg_operator local query language operators
  36. pg_proc local procedures (functions)
  37. pg_type local data types
  38. .LE
  39. .SH "ENTITIES"
  40. These catalogs deal with identification of entities known throughout
  41. the site:
  42. .LS
  43. fBnamefP fBshared/localfP fBdescriptionfP
  44. pg_database shared current databases
  45. pg_group shared user groups
  46. pg_shadow shared valid users
  47. .LE
  48. .SH "RULE SYSTEM CATALOGS"
  49. .LS
  50. fBnamefP fBshared/localfP fBdescriptionfP
  51. pg_listener local processes waiting on alerters
  52. pg_prs2plans local instance system procedures
  53. pg_prs2rule local instance system rules
  54. pg_prs2stub local instance system ``stubs''
  55. pg_rewrite local rewrite system information
  56. .LE
  57. .SH "LARGE OBJECT CATALOGS"
  58. .PP
  59. These catalogs are specific to the Inversion file system and large
  60. objects in general:
  61. .LS
  62. fBnamefP fBshared/localfP fBdescriptionfP
  63. pg_lobj local description of a large object
  64. pg_naming local Inversion name space mapping
  65. pg_platter local jukebox platter inventory
  66. pg_plmap local jukebox platter extent map
  67. .LE
  68. .SH "INTERNAL CATALOGS"
  69. .PP
  70. These catalogs are internal classes that are not stored as normal
  71. heaps and cannot be accessed through normal means (attempting to do so
  72. causes an error).
  73. .LS
  74. fBnamefP fBshared/localfP fBdescriptionfP
  75. pg_log shared transaction commit/rollback log
  76. pg_magic shared magic constant
  77. pg_time shared commit/rollback times
  78. pg_variable shared special variable values
  79. .LE
  80. .PP
  81. There are several other classes defined with *(lqpg_*(rq names.
  82. Aside from those that end in *(lqind*(rq (secondary indices), these
  83. are all obsolete or otherwise deprecated.
  84. .SH "CLASS/TYPE SYSTEM CATALOGS"
  85. .PP
  86. The following catalogs relate to the class/type system.
  87. .nf M
  88. /*
  89.  * aggregates
  90.  *
  91.  * see DEFINE AGGREGATE for an explanation of transition functions
  92.  */
  93. pg_aggregate
  94.     NameData      aggname /* aggregate name (e.g., "count") */
  95.     oid         aggowner /* usesysid of creator */
  96.     regproc     aggtransfn1 /* first transition function */
  97.     regproc     aggtransfn2 /* second transition function */
  98.     regproc     aggfinalfn /* final function */
  99.     oid         aggbasetype /* type of data on which aggregate
  100.    operates */
  101.     oid         aggtranstype1 /* type returned by aggtransfn1 */
  102.     oid         aggtranstype2 /* type returned by aggtransfn2 */
  103.     oid         aggfinaltype /* type returned by aggfinalfn */
  104.     text        agginitval1 /* external format of initial
  105.    (starting) value of aggtransfn1 */
  106.     text        agginitval2 /* external format of initial
  107.    (starting) value of aggtransfn2 */
  108. .fi
  109. .nf M
  110. pg_am
  111.     NameData      amname /* access method name */
  112.     oid         amowner /* usesysid of creator */
  113.     char        amkind /* - deprecated */
  114. /* originally:
  115.    h=hashed
  116.    o=ordered
  117.    s=special */
  118.     int2        amstrategies /* total NUMBER of strategies by which
  119.    we can traverse/search this AM */
  120.     int2        amsupport /* total NUMBER of support functions
  121.    that this AM uses */
  122.     regproc     amgettuple /* "next valid tuple" function */
  123.     regproc     aminsert /* "insert this tuple" function */
  124.     regproc     amdelete /* "delete this tuple" function */
  125.     regproc     amgetattr /* - deprecated */
  126.     regproc     amsetlock /* - deprecated */
  127.     regproc     amsettid /* - deprecated */
  128.     regproc     amfreetuple /* - deprecated */
  129.     regproc     ambeginscan /* "start new scan" function */
  130.     regproc     amrescan /* "restart this scan" function */
  131.     regproc     amendscan /* "end this scan" function */
  132.     regproc     ammarkpos /* "mark current scan position"
  133.    function */
  134.     regproc     amrestrpos /* "restore marked scan position"
  135.    function */
  136.     regproc     amopen /* - deprecated */
  137.     regproc     amclose /* - deprecated */
  138.     regproc     ambuild /* "build new index" function */
  139.     regproc     amcreate  /* - deprecated */
  140.     regproc     amdestroy /* - deprecated */
  141. .fi
  142. .nf M
  143. pg_amop
  144.     oid         amopid /* access method with which this 
  145.    operator be used */
  146.     oid         amopclaid /* operator class with which this
  147.    operator can be used */
  148.     oid         amopopr /* the operator */
  149.     int2        amopstrategy /* traversal/search strategy number
  150.    to which this operator applies */
  151.     regproc     amopselect /* function to calculate the operator
  152.    selectivity */
  153.     regproc     amopnpages /* function to calculate the number of
  154.    pages that will be examined */
  155. .fi
  156. .nf M
  157. pg_amproc
  158.     oid         amid /* access method with which this
  159.    procedure is associated */
  160.     oid         amopclaid /* operator class with which this
  161.    operator can be used */
  162.     oid         amproc /* the procedure */
  163.     int2        amprocnum /* support function number to which
  164.    this operator applies */
  165. .fi
  166. .nf M
  167. pg_class
  168.      NameData     relname /* class name */
  169.      oid        relowner /* usesysid of owner */
  170.      oid        relam /* access method */
  171.      int4       relpages /* # of 8KB pages */
  172.      int4       reltuples /* # of instances */
  173.      abstime    relexpires /* time after which instances are
  174.    deleted from non-archival storage */
  175.      reltime    relpreserved /* timespan after which instances are
  176.    deleted from non-archival storage */
  177.      bool       relhasindex /* does the class have a secondary
  178.    index? */
  179.      bool       relisshared /* is the class shared or local? */
  180.      char       relkind /* type of relation:
  181.    i=index
  182.    r=relation (heap)
  183.    s=special
  184.    u=uncatalogued (temporary) */
  185.      char       relarch /* archive mode:
  186.    h=heavy
  187.    l=light
  188.    n=none */
  189.      int2       relnatts /* current # of non-system
  190.    attributes */
  191.      int2       relsmgr /* storage manager:
  192.    0=magnetic disk
  193.    1=sony WORM jukebox
  194.    2=main memory */
  195.      int28      relkey /* - unused */
  196.      oid8       relkeyop /* - unused */
  197.      aclitem    relacl[1] /* access control lists */
  198. .fi
  199. .nf M
  200. pg_attribute
  201.     oid         attrelid /* class containing this attribute */
  202.     NameData      attname /* attribute name */
  203.     oid         atttypid /* attribute type */
  204.     oid         attdefrel /* - deprecated */
  205.     int4        attnvals /* - deprecated */
  206.     oid         atttyparg /* - deprecated */
  207.     int2        attlen /* attribute length, in bytes
  208.    -1=variable */
  209.     int2        attnum /* attribute number
  210.    >0=user attribute
  211.    <0=system attribute */
  212.     int2        attbound /* - deprecated */
  213.     bool        attbyval /* type passed by value? */
  214.     bool        attcanindex /* - deprecated */
  215.     oid         attproc /* - deprecated */
  216.     int4        attnelems /* # of array dimensions */
  217.     int4        attcacheoff /* cached offset into tuple */
  218.     bool        attisset /* is attribute set-valued? */
  219. .fi
  220. .nf M
  221. pg_inherits
  222.     oid         inhrel /* child class */
  223.     oid         inhparent /* parent class */
  224.     int4        inhseqno /* - deprecated */
  225. .fi
  226. .nf M
  227.     oid         indexrelid /* oid of secondary index class */
  228.     oid         indrelid /* oid of indexed heap class */
  229.     oid         indproc /* function to compute index key from
  230.    attribute(s) in heap
  231.    0=not a functional index */
  232.     int28       indkey /* attribute numbers of key 
  233.    attribute(s) */
  234.     oid8        indclass /* opclass of each key */
  235.     bool        indisclustered /* is the index clustered?
  236.    - unused */
  237.     bool        indisarchived /* is the index archival?
  238.    - unused */
  239.     text        indpred /* query plan for partial index 
  240.    predicate */
  241. .fi
  242. .nf M
  243. pg_type
  244.     NameData      typname /* type name */
  245.     oid         typowner /* usesysid of owner */
  246.     int2        typlen /* length in internal form
  247.    -1=variable-length */
  248.     int2        typprtlen /* length in external form */
  249.     bool        typbyval /* type passed by value? */
  250.     char        typtype /* kind of type:
  251.    c=catalog (composite)
  252.    b=base */
  253.     bool        typisdefined /* defined or still a shell? */
  254.     char        typdelim /* delimiter for array external form */
  255.     oid         typrelid /* class (if composite) */
  256.     oid         typelem /* type of each array element */
  257.     regproc     typinput /* external-internal conversion
  258.    function */ 
  259.     regproc     typoutput /* internal-external conversion
  260.    function */
  261.     regproc     typreceive /* client-server conversion function */
  262.     regproc     typsend /* server-client conversion function */
  263.     text        typdefault /* default value */
  264. .fi
  265. .nf M
  266. pg_operator
  267.     NameData      oprname /* operator name */
  268.     oid         oprowner /* usesysid of owner */
  269.     int2        oprprec /* - deprecated */
  270.     char        oprkind /* kind of operator:
  271.    b=binary
  272.    l=left unary
  273.    r=right unary */
  274.     bool        oprisleft /* is operator left/right associative? */
  275.     bool        oprcanhash /* is operator usable for hashjoin? */
  276.     oid         oprleft /* left operand type */
  277.     oid         oprright /* right operand type */
  278.     oid         oprresult /* result type */
  279.     oid         oprcom /* commutator operator */
  280.     oid         oprnegate /* negator operator */
  281.     oid         oprlsortop /* sort operator for left operand */
  282.     oid         oprrsortop /* sort operator for right operand */
  283.     regproc     oprcode /* function implementing this operator */
  284.     regproc     oprrest /* function to calculate operator
  285.    restriction selectivity */
  286.     regproc     oprjoin /* function to calculate operator 
  287.    join selectivity */
  288. .fi
  289. .nf M
  290. pg_opclass
  291.     NameData      opcname /* operator class name */
  292. .fi
  293. .nf M
  294. pg_proc
  295.     NameData      proname /* function name */
  296.     oid         proowner /* usesysid of owner */
  297.     oid         prolang /* function implementation language */
  298.     bool        proisinh /* - deprecated */
  299.     bool        proistrusted /* run in server or untrusted function
  300.    process? */
  301.     bool        proiscachable /* can the function return values be
  302.    cached? */
  303.     int2        pronargs /* # of arguments */
  304.     bool        proretset /* does the function return a set?
  305.    - unused */
  306.     oid         prorettype /* return type */
  307.     oid8        proargtypes /* argument types */
  308.     int4        probyte_pct /* % of argument size (in bytes) that
  309.    needs to be examined in order to
  310.    compute the function */ 
  311.     int4        properbyte_cpu /* sensitivity of the function's
  312.    running time to the size of its
  313.    inputs */
  314.     int4        propercall_cpu /* overhead of the function's
  315.    invocation (regardless of input
  316.    size) */
  317.     int4        prooutin_ratio /* size of the function's output as a
  318.    percentage of the size of the input */
  319.     text        prosrc /* function definition:
  320.    INTERNAL function: actual C name of function
  321.    C function: currently, this field is unused
  322.    SQL function: text of query(s)
  323.    PL function: text in procedural language */
  324.     bytea       probin /* path to object file (C functions only) */
  325. .fi
  326. .nf M
  327. pg_language
  328.     NameData      lanname /* language name */
  329.     text        lancompiler /* - deprecated */
  330. .fi
  331. .SH "ENTITIES"
  332. .nf M
  333. pg_database
  334.     NameData      datname /* database name */
  335.     oid         datdba /* usesysid of database administrator */
  336.     text        datpath /* directory of database under
  337.    $PGDATA */ 
  338. .fi
  339. .nf M
  340. pg_group
  341.     NameData      groname /* group name */
  342.     int2        grosysid /* group's UNIX group id */
  343.     int2        grolist[1] /* list of usesysids of group members */
  344. .fi
  345. .nf M
  346. pg_shadow
  347.     NameData      usename /* user's name */
  348.     int2        usesysid /* user's UNIX user id */
  349.     bool        usecreatedb /* can user create databases? */
  350.     bool        usetrace /* can user set trace flags? */
  351.     bool        usesuper /* can user be POSTGRES superuser? */
  352.     bool        usecatupd /* can user update catalogs? */
  353. .fi
  354. .SH "RULE SYSTEM CATALOGS"
  355. .nf M
  356. pg_listener
  357.     NameData      relname /* class for which asynchronous 
  358.    notification is desired */
  359.     int4        listenerpid /* process id of server corresponding
  360.    to a frontend program waiting for
  361.    asynchronous notification */
  362.     int4        notification /* whether an event notification for
  363.    this process id still pending */
  364. .fi
  365. .nf M
  366. pg_prs2rule
  367.     NameData      prs2name /* rule name */
  368.     char        prs2eventtype /* rule event type:
  369.    R=retrieve
  370.    U=update (replace)
  371.    A=append
  372.    D=delete */
  373.     oid         prs2eventrel /* class to which event applies */
  374.     int2        prs2eventattr /* attribute to which event applies */
  375.     float8      necessary /* - deprecated */
  376.     float8      sufficient /* - deprecated */
  377.     text        prs2text /* text of original rule definition */
  378. .fi
  379. .nf M
  380. pg_prs2plans
  381.     oid         prs2ruleid /* prs2rule instance for which this
  382.    plan is used */
  383.     int2        prs2planno /* plan number (one rule may invoke
  384.    multiple plans) */
  385.     text        prs2code /* external representation of the plan */
  386. .fi
  387. .nf M
  388. pg_prs2stub
  389.     oid         prs2relid /* class to which this rule applies */
  390.     bool        prs2islast /* is this the last stub fragment? */
  391.     int4        prs2no /* stub fragment number */
  392.     stub        prs2stub /* stub fragment */
  393. .fi
  394. .nf M
  395. pg_rewrite
  396.     NameData      rulename /* rule name */
  397.     char        ev_type /* event type:
  398.    RETRIEVE, REPLACE, APPEND, DELETE
  399.    codes are parser-dependent (!?) */
  400.     oid         ev_class /* class to which this rule applies */
  401.     int2        ev_attr /* attribute to which this rule applies */
  402.     bool        is_instead /* is this an "instead" rule? */
  403.     text        ev_qual /* qualification with which to modify
  404.    (rewrite) the plan that triggered this
  405.    rule */
  406.     text        action /* parse tree of action */
  407. .fi
  408. .SH "LARGE OBJECT CATALOGS"
  409. .nf M
  410. pg_lobj
  411.     oid         ourid /* 'ourid' from pg_naming that
  412.    identifies this object in the
  413.    Inversion file system namespace */
  414.     int4        objtype /* storage type code:
  415.    0=Inversion
  416.    1=Unix
  417.    2=External
  418.    3=Jaquith */
  419.     bytea       object_descripto/* opaque object-handle structure */
  420. .fi
  421. .nf M
  422. pg_naming
  423.     NameData      filename /* filename component */
  424.     oid         ourid /* random oid used to identify this
  425.    instance in other instances (can't
  426.    use the actual oid for obscure
  427.    reasons */
  428.     oid         parentid /* pg_naming instance of parent
  429.    Inversion file system directory */
  430. .fi
  431. .nf M
  432. pg_platter
  433.      NameData     plname /* platter name */
  434.      int4       plstart /* the highest OCCUPIED extent */
  435. .fi
  436. .nf M
  437. pg_plmap
  438.      oid        plid /* platter (in pg_platter) on which
  439.    this extent (of blocks) resides */
  440.      oid        pldbid /* database of the class to which this
  441.    extent (of blocks) belongs */
  442.      oid        plrelid /* class to which this extend (of
  443.    blocks) belongs */
  444.      int4       plblkno /* starting block number within the
  445.    class */ 
  446.      int4       ploffset /* offset within the platter at which
  447.    this extent begins */
  448.      int4       plextentsz /* length of this extent */
  449. .fi