mirror of
https://github.com/postgres/postgres.git
synced 2025-11-06 07:49:08 +03:00
Clean up th ecompile process by centralizing the include files
- code compile tested, but due to a yet unresolved problem with
parse.h's creation, compile not completed...
This commit is contained in:
@@ -8,10 +8,11 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/bootstrap/bootscanner.l,v 1.1.1.1 1996/07/09 06:21:14 scrappy Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/bootstrap/bootscanner.l,v 1.2 1996/08/28 07:14:09 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
#include "bootstrap/bootstrap.h"
|
||||
#include "utils/portal.h"
|
||||
#include "access/xact.h"
|
||||
|
||||
@@ -1,78 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* bootstrap.h--
|
||||
* include file for the bootstrapping code
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: bootstrap.h,v 1.2 1996/08/13 01:28:29 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef BOOTSTRAP_H
|
||||
#define BOOTSTRAP_H
|
||||
|
||||
#include <sys/file.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <signal.h>
|
||||
#include <ctype.h>
|
||||
|
||||
#include "access/htup.h"
|
||||
#include "access/itup.h"
|
||||
#include "access/relscan.h"
|
||||
#include "access/skey.h"
|
||||
#include "utils/tqual.h"
|
||||
#include "storage/buf.h"
|
||||
#include "storage/bufmgr.h" /* for BufferManagerFlush */
|
||||
#include "utils/portal.h"
|
||||
#include "utils/elog.h"
|
||||
#include "utils/rel.h"
|
||||
|
||||
#define MAXATTR 40 /* max. number of attributes in a relation */
|
||||
|
||||
typedef struct hashnode {
|
||||
int strnum; /* Index into string table */
|
||||
struct hashnode *next;
|
||||
} hashnode;
|
||||
|
||||
#define EMITPROMPT printf("> ")
|
||||
|
||||
extern Relation reldesc;
|
||||
extern AttributeTupleForm attrtypes[MAXATTR];
|
||||
extern int numattr;
|
||||
extern int DebugMode;
|
||||
|
||||
extern int BootstrapMain(int ac, char *av[]);
|
||||
extern void index_register(char *heap,
|
||||
char *ind,
|
||||
int natts,
|
||||
AttrNumber *attnos,
|
||||
uint16 nparams,
|
||||
Datum *params,
|
||||
FuncIndexInfo *finfo,
|
||||
PredInfo *predInfo);
|
||||
|
||||
extern void err_out(void);
|
||||
extern void InsertOneTuple(Oid objectid);
|
||||
extern void closerel(char *name);
|
||||
extern void boot_openrel(char *name);
|
||||
extern char *LexIDStr(int ident_num);
|
||||
|
||||
extern void DefineAttr(char *name, char *type, int attnum);
|
||||
extern void InsertOneValue(Oid objectid, char *value, int i);
|
||||
extern void InsertOneNull(int i);
|
||||
extern bool BootstrapAlreadySeen(Oid id);
|
||||
extern void cleanup(void);
|
||||
extern int gettype(char *type);
|
||||
extern AttributeTupleForm AllocateAttribute(void);
|
||||
extern char* MapArrayTypeName(char *s);
|
||||
extern char* CleanUpStr(char *s);
|
||||
extern int EnterString (char *str);
|
||||
extern int CompHash (char *str, int len);
|
||||
extern hashnode *FindStr (char *str, int length, hashnode *mderef);
|
||||
extern hashnode *AddStr(char *str, int strlength, int mderef);
|
||||
extern void build_indices(void);
|
||||
|
||||
#endif /* BOOTSTRAP_H */
|
||||
@@ -1,24 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* catalog.h--
|
||||
* prototypes for functions in lib/catalog/catalog.c
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: catalog.h,v 1.1.1.1 1996/07/09 06:21:15 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef CATALOG_H
|
||||
#define CATALOG_H
|
||||
|
||||
#include "access/tupdesc.h"
|
||||
|
||||
extern char *relpath(char relname[]);
|
||||
extern bool IsSystemRelationName(char *relname);
|
||||
extern bool IsSharedSystemRelationName(char *relname);
|
||||
extern Oid newoid(void);
|
||||
extern void fillatt(TupleDesc att);
|
||||
|
||||
#endif /* CATALOG_H */
|
||||
@@ -1,52 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* catname.h--
|
||||
* POSTGRES system catalog relation name definitions.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: catname.h,v 1.1.1.1 1996/07/09 06:21:15 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef CATNAME_H
|
||||
#define CATNAME_H
|
||||
|
||||
#include "postgres.h"
|
||||
|
||||
|
||||
#define AggregateRelationName "pg_aggregate"
|
||||
#define AccessMethodRelationName "pg_am"
|
||||
#define AccessMethodOperatorRelationName "pg_amop"
|
||||
#define AccessMethodProcedureRelationName "pg_amproc"
|
||||
#define AttributeRelationName "pg_attribute"
|
||||
#define DatabaseRelationName "pg_database"
|
||||
#define DefaultsRelationName "pg_defaults"
|
||||
#define DemonRelationName "pg_demon"
|
||||
#define GroupRelationName "pg_group"
|
||||
#define HostsRelationName "pg_hosts"
|
||||
#define IndexRelationName "pg_index"
|
||||
#define InheritProcedureRelationName "pg_inheritproc"
|
||||
#define InheritsRelationName "pg_inherits"
|
||||
#define InheritancePrecidenceListRelationName "pg_ipl"
|
||||
#define LanguageRelationName "pg_language"
|
||||
#define ListenerRelationName "pg_listener"
|
||||
#define LogRelationName "pg_log"
|
||||
#define MagicRelationName "pg_magic"
|
||||
#define OperatorClassRelationName "pg_opclass"
|
||||
#define OperatorRelationName "pg_operator"
|
||||
#define ProcedureRelationName "pg_proc"
|
||||
#define RelationRelationName "pg_class"
|
||||
#define RewriteRelationName "pg_rewrite"
|
||||
#define ServerRelationName "pg_server"
|
||||
#define StatisticRelationName "pg_statistic"
|
||||
#define TimeRelationName "pg_time"
|
||||
#define TypeRelationName "pg_type"
|
||||
#define UserRelationName "pg_user"
|
||||
#define VariableRelationName "pg_variable"
|
||||
#define VersionRelationName "pg_version"
|
||||
|
||||
extern char *SharedSystemRelationNames[];
|
||||
|
||||
#endif /* CATNAME_H */
|
||||
@@ -1,42 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* heap.h--
|
||||
* prototypes for functions in lib/catalog/heap.c
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: heap.h,v 1.1.1.1 1996/07/09 06:21:15 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef HEAP_H
|
||||
#define HEAP_H
|
||||
|
||||
extern Relation heap_creatr(char *relname, unsigned smgr, TupleDesc att);
|
||||
|
||||
extern int RelationAlreadyExists(Relation pg_class_desc, char relname[]);
|
||||
extern void addNewRelationType(char *typeName, Oid new_rel_oid);
|
||||
|
||||
extern void AddPgRelationTuple(Relation pg_class_desc,
|
||||
Relation new_rel_desc, Oid new_rel_oid, int arch, unsigned natts);
|
||||
|
||||
extern Oid heap_create(char relname[],
|
||||
char *typename,
|
||||
int arch,
|
||||
unsigned smgr, TupleDesc tupdesc);
|
||||
|
||||
extern void RelationRemoveInheritance(Relation relation);
|
||||
extern void RelationRemoveIndexes(Relation relation);
|
||||
extern void DeletePgRelationTuple(Relation rdesc);
|
||||
extern void DeletePgAttributeTuples(Relation rdesc);
|
||||
extern void DeletePgTypeTuple(Relation rdesc);
|
||||
extern void heap_destroy(char relname[]);
|
||||
extern void heap_destroyr(Relation r);
|
||||
|
||||
extern void InitTempRelList();
|
||||
extern void AddToTempRelList(Relation r);
|
||||
extern void RemoveFromTempRelList(Relation r);
|
||||
extern void DestroyTempRels();
|
||||
|
||||
#endif /* HEAP_H */
|
||||
@@ -1,62 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* index.h--
|
||||
* prototypes for index.c.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: index.h,v 1.3 1996/08/26 06:29:36 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef INDEX_H
|
||||
#define INDEX_H
|
||||
|
||||
#include "access/funcindex.h"
|
||||
#include "access/itup.h"
|
||||
#include "nodes/execnodes.h"
|
||||
#include "nodes/parsenodes.h"
|
||||
|
||||
|
||||
extern Form_pg_am
|
||||
AccessMethodObjectIdGetAccessMethodTupleForm(Oid accessMethodObjectId);
|
||||
|
||||
extern void
|
||||
UpdateIndexPredicate(Oid indexoid, Node *oldPred, Node *predicate);
|
||||
|
||||
extern void InitIndexStrategy(int numatts,
|
||||
Relation indexRelation,
|
||||
Oid accessMethodObjectId);
|
||||
|
||||
extern void index_create(char *heapRelationName,
|
||||
char* indexRelationName,
|
||||
FuncIndexInfo *funcInfo,
|
||||
TypeName *IndexKeyType,
|
||||
Oid accessMethodObjectId,
|
||||
int numatts,
|
||||
AttrNumber attNums[],
|
||||
Oid classObjectId[],
|
||||
uint16 parameterCount,
|
||||
Datum *parameter,
|
||||
Node *predicate,
|
||||
bool islossy);
|
||||
|
||||
extern void index_destroy(Oid indexId);
|
||||
|
||||
extern void FormIndexDatum(int numberOfAttributes,
|
||||
AttrNumber attributeNumber[], HeapTuple heapTuple,
|
||||
TupleDesc heapDescriptor, Buffer buffer, Datum *datum,
|
||||
char *nullv, FuncIndexInfoPtr fInfo);
|
||||
|
||||
extern void UpdateStats(Oid relid, long reltuples, bool hasindex);
|
||||
|
||||
extern void FillDummyExprContext(ExprContext *econtext, TupleTableSlot *slot,
|
||||
TupleDesc tupdesc, Buffer buffer);
|
||||
|
||||
extern void index_build(Relation heapRelation, Relation indexRelation,
|
||||
int numberOfAttributes, AttrNumber attributeNumber[],
|
||||
uint16 parameterCount, Datum *parameter, FuncIndexInfo *funcInfo,
|
||||
PredInfo *predInfo);
|
||||
|
||||
#endif /* INDEX_H */
|
||||
@@ -1,103 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* indexing.h--
|
||||
* This include provides some definitions to support indexing
|
||||
* on system catalogs
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: indexing.h,v 1.1.1.1 1996/07/09 06:21:15 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef INDEXING_H
|
||||
#define INDEXING_H
|
||||
|
||||
#include "utils/rel.h"
|
||||
|
||||
/*
|
||||
* Some definitions for indices on pg_attribute
|
||||
*/
|
||||
#define Num_pg_attr_indices 3
|
||||
#define Num_pg_proc_indices 3
|
||||
#define Num_pg_type_indices 2
|
||||
#define Num_pg_class_indices 2
|
||||
|
||||
|
||||
/*
|
||||
* Names of indices on system catalogs
|
||||
*/
|
||||
#define AttributeNameIndex "pg_attnameind"
|
||||
#define AttributeNumIndex "pg_attnumind"
|
||||
#define AttributeRelidIndex "pg_attrelidind"
|
||||
#define ProcedureNameIndex "pg_procnameind"
|
||||
#define ProcedureOidIndex "pg_procidind"
|
||||
#define ProcedureSrcIndex "pg_procsrcind"
|
||||
#define TypeNameIndex "pg_typenameind"
|
||||
#define TypeOidIndex "pg_typeidind"
|
||||
#define ClassNameIndex "pg_classnameind"
|
||||
#define ClassOidIndex "pg_classoidind"
|
||||
|
||||
extern char *Name_pg_attr_indices[];
|
||||
extern char *Name_pg_proc_indices[];
|
||||
extern char *Name_pg_type_indices[];
|
||||
extern char *Name_pg_class_indices[];
|
||||
|
||||
extern char *IndexedCatalogNames[];
|
||||
|
||||
/*
|
||||
* indexing.c prototypes
|
||||
*
|
||||
* Functions for each index to perform the necessary scan on a cache miss.
|
||||
*/
|
||||
extern void CatalogOpenIndices(int nIndices, char *names[], Relation idescs[]);
|
||||
extern void CatalogCloseIndices(int nIndices, Relation *idescs);
|
||||
extern void CatalogIndexInsert(Relation *idescs,
|
||||
int nIndices,
|
||||
Relation heapRelation,
|
||||
HeapTuple heapTuple);
|
||||
extern bool CatalogHasIndex(char *catName, Oid catId);
|
||||
|
||||
extern HeapTuple AttributeNameIndexScan(Relation heapRelation,
|
||||
Oid relid,
|
||||
char *attname);
|
||||
|
||||
extern HeapTuple AttributeNumIndexScan(Relation heapRelation,
|
||||
Oid relid,
|
||||
AttrNumber attnum);
|
||||
extern HeapTuple ProcedureOidIndexScan(Relation heapRelation, Oid procId);
|
||||
extern HeapTuple ProcedureNameIndexScan(Relation heapRelation,
|
||||
char *procName, int nargs, Oid *argTypes);
|
||||
extern HeapTuple ProcedureSrcIndexScan(Relation heapRelation, text *procSrc);
|
||||
extern HeapTuple TypeOidIndexScan(Relation heapRelation, Oid typeId);
|
||||
extern HeapTuple TypeNameIndexScan(Relation heapRelation, char *typeName);
|
||||
extern HeapTuple ClassNameIndexScan(Relation heapRelation, char *relName);
|
||||
extern HeapTuple ClassOidIndexScan(Relation heapRelation, Oid relId);
|
||||
|
||||
|
||||
/*
|
||||
* What follows are lines processed by genbki.sh to create the statements
|
||||
* the bootstrap parser will turn into DefineIndex commands.
|
||||
*
|
||||
* The keyword is DECLARE_INDEX every thing after that is just like in a
|
||||
* normal specification of the 'define index' POSTQUEL command.
|
||||
*/
|
||||
DECLARE_INDEX(pg_attnameind on pg_attribute using btree (mkoidname(attrelid, attname) oidname_ops));
|
||||
DECLARE_INDEX(pg_attnumind on pg_attribute using btree (mkoidint2(attrelid, attnum) oidint2_ops));
|
||||
DECLARE_INDEX(pg_attrelidind on pg_attribute using btree (attrelid oid_ops));
|
||||
|
||||
DECLARE_INDEX(pg_procidind on pg_proc using btree (Oid oid_ops));
|
||||
DECLARE_INDEX(pg_procnameind on pg_proc using btree (proname name_ops));
|
||||
DECLARE_INDEX(pg_procsrcind on pg_proc using btree (prosrc text_ops));
|
||||
|
||||
DECLARE_INDEX(pg_typeidind on pg_type using btree (Oid oid_ops));
|
||||
DECLARE_INDEX(pg_typenameind on pg_type using btree (typname name_ops));
|
||||
|
||||
DECLARE_INDEX(pg_classnameind on pg_class using btree (relname name_ops));
|
||||
DECLARE_INDEX(pg_classoidind on pg_class using btree (Oid oid_ops));
|
||||
|
||||
/* now build indices in the initialization scripts */
|
||||
BUILD_INDICES
|
||||
|
||||
#endif /* INDEXING_H */
|
||||
@@ -1,132 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_aggregate.h--
|
||||
* definition of the system "aggregate" relation (pg_aggregate)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_aggregate.h,v 1.1.1.1 1996/07/09 06:21:16 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_AGGREGATE_H
|
||||
#define PG_AGGREGATE_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* pg_aggregate definition.
|
||||
*
|
||||
* cpp turns this into typedef struct FormData_pg_aggregate
|
||||
*
|
||||
* aggname name of the aggregate
|
||||
* aggtransfn1 transition function 1
|
||||
* aggtransfn2 transition function 2
|
||||
* aggfinalfn final function
|
||||
* aggbasetype type of data on which aggregate operates
|
||||
* aggtranstype1 output types for xition func 1
|
||||
* aggtranstype2 output types for xition func 2
|
||||
* aggfinaltype output type for final func
|
||||
* agginitval1 initial aggregate value
|
||||
* agginitval2 initial value for transition state 2
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
CATALOG(pg_aggregate) {
|
||||
NameData aggname;
|
||||
Oid aggowner;
|
||||
regproc aggtransfn1;
|
||||
regproc aggtransfn2;
|
||||
regproc aggfinalfn;
|
||||
Oid aggbasetype;
|
||||
Oid aggtranstype1;
|
||||
Oid aggtranstype2;
|
||||
Oid aggfinaltype;
|
||||
text agginitval1; /* VARIABLE LENGTH FIELD */
|
||||
text agginitval2; /* VARIABLE LENGTH FIELD */
|
||||
} FormData_pg_aggregate;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_aggregate corresponds to a pointer to a tuple with
|
||||
* the format of pg_aggregate relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_aggregate *Form_pg_aggregate;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_aggregate
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
#define Natts_pg_aggregate 11
|
||||
#define Anum_pg_aggregate_aggname 1
|
||||
#define Anum_pg_aggregate_aggowner 2
|
||||
#define Anum_pg_aggregate_aggtransfn1 3
|
||||
#define Anum_pg_aggregate_aggtransfn2 4
|
||||
#define Anum_pg_aggregate_aggfinalfn 5
|
||||
#define Anum_pg_aggregate_aggbasetype 6
|
||||
#define Anum_pg_aggregate_aggtranstype1 7
|
||||
#define Anum_pg_aggregate_aggtranstype2 8
|
||||
#define Anum_pg_aggregate_aggfinaltype 9
|
||||
#define Anum_pg_aggregate_agginitval1 10
|
||||
#define Anum_pg_aggregate_agginitval2 11
|
||||
|
||||
|
||||
/* ----------------
|
||||
* initial contents of pg_aggregate
|
||||
* ---------------
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( avg PGUID int4pl int4inc int4div 23 23 23 23 0 0 ));
|
||||
DATA(insert OID = 0 ( avg PGUID int2pl int2inc int2div 21 21 21 21 0 0 ));
|
||||
DATA(insert OID = 0 ( avg PGUID float4pl float4inc float4div 700 700 700 700 0.0 0.0 ));
|
||||
DATA(insert OID = 0 ( avg PGUID float8pl float8inc float8div 701 701 701 701 0.0 0.0 ));
|
||||
|
||||
DATA(insert OID = 0 ( sum PGUID int4pl - - 23 23 0 23 0 _null_ ));
|
||||
DATA(insert OID = 0 ( sum PGUID int2pl - - 21 21 0 21 0 _null_ ));
|
||||
DATA(insert OID = 0 ( sum PGUID float4pl - - 700 700 0 700 0.0 _null_ ));
|
||||
DATA(insert OID = 0 ( sum PGUID float8pl - - 701 701 0 701 0.0 _null_ ));
|
||||
|
||||
DATA(insert OID = 0 ( max PGUID int4larger - - 23 23 0 23 _null_ _null_ ));
|
||||
DATA(insert OID = 0 ( max PGUID int2larger - - 21 21 0 21 _null_ _null_ ));
|
||||
DATA(insert OID = 0 ( max PGUID float4larger - - 700 700 0 700 _null_ _null_ ));
|
||||
DATA(insert OID = 0 ( max PGUID float8larger - - 701 701 0 701 _null_ _null_ ));
|
||||
|
||||
DATA(insert OID = 0 ( min PGUID int4smaller - - 23 23 0 23 _null_ _null_ ));
|
||||
DATA(insert OID = 0 ( min PGUID int2smaller - - 21 21 0 21 _null_ _null_ ));
|
||||
DATA(insert OID = 0 ( min PGUID float4smaller - - 700 700 0 700 _null_ _null_ ));
|
||||
DATA(insert OID = 0 ( min PGUID float8smaller - - 701 701 0 701 _null_ _null_ ));
|
||||
|
||||
DATA(insert OID = 0 ( count PGUID - int4inc - 0 0 23 23 _null_ 0 ));
|
||||
|
||||
/*
|
||||
* prototypes for fucnctions in pg_aggregate.c
|
||||
*/
|
||||
extern void AggregateCreate(char *aggName,
|
||||
char *aggtransfn1Name,
|
||||
char *aggtransfn2Name,
|
||||
char *aggfinalfnName,
|
||||
char *aggbasetypeName,
|
||||
char *aggtransfn1typeName,
|
||||
char *aggtransfn2typeName,
|
||||
char *agginitval1,
|
||||
char *agginitval2);
|
||||
extern char *AggNameGetInitVal(char *aggName, Oid basetype,
|
||||
int xfuncno, bool *isNull);
|
||||
|
||||
#endif /* PG_AGGREGATE_H */
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,116 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_am.h--
|
||||
* definition of the system "am" relation (pg_am)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_am.h,v 1.2 1996/08/26 06:29:40 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
* XXX do NOT break up DATA() statements into multiple lines!
|
||||
* the scripts are not as smart as you might think...
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_AM_H
|
||||
#define PG_AM_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_am definition. cpp turns this into
|
||||
* typedef struct FormData_pg_am
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_am) {
|
||||
NameData amname;
|
||||
Oid amowner;
|
||||
char amkind;
|
||||
int2 amstrategies;
|
||||
int2 amsupport;
|
||||
regproc amgettuple;
|
||||
regproc aminsert;
|
||||
regproc amdelete;
|
||||
regproc amgetattr;
|
||||
regproc amsetlock;
|
||||
regproc amsettid;
|
||||
regproc amfreetuple;
|
||||
regproc ambeginscan;
|
||||
regproc amrescan;
|
||||
regproc amendscan;
|
||||
regproc ammarkpos;
|
||||
regproc amrestrpos;
|
||||
regproc amopen;
|
||||
regproc amclose;
|
||||
regproc ambuild;
|
||||
regproc amcreate;
|
||||
regproc amdestroy;
|
||||
} FormData_pg_am;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_am corresponds to a pointer to a tuple with
|
||||
* the format of pg_am relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_am *Form_pg_am;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_am
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_am 22
|
||||
#define Anum_pg_am_amname 1
|
||||
#define Anum_pg_am_amowner 2
|
||||
#define Anum_pg_am_amkind 3
|
||||
#define Anum_pg_am_amstrategies 4
|
||||
#define Anum_pg_am_amsupport 5
|
||||
#define Anum_pg_am_amgettuple 6
|
||||
#define Anum_pg_am_aminsert 7
|
||||
#define Anum_pg_am_amdelete 8
|
||||
#define Anum_pg_am_amgetattr 9
|
||||
#define Anum_pg_am_amsetlock 10
|
||||
#define Anum_pg_am_amsettid 11
|
||||
#define Anum_pg_am_amfreetuple 12
|
||||
#define Anum_pg_am_ambeginscan 13
|
||||
#define Anum_pg_am_amrescan 14
|
||||
#define Anum_pg_am_amendscan 15
|
||||
#define Anum_pg_am_ammarkpos 16
|
||||
#define Anum_pg_am_amrestrpos 17
|
||||
#define Anum_pg_am_amopen 18
|
||||
#define Anum_pg_am_amclose 19
|
||||
#define Anum_pg_am_ambuild 20
|
||||
#define Anum_pg_am_amcreate 21
|
||||
#define Anum_pg_am_amdestroy 22
|
||||
|
||||
/* ----------------
|
||||
* initial contents of pg_am
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
DATA(insert OID = 405 ( hash PGUID "o" 1 1 hashgettuple hashinsert hashdelete - - - - hashbeginscan hashrescan hashendscan hashmarkpos hashrestrpos - - hashbuild - - ));
|
||||
DATA(insert OID = 402 ( rtree PGUID "o" 8 3 rtgettuple rtinsert rtdelete - - - - rtbeginscan rtrescan rtendscan rtmarkpos rtrestrpos - - rtbuild - - ));
|
||||
DATA(insert OID = 403 ( btree PGUID "o" 5 1 btgettuple btinsert btdelete - - - - btbeginscan btrescan btendscan btmarkpos btrestrpos - - btbuild - - ));
|
||||
#define BTREE_AM_OID 403
|
||||
DATA(insert OID = 783 ( gist PGUID "o" 100 7 gistgettuple gistinsert gistdelete - - - - gistbeginscan gistrescan gistendscan gistmarkpos gistrestrpos - - gistbuild - - ));
|
||||
|
||||
BKI_BEGIN
|
||||
#ifdef NOBTREE
|
||||
BKI_END
|
||||
DATA(insert OID = 404 ( nobtree PGUID "o" 5 1 nobtgettuple nobtinsert nobtdelete - - - - nobtbeginscan nobtrescan nobtendscan nobtmarkpos nobtrestrpos - - nobtbuild - - ));
|
||||
BKI_BEGIN
|
||||
#endif /* NOBTREE */
|
||||
BKI_END
|
||||
|
||||
#endif /* PG_AM_H */
|
||||
@@ -1,556 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_amop.h--
|
||||
* definition of the system "amop" relation (pg_amop)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_amop.h,v 1.3 1996/08/15 07:42:06 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_AMOP_H
|
||||
#define PG_AMOP_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
#include "access/istrat.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_amop definition. cpp turns this into
|
||||
* typedef struct FormData_pg_amop
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_amop) {
|
||||
Oid amopid;
|
||||
Oid amopclaid;
|
||||
Oid amopopr;
|
||||
int2 amopstrategy;
|
||||
regproc amopselect;
|
||||
regproc amopnpages;
|
||||
} FormData_pg_amop;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_amop corresponds to a pointer to a tuple with
|
||||
* the format of pg_amop relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_amop *Form_pg_amop;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_amop
|
||||
* ----------------
|
||||
*/
|
||||
/* #define Name_pg_amop "pg_amop" */
|
||||
#define Natts_pg_amop 6
|
||||
#define Anum_pg_amop_amopid 1
|
||||
#define Anum_pg_amop_amopclaid 2
|
||||
#define Anum_pg_amop_amopopr 3
|
||||
#define Anum_pg_amop_amopstrategy 4
|
||||
#define Anum_pg_amop_amopselect 5
|
||||
#define Anum_pg_amop_amopnpages 6
|
||||
|
||||
/* ----------------
|
||||
* initial contents of pg_amop
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
/*
|
||||
* rtree box_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 402 422 493 1 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 422 494 2 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 422 500 3 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 422 495 4 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 422 496 5 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 422 499 6 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 422 498 7 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 422 497 8 rtsel rtnpage ));
|
||||
|
||||
/*
|
||||
* rtree bigbox_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 402 433 493 1 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 433 494 2 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 433 500 3 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 433 495 4 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 433 496 5 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 433 499 6 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 433 498 7 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 433 497 8 rtsel rtnpage ));
|
||||
|
||||
/*
|
||||
* rtree poly_ops (supports polygons)
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 402 434 485 1 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 434 486 2 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 434 487 3 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 434 488 4 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 434 489 5 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 434 490 6 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 434 491 7 rtsel rtnpage ));
|
||||
DATA(insert OID = 0 ( 402 434 492 8 rtsel rtnpage ));
|
||||
|
||||
/*
|
||||
* nbtree int2_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 421 95 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 421 522 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 421 94 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 421 524 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 421 520 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree float8_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 423 672 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 423 673 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 423 670 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 423 675 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 423 674 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree int24_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 424 534 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 424 540 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 424 532 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 424 542 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 424 536 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree int42_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 425 535 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 425 541 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 425 533 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 425 543 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 425 537 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree int4_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 426 97 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 426 523 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 426 96 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 426 525 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 426 521 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree oid_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 427 609 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 427 611 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 427 607 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 427 612 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 427 610 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree float4_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 428 622 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 428 624 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 428 620 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 428 625 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 428 623 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree char_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 429 631 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 429 632 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 429 92 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 429 634 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 429 633 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree char2_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 406 418 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 406 457 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 406 412 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 406 463 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 406 460 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree char4_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 407 419 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 407 458 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 407 413 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 407 464 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 407 461 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree char8_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 408 420 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 408 459 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 408 414 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 408 465 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 408 462 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree name_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 1181 660 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1181 661 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1181 93 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1181 663 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1181 662 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree char16_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 430 645 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 430 646 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 430 99 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 430 648 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 430 647 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree text_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 431 664 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 431 665 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 431 98 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 431 667 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 431 666 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree abstime_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 432 562 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 432 564 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 432 560 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 432 565 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 432 563 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree oidint4_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 435 930 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 435 931 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 435 932 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 435 933 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 435 934 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree oidint2_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 437 830 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 437 831 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 437 832 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 437 833 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 437 834 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree oidname_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 436 676 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 436 677 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 436 678 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 436 679 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 436 680 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree bpchar_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 1076 1058 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1076 1059 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1076 1054 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1076 1061 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1076 1060 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree varchar_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 1077 1066 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1077 1067 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1077 1062 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1077 1069 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1077 1068 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nbtree date_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 1114 1095 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1114 1096 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1114 1093 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1114 1098 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1114 1097 5 btreesel btreenpage ));
|
||||
|
||||
|
||||
/*
|
||||
* nbtree time_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 403 1115 1110 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1115 1111 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1115 1108 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1115 1113 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 403 1115 1112 5 btreesel btreenpage ));
|
||||
|
||||
BKI_BEGIN
|
||||
#ifdef NOBTREE
|
||||
BKI_END
|
||||
/*
|
||||
* nobtree int2_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 404 421 95 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 421 522 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 421 94 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 421 524 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 421 520 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nobtree float8_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 404 423 672 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 423 673 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 423 670 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 423 675 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 423 674 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nobtree int24_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 404 424 534 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 424 540 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 424 532 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 424 542 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 424 536 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nobtree int42_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 404 425 535 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 425 541 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 425 533 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 425 543 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 425 537 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nobtree int4_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 404 426 97 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 426 523 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 426 96 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 426 525 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 426 521 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nobtree oid_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 404 427 609 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 427 611 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 427 607 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 427 612 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 427 610 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nobtree float4_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 404 428 622 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 428 624 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 428 620 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 428 625 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 428 623 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nobtree char_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 404 429 631 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 429 632 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 429 92 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 429 634 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 429 633 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nobtree char2_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 404 406 418 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 406 457 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 406 412 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 406 463 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 406 460 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nobtree char4_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 404 407 419 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 407 458 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 407 413 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 407 464 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 407 461 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nobtree char8_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 404 408 420 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 408 459 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 408 414 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 408 465 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 408 462 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nobtree char16_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 404 430 645 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 430 646 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 430 99 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 430 648 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 430 647 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nobtree name_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 404 1181 660 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 1181 661 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 1181 93 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 1181 663 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 1181 662 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nobtree text_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 404 431 664 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 431 665 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 431 98 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 431 667 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 431 666 5 btreesel btreenpage ));
|
||||
|
||||
/*
|
||||
* nobtree abstime_ops
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 404 432 562 1 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 432 564 2 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 432 560 3 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 432 565 4 btreesel btreenpage ));
|
||||
DATA(insert OID = 0 ( 404 432 563 5 btreesel btreenpage ));
|
||||
|
||||
BKI_BEGIN
|
||||
#endif /* NOBTREE */
|
||||
BKI_END
|
||||
|
||||
/*
|
||||
* hash table int2_ops
|
||||
*/
|
||||
DATA(insert OID = 0 ( 405 421 94 1 btreesel btreenpage ));
|
||||
/*
|
||||
* hash table float8_ops
|
||||
*/
|
||||
DATA(insert OID = 0 ( 405 423 670 1 btreesel btreenpage ));
|
||||
/*
|
||||
* hash table int4_ops
|
||||
*/
|
||||
DATA(insert OID = 0 ( 405 426 96 1 hashsel hashnpage ));
|
||||
/*
|
||||
* hash table oid_ops
|
||||
*/
|
||||
DATA(insert OID = 0 ( 405 427 607 1 hashsel hashnpage ));
|
||||
/*
|
||||
* hash table float4_ops
|
||||
*/
|
||||
DATA(insert OID = 0 ( 405 428 620 1 hashsel hashnpage ));
|
||||
/*
|
||||
* hash table char_ops
|
||||
*/
|
||||
DATA(insert OID = 0 ( 405 429 92 1 hashsel hashnpage ));
|
||||
/*
|
||||
* hash table char2_ops
|
||||
*/
|
||||
DATA(insert OID = 0 ( 405 406 412 1 hashsel hashnpage ));
|
||||
/*
|
||||
* hash table char4_ops
|
||||
*/
|
||||
DATA(insert OID = 0 ( 405 407 413 1 hashsel hashnpage ));
|
||||
/*
|
||||
* hash table char8_ops
|
||||
*/
|
||||
DATA(insert OID = 0 ( 405 408 414 1 hashsel hashnpage ));
|
||||
/*
|
||||
* hash table char16_ops
|
||||
*/
|
||||
DATA(insert OID = 0 ( 405 430 99 1 hashsel hashnpage ));
|
||||
/*
|
||||
* hash table name_ops
|
||||
*/
|
||||
DATA(insert OID = 0 ( 405 1181 93 1 hashsel hashnpage ));
|
||||
/*
|
||||
* hash table text_ops
|
||||
*/
|
||||
DATA(insert OID = 0 ( 405 431 98 1 hashsel hashnpage ));
|
||||
|
||||
/*
|
||||
* hash table bpchar_ops
|
||||
*/
|
||||
DATA(insert OID = 0 ( 405 1076 1054 1 hashsel hashnpage ));
|
||||
|
||||
/*
|
||||
* hash table varchar_ops
|
||||
*/
|
||||
DATA(insert OID = 0 ( 405 1077 1062 1 hashsel hashnpage ));
|
||||
|
||||
/*
|
||||
* hash table date_ops
|
||||
*/
|
||||
DATA(insert OID = 0 ( 405 1114 1093 1 hashsel hashnpage ));
|
||||
|
||||
/*
|
||||
* hash table time_ops
|
||||
*/
|
||||
DATA(insert OID = 0 ( 405 1115 1108 1 hashsel hashnpage ));
|
||||
|
||||
|
||||
#endif /* PG_AMOP_H */
|
||||
@@ -1,136 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_amproc.h--
|
||||
* definition of the system "amproc" relation (pg_amproce)
|
||||
* along with the relation's initial contents. The amproc
|
||||
* catalog is used to store procedures used by indexed access
|
||||
* methods that aren't associated with operators.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_amproc.h,v 1.3 1996/08/15 07:42:07 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_AMPROC_H
|
||||
#define PG_AMPROC_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_amproc definition. cpp turns this into
|
||||
* typedef struct FormData_pg_amproc
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_amproc) {
|
||||
Oid amid;
|
||||
Oid amopclaid;
|
||||
Oid amproc;
|
||||
int2 amprocnum;
|
||||
} FormData_pg_amproc;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_amproc corresponds to a pointer to a tuple with
|
||||
* the format of pg_amproc relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_amproc *Form_pg_amproc;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_amproc
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_amproc 4
|
||||
#define Anum_pg_amproc_amid 1
|
||||
#define Anum_pg_amproc_amopclaid 2
|
||||
#define Anum_pg_amproc_amproc 3
|
||||
#define Anum_pg_amproc_amprocnum 4
|
||||
|
||||
/* ----------------
|
||||
* initial contents of pg_amproc
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 (402 422 193 1));
|
||||
DATA(insert OID = 0 (402 422 194 2));
|
||||
DATA(insert OID = 0 (402 422 195 3));
|
||||
DATA(insert OID = 0 (402 433 193 1));
|
||||
DATA(insert OID = 0 (402 433 194 2));
|
||||
DATA(insert OID = 0 (402 433 196 3));
|
||||
DATA(insert OID = 0 (402 434 197 1));
|
||||
DATA(insert OID = 0 (402 434 198 2));
|
||||
DATA(insert OID = 0 (402 434 199 3));
|
||||
DATA(insert OID = 0 (403 421 350 1));
|
||||
DATA(insert OID = 0 (403 423 355 1));
|
||||
DATA(insert OID = 0 (403 424 353 1));
|
||||
DATA(insert OID = 0 (403 425 352 1));
|
||||
DATA(insert OID = 0 (403 426 351 1));
|
||||
DATA(insert OID = 0 (403 427 356 1));
|
||||
DATA(insert OID = 0 (403 428 354 1));
|
||||
DATA(insert OID = 0 (403 429 358 1));
|
||||
DATA(insert OID = 0 (403 406 689 1));
|
||||
DATA(insert OID = 0 (403 407 690 1));
|
||||
DATA(insert OID = 0 (403 408 691 1));
|
||||
DATA(insert OID = 0 (403 1181 359 1));
|
||||
DATA(insert OID = 0 (403 430 374 1));
|
||||
DATA(insert OID = 0 (403 431 360 1));
|
||||
DATA(insert OID = 0 (403 432 357 1));
|
||||
DATA(insert OID = 0 (403 435 928 1));
|
||||
DATA(insert OID = 0 (403 436 948 1));
|
||||
DATA(insert OID = 0 (403 437 828 1));
|
||||
DATA(insert OID = 0 (403 1076 1078 1));
|
||||
DATA(insert OID = 0 (403 1077 1079 1));
|
||||
DATA(insert OID = 0 (403 1114 1092 1));
|
||||
DATA(insert OID = 0 (403 1115 1107 1));
|
||||
|
||||
BKI_BEGIN
|
||||
#ifdef NOBTREE
|
||||
BKI_END
|
||||
DATA(insert OID = 0 (404 421 350 1));
|
||||
DATA(insert OID = 0 (404 423 355 1));
|
||||
DATA(insert OID = 0 (404 424 353 1));
|
||||
DATA(insert OID = 0 (404 425 352 1));
|
||||
DATA(insert OID = 0 (404 426 351 1));
|
||||
DATA(insert OID = 0 (404 427 356 1));
|
||||
DATA(insert OID = 0 (404 428 354 1));
|
||||
DATA(insert OID = 0 (404 429 358 1));
|
||||
DATA(insert OID = 0 (404 406 689 1));
|
||||
DATA(insert OID = 0 (404 407 690 1));
|
||||
DATA(insert OID = 0 (404 408 691 1));
|
||||
DATA(insert OID = 0 (404 1181 359 1));
|
||||
DATA(insert OID = 0 (404 430 374 1));
|
||||
DATA(insert OID = 0 (404 431 360 1));
|
||||
DATA(insert OID = 0 (404 432 357 1));
|
||||
BKI_BEGIN
|
||||
#endif /* NOBTREE */
|
||||
BKI_END
|
||||
|
||||
DATA(insert OID = 0 (405 421 449 1));
|
||||
DATA(insert OID = 0 (405 423 452 1));
|
||||
DATA(insert OID = 0 (405 426 450 1));
|
||||
DATA(insert OID = 0 (405 427 453 1));
|
||||
DATA(insert OID = 0 (405 428 451 1));
|
||||
DATA(insert OID = 0 (405 429 454 1));
|
||||
DATA(insert OID = 0 (405 406 692 1));
|
||||
DATA(insert OID = 0 (405 407 693 1));
|
||||
DATA(insert OID = 0 (405 408 694 1));
|
||||
DATA(insert OID = 0 (405 1181 455 1));
|
||||
DATA(insert OID = 0 (405 430 499 1));
|
||||
DATA(insert OID = 0 (405 431 456 1));
|
||||
DATA(insert OID = 0 (405 1076 1080 1));
|
||||
DATA(insert OID = 0 (405 1077 1081 1));
|
||||
DATA(insert OID = 0 (405 1114 450 1));
|
||||
DATA(insert OID = 0 (405 1115 694 1));
|
||||
|
||||
#endif /* PG_AMPROC_H */
|
||||
@@ -1,544 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_attribute.h--
|
||||
* definition of the system "attribute" relation (pg_attribute)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_attribute.h,v 1.3 1996/08/24 20:56:13 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
* utils/cache/relcache.c requires some hard-coded tuple descriptors
|
||||
* for some of the system catalogs so if the schema for any of
|
||||
* these changes, be sure and change the appropriate Schema_xxx
|
||||
* macros! -cim 2/5/91
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_ATTRIBUTE_H
|
||||
#define PG_ATTRIBUTE_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
#include "access/attnum.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_attribute definition. cpp turns this into
|
||||
* typedef struct FormData_pg_attribute
|
||||
*
|
||||
* If you change the following, make sure you change the structs for
|
||||
* system attributes in heap.c and index.c also.
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_attribute) BOOTSTRAP {
|
||||
Oid attrelid;
|
||||
NameData attname;
|
||||
Oid atttypid;
|
||||
/* atttypid is the OID of the instance in Catalog Class pg_type that
|
||||
defines the data type of this attribute (e.g. int4). Information in
|
||||
that instance is redundant with the attlen, attbyval, and attalign
|
||||
attributes of this instance, so they had better match or Postgres
|
||||
will fail.
|
||||
*/
|
||||
Oid attdefrel;
|
||||
int4 attnvals;
|
||||
Oid atttyparg; /* type arg for arrays/spquel/procs */
|
||||
int2 attlen;
|
||||
/* attlen is a copy of the typlen field from pg_type for this
|
||||
attribute. See atttypid above. See struct TypeTupleFormData for
|
||||
definition.
|
||||
*/
|
||||
int2 attnum;
|
||||
/* attnum is the "attribute number" for the attribute: A
|
||||
value that uniquely identifies this attribute within its class.
|
||||
For user attributes, Attribute numbers are greater than 0 and
|
||||
not greater than the number of attributes in the class.
|
||||
I.e. if the Class pg_class says that Class XYZ has 10
|
||||
attributes, then the user attribute numbers in Class
|
||||
pg_attribute must be 1-10.
|
||||
|
||||
System attributes have attribute numbers less than 0 that are
|
||||
unique within the class, but not constrained to any particular range.
|
||||
|
||||
Note that (attnum - 1) is often used as the index to an array.
|
||||
*/
|
||||
int2 attbound;
|
||||
bool attbyval;
|
||||
/* attbyval is a copy of the typbyval field from pg_type for this
|
||||
attribute. See atttypid above. See struct TypeTupleFormData for
|
||||
definition.
|
||||
*/
|
||||
bool attcanindex;
|
||||
Oid attproc; /* spquel? */
|
||||
int4 attnelems;
|
||||
int4 attcacheoff;
|
||||
/* fastgetattr() uses attcacheoff to cache byte offsets of
|
||||
attributes in heap tuples. The data actually stored in
|
||||
pg_attribute (-1) indicates no cached value. But when we
|
||||
copy these tuples into a tuple descriptor, we may then update
|
||||
attcacheoff in the copies. This speeds up the attribute
|
||||
walking process.
|
||||
*/
|
||||
bool attisset;
|
||||
char attalign;
|
||||
/* attalign is a copy of the typalign field from pg_type for this
|
||||
attribute. See atttypid above. See struct TypeTupleFormData for
|
||||
definition.
|
||||
*/
|
||||
} FormData_pg_attribute;
|
||||
|
||||
/*
|
||||
* someone should figure out how to do this properly. (The problem is
|
||||
* the size of the C struct is not the same as the size of the tuple.)
|
||||
*/
|
||||
#define ATTRIBUTE_TUPLE_SIZE \
|
||||
(offsetof(FormData_pg_attribute,attalign) + sizeof(char))
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_attribute corresponds to a pointer to a tuple with
|
||||
* the format of pg_attribute relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_attribute *AttributeTupleForm;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_attribute
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
#define Natts_pg_attribute 16
|
||||
#define Anum_pg_attribute_attrelid 1
|
||||
#define Anum_pg_attribute_attname 2
|
||||
#define Anum_pg_attribute_atttypid 3
|
||||
#define Anum_pg_attribute_attdefrel 4
|
||||
#define Anum_pg_attribute_attnvals 5
|
||||
#define Anum_pg_attribute_atttyparg 6
|
||||
#define Anum_pg_attribute_attlen 7
|
||||
#define Anum_pg_attribute_attnum 8
|
||||
#define Anum_pg_attribute_attbound 9
|
||||
#define Anum_pg_attribute_attbyval 10
|
||||
#define Anum_pg_attribute_attcanindex 11
|
||||
#define Anum_pg_attribute_attproc 12
|
||||
#define Anum_pg_attribute_attnelems 13
|
||||
#define Anum_pg_attribute_attcacheoff 14
|
||||
#define Anum_pg_attribute_attisset 15
|
||||
#define Anum_pg_attribute_attalign 16
|
||||
|
||||
|
||||
/* ----------------
|
||||
* SCHEMA_ macros for declaring hardcoded tuple descriptors.
|
||||
* these are used in utils/cache/relcache.c
|
||||
* ----------------
|
||||
#define SCHEMA_NAME(x) CppConcat(Name_,x)
|
||||
#define SCHEMA_DESC(x) CppConcat(Desc_,x)
|
||||
#define SCHEMA_NATTS(x) CppConcat(Natts_,x)
|
||||
#define SCHEMA_DEF(x) \
|
||||
FormData_pg_attribute \
|
||||
SCHEMA_DESC(x) [ SCHEMA_NATTS(x) ] = \
|
||||
{ \
|
||||
CppConcat(Schema_,x) \
|
||||
}
|
||||
*/
|
||||
|
||||
/* ----------------
|
||||
* initial contents of pg_attribute
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
/* ----------------
|
||||
* pg_type schema
|
||||
* ----------------
|
||||
*/
|
||||
#define Schema_pg_type \
|
||||
{ 71l, {"typname"}, 19l, 71l, 0l, 0l, NAMEDATALEN, 1, 0, '\0', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 71l, {"typowner"}, 26l, 71l, 0l, 0l, 4, 2, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 71l, {"typlen"}, 21l, 71l, 0l, 0l, 2, 3, 0, '\001', '\001', 0l, 0l, -1l, '\0', 's' }, \
|
||||
{ 71l, {"typprtlen"}, 21l, 71l, 0l, 0l, 2, 4, 0, '\001', '\001', 0l, 0l, -1l, '\0', 's' }, \
|
||||
{ 71l, {"typbyval"}, 16l, 71l, 0l, 0l, 1, 5, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'c' }, \
|
||||
{ 71l, {"typtype"}, 18l, 71l, 0l, 0l, 1, 6, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'c' }, \
|
||||
{ 71l, {"typisdefined"}, 16l, 71l, 0l, 0l, 1, 7, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'c' }, \
|
||||
{ 71l, {"typdelim"}, 18l, 71l, 0l, 0l, 1, 8, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'c' }, \
|
||||
{ 71l, {"typrelid"}, 26l, 71l, 0l, 0l, 4, 9, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 71l, {"typelem"}, 26l, 71l, 0l, 0l, 4, 10, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 71l, {"typinput"}, 24l, 71l, 0l, 0l, 4, 11, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 71l, {"typoutput"}, 24l, 71l, 0l, 0l, 4, 12, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 71l, {"typreceive"}, 24l, 71l, 0l, 0l, 4, 13, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 71l, {"typsend"}, 24l, 71l, 0l, 0l, 4, 14, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 71l, {"typalign"}, 18l, 71l, 0l, 0l, 1, 15, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'c' }, \
|
||||
{ 71l, {"typdefault"}, 25l, 71l, 0l, 0l, -1, 16, 0, '\0', '\001', 0l, 0l, -1l, '\0', 'i' }
|
||||
|
||||
DATA(insert OID = 0 ( 71 typname 19 0 0 0 NAMEDATALEN 1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 71 typowner 26 0 0 0 4 2 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 71 typlen 21 0 0 0 2 3 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 71 typprtlen 21 0 0 0 2 4 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 71 typbyval 16 0 0 0 1 5 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 71 typtype 18 0 0 0 1 6 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 71 typisdefined 16 0 0 0 1 7 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 71 typdelim 18 0 0 0 1 8 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 71 typrelid 26 0 0 0 4 9 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 71 typelem 26 0 0 0 4 10 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 71 typinput 26 0 0 0 4 11 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 71 typoutput 26 0 0 0 4 12 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 71 typreceive 26 0 0 0 4 13 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 71 typsend 26 0 0 0 4 14 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 71 typalign 18 0 0 0 1 15 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 71 typdefault 25 0 0 0 -1 16 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 71 ctid 27 0 0 0 6 -1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 71 oid 26 0 0 0 4 -2 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 71 xmin 28 0 0 0 4 -3 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 71 cmin 29 0 0 0 2 -4 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 71 xmax 28 0 0 0 4 -5 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 71 cmax 29 0 0 0 2 -6 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 71 chain 27 0 0 0 6 -7 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 71 anchor 27 0 0 0 6 -8 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 71 tmax 702 0 0 0 4 -9 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 71 tmin 702 0 0 0 4 -10 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 71 vtype 18 0 0 0 1 -11 0 t t 0 0 -1 f c));
|
||||
|
||||
/* ----------------
|
||||
* pg_database
|
||||
* ----------------
|
||||
*/
|
||||
DATA(insert OID = 0 ( 88 datname 19 0 0 0 NAMEDATALEN 1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 88 datdba 26 0 0 0 4 2 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 88 datpath 25 0 0 0 -1 3 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 88 ctid 27 0 0 0 6 -1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 88 oid 26 0 0 0 4 -2 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 88 xmin 28 0 0 0 4 -3 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 88 cmin 29 0 0 0 2 -4 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 88 xmax 28 0 0 0 4 -5 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 88 cmax 29 0 0 0 2 -6 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 88 chain 27 0 0 0 6 -7 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 88 anchor 27 0 0 0 6 -8 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 88 tmax 702 0 0 0 4 -9 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 88 tmin 702 0 0 0 4 -10 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 88 vtype 18 0 0 0 1 -11 0 t t 0 0 -1 f c));
|
||||
|
||||
/* ----------------
|
||||
* pg_demon
|
||||
* ----------------
|
||||
*/
|
||||
DATA(insert OID = 0 ( 76 demserid 26 0 0 0 4 1 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 76 demname 19 0 0 0 NAMEDATALEN 2 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 76 demowner 26 0 0 0 4 3 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 76 demcode 24 0 0 0 4 4 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 76 ctid 27 0 0 0 6 -1 0 f t 0 0 -1 f i));
|
||||
|
||||
DATA(insert OID = 0 ( 76 oid 26 0 0 0 4 -2 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 76 xmin 28 0 0 0 4 -3 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 76 cmin 29 0 0 0 2 -4 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 76 xmax 28 0 0 0 4 -5 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 76 cmax 29 0 0 0 2 -6 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 76 chain 27 0 0 0 6 -7 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 76 anchor 27 0 0 0 6 -8 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 76 tmax 702 0 0 0 4 -9 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 76 tmin 702 0 0 0 4 -10 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 76 vtype 18 0 0 0 1 -11 0 t t 0 0 -1 f c));
|
||||
|
||||
/* ----------------
|
||||
* pg_proc
|
||||
* ----------------
|
||||
*/
|
||||
#define Schema_pg_proc \
|
||||
{ 81l, {"proname"}, 19l, 81l, 0l, 0l, NAMEDATALEN, 1, 0, '\0', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 81l, {"proowner"}, 26l, 81l, 0l, 0l, 4, 2, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 81l, {"prolang"}, 26l, 81l, 0l, 0l, 4, 3, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 81l, {"proisinh"}, 16l, 81l, 0l, 0l, 1, 4, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'c' }, \
|
||||
{ 81l, {"proistrusted"}, 16l, 81l, 0l, 0l, 1, 5, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'c' }, \
|
||||
{ 81l, {"proiscachable"}, 16l, 81l, 0l, 0l, 1, 6, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'c' }, \
|
||||
{ 81l, {"pronargs"}, 21l, 81l, 0l, 0l, 2, 7, 0, '\001', '\001', 0l, 0l, -1l, '\0', 's' }, \
|
||||
{ 81l, {"proretset"}, 16l, 81l, 0l, 0l, 1, 8, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'c' }, \
|
||||
{ 81l, {"prorettype"}, 26l, 81l, 0l, 0l, 4, 9, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 81l, {"proargtypes"}, 30l, 81l, 0l, 0l, 32, 10, 0, '\0', '\001', 0l, 0l, \
|
||||
-1l, '\0', 'i' }, \
|
||||
{ 81l, {"probyte_pct"}, 23l, 81l, 0l, 0l, 4, 11, 0, '\001', '\001', 0l, 0l, \
|
||||
-1l, '\0', 'i' }, \
|
||||
{ 81l, {"properbyte_cpu"}, 23l, 81l, 0l, 0l, 4, 12, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 81l, {"propercall_cpu"}, 23l, 81l, 0l, 0l, 4, 13, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 81l, {"prooutin_ratio"}, 23l, 81l, 0l, 0l, 4, 14, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 81l, {"prosrc"}, 25l, 81l, 0l, 0l, -1, 15, 0, '\0', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 81l, {"probin"}, 17l, 81l, 0l, 0l, -1, 16, 0, '\0', '\001', 0l, 0l, -1l, '\0', 'i' }
|
||||
|
||||
DATA(insert OID = 0 ( 81 proname 19 0 0 0 NAMEDATALEN 1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 proowner 26 0 0 0 4 2 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 prolang 26 0 0 0 4 3 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 proisinh 16 0 0 0 1 4 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 81 proistrusted 16 0 0 0 1 5 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 81 proiscachable 16 0 0 0 1 6 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 81 pronargs 21 0 0 0 2 7 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 81 proretset 16 0 0 0 1 8 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 81 prorettype 26 0 0 0 4 9 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 proargtypes 30 0 0 0 32 10 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 probyte_pct 23 0 0 0 4 11 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 properbyte_cpu 23 0 0 0 4 12 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 propercall_cpu 23 0 0 0 4 13 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 prooutin_ratio 23 0 0 0 4 14 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 prosrc 25 0 0 0 -1 15 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 probin 17 0 0 0 -1 16 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 ctid 27 0 0 0 6 -1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 oid 26 0 0 0 4 -2 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 xmin 28 0 0 0 4 -3 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 cmin 29 0 0 0 2 -4 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 81 xmax 28 0 0 0 4 -5 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 cmax 29 0 0 0 2 -6 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 81 chain 27 0 0 0 6 -7 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 anchor 27 0 0 0 6 -8 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 tmax 702 0 0 0 4 -9 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 tmin 702 0 0 0 4 -10 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 81 vtype 18 0 0 0 1 -11 0 t t 0 0 -1 f c));
|
||||
|
||||
/* ----------------
|
||||
* pg_server
|
||||
* ----------------
|
||||
*/
|
||||
DATA(insert OID = 0 ( 82 sername 19 0 0 0 NAMEDATALEN 1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 82 serpid 21 0 0 0 2 2 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 82 serport 21 0 0 0 2 3 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 82 ctid 27 0 0 0 6 -1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 82 oid 26 0 0 0 4 -2 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 82 xmin 28 0 0 0 4 -3 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 82 cmin 29 0 0 0 2 -4 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 82 xmax 28 0 0 0 4 -5 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 82 cmax 29 0 0 0 2 -6 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 82 chain 27 0 0 0 6 -7 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 82 anchor 27 0 0 0 6 -8 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 82 tmax 702 0 0 0 4 -9 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 82 tmin 702 0 0 0 4 -10 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 82 vtype 18 0 0 0 1 -11 0 t t 0 0 -1 f c));
|
||||
|
||||
/* ----------------
|
||||
* pg_user
|
||||
* ----------------
|
||||
*/
|
||||
DATA(insert OID = 0 ( 86 usename 19 0 0 0 NAMEDATALEN 1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 86 usesysid 23 0 0 0 4 2 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 86 usecreatedb 16 0 0 0 1 3 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 86 usetrace 16 0 0 0 1 4 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 86 usesuper 16 0 0 0 1 5 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 86 usecatupd 16 0 0 0 1 6 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 86 ctid 27 0 0 0 6 -1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 86 oid 26 0 0 0 4 -2 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 86 xmin 28 0 0 0 4 -3 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 86 cmin 29 0 0 0 2 -4 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 86 xmax 28 0 0 0 4 -5 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 86 cmax 29 0 0 0 2 -6 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 86 chain 27 0 0 0 6 -7 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 86 anchor 27 0 0 0 6 -8 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 86 tmax 702 0 0 0 4 -9 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 86 tmin 702 0 0 0 4 -10 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 86 vtype 18 0 0 0 1 -11 0 t t 0 0 -1 f c));
|
||||
|
||||
/* ----------------
|
||||
* pg_group
|
||||
* ----------------
|
||||
*/
|
||||
DATA(insert OID = 0 ( 87 groname 19 0 0 0 NAMEDATALEN 1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 87 grosysid 23 0 0 0 4 2 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 87 grolist 1007 0 0 0 -1 3 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 87 ctid 27 0 0 0 6 -1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 87 oid 26 0 0 0 4 -2 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 87 xmin 28 0 0 0 4 -3 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 87 cmin 29 0 0 0 2 -4 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 87 xmax 28 0 0 0 4 -5 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 87 cmax 29 0 0 0 2 -6 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 87 chain 27 0 0 0 6 -7 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 87 anchor 27 0 0 0 6 -8 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 87 tmax 702 0 0 0 4 -9 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 87 tmin 702 0 0 0 4 -10 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 87 vtype 18 0 0 0 1 -11 0 t t 0 0 -1 f c));
|
||||
|
||||
/* ----------------
|
||||
* pg_attribute
|
||||
* ----------------
|
||||
*/
|
||||
#define Schema_pg_attribute \
|
||||
{ 75l, {"attrelid"}, 26l, 75l, 0l, 0l, 4, 1, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 75l, {"attname"}, 19l, 75l, 0l, 0l, NAMEDATALEN, 2, 0, '\0', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 75l, {"atttypid"}, 26l, 75l, 0l, 0l, 4, 3, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 75l, {"attdefrel"}, 26l, 75l, 0l, 0l, 4, 4, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 75l, {"attnvals"}, 23l, 75l, 0l, 0l, 4, 5, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 75l, {"atttyparg"}, 26l, 75l, 0l, 0l, 4, 6, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 75l, {"attlen"}, 21l, 75l, 0l, 0l, 2, 7, 0, '\001', '\001', 0l, 0l, -1l, '\0', 's' }, \
|
||||
{ 75l, {"attnum"}, 21l, 75l, 0l, 0l, 2, 8, 0, '\001', '\001', 0l, 0l, -1l, '\0', 's' }, \
|
||||
{ 75l, {"attbound"}, 21l, 75l, 0l, 0l, 2, 9, 0, '\001', '\001', 0l, 0l, -1l, '\0', 's' }, \
|
||||
{ 75l, {"attbyval"}, 16l, 75l, 0l, 0l, 1, 10, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'c' }, \
|
||||
{ 75l, {"attcanindex"}, 16l, 75l, 0l, 0l, 1, 11, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'c' }, \
|
||||
{ 75l, {"attproc"}, 26l, 75l, 0l, 0l, 4, 12, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 75l, {"attnelems"}, 23l, 75l, 0l, 0l, 4, 13, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 75l, {"attcacheoff"}, 23l, 75l, 0l, 0l, 4, 14, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 75l, {"attisset"}, 16l, 75l, 0l, 0l, 1, 15, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'c' }, \
|
||||
{ 75l, {"attalign"}, 18l, 75l, 0l, 0l, 1, 16, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'c' }
|
||||
|
||||
DATA(insert OID = 0 ( 75 attrelid 26 0 0 0 4 1 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 75 attname 19 0 0 0 NAMEDATALEN 2 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 75 atttypid 26 0 0 0 4 3 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 75 attdefrel 26 0 0 0 4 4 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 75 attnvals 23 0 0 0 4 5 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 75 atttyparg 26 0 0 0 4 6 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 75 attlen 21 0 0 0 2 7 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 75 attnum 21 0 0 0 2 8 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 75 attbound 21 0 0 0 2 9 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 75 attbyval 16 0 0 0 1 10 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 75 attcanindex 16 0 0 0 1 11 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 75 attproc 26 0 0 0 4 12 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 75 attnelems 23 0 0 0 4 13 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 75 attcacheoff 23 0 0 0 4 14 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 75 attisset 16 0 0 0 1 15 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 75 attalign 18 0 0 0 1 16 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 75 ctid 27 0 0 0 6 -1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 75 oid 26 0 0 0 4 -2 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 75 xmin 28 0 0 0 4 -3 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 75 cmin 29 0 0 0 2 -4 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 75 xmax 28 0 0 0 4 -5 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 75 cmax 29 0 0 0 2 -6 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 75 chain 27 0 0 0 6 -7 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 75 anchor 27 0 0 0 6 -8 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 75 tmax 702 0 0 0 4 -9 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 75 tmin 702 0 0 0 4 -10 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 75 vtype 18 0 0 0 1 -11 0 t t 0 0 -1 f c));
|
||||
|
||||
/* ----------------
|
||||
* pg_class
|
||||
* ----------------
|
||||
*/
|
||||
#define Schema_pg_class \
|
||||
{ 83l, {"relname"}, 19l, 83l, 0l, 0l, NAMEDATALEN, 1, 0, '\000', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 83l, {"reltype"}, 26l, 83l, 0l, 0l, 4, 2, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 83l, {"relowner"}, 26l, 83l, 0l, 0l, 4, 3, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 83l, {"relam"}, 26l, 83l, 0l, 0l, 4, 4, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 83l, {"relpages"}, 23, 83l, 0l, 0l, 4, 5, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 83l, {"reltuples"}, 23, 83l, 0l, 0l, 4, 6, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 83l, {"relexpires"}, 702, 83l, 0l, 0l, 4, 7, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 83l, {"relpreserved"}, 703, 83l, 0l, 0l, 4, 8, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 83l, {"relhasindex"}, 16, 83l, 0l, 0l, 1, 9, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'c' }, \
|
||||
{ 83l, {"relisshared"}, 16, 83l, 0l, 0l, 1, 10, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'c' }, \
|
||||
{ 83l, {"relkind"}, 18, 83l, 0l, 0l, 1, 11, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'c' }, \
|
||||
{ 83l, {"relarch"}, 18, 83l, 0l, 0l, 1, 12, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'c' }, \
|
||||
{ 83l, {"relnatts"}, 21, 83l, 0l, 0l, 2, 13, 0, '\001', '\001', 0l, 0l, -1l, '\0', 's' }, \
|
||||
{ 83l, {"relsmgr"}, 210l, 83l, 0l, 0l, 2, 14, 0, '\001', '\001', 0l, 0l, -1l, '\0', 's' }, \
|
||||
{ 83l, {"relkey"}, 22, 83l, 0l, 0l, 16, 15, 0, '\000', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 83l, {"relkeyop"}, 30, 83l, 0l, 0l, 32, 16, 0, '\000', '\001', 0l, 0l, -1l, '\0', 'i' }, \
|
||||
{ 83l, {"relhasrules"}, 16, 83l, 0l, 0l, 1, 17, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'c' }, \
|
||||
{ 83l, {"relacl"}, 1034l, 83l, 0l, 0l, -1, 18, 0, '\000', '\001', 0l, 0l, -1l, '\0', 'i' }
|
||||
|
||||
DATA(insert OID = 0 ( 83 relname 19 0 0 0 NAMEDATALEN 1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 reltype 26 0 0 0 4 2 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 relowner 26 0 0 0 4 3 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 relam 26 0 0 0 4 4 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 relpages 23 0 0 0 4 5 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 reltuples 23 0 0 0 4 6 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 relexpires 702 0 0 0 4 7 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 relpreserved 703 0 0 0 4 8 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 relhasindex 16 0 0 0 1 9 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 83 relisshared 16 0 0 0 1 10 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 83 relkind 18 0 0 0 1 11 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 83 relarch 18 0 0 0 1 12 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 83 relnatts 21 0 0 0 2 13 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 83 relsmgr 210 0 0 0 2 14 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 83 relkey 22 0 0 0 16 15 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 relkeyop 30 0 0 0 32 16 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 relhasrules 16 0 0 0 1 17 0 t t 0 0 -1 f c));
|
||||
DATA(insert OID = 0 ( 83 relacl 1034 0 0 0 -1 18 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 ctid 27 0 0 0 6 -1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 oid 26 0 0 0 4 -2 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 xmin 28 0 0 0 4 -3 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 cmin 29 0 0 0 2 -4 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 83 xmax 28 0 0 0 4 -5 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 cmax 29 0 0 0 2 -6 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 83 chain 27 0 0 0 6 -7 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 anchor 27 0 0 0 6 -8 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 tmax 702 0 0 0 4 -9 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 tmin 702 0 0 0 4 -10 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 83 vtype 18 0 0 0 1 -11 0 t t 0 0 -1 f c));
|
||||
|
||||
/* ----------------
|
||||
* pg_magic
|
||||
* ----------------
|
||||
*/
|
||||
DATA(insert OID = 0 ( 80 magname 19 0 0 0 NAMEDATALEN 1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 80 magvalue 19 0 0 0 NAMEDATALEN 2 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 80 ctid 27 0 0 0 6 -1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 80 oid 26 0 0 0 4 -2 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 80 xmin 28 0 0 0 4 -3 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 80 cmin 29 0 0 0 2 -4 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 80 xmax 28 0 0 0 4 -5 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 80 cmax 29 0 0 0 2 -6 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 80 chain 27 0 0 0 6 -7 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 80 anchor 27 0 0 0 6 -8 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 80 tmax 702 0 0 0 4 -9 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 80 tmin 702 0 0 0 4 -10 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 80 vtype 18 0 0 0 1 -11 0 t t 0 0 -1 f c));
|
||||
|
||||
/* ----------------
|
||||
* pg_defaults
|
||||
* ----------------
|
||||
*/
|
||||
DATA(insert OID = 0 ( 89 defname 19 0 0 0 NAMEDATALEN 1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 89 defvalue 19 0 0 0 NAMEDATALEN 2 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 89 ctid 27 0 0 0 6 -1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 89 oid 26 0 0 0 4 -2 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 89 xmin 28 0 0 0 4 -3 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 89 cmin 29 0 0 0 2 -4 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 89 xmax 28 0 0 0 4 -5 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 89 cmax 29 0 0 0 2 -6 0 t t 0 0 -1 f s));
|
||||
DATA(insert OID = 0 ( 89 chain 27 0 0 0 6 -7 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 89 anchor 27 0 0 0 6 -8 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 89 tmax 702 0 0 0 4 -9 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 89 tmin 702 0 0 0 4 -10 0 t t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 89 vtype 18 0 0 0 1 -11 0 t t 0 0 -1 f c));
|
||||
|
||||
|
||||
/* ----------------
|
||||
* pg_hosts - this relation is used to store host based authentication
|
||||
* info
|
||||
*
|
||||
* ----------------
|
||||
*/
|
||||
DATA(insert OID = 0 ( 101 dbName 19 0 0 0 NAMEDATALEN 1 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 101 address 25 0 0 0 -1 2 0 f t 0 0 -1 f i));
|
||||
DATA(insert OID = 0 ( 101 mask 25 0 0 0 -1 3 0 f t 0 0 -1 f i));
|
||||
|
||||
/* ----------------
|
||||
* pg_variable - this relation is modified by special purpose access
|
||||
* method code. The following is garbage but is needed
|
||||
* so that the reldesc code works properly.
|
||||
* ----------------
|
||||
*/
|
||||
#define Schema_pg_variable \
|
||||
{ 90l, {"varfoo"}, 26l, 90l, 0l, 0l, 4, 1, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }
|
||||
|
||||
DATA(insert OID = 0 ( 90 varfoo 26 0 0 0 4 1 0 t t 0 0 -1 f i));
|
||||
|
||||
/* ----------------
|
||||
* pg_log - this relation is modified by special purpose access
|
||||
* method code. The following is garbage but is needed
|
||||
* so that the reldesc code works properly.
|
||||
* ----------------
|
||||
*/
|
||||
#define Schema_pg_log \
|
||||
{ 99l, {"logfoo"}, 26l, 99l, 0l, 0l, 4, 1, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }
|
||||
|
||||
DATA(insert OID = 0 ( 99 logfoo 26 0 0 0 4 1 0 t t 0 0 -1 f i));
|
||||
|
||||
/* ----------------
|
||||
* pg_time - this relation is modified by special purpose access
|
||||
* method code. The following is garbage but is needed
|
||||
* so that the reldesc code works properly.
|
||||
* ----------------
|
||||
*/
|
||||
#define Schema_pg_time \
|
||||
{ 100l, {"timefoo"}, 26l, 100l, 0l, 0l, 4, 1, 0, '\001', '\001', 0l, 0l, -1l, '\0', 'i' }
|
||||
|
||||
DATA(insert OID = 0 ( 100 timefoo 26 0 0 0 4 1 0 t t 0 0 -1 f i));
|
||||
|
||||
#endif /* PG_ATTRIBUTE_H */
|
||||
@@ -1,166 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_class.h--
|
||||
* definition of the system "relation" relation (pg_class)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_class.h,v 1.3 1996/08/21 04:25:49 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* ``pg_relation'' is being replaced by ``pg_class''. currently
|
||||
* we are only changing the name in the catalogs but someday the
|
||||
* code will be changed too. -cim 2/26/90
|
||||
* [it finally happens. -ay 11/5/94]
|
||||
*
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_RELATION_H
|
||||
#define PG_RELATION_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
#include "utils/nabstime.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_class definition. cpp turns this into
|
||||
* typedef struct FormData_pg_class
|
||||
*
|
||||
* Note: the #if 0, #endif around the BKI_BEGIN.. END block
|
||||
* below keeps cpp from seeing what is meant for the
|
||||
* genbki script: pg_relation is now called pg_class, but
|
||||
* only in the catalogs -cim 2/26/90
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
/* ----------------
|
||||
* This structure is actually variable-length (the last attribute is
|
||||
* a POSTGRES array). Hence, sizeof(FormData_pg_class) does not
|
||||
* describe the fixed-length or actual size of the structure.
|
||||
* FormData_pg_class.relacl may not be correctly aligned, either,
|
||||
* if aclitem and struct varlena don't align together. Hence,
|
||||
* you MUST use heap_getattr() to get the relacl field.
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_class) BOOTSTRAP {
|
||||
NameData relname;
|
||||
Oid reltype;
|
||||
Oid relowner;
|
||||
Oid relam;
|
||||
int4 relpages;
|
||||
int4 reltuples;
|
||||
int4 relexpires; /* really used as a abstime, but fudge it for now*/
|
||||
int4 relpreserved;/*really used as a reltime, but fudge it for now*/
|
||||
bool relhasindex;
|
||||
bool relisshared;
|
||||
char relkind;
|
||||
char relarch; /* 'h' = heavy, 'l' = light, 'n' = no archival*/
|
||||
int2 relnatts;
|
||||
/* relnatts is the number of user attributes this class has. There
|
||||
must be exactly this many instances in Class pg_attribute for this
|
||||
class which have attnum > 0 (= user attribute).
|
||||
*/
|
||||
int2 relsmgr;
|
||||
int28 relkey; /* not used */
|
||||
oid8 relkeyop; /* not used */
|
||||
bool relhasrules;
|
||||
aclitem relacl[1]; /* this is here for the catalog */
|
||||
} FormData_pg_class;
|
||||
|
||||
#define CLASS_TUPLE_SIZE \
|
||||
(offsetof(FormData_pg_class,relhasrules) + sizeof(bool))
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_class corresponds to a pointer to a tuple with
|
||||
* the format of pg_class relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_class *Form_pg_class;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_class
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
/* ----------------
|
||||
* Natts_pg_class_fixed is used to tell routines that insert new
|
||||
* pg_class tuples (as opposed to replacing old ones) that there's no
|
||||
* relacl field.
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_class_fixed 17
|
||||
#define Natts_pg_class 18
|
||||
#define Anum_pg_class_relname 1
|
||||
#define Anum_pg_class_reltype 2
|
||||
#define Anum_pg_class_relowner 3
|
||||
#define Anum_pg_class_relam 4
|
||||
#define Anum_pg_class_relpages 5
|
||||
#define Anum_pg_class_reltuples 6
|
||||
#define Anum_pg_class_relexpires 7
|
||||
#define Anum_pg_class_relpreserved 8
|
||||
#define Anum_pg_class_relhasindex 9
|
||||
#define Anum_pg_class_relisshared 10
|
||||
#define Anum_pg_class_relkind 11
|
||||
#define Anum_pg_class_relarch 12
|
||||
#define Anum_pg_class_relnatts 13
|
||||
#define Anum_pg_class_relsmgr 14
|
||||
#define Anum_pg_class_relkey 15
|
||||
#define Anum_pg_class_relkeyop 16
|
||||
#define Anum_pg_class_relhasrules 17
|
||||
#define Anum_pg_class_relacl 18
|
||||
|
||||
/* ----------------
|
||||
* initial contents of pg_class
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
DATA(insert OID = 71 ( pg_type 71 PGUID 0 0 0 0 0 f f r n 16 0 - - f _null_ ));
|
||||
DATA(insert OID = 75 ( pg_attribute 75 PGUID 0 0 0 0 0 f f r n 16 0 - - f _null_ ));
|
||||
DATA(insert OID = 76 ( pg_demon 76 PGUID 0 0 0 0 0 f t r n 4 0 - - f _null_ ));
|
||||
DATA(insert OID = 80 ( pg_magic 80 PGUID 0 0 0 0 0 f t r n 2 0 - - f _null_ ));
|
||||
DATA(insert OID = 81 ( pg_proc 81 PGUID 0 0 0 0 0 f f r n 16 0 - - f _null_ ));
|
||||
DATA(insert OID = 82 ( pg_server 82 PGUID 0 0 0 0 0 f t r n 3 0 - - f _null_ ));
|
||||
DATA(insert OID = 83 ( pg_class 83 PGUID 0 0 0 0 0 f f r n 18 0 - - f _null_ ));
|
||||
DATA(insert OID = 86 ( pg_user 86 PGUID 0 0 0 0 0 f t r n 6 0 - - f _null_ ));
|
||||
DATA(insert OID = 87 ( pg_group 87 PGUID 0 0 0 0 0 f t s n 3 0 - - f _null_ ));
|
||||
DATA(insert OID = 88 ( pg_database 88 PGUID 0 0 0 0 0 f t r n 3 0 - - f _null_ ));
|
||||
DATA(insert OID = 89 ( pg_defaults 89 PGUID 0 0 0 0 0 f t r n 2 0 - - f _null_ ));
|
||||
DATA(insert OID = 90 ( pg_variable 90 PGUID 0 0 0 0 0 f t s n 2 0 - - f _null_ ));
|
||||
DATA(insert OID = 99 ( pg_log 99 PGUID 0 0 0 0 0 f t s n 1 0 - - f _null_ ));
|
||||
DATA(insert OID = 100 ( pg_time 100 PGUID 0 0 0 0 0 f t s n 1 0 - - f _null_ ));
|
||||
DATA(insert OID = 101 ( pg_hosts 101 PGUID 0 0 0 0 0 f t s n 3 0 - - f _null_ ));
|
||||
|
||||
#define RelOid_pg_type 71
|
||||
#define RelOid_pg_demon 76
|
||||
#define RelOid_pg_attribute 75
|
||||
#define RelOid_pg_magic 80
|
||||
#define RelOid_pg_proc 81
|
||||
#define RelOid_pg_server 82
|
||||
#define RelOid_pg_class 83
|
||||
#define RelOid_pg_user 86
|
||||
#define RelOid_pg_group 87
|
||||
#define RelOid_pg_database 88
|
||||
#define RelOid_pg_defaults 89
|
||||
#define RelOid_pg_variable 90
|
||||
#define RelOid_pg_log 99
|
||||
#define RelOid_pg_time 100
|
||||
#define RelOid_pg_hosts 101
|
||||
|
||||
#define MAX_SYSTEM_RELOID 101
|
||||
|
||||
#define RELKIND_INDEX 'i' /* secondary index */
|
||||
#define RELKIND_RELATION 'r' /* cataloged heap */
|
||||
#define RELKIND_SPECIAL 's' /* special (non-heap) */
|
||||
#define RELKIND_UNCATALOGED 'u' /* temporary heap */
|
||||
|
||||
#endif /* PG_RELATION_H */
|
||||
@@ -1,57 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_database.h--
|
||||
* definition of the system "database" relation (pg_database)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_database.h,v 1.1.1.1 1996/07/09 06:21:16 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_DATABASE_H
|
||||
#define PG_DATABASE_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_database definition. cpp turns this into
|
||||
* typedef struct FormData_pg_database
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_database) BOOTSTRAP {
|
||||
NameData datname;
|
||||
Oid datdba;
|
||||
text datpath; /* VARIABLE LENGTH FIELD */
|
||||
} FormData_pg_database;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_database corresponds to a pointer to a tuple with
|
||||
* the format of pg_database relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_database *Form_pg_database;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_database
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_database 3
|
||||
#define Anum_pg_database_datname 1
|
||||
#define Anum_pg_database_datdba 2
|
||||
#define Anum_pg_database_datpath 3
|
||||
|
||||
|
||||
#endif /* PG_DATABASE_H */
|
||||
@@ -1,55 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_defaults.h--
|
||||
* definition of the system "defaults" relation (pg_defaults)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_defaults.h,v 1.1.1.1 1996/07/09 06:21:16 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_DEFAULTS_H
|
||||
#define PG_DEFAULTS_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_defaults definition. cpp turns this into
|
||||
* typedef struct FormData_pg_defaults
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_defaults) BOOTSTRAP {
|
||||
NameData defname;
|
||||
NameData defvalue;
|
||||
} FormData_pg_defaults;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_defaults corresponds to a pointer to a tuple with
|
||||
* the format of pg_defaults relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_defaults *Form_pg_defaults;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_defaults
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_defaults 2
|
||||
#define Anum_pg_defaults_defname 1
|
||||
#define Anum_pg_defaults_defvalue 2
|
||||
|
||||
|
||||
#endif /* PG_DEFAULTS_H */
|
||||
@@ -1,58 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_demon.h--
|
||||
* definition of the system "demon" relation (pg_demon)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_demon.h,v 1.1.1.1 1996/07/09 06:21:16 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_DEMON_H
|
||||
#define PG_DEMON_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_demon definition. cpp turns this into
|
||||
* typedef struct FormData_pg_demon
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_demon) BOOTSTRAP {
|
||||
Oid demserid;
|
||||
NameData demname;
|
||||
Oid demowner;
|
||||
regproc demcode;
|
||||
} FormData_pg_demon;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_demon corresponds to a pointer to a tuple with
|
||||
* the format of pg_demon relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_demon *Form_pg_demon;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_demon
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_demon 4
|
||||
#define Anum_pg_demon_demserid 1
|
||||
#define Anum_pg_demon_demname 2
|
||||
#define Anum_pg_demon_demowner 3
|
||||
#define Anum_pg_demon_demcode 4
|
||||
|
||||
#endif /* PG_DEMON_H */
|
||||
@@ -1,42 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_group.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_group.h,v 1.1.1.1 1996/07/09 06:21:16 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_GROUP_H
|
||||
#define PG_GROUP_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
CATALOG(pg_group) BOOTSTRAP {
|
||||
NameData groname;
|
||||
int4 grosysid;
|
||||
int4 grolist[1];
|
||||
} FormData_pg_group;
|
||||
/* VARIABLE LENGTH STRUCTURE */
|
||||
|
||||
typedef FormData_pg_group *Form_pg_group;
|
||||
|
||||
#define Natts_pg_group 1
|
||||
#define Anum_pg_group_groname 1
|
||||
#define Anum_pg_group_grosysid 2
|
||||
#define Anum_pg_group_grolist 3
|
||||
|
||||
#endif /* PG_GROUP_H */
|
||||
@@ -1,44 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_hosts.h--
|
||||
*
|
||||
* the pg_hosts system catalog provides host-based access to the
|
||||
* backend. Only those hosts that are in the pg_hosts
|
||||
*
|
||||
* currently, this table is not used, instead file-based host authentication
|
||||
* is used
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_hosts.h,v 1.1.1.1 1996/07/09 06:21:16 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef PG_HOSTS_H
|
||||
#define PG_HOSTS_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
CATALOG(pg_hosts) BOOTSTRAP {
|
||||
NameData dbName;
|
||||
text address;
|
||||
text mask;
|
||||
} FormData_pg_hosts;
|
||||
|
||||
typedef FormData_pg_hosts *Form_pg_hosts;
|
||||
#define Natts_pg_hosts 3
|
||||
#define Anum_pg_hosts_dbName 1
|
||||
#define Anum_pg_hosts_address 2
|
||||
#define Anum_pg_hosts_mask 3
|
||||
|
||||
#endif /* PG_HOSTS_H */
|
||||
@@ -1,75 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_index.h--
|
||||
* definition of the system "index" relation (pg_index)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_index.h,v 1.2 1996/08/26 06:29:43 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_INDEX_H
|
||||
#define PG_INDEX_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_index definition. cpp turns this into
|
||||
* typedef struct FormData_pg_index. The oid of the index relation
|
||||
* is stored in indexrelid; the oid of the indexed relation is stored
|
||||
* in indrelid.
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_index) {
|
||||
Oid indexrelid;
|
||||
Oid indrelid;
|
||||
Oid indproc; /* registered procedure for functional index */
|
||||
int28 indkey;
|
||||
oid8 indclass;
|
||||
bool indisclustered;
|
||||
bool indisarchived;
|
||||
text indpred; /* query plan for partial index predicate */
|
||||
bool indislossy; /* do we fetch false tuples (lossy compression)? */
|
||||
bool indhaskeytype; /* does key type != attribute type? */
|
||||
} FormData_pg_index;
|
||||
|
||||
#define INDEX_MAX_KEYS 8 /* maximum number of keys in an index definition */
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_index corresponds to a pointer to a tuple with
|
||||
* the format of pg_index relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_index *IndexTupleForm;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_index
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_index 10
|
||||
#define Anum_pg_index_indexrelid 1
|
||||
#define Anum_pg_index_indrelid 2
|
||||
#define Anum_pg_index_indproc 3
|
||||
#define Anum_pg_index_indkey 4
|
||||
#define Anum_pg_index_indclass 5
|
||||
#define Anum_pg_index_indisclustered 6
|
||||
#define Anum_pg_index_indisarchived 7
|
||||
#define Anum_pg_index_indpred 8
|
||||
#define Anum_pg_index_indislossy 9
|
||||
#define Anum_pg_index_indhaskeytype 10
|
||||
|
||||
|
||||
#endif /* PG_INDEX_H */
|
||||
@@ -1,59 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_inheritproc.h--
|
||||
* definition of the system "inheritproc" relation (pg_inheritproc)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_inheritproc.h,v 1.1.1.1 1996/07/09 06:21:17 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_INHERITPROC_H
|
||||
#define PG_INHERITPROC_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_inheritproc definition. cpp turns this into
|
||||
* typedef struct FormData_pg_inheritproc
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_inheritproc) {
|
||||
NameData inhproname;
|
||||
Oid inhargrel;
|
||||
Oid inhdefrel;
|
||||
Oid inhproc;
|
||||
} FormData_pg_inheritproc;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_inheritproc corresponds to a pointer to a tuple with
|
||||
* the format of pg_inheritproc relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_inheritproc *Form_pg_inheritproc;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_inheritproc
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_inheritproc 4
|
||||
#define Anum_pg_inheritproc_inhproname 1
|
||||
#define Anum_pg_inheritproc_inhargrel 2
|
||||
#define Anum_pg_inheritproc_inhdefrel 3
|
||||
#define Anum_pg_inheritproc_inhproc 4
|
||||
|
||||
|
||||
#endif /* PG_INHERITPROC_H */
|
||||
@@ -1,57 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_inherits.h--
|
||||
* definition of the system "inherits" relation (pg_inherits)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_inherits.h,v 1.1.1.1 1996/07/09 06:21:17 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_INHERITS_H
|
||||
#define PG_INHERITS_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_inherits definition. cpp turns this into
|
||||
* typedef struct FormData_pg_inherits
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_inherits) {
|
||||
Oid inhrel;
|
||||
Oid inhparent;
|
||||
int4 inhseqno;
|
||||
} FormData_pg_inherits;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_inherits corresponds to a pointer to a tuple with
|
||||
* the format of pg_inherits relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_inherits *InheritsTupleForm;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_inherits
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_inherits 3
|
||||
#define Anum_pg_inherits_inhrel 1
|
||||
#define Anum_pg_inherits_inhparent 2
|
||||
#define Anum_pg_inherits_inhseqno 3
|
||||
|
||||
|
||||
#endif /* PG_INHERITS_H */
|
||||
@@ -1,57 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_ipl.h--
|
||||
* definition of the system "ipl" relation (pg_ipl)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_ipl.h,v 1.1.1.1 1996/07/09 06:21:17 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_IPL_H
|
||||
#define PG_IPL_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_ipl definition. cpp turns this into
|
||||
* typedef struct FormData_pg_ipl
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_ipl) {
|
||||
Oid iplrel;
|
||||
Oid iplipl;
|
||||
int4 iplseqno;
|
||||
} FormData_pg_ipl;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_ipl corresponds to a pointer to a tuple with
|
||||
* the format of pg_ipl relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_ipl *Form_pg_ipl;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_ipl
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_ipl 3
|
||||
#define Anum_pg_ipl_iplrel 1
|
||||
#define Anum_pg_ipl_iplipl 2
|
||||
#define Anum_pg_ipl_iplseqno 3
|
||||
|
||||
|
||||
#endif /* PG_IPL_H */
|
||||
@@ -1,75 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_language.h--
|
||||
* definition of the system "language" relation (pg_language)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_language.h,v 1.1.1.1 1996/07/09 06:21:17 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_LANGUAGE_H
|
||||
#define PG_LANGUAGE_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_language definition. cpp turns this into
|
||||
* typedef struct FormData_pg_language
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_language) {
|
||||
NameData lanname;
|
||||
text lancompiler; /* VARIABLE LENGTH FIELD */
|
||||
} FormData_pg_language;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_language corresponds to a pointer to a tuple with
|
||||
* the format of pg_language relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_language *Form_pg_language;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_language
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_language 2
|
||||
#define Anum_pg_language_lanname 1
|
||||
#define Anum_pg_language_lancompiler 2
|
||||
|
||||
/* ----------------
|
||||
* initial contents of pg_language
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
DATA(insert OID = 11 ( internal "n/a" ));
|
||||
#define INTERNALlanguageId 11
|
||||
DATA(insert OID = 12 ( lisp "/usr/ucb/liszt" ));
|
||||
DATA(insert OID = 13 ( "C" "/bin/cc" ));
|
||||
#define ClanguageId 13
|
||||
DATA(insert OID = 14 ( "sql" "postgres"));
|
||||
#define SQLlanguageId 14
|
||||
|
||||
|
||||
#endif /* PG_LANGUAGE_H */
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_listener.h--
|
||||
* Asynchronous notification
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_listener.h,v 1.1.1.1 1996/07/09 06:21:17 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_LISTENER_H
|
||||
#define PG_LISTENER_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* pg_listener definition.
|
||||
*
|
||||
* cpp turns this into typedef struct FormData_pg_listener
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
|
||||
CATALOG(pg_listener) {
|
||||
NameData relname;
|
||||
int4 listenerpid;
|
||||
int4 notification;
|
||||
} FormData_pg_listener;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_listener
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_listener 3
|
||||
#define Anum_pg_listener_relname 1
|
||||
#define Anum_pg_listener_pid 2
|
||||
#define Anum_pg_listener_notify 3
|
||||
|
||||
/* ----------------
|
||||
* initial contents of pg_listener are NOTHING.
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
|
||||
#endif /* PG_LISTENER_H */
|
||||
@@ -1,40 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_log.h--
|
||||
* the system log relation "pg_log" is not a "heap" relation.
|
||||
* it is automatically created by the transam/ code and the
|
||||
* information here is all bogus and is just here to make the
|
||||
* relcache code happy.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_log.h,v 1.1.1.1 1996/07/09 06:21:17 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* The structures and macros used by the transam/ code
|
||||
* to access pg_log should some day go here -cim 6/18/90
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_LOG_H
|
||||
#define PG_LOG_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
CATALOG(pg_log) BOOTSTRAP {
|
||||
Oid logfoo;
|
||||
} FormData_pg_log;
|
||||
|
||||
typedef FormData_pg_log *Form_pg_log;
|
||||
|
||||
#define Natts_pg_log 1
|
||||
#define Anum_pg_log_logfoo 1
|
||||
|
||||
#endif /* PG_LOG_H */
|
||||
@@ -1,54 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_magic.h--
|
||||
* definition of the system "magic" relation (pg_magic)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_magic.h,v 1.1.1.1 1996/07/09 06:21:17 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_MAGIC_H
|
||||
#define PG_MAGIC_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_magic definition. cpp turns this into
|
||||
* typedef struct FormData_pg_magic
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_magic) BOOTSTRAP {
|
||||
NameData magname;
|
||||
NameData magvalue;
|
||||
} FormData_pg_magic;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_magic corresponds to a pointer to a tuple with
|
||||
* the format of pg_magic relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_magic *Form_pg_magic;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_magic
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_magic 2
|
||||
#define Anum_pg_magic_magname 1
|
||||
#define Anum_pg_magic_magvalue 2
|
||||
|
||||
#endif /* PG_MAGIC_H */
|
||||
@@ -1,93 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_opclass.h--
|
||||
* definition of the system "opclass" relation (pg_opclass)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_opclass.h,v 1.2 1996/08/15 07:42:09 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_OPCLASS_H
|
||||
#define PG_OPCLASS_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_opclass definition. cpp turns this into
|
||||
* typedef struct FormData_pg_opclass
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
CATALOG(pg_opclass) {
|
||||
NameData opcname;
|
||||
Oid opcdeftype;
|
||||
} FormData_pg_opclass;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_opclass corresponds to a pointer to a tuple with
|
||||
* the format of pg_opclass relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_opclass *Form_pg_opclass;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_opclass
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_opclass 2
|
||||
#define Anum_pg_opclass_opcname 1
|
||||
#define Anum_pg_opclass_opcdeftype 2
|
||||
|
||||
/* ----------------
|
||||
* initial contents of pg_opclass
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
/*
|
||||
* putting _null_'s in the (fixed-length) type field is bad
|
||||
* (see the README in this directory), so just put zeros
|
||||
* in, which are invalid OID's anyway. --djm
|
||||
*/
|
||||
DATA(insert OID = 406 ( char2_ops 409 ));
|
||||
DATA(insert OID = 407 ( char4_ops 410 ));
|
||||
DATA(insert OID = 408 ( char8_ops 411 ));
|
||||
/* OID 409 is already used in table pg_type--this one should be unused */
|
||||
DATA(insert OID = 1181 ( name_ops 19 ));
|
||||
DATA(insert OID = 421 ( int2_ops 21 ));
|
||||
DATA(insert OID = 422 ( box_ops 603 ));
|
||||
DATA(insert OID = 423 ( float8_ops 701 ));
|
||||
DATA(insert OID = 424 ( int24_ops 0 ));
|
||||
DATA(insert OID = 425 ( int42_ops 0 ));
|
||||
DATA(insert OID = 426 ( int4_ops 23 ));
|
||||
#define INT4_OPS_OID 426
|
||||
DATA(insert OID = 427 ( oid_ops 26 ));
|
||||
DATA(insert OID = 428 ( float4_ops 700 ));
|
||||
DATA(insert OID = 429 ( char_ops 18 ));
|
||||
DATA(insert OID = 430 ( char16_ops 20 ));
|
||||
DATA(insert OID = 431 ( text_ops 25 ));
|
||||
DATA(insert OID = 432 ( abstime_ops 702 ));
|
||||
DATA(insert OID = 433 ( bigbox_ops 0 ));
|
||||
DATA(insert OID = 434 ( poly_ops 604 ));
|
||||
DATA(insert OID = 435 ( oidint4_ops 910 ));
|
||||
DATA(insert OID = 436 ( oidname_ops 911 ));
|
||||
DATA(insert OID = 437 ( oidint2_ops 810 ));
|
||||
DATA(insert OID = 1076 ( bpchar_ops 1042 ));
|
||||
DATA(insert OID = 1077 ( varchar_ops 1043 ));
|
||||
DATA(insert OID = 1114 ( date_ops 1082 ));
|
||||
DATA(insert OID = 1115 ( time_ops 1083 ));
|
||||
|
||||
#endif /* PG_OPCLASS_H */
|
||||
@@ -1,484 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_operator.h--
|
||||
* definition of the system "operator" relation (pg_operator)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_operator.h,v 1.3 1996/08/05 00:25:07 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
* XXX do NOT break up DATA() statements into multiple lines!
|
||||
* the scripts are not as smart as you might think...
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_OPERATOR_H
|
||||
#define PG_OPERATOR_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_operator definition. cpp turns this into
|
||||
* typedef struct FormData_pg_operator
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_operator) {
|
||||
NameData oprname;
|
||||
Oid oprowner;
|
||||
int2 oprprec;
|
||||
char oprkind;
|
||||
bool oprisleft;
|
||||
bool oprcanhash;
|
||||
Oid oprleft;
|
||||
Oid oprright;
|
||||
Oid oprresult;
|
||||
Oid oprcom;
|
||||
Oid oprnegate;
|
||||
Oid oprlsortop;
|
||||
Oid oprrsortop;
|
||||
regproc oprcode;
|
||||
regproc oprrest;
|
||||
regproc oprjoin;
|
||||
} FormData_pg_operator;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_operator corresponds to a pointer to a tuple with
|
||||
* the format of pg_operator relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_operator *OperatorTupleForm;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_operator
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
#define Natts_pg_operator 16
|
||||
#define Anum_pg_operator_oprname 1
|
||||
#define Anum_pg_operator_oprowner 2
|
||||
#define Anum_pg_operator_oprprec 3
|
||||
#define Anum_pg_operator_oprkind 4
|
||||
#define Anum_pg_operator_oprisleft 5
|
||||
#define Anum_pg_operator_oprcanhash 6
|
||||
#define Anum_pg_operator_oprleft 7
|
||||
#define Anum_pg_operator_oprright 8
|
||||
#define Anum_pg_operator_oprresult 9
|
||||
#define Anum_pg_operator_oprcom 10
|
||||
#define Anum_pg_operator_oprnegate 11
|
||||
#define Anum_pg_operator_oprlsortop 12
|
||||
#define Anum_pg_operator_oprrsortop 13
|
||||
#define Anum_pg_operator_oprcode 14
|
||||
#define Anum_pg_operator_oprrest 15
|
||||
#define Anum_pg_operator_oprjoin 16
|
||||
|
||||
/* ----------------
|
||||
* initial contents of pg_operator
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
DATA(insert OID = 85 ( "<>" PGUID 0 b t f 16 16 16 85 91 0 0 boolne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 91 ( "=" PGUID 0 b t t 16 16 16 91 85 0 0 booleq eqsel eqjoinsel ));
|
||||
#define BooleanEqualOperator 91
|
||||
|
||||
DATA(insert OID = 92 ( "=" PGUID 0 b t t 18 18 16 92 630 631 631 chareq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 93 ( "=" PGUID 0 b t t 19 19 16 93 643 660 660 nameeq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 94 ( "=" PGUID 0 b t t 21 21 16 94 519 95 95 int2eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 95 ( "<" PGUID 0 b t f 21 21 16 520 524 0 0 int2lt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 96 ( "=" PGUID 0 b t t 23 23 16 96 518 97 97 int4eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 97 ( "<" PGUID 0 b t f 23 23 16 521 525 0 0 int4lt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 98 ( "=" PGUID 0 b t t 25 25 16 98 531 664 664 texteq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 99 ( "=" PGUID 0 b t t 20 20 16 99 644 645 645 char16eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 329 ( "=" PGUID 0 b t t 1000 1000 16 329 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 349 ( "=" PGUID 0 b t t 1001 1001 16 349 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 374 ( "=" PGUID 0 b t t 1002 1002 16 374 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 375 ( "=" PGUID 0 b t t 1003 1003 16 375 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 376 ( "=" PGUID 0 b t t 1004 1004 16 376 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 377 ( "=" PGUID 0 b t t 1005 1005 16 377 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 378 ( "=" PGUID 0 b t t 1006 1006 16 378 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 379 ( "=" PGUID 0 b t t 1007 1007 16 379 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 380 ( "=" PGUID 0 b t t 1008 1008 16 380 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 381 ( "=" PGUID 0 b t t 1009 1009 16 381 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 382 ( "=" PGUID 0 b t t 1028 1028 16 382 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 383 ( "=" PGUID 0 b t t 1010 1010 16 383 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 384 ( "=" PGUID 0 b t t 1011 1011 16 384 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 385 ( "=" PGUID 0 b t t 1012 1012 16 385 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 386 ( "=" PGUID 0 b t t 1013 1013 16 386 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
/*
|
||||
DATA(insert OID = 387 ( "=" PGUID 0 b t t 1014 1014 16 387 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
*/
|
||||
DATA(insert OID = 388 ( "=" PGUID 0 b t t 1015 1015 16 388 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 389 ( "=" PGUID 0 b t t 1016 1016 16 389 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 390 ( "=" PGUID 0 b t t 1017 1017 16 390 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 391 ( "=" PGUID 0 b t t 1018 1018 16 391 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 392 ( "=" PGUID 0 b t t 1019 1019 16 392 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 393 ( "=" PGUID 0 b t t 1020 1020 16 393 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 394 ( "=" PGUID 0 b t t 1021 1021 16 394 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 395 ( "=" PGUID 0 b t t 1022 1022 16 395 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 396 ( "=" PGUID 0 b t t 1023 1023 16 396 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 397 ( "=" PGUID 0 b t t 1024 1024 16 397 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 398 ( "=" PGUID 0 b t t 1025 1025 16 398 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 399 ( "=" PGUID 0 b t t 1026 1026 16 399 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 400 ( "=" PGUID 0 b t t 1027 1027 16 400 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 401 ( "=" PGUID 0 b t t 1034 1034 16 401 0 0 0 array_eq eqsel eqjoinsel ));
|
||||
|
||||
DATA(insert OID = 412 ( "=" PGUID 0 b t t 409 409 16 412 415 418 418 char2eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 413 ( "=" PGUID 0 b t t 410 410 16 413 416 419 419 char4eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 414 ( "=" PGUID 0 b t t 411 411 16 414 417 420 420 char8eq eqsel eqjoinsel ));
|
||||
|
||||
DATA(insert OID = 415 ( "<>" PGUID 0 b t f 409 409 16 415 412 0 0 char2ne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 416 ( "<>" PGUID 0 b t f 410 410 16 416 413 0 0 char4ne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 417 ( "<>" PGUID 0 b t f 411 411 16 417 414 0 0 char8ne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 418 ( "<" PGUID 0 b t f 409 409 16 460 463 0 0 char2lt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 419 ( "<" PGUID 0 b t f 410 410 16 461 464 0 0 char4lt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 420 ( "<" PGUID 0 b t f 411 411 16 462 465 0 0 char8lt intltsel intltjoinsel ));
|
||||
|
||||
DATA(insert OID = 457 ( "<=" PGUID 0 b t f 409 409 16 463 460 0 0 char2le intltsel intltjoinsel ));
|
||||
DATA(insert OID = 458 ( "<=" PGUID 0 b t f 410 410 16 464 461 0 0 char4le intltsel intltjoinsel ));
|
||||
DATA(insert OID = 459 ( "<=" PGUID 0 b t f 411 411 16 465 462 0 0 char8le intltsel intltjoinsel ));
|
||||
DATA(insert OID = 460 ( ">" PGUID 0 b t f 409 409 16 418 457 0 0 char2gt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 461 ( ">" PGUID 0 b t f 410 410 16 419 458 0 0 char4gt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 462 ( ">" PGUID 0 b t f 411 411 16 420 459 0 0 char8gt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 463 ( ">=" PGUID 0 b t f 409 409 16 457 418 0 0 char2ge intltsel intltjoinsel ));
|
||||
DATA(insert OID = 464 ( ">=" PGUID 0 b t f 410 410 16 458 418 0 0 char4ge intltsel intltjoinsel ));
|
||||
DATA(insert OID = 465 ( ">=" PGUID 0 b t f 411 411 16 459 420 0 0 char8ge intltsel intltjoinsel ));
|
||||
|
||||
DATA(insert OID = 485 ( "<<" PGUID 0 b t f 604 604 16 0 0 0 0 poly_left intltsel intltjoinsel ));
|
||||
DATA(insert OID = 486 ( "&<" PGUID 0 b t f 604 604 16 0 0 0 0 poly_overleft intltsel intltjoinsel ));
|
||||
DATA(insert OID = 487 ( "&>" PGUID 0 b t f 604 604 16 0 0 0 0 poly_overright intltsel intltjoinsel ));
|
||||
DATA(insert OID = 488 ( ">>" PGUID 0 b t f 604 604 16 0 0 0 0 poly_right intltsel intltjoinsel ));
|
||||
DATA(insert OID = 489 ( "@" PGUID 0 b t f 604 604 16 0 0 0 0 poly_contained intltsel intltjoinsel ));
|
||||
DATA(insert OID = 490 ( "~" PGUID 0 b t f 604 604 16 0 0 0 0 poly_contain intltsel intltjoinsel ));
|
||||
DATA(insert OID = 491 ( "~=" PGUID 0 b t f 604 604 16 0 0 0 0 poly_same intltsel intltjoinsel ));
|
||||
DATA(insert OID = 492 ( "&&" PGUID 0 b t f 604 604 16 0 0 0 0 poly_overlap intltsel intltjoinsel ));
|
||||
DATA(insert OID = 493 ( "<<" PGUID 0 b t f 603 603 16 0 0 0 0 box_left intltsel intltjoinsel ));
|
||||
DATA(insert OID = 494 ( "&<" PGUID 0 b t f 603 603 16 0 0 0 0 box_overleft intltsel intltjoinsel ));
|
||||
DATA(insert OID = 495 ( "&>" PGUID 0 b t f 603 603 16 0 0 0 0 box_overright intltsel intltjoinsel ));
|
||||
DATA(insert OID = 496 ( ">>" PGUID 0 b t f 603 603 16 0 0 0 0 box_right intltsel intltjoinsel ));
|
||||
DATA(insert OID = 497 ( "@" PGUID 0 b t f 603 603 16 0 0 0 0 box_contained intltsel intltjoinsel ));
|
||||
DATA(insert OID = 498 ( "~" PGUID 0 b t f 603 603 16 0 0 0 0 box_contain intltsel intltjoinsel ));
|
||||
DATA(insert OID = 499 ( "~=" PGUID 0 b t f 603 603 16 0 0 0 0 box_same intltsel intltjoinsel ));
|
||||
DATA(insert OID = 500 ( "&&" PGUID 0 b t f 603 603 16 0 0 0 0 box_overlap intltsel intltjoinsel ));
|
||||
DATA(insert OID = 501 ( ">=" PGUID 0 b t f 603 603 16 0 0 0 0 box_ge areasel areajoinsel ));
|
||||
DATA(insert OID = 502 ( ">" PGUID 0 b t f 603 603 16 0 0 0 0 box_gt areasel areajoinsel ));
|
||||
DATA(insert OID = 503 ( "=" PGUID 0 b t t 603 603 16 0 0 0 0 box_eq areasel areajoinsel ));
|
||||
DATA(insert OID = 504 ( "<" PGUID 0 b t f 603 603 16 0 0 0 0 box_lt areasel areajoinsel ));
|
||||
DATA(insert OID = 505 ( "<=" PGUID 0 b t f 603 603 16 0 0 0 0 box_le areasel areajoinsel ));
|
||||
DATA(insert OID = 506 ( "!^" PGUID 0 b t f 600 600 16 0 0 0 0 point_above intltsel intltjoinsel ));
|
||||
DATA(insert OID = 507 ( "!<" PGUID 0 b t f 600 600 16 0 0 0 0 point_left intltsel intltjoinsel ));
|
||||
DATA(insert OID = 508 ( "!>" PGUID 0 b t f 600 600 16 0 0 0 0 point_right intltsel intltjoinsel ));
|
||||
DATA(insert OID = 509 ( "!|" PGUID 0 b t f 600 600 16 0 0 0 0 point_below intltsel intltjoinsel ));
|
||||
DATA(insert OID = 510 ( "=|=" PGUID 0 b t f 600 600 16 0 0 0 0 point_eq intltsel intltjoinsel ));
|
||||
DATA(insert OID = 511 ( "===>" PGUID 0 b t f 600 603 16 0 0 0 0 on_pb intltsel intltjoinsel ));
|
||||
DATA(insert OID = 512 ( "===`" PGUID 0 b t f 600 602 16 0 0 0 0 on_ppath intltsel intltjoinsel ));
|
||||
DATA(insert OID = 513 ( "@@" PGUID 0 l t f 0 603 600 0 0 0 0 box_center intltsel intltjoinsel ));
|
||||
DATA(insert OID = 514 ( "*" PGUID 0 b t f 23 23 23 514 0 0 0 int4mul intltsel intltjoinsel ));
|
||||
DATA(insert OID = 515 ( "!" PGUID 0 r t f 23 0 23 0 0 0 0 int4fac intltsel intltjoinsel ));
|
||||
DATA(insert OID = 516 ( "!!" PGUID 0 l t f 0 23 23 0 0 0 0 int4fac intltsel intltjoinsel ));
|
||||
DATA(insert OID = 517 ( "<===>" PGUID 0 b t f 600 600 23 0 0 0 0 pointdist intltsel intltjoinsel ));
|
||||
DATA(insert OID = 518 ( "<>" PGUID 0 b t f 23 23 16 518 96 0 0 int4ne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 519 ( "<>" PGUID 0 b t f 21 21 16 519 94 0 0 int2ne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 520 ( ">" PGUID 0 b t f 21 21 16 95 0 0 0 int2gt intgtsel intgtjoinsel ));
|
||||
DATA(insert OID = 521 ( ">" PGUID 0 b t f 23 23 16 97 0 0 0 int4gt intgtsel intgtjoinsel ));
|
||||
DATA(insert OID = 522 ( "<=" PGUID 0 b t f 21 21 16 524 520 0 0 int2le intltsel intltjoinsel ));
|
||||
DATA(insert OID = 523 ( "<=" PGUID 0 b t f 23 23 16 525 521 0 0 int4le intltsel intltjoinsel ));
|
||||
DATA(insert OID = 524 ( ">=" PGUID 0 b t f 21 21 16 522 95 0 0 int2ge intgtsel intgtjoinsel ));
|
||||
DATA(insert OID = 525 ( ">=" PGUID 0 b t f 23 23 16 523 97 0 0 int4ge intgtsel intgtjoinsel ));
|
||||
DATA(insert OID = 526 ( "*" PGUID 0 b t f 21 21 21 526 0 0 0 int2mul intltsel intltjoinsel ));
|
||||
DATA(insert OID = 527 ( "/" PGUID 0 b t f 21 21 21 0 0 0 0 int2div intltsel intltjoinsel ));
|
||||
DATA(insert OID = 528 ( "/" PGUID 0 b t f 23 23 23 0 0 0 0 int4div intltsel intltjoinsel ));
|
||||
DATA(insert OID = 529 ( "%" PGUID 0 b t f 21 21 21 6 0 0 0 int2mod intltsel intltjoinsel ));
|
||||
DATA(insert OID = 530 ( "%" PGUID 0 b t f 23 23 23 6 0 0 0 int4mod intltsel intltjoinsel ));
|
||||
DATA(insert OID = 531 ( "<>" PGUID 0 b t f 25 25 16 531 98 0 0 textne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 532 ( "=" PGUID 0 b t t 21 23 16 533 538 95 97 int24eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 533 ( "=" PGUID 0 b t t 23 21 16 532 539 97 95 int42eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 534 ( "<" PGUID 0 b t f 21 23 16 537 542 0 0 int24lt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 535 ( "<" PGUID 0 b t f 23 21 16 536 543 0 0 int42lt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 536 ( ">" PGUID 0 b t f 21 23 16 535 540 0 0 int24gt intgtsel intgtjoinsel ));
|
||||
DATA(insert OID = 537 ( ">" PGUID 0 b t f 23 21 16 534 541 0 0 int42gt intgtsel intgtjoinsel ));
|
||||
DATA(insert OID = 538 ( "<>" PGUID 0 b t f 21 23 16 539 532 0 0 int24ne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 539 ( "<>" PGUID 0 b t f 23 21 16 538 533 0 0 int42ne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 540 ( "<=" PGUID 0 b t f 21 23 16 543 536 0 0 int24le intltsel intltjoinsel ));
|
||||
DATA(insert OID = 541 ( "<=" PGUID 0 b t f 23 21 16 542 537 0 0 int42le intltsel intltjoinsel ));
|
||||
DATA(insert OID = 542 ( ">=" PGUID 0 b t f 21 23 16 541 534 0 0 int24ge intgtsel intgtjoinsel ));
|
||||
DATA(insert OID = 543 ( ">=" PGUID 0 b t f 23 21 16 540 535 0 0 int42ge intgtsel intgtjoinsel ));
|
||||
DATA(insert OID = 544 ( "*" PGUID 0 b t f 21 23 23 545 0 0 0 int24mul intltsel intltjoinsel ));
|
||||
DATA(insert OID = 545 ( "*" PGUID 0 b t f 23 21 23 544 0 0 0 int42mul intltsel intltjoinsel ));
|
||||
DATA(insert OID = 546 ( "/" PGUID 0 b t f 21 23 23 0 0 0 0 int24div intltsel intltjoinsel ));
|
||||
DATA(insert OID = 547 ( "/" PGUID 0 b t f 23 21 23 0 0 0 0 int42div intltsel intltjoinsel ));
|
||||
DATA(insert OID = 548 ( "%" PGUID 0 b t f 21 23 23 6 0 0 0 int24mod intltsel intltjoinsel ));
|
||||
DATA(insert OID = 549 ( "%" PGUID 0 b t f 23 21 23 6 0 0 0 int42mod intltsel intltjoinsel ));
|
||||
DATA(insert OID = 550 ( "+" PGUID 0 b t f 21 21 21 550 0 0 0 int2pl intltsel intltjoinsel ));
|
||||
DATA(insert OID = 551 ( "+" PGUID 0 b t f 23 23 23 551 0 0 0 int4pl intltsel intltjoinsel ));
|
||||
DATA(insert OID = 552 ( "+" PGUID 0 b t f 21 23 23 553 0 0 0 int24pl intltsel intltjoinsel ));
|
||||
DATA(insert OID = 553 ( "+" PGUID 0 b t f 23 21 23 552 0 0 0 int42pl intltsel intltjoinsel ));
|
||||
DATA(insert OID = 554 ( "-" PGUID 0 b t f 21 21 21 0 0 0 0 int2mi intltsel intltjoinsel ));
|
||||
DATA(insert OID = 555 ( "-" PGUID 0 b t f 23 23 23 0 0 0 0 int4mi intltsel intltjoinsel ));
|
||||
DATA(insert OID = 556 ( "-" PGUID 0 b t f 21 23 23 0 0 0 0 int24mi intltsel intltjoinsel ));
|
||||
DATA(insert OID = 557 ( "-" PGUID 0 b t f 23 21 23 0 0 0 0 int42mi intltsel intltjoinsel ));
|
||||
DATA(insert OID = 558 ( "-" PGUID 0 l t f 0 23 23 0 0 0 0 int4um intltsel intltjoinsel ));
|
||||
DATA(insert OID = 559 ( "-" PGUID 0 l t f 0 21 21 0 0 0 0 int2um intltsel intltjoinsel ));
|
||||
DATA(insert OID = 560 ( "=" PGUID 0 b t t 702 702 16 560 561 562 562 abstimeeq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 561 ( "<>" PGUID 0 b t f 702 702 16 561 560 0 0 abstimene neqsel neqjoinsel ));
|
||||
DATA(insert OID = 562 ( "<" PGUID 0 b t f 702 702 16 563 565 0 0 abstimelt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 563 ( ">" PGUID 0 b t f 702 702 16 562 564 0 0 abstimegt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 564 ( "<=" PGUID 0 b t f 702 702 16 565 563 0 0 abstimele intltsel intltjoinsel ));
|
||||
DATA(insert OID = 565 ( ">=" PGUID 0 b t f 702 702 16 564 562 0 0 abstimege intltsel intltjoinsel ));
|
||||
DATA(insert OID = 566 ( "=" PGUID 0 b t t 703 703 16 566 567 568 568 reltimeeq - - ));
|
||||
DATA(insert OID = 567 ( "<>" PGUID 0 b t f 703 703 16 567 566 0 0 reltimene - - ));
|
||||
DATA(insert OID = 568 ( "<" PGUID 0 b t f 703 703 16 569 571 0 0 reltimelt - - ));
|
||||
DATA(insert OID = 569 ( ">" PGUID 0 b t f 703 703 16 568 570 0 0 reltimegt - - ));
|
||||
DATA(insert OID = 570 ( "<=" PGUID 0 b t f 703 703 16 571 569 0 0 reltimele - - ));
|
||||
DATA(insert OID = 571 ( ">=" PGUID 0 b t f 703 703 16 570 568 0 0 reltimege - - ));
|
||||
DATA(insert OID = 572 ( "=" PGUID 0 b t t 704 704 16 572 0 0 0 intervaleq - - ));
|
||||
DATA(insert OID = 573 ( "<<" PGUID 0 b t f 704 704 16 0 0 0 0 intervalct - - ));
|
||||
DATA(insert OID = 574 ( "&&" PGUID 0 b t f 704 704 16 0 0 0 0 intervalov - - ));
|
||||
DATA(insert OID = 575 ( "#=" PGUID 0 b t f 704 703 16 0 576 0 568 intervalleneq - - ));
|
||||
DATA(insert OID = 576 ( "#<>" PGUID 0 b t f 704 703 16 0 575 0 568 intervallenne - - ));
|
||||
DATA(insert OID = 577 ( "#<" PGUID 0 b t f 704 703 16 0 580 0 568 intervallenlt - - ));
|
||||
DATA(insert OID = 578 ( "#>" PGUID 0 b t f 704 703 16 0 579 0 568 intervallengt - - ));
|
||||
DATA(insert OID = 579 ( "#<=" PGUID 0 b t f 704 703 16 0 578 0 568 intervallenle - - ));
|
||||
DATA(insert OID = 580 ( "#>=" PGUID 0 b t f 704 703 16 0 577 0 568 intervallenge - - ));
|
||||
DATA(insert OID = 581 ( "+" PGUID 0 b t f 702 703 702 581 0 0 0 timepl - - ));
|
||||
DATA(insert OID = 582 ( "-" PGUID 0 b t f 702 703 702 0 0 0 0 timemi - - ));
|
||||
DATA(insert OID = 583 ( "<?>" PGUID 0 b t f 702 704 16 0 0 562 0 ininterval - - ));
|
||||
DATA(insert OID = 584 ( "-" PGUID 0 l t f 0 700 700 0 0 0 0 float4um - - ));
|
||||
DATA(insert OID = 585 ( "-" PGUID 0 l t f 0 701 701 0 0 0 0 float8um - - ));
|
||||
DATA(insert OID = 586 ( "+" PGUID 0 b t f 700 700 700 586 0 0 0 float4pl - - ));
|
||||
DATA(insert OID = 587 ( "-" PGUID 0 b t f 700 700 700 0 0 0 0 float4mi - - ));
|
||||
DATA(insert OID = 588 ( "/" PGUID 0 b t f 700 700 700 0 0 0 0 float4div - - ));
|
||||
DATA(insert OID = 589 ( "*" PGUID 0 b t f 700 700 700 589 0 0 0 float4mul - - ));
|
||||
DATA(insert OID = 590 ( "@" PGUID 0 l t f 0 700 700 0 0 0 0 float4abs - - ));
|
||||
DATA(insert OID = 591 ( "+" PGUID 0 b t f 701 701 701 591 0 0 0 float8pl - - ));
|
||||
DATA(insert OID = 592 ( "-" PGUID 0 b t f 701 701 701 0 0 0 0 float8mi - - ));
|
||||
DATA(insert OID = 593 ( "/" PGUID 0 b t f 701 701 701 0 0 0 0 float8div - - ));
|
||||
DATA(insert OID = 594 ( "*" PGUID 0 b t f 701 701 701 594 0 0 0 float8mul - - ));
|
||||
DATA(insert OID = 595 ( "@" PGUID 0 l t f 0 701 701 0 0 0 0 float8abs - - ));
|
||||
DATA(insert OID = 596 ( "|/" PGUID 0 l t f 0 701 701 0 0 0 0 dsqrt - - ));
|
||||
DATA(insert OID = 597 ( "||/" PGUID 0 l t f 0 701 701 0 0 0 0 dcbrt - - ));
|
||||
DATA(insert OID = 598 ( "%" PGUID 0 l t f 0 701 701 0 0 0 0 dtrunc - - ));
|
||||
DATA(insert OID = 599 ( "%" PGUID 0 r t f 701 0 701 0 0 0 0 dround - - ));
|
||||
DATA(insert OID = 601 ( ":" PGUID 0 l t f 0 701 701 0 0 0 0 dexp - - ));
|
||||
DATA(insert OID = 602 ( ";" PGUID 0 l t f 0 701 701 0 0 0 0 dlog1 - - ));
|
||||
DATA(insert OID = 603 ( "|" PGUID 0 l t f 0 704 702 0 0 0 0 intervalstart - - ));
|
||||
DATA(insert OID = 606 ( "<#>" PGUID 0 b t f 702 702 704 0 0 0 0 mktinterval - - ));
|
||||
DATA(insert OID = 607 ( "=" PGUID 0 b t t 26 26 16 607 608 97 97 oideq eqsel eqjoinsel ));
|
||||
#define OIDEqualOperator 607 /* XXX planner/prep/semanopt.c crock */
|
||||
DATA(insert OID = 608 ( "<>" PGUID 0 b t f 26 26 16 608 607 0 0 oidne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 609 ( "<" PGUID 0 b t f 26 26 16 610 612 0 0 int4lt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 610 ( ">" PGUID 0 b t f 26 26 16 609 611 0 0 int4gt intgtsel intgtjoinsel ));
|
||||
DATA(insert OID = 611 ( "<=" PGUID 0 b t f 26 26 16 612 610 0 0 int4le intltsel intltjoinsel ));
|
||||
DATA(insert OID = 612 ( ">=" PGUID 0 b t f 26 26 16 611 609 0 0 int4ge intgtsel intgtjoinsel ));
|
||||
DATA(insert OID = 620 ( "=" PGUID 0 b t t 700 700 16 620 621 622 622 float4eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 621 ( "<>" PGUID 0 b t f 700 700 16 621 620 0 0 float4ne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 622 ( "<" PGUID 0 b t f 700 700 16 623 625 0 0 float4lt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 623 ( ">" PGUID 0 b t f 700 700 16 622 624 0 0 float4gt intgtsel intgtjoinsel ));
|
||||
DATA(insert OID = 624 ( "<=" PGUID 0 b t f 700 700 16 625 623 0 0 float4le intltsel intltjoinsel ));
|
||||
DATA(insert OID = 625 ( ">=" PGUID 0 b t f 700 700 16 624 622 0 0 float4ge intgtsel intgtjoinsel ));
|
||||
DATA(insert OID = 626 ( "!!=" PGUID 0 b t f 23 19 16 0 0 0 0 int4notin "-" "-"));
|
||||
DATA(insert OID = 627 ( "!!=" PGUID 0 b t f 26 19 16 0 0 0 0 oidnotin "-" "-"));
|
||||
#define OIDNotInOperator 627 /* XXX planner/prep/semanopt.c crock */
|
||||
DATA(insert OID = 630 ( "<>" PGUID 0 b t f 18 18 16 630 92 0 0 charne neqsel neqjoinsel ));
|
||||
|
||||
DATA(insert OID = 631 ( "<" PGUID 0 b t f 18 18 16 633 634 0 0 charlt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 632 ( "<=" PGUID 0 b t f 18 18 16 634 633 0 0 charle intltsel intltjoinsel ));
|
||||
DATA(insert OID = 633 ( ">" PGUID 0 b t f 18 18 16 631 632 0 0 chargt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 634 ( ">=" PGUID 0 b t f 18 18 16 632 631 0 0 charge intltsel intltjoinsel ));
|
||||
|
||||
DATA(insert OID = 635 ( "+" PGUID 0 b t f 18 18 18 0 0 0 0 charpl eqsel eqjoinsel ));
|
||||
DATA(insert OID = 636 ( "-" PGUID 0 b t f 18 18 18 0 0 0 0 charmi eqsel eqjoinsel ));
|
||||
DATA(insert OID = 637 ( "*" PGUID 0 b t f 18 18 18 0 0 0 0 charmul eqsel eqjoinsel ));
|
||||
DATA(insert OID = 638 ( "/" PGUID 0 b t f 18 18 18 0 0 0 0 chardiv eqsel eqjoinsel ));
|
||||
|
||||
DATA(insert OID = 639 ( "~" PGUID 0 b t f 19 25 16 0 640 0 0 nameregexeq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 640 ( "!~" PGUID 0 b t f 19 25 16 0 639 0 0 nameregexne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 641 ( "~" PGUID 0 b t f 25 25 16 0 642 0 0 textregexeq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 642 ( "!~" PGUID 0 b t f 25 25 16 0 641 0 0 textregexne eqsel eqjoinsel ));
|
||||
DATA(insert OID = 643 ( "<>" PGUID 0 b t f 19 19 16 643 93 0 0 namene neqsel neqjoinsel ));
|
||||
DATA(insert OID = 644 ( "<>" PGUID 0 b t f 20 20 16 644 99 0 0 char16ne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 645 ( "<" PGUID 0 b t f 20 20 16 647 648 0 0 char16lt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 646 ( "<=" PGUID 0 b t f 20 20 16 648 647 0 0 char16le intltsel intltjoinsel ));
|
||||
DATA(insert OID = 647 ( ">" PGUID 0 b t f 20 20 16 645 646 0 0 char16gt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 648 ( ">=" PGUID 0 b t f 20 20 16 646 645 0 0 char16ge intltsel intltjoinsel ));
|
||||
DATA(insert OID = 649 ( "~" PGUID 0 b t f 20 25 16 0 650 0 0 char16regexeq intltsel intltjoinsel ));
|
||||
DATA(insert OID = 650 ( "!~" PGUID 0 b t f 20 25 16 650 0 0 0 char16regexne intltsel intltjoinsel ));
|
||||
DATA(insert OID = 651 ( "~~" PGUID 0 b t f 20 25 16 0 651 0 0 char16like eqsel eqjoinsel ));
|
||||
DATA(insert OID = 652 ( "!~~" PGUID 0 b t f 20 25 16 651 0 0 0 char16nlike neqsel neqjoinsel ));
|
||||
|
||||
DATA(insert OID = 660 ( "<" PGUID 0 b t f 19 19 16 662 663 0 0 namelt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 661 ( "<=" PGUID 0 b t f 19 19 16 663 662 0 0 namele intltsel intltjoinsel ));
|
||||
DATA(insert OID = 662 ( ">" PGUID 0 b t f 19 19 16 660 661 0 0 namegt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 663 ( ">=" PGUID 0 b t f 19 19 16 661 660 0 0 namege intltsel intltjoinsel ));
|
||||
DATA(insert OID = 664 ( "<" PGUID 0 b t f 25 25 16 666 667 0 0 text_lt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 665 ( "<=" PGUID 0 b t f 25 25 16 667 666 0 0 text_le intltsel intltjoinsel ));
|
||||
DATA(insert OID = 666 ( ">" PGUID 0 b t f 25 25 16 664 665 0 0 text_gt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 667 ( ">=" PGUID 0 b t f 25 25 16 665 664 0 0 text_ge intltsel intltjoinsel ));
|
||||
|
||||
DATA(insert OID = 670 ( "=" PGUID 0 b t f 701 701 16 670 671 0 0 float8eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 671 ( "<>" PGUID 0 b t f 701 701 16 671 670 0 0 float8ne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 672 ( "<" PGUID 0 b t f 701 701 16 674 675 0 0 float8lt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 673 ( "<=" PGUID 0 b t f 701 701 16 675 674 0 0 float8le intltsel intltjoinsel ));
|
||||
DATA(insert OID = 674 ( ">" PGUID 0 b t f 701 701 16 672 673 0 0 float8gt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 675 ( ">=" PGUID 0 b t f 701 701 16 673 672 0 0 float8ge intltsel intltjoinsel ));
|
||||
|
||||
DATA(insert OID = 676 ( "<" PGUID 0 b t f 911 911 16 680 679 0 0 oidnamelt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 677 ( "<=" PGUID 0 b t f 911 911 16 679 680 0 0 oidnamele intltsel intltjoinsel ));
|
||||
DATA(insert OID = 678 ( "=" PGUID 0 b t f 911 911 16 678 681 0 0 oidnameeq intltsel intltjoinsel ));
|
||||
DATA(insert OID = 679 ( ">=" PGUID 0 b t f 911 911 16 677 676 0 0 oidnamege intltsel intltjoinsel ));
|
||||
DATA(insert OID = 680 ( ">" PGUID 0 b t f 911 911 16 676 677 0 0 oidnamegt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 681 ( "<>" PGUID 0 b t f 911 911 16 681 678 0 0 oidnamene intltsel intltjoinsel ));
|
||||
|
||||
DATA(insert OID = 697 ( "~" PGUID 0 b t f 411 25 16 0 698 0 0 char8regexeq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 698 ( "!~" PGUID 0 b t f 411 25 16 0 697 0 0 char8regexne neqsel neqjoinsel ));
|
||||
|
||||
DATA(insert OID = 830 ( "<" PGUID 0 b t f 810 810 16 834 833 0 0 oidint2lt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 831 ( "<=" PGUID 0 b t f 810 810 16 833 834 0 0 oidint2le intltsel intltjoinsel ));
|
||||
DATA(insert OID = 832 ( "=" PGUID 0 b t f 810 810 16 832 835 0 0 oidint2eq intltsel intltjoinsel ));
|
||||
DATA(insert OID = 833 ( ">=" PGUID 0 b t f 810 810 16 831 830 0 0 oidint2ge intltsel intltjoinsel ));
|
||||
DATA(insert OID = 834 ( ">" PGUID 0 b t f 810 810 16 830 831 0 0 oidint2gt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 835 ( "<>" PGUID 0 b t f 810 810 16 835 832 0 0 oidint2ne intltsel intltjoinsel ));
|
||||
|
||||
DATA(insert OID = 839 ( "~" PGUID 0 b t f 409 25 16 0 841 0 0 char2regexeq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 841 ( "!~" PGUID 0 b t f 409 25 16 0 839 0 0 char2regexne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 840 ( "~" PGUID 0 b t f 410 25 16 0 842 0 0 char4regexeq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 842 ( "!~" PGUID 0 b t f 410 25 16 0 840 0 0 char4regexne neqsel neqjoinsel ));
|
||||
|
||||
DATA(insert OID = 930 ( "<" PGUID 0 b t f 910 910 16 934 933 0 0 oidint4lt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 931 ( "<=" PGUID 0 b t f 910 910 16 933 934 0 0 oidint4le intltsel intltjoinsel ));
|
||||
DATA(insert OID = 932 ( "=" PGUID 0 b t f 910 910 16 932 935 0 0 oidint4eq intltsel intltjoinsel ));
|
||||
DATA(insert OID = 933 ( ">=" PGUID 0 b t f 910 910 16 931 930 0 0 oidint4ge intltsel intltjoinsel ));
|
||||
DATA(insert OID = 934 ( ">" PGUID 0 b t f 910 910 16 930 931 0 0 oidint4gt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 935 ( "<>" PGUID 0 b t f 910 910 16 935 932 0 0 oidint4ne intltsel intltjoinsel ));
|
||||
|
||||
DATA(insert OID = 965 ( "^" PGUID 0 b t f 701 701 701 0 0 0 0 dpow - - ));
|
||||
DATA(insert OID = 966 ( "+" PGUID 0 b t f 1034 1033 1034 0 0 0 0 aclinsert intltsel intltjoinsel ));
|
||||
DATA(insert OID = 967 ( "-" PGUID 0 b t f 1034 1033 1034 0 0 0 0 aclremove intltsel intltjoinsel ));
|
||||
DATA(insert OID = 968 ( "~" PGUID 0 b t f 1034 1033 16 0 0 0 0 aclcontains intltsel intltjoinsel ));
|
||||
|
||||
DATA(insert OID = 1054 ( "=" PGUID 0 b t t 1042 1042 16 1054 1057 1058 1058 bpchareq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1055 ( "~" PGUID 0 b t f 1042 25 16 0 1056 0 0 textregexeq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1056 ( "!~" PGUID 0 b t f 1042 25 16 0 1055 0 0 textregexne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1057 ( "<>" PGUID 0 b t f 1042 1042 16 1057 1054 0 0 bpcharne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1058 ( "<" PGUID 0 b t f 1042 1042 16 1060 1061 0 0 bpcharlt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 1059 ( "<=" PGUID 0 b t f 1042 1042 16 1061 1060 0 0 bpcharle intltsel intltjoinsel ));
|
||||
DATA(insert OID = 1060 ( ">" PGUID 0 b t f 1042 1042 16 1058 1059 0 0 bpchargt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 1061 ( ">=" PGUID 0 b t f 1042 1042 16 1059 1058 0 0 bpcharge intltsel intltjoinsel ));
|
||||
|
||||
DATA(insert OID = 1062 ( "=" PGUID 0 b t t 1043 1043 16 1062 1065 1066 1066 varchareq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1063 ( "~" PGUID 0 b t f 1043 25 16 0 1064 0 0 textregexeq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1064 ( "!~" PGUID 0 b t f 1043 25 16 0 1063 0 0 textregexne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1065 ( "<>" PGUID 0 b t f 1043 1043 16 1065 1062 0 0 varcharne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1066 ( "<" PGUID 0 b t f 1043 1043 16 1068 1069 0 0 varcharlt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 1067 ( "<=" PGUID 0 b t f 1043 1043 16 1069 1068 0 0 varcharle intltsel intltjoinsel ));
|
||||
DATA(insert OID = 1068 ( ">" PGUID 0 b t f 1043 1043 16 1066 1067 0 0 varchargt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 1069 ( ">=" PGUID 0 b t f 1043 1043 16 1067 1066 0 0 varcharge intltsel intltjoinsel ));
|
||||
|
||||
DATA(insert OID = 1093 ( "=" PGUID 0 b t t 1082 1082 16 1093 1094 1095 1095 date_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1094 ( "<>" PGUID 0 b t f 1082 1082 16 1094 1093 0 0 date_ne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1095 ( "<" PGUID 0 b t f 1082 1082 16 1097 1098 0 0 date_lt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 1096 ( "<=" PGUID 0 b t f 1082 1082 16 1098 1097 0 0 date_le intltsel intltjoinsel ));
|
||||
DATA(insert OID = 1097 ( ">" PGUID 0 b t f 1082 1082 16 1095 1096 0 0 date_gt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 1098 ( ">=" PGUID 0 b t f 1082 1082 16 1096 1065 0 0 date_ge intltsel intltjoinsel ));
|
||||
|
||||
DATA(insert OID = 1108 ( "=" PGUID 0 b t t 1083 1083 16 1108 1109 1110 1110 time_eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1109 ( "<>" PGUID 0 b t f 1083 1083 16 1109 1108 0 0 time_ne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1110 ( "<" PGUID 0 b t f 1083 1083 16 1112 1113 0 0 time_lt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 1111 ( "<=" PGUID 0 b t f 1083 1083 16 1113 1112 0 0 time_le intltsel intltjoinsel ));
|
||||
DATA(insert OID = 1112 ( ">" PGUID 0 b t f 1083 1083 16 1110 1111 0 0 time_gt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 1113 ( ">=" PGUID 0 b t f 1083 1083 16 1111 1065 0 0 time_ge intltsel intltjoinsel ));
|
||||
|
||||
/* float48 operators */
|
||||
DATA(insert OID = 1116 ( "+" PGUID 0 b t f 700 701 701 1116 0 0 0 float48pl - - ));
|
||||
DATA(insert OID = 1117 ( "-" PGUID 0 b t f 700 701 701 0 0 0 0 float48mi - - ));
|
||||
DATA(insert OID = 1118 ( "/" PGUID 0 b t f 700 701 701 0 0 0 0 float48div - - ));
|
||||
DATA(insert OID = 1119 ( "*" PGUID 0 b t f 700 701 701 1119 0 0 0 float48mul - - ));
|
||||
DATA(insert OID = 1120 ( "=" PGUID 0 b t t 700 701 16 1120 1121 1122 1122 float48eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1121 ( "<>" PGUID 0 b t f 700 701 16 1121 1120 0 0 float48ne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1122 ( "<" PGUID 0 b t f 700 701 16 1123 1125 0 0 float48lt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 1123 ( ">" PGUID 0 b t f 700 701 16 1122 1124 0 0 float48gt intgtsel intgtjoinsel ));
|
||||
DATA(insert OID = 1124 ( "<=" PGUID 0 b t f 700 701 16 1125 1123 0 0 float48le intltsel intltjoinsel ));
|
||||
DATA(insert OID = 1125 ( ">=" PGUID 0 b t f 700 701 16 1124 1122 0 0 float48ge intgtsel intgtjoinsel ));
|
||||
|
||||
/* float84 operators */
|
||||
DATA(insert OID = 1126 ( "+" PGUID 0 b t f 701 700 701 1126 0 0 0 float84pl - - ));
|
||||
DATA(insert OID = 1127 ( "-" PGUID 0 b t f 701 700 701 0 0 0 0 float84mi - - ));
|
||||
DATA(insert OID = 1128 ( "/" PGUID 0 b t f 701 700 701 0 0 0 0 float84div - - ));
|
||||
DATA(insert OID = 1129 ( "*" PGUID 0 b t f 701 700 701 1129 0 0 0 float84mul - - ));
|
||||
DATA(insert OID = 1130 ( "=" PGUID 0 b t t 701 700 16 1130 1131 1132 1132 float84eq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1131 ( "<>" PGUID 0 b t f 701 700 16 1131 1130 0 0 float84ne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1132 ( "<" PGUID 0 b t f 701 700 16 1133 1135 0 0 float84lt intltsel intltjoinsel ));
|
||||
DATA(insert OID = 1133 ( ">" PGUID 0 b t f 701 700 16 1132 1134 0 0 float84gt intgtsel intgtjoinsel ));
|
||||
DATA(insert OID = 1134 ( "<=" PGUID 0 b t f 701 700 16 1135 1133 0 0 float84le intltsel intltjoinsel ));
|
||||
DATA(insert OID = 1135 ( ">=" PGUID 0 b t f 701 700 16 1134 1132 0 0 float84ge intgtsel intgtjoinsel ));
|
||||
|
||||
/* int4 and oid equality */
|
||||
DATA(insert OID = 1136 ( "=" PGUID 0 b t t 23 26 16 1137 0 0 0 int4eqoid eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1137 ( "=" PGUID 0 b t t 26 23 16 1136 0 0 0 oideqint4 eqsel eqjoinsel ));
|
||||
|
||||
/* LIKE hacks by Keith Parks. */
|
||||
DATA(insert OID = 1201 ( "~~" PGUID 0 b t f 409 25 16 0 1202 0 0 char2like eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1202 ( "!~~" PGUID 0 b t f 409 25 16 0 1201 0 0 char2nlike neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1203 ( "~~" PGUID 0 b t f 410 25 16 0 1204 0 0 char4like eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1204 ( "!~~" PGUID 0 b t f 410 25 16 0 1203 0 0 char4nlike neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1205 ( "~~" PGUID 0 b t f 411 25 16 0 1206 0 0 char8like eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1206 ( "!~~" PGUID 0 b t f 411 25 16 0 1205 0 0 char8nlike neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1207 ( "~~" PGUID 0 b t f 19 25 16 0 1208 0 0 namelike eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1208 ( "!~~" PGUID 0 b t f 19 25 16 0 1207 0 0 namenlike neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1209 ( "~~" PGUID 0 b t f 25 25 16 0 1210 0 0 textlike eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1210 ( "!~~" PGUID 0 b t f 25 25 16 0 1209 0 0 textnlike neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1211 ( "~~" PGUID 0 b t f 1042 25 16 0 1212 0 0 textlike eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1212 ( "!~~" PGUID 0 b t f 1042 25 16 0 1211 0 0 textnlike neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1213 ( "~~" PGUID 0 b t f 1043 25 16 0 1214 0 0 textlike eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1214 ( "!~~" PGUID 0 b t f 1043 25 16 0 1213 0 0 textnlike neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1215 ( "~~" PGUID 0 b t f 20 25 16 0 1216 0 0 char16like eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1216 ( "!~~" PGUID 0 b t f 20 25 16 0 1215 0 0 char16nlike neqsel neqjoinsel ));
|
||||
|
||||
/* case-insensitive LIKE hacks */
|
||||
DATA(insert OID = 1220 ( "~*" PGUID 0 b t f 409 25 16 0 1221 0 0 char2icregexeq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1221 ( "!~*" PGUID 0 b t f 409 25 16 0 1220 0 0 char2icregexne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1222 ( "~*" PGUID 0 b t f 410 25 16 0 1223 0 0 char4icregexeq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1223 ( "!~*" PGUID 0 b t f 410 25 16 0 1222 0 0 char4icregexne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1224 ( "~*" PGUID 0 b t f 411 25 16 0 1225 0 0 char8icregexeq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1225 ( "!~*" PGUID 0 b t f 411 25 16 0 1224 0 0 char8icregexne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1226 ( "~*" PGUID 0 b t f 19 25 16 0 1227 0 0 nameicregexeq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1227 ( "!~*" PGUID 0 b t f 19 25 16 0 1226 0 0 nameicregexne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1228 ( "~*" PGUID 0 b t f 25 25 16 0 1229 0 0 texticregexeq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1229 ( "!~*" PGUID 0 b t f 25 25 16 0 1228 0 0 texticregexne eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1230 ( "~*" PGUID 0 b t f 20 25 16 0 1231 0 0 char16icregexeq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1231 ( "!~*" PGUID 0 b t f 20 25 16 0 1230 0 0 char16icregexne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1232 ( "~*" PGUID 0 b t f 1043 25 16 0 1233 0 0 texticregexeq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1233 ( "!~*" PGUID 0 b t f 1043 25 16 0 1232 0 0 texticregexne neqsel neqjoinsel ));
|
||||
DATA(insert OID = 1234 ( "~*" PGUID 0 b t f 1042 25 16 0 1235 0 0 texticregexeq eqsel eqjoinsel ));
|
||||
DATA(insert OID = 1235 ( "!~*" PGUID 0 b t f 1042 25 16 0 1234 0 0 texticregexne neqsel neqjoinsel ));
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* function prototypes
|
||||
*/
|
||||
extern void OperatorCreate(char *operatorName,
|
||||
char *leftTypeName,
|
||||
char *rightTypeName,
|
||||
char *procedureName,
|
||||
uint16 precedence,
|
||||
bool isLeftAssociative,
|
||||
char *commutatorName,
|
||||
char *negatorName,
|
||||
char *restrictionName,
|
||||
char *joinName,
|
||||
bool canHash,
|
||||
char *leftSortName,
|
||||
char *rightSortName);
|
||||
|
||||
#endif /* PG_OPERATOR_H */
|
||||
@@ -1,116 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_parg.h--
|
||||
* definition of the system "parg" relation (pg_parg)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_parg.h,v 1.1.1.1 1996/07/09 06:21:17 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_PARG_H
|
||||
#define PG_PARG_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_parg definition. cpp turns this into
|
||||
* typedef struct FormData_pg_parg
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_parg) {
|
||||
Oid parproid;
|
||||
int2 parnum;
|
||||
char parbound;
|
||||
Oid partype;
|
||||
} FormData_pg_parg;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_parg corresponds to a pointer to a tuple with
|
||||
* the format of pg_parg relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_parg *Form_pg_parg;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_parg
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_parg 4
|
||||
#define Anum_pg_parg_parproid 1
|
||||
#define Anum_pg_parg_parnum 2
|
||||
#define Anum_pg_parg_parbound 3
|
||||
#define Anum_pg_parg_partype 4
|
||||
|
||||
/* ----------------
|
||||
* initial contents of pg_parg
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
DATA(insert OID = 0 ( 28 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 29 1 - 16 ));
|
||||
DATA(insert OID = 0 ( 30 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 31 1 - 17 ));
|
||||
DATA(insert OID = 0 ( 32 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 33 1 - 18 ));
|
||||
DATA(insert OID = 0 ( 34 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 35 1 - 19 ));
|
||||
DATA(insert OID = 0 ( 36 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 37 1 - 20 ));
|
||||
DATA(insert OID = 0 ( 38 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 39 1 - 21 ));
|
||||
DATA(insert OID = 0 ( 40 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 41 1 - 22 ));
|
||||
DATA(insert OID = 0 ( 42 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 43 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 44 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 45 1 - 24 ));
|
||||
DATA(insert OID = 0 ( 46 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 47 1 - 25 ));
|
||||
DATA(insert OID = 0 ( 50 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 50 2 - 23 ));
|
||||
DATA(insert OID = 0 ( 50 3 - 23 ));
|
||||
DATA(insert OID = 0 ( 51 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 52 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 52 2 - 23 ));
|
||||
DATA(insert OID = 0 ( 52 3 - 23 ));
|
||||
DATA(insert OID = 0 ( 52 4 - 23 ));
|
||||
DATA(insert OID = 0 ( 53 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 54 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 54 2 - 23 ));
|
||||
DATA(insert OID = 0 ( 55 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 55 2 - 23 ));
|
||||
DATA(insert OID = 0 ( 56 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 56 2 - 23 ));
|
||||
DATA(insert OID = 0 ( 57 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 57 2 - 23 ));
|
||||
DATA(insert OID = 0 ( 57 3 - 23 ));
|
||||
DATA(insert OID = 0 ( 60 1 - 16 ));
|
||||
DATA(insert OID = 0 ( 60 2 - 16 ));
|
||||
DATA(insert OID = 0 ( 61 1 - 18 ));
|
||||
DATA(insert OID = 0 ( 61 2 - 18 ));
|
||||
DATA(insert OID = 0 ( 63 1 - 21 ));
|
||||
DATA(insert OID = 0 ( 63 2 - 21 ));
|
||||
DATA(insert OID = 0 ( 64 1 - 21 ));
|
||||
DATA(insert OID = 0 ( 64 2 - 21 ));
|
||||
DATA(insert OID = 0 ( 65 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 65 2 - 23 ));
|
||||
DATA(insert OID = 0 ( 66 1 - 23 ));
|
||||
DATA(insert OID = 0 ( 66 2 - 23 ));
|
||||
DATA(insert OID = 0 ( 67 1 - 25 ));
|
||||
DATA(insert OID = 0 ( 67 2 - 25 ));
|
||||
|
||||
#endif /* PG_PARG_H */
|
||||
@@ -1,780 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_proc.h--
|
||||
* definition of the system "procedure" relation (pg_proc)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_proc.h,v 1.2 1996/08/26 06:29:46 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* The script catalog/genbki.sh reads this file and generates .bki
|
||||
* information from the DATA() statements. utils/Gen_fmgrtab.sh
|
||||
* generates fmgr.h and fmgrtab.c the same way.
|
||||
*
|
||||
* XXX do NOT break up DATA() statements into multiple lines!
|
||||
* the scripts are not as smart as you might think...
|
||||
* XXX (eg. #if 0 #endif won't do what you think)
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_PROC_H
|
||||
#define PG_PROC_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
#include "nodes/pg_list.h"
|
||||
#include "tcop/dest.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_proc definition. cpp turns this into
|
||||
* typedef struct FormData_pg_proc
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_proc) BOOTSTRAP {
|
||||
NameData proname;
|
||||
Oid proowner;
|
||||
Oid prolang;
|
||||
bool proisinh;
|
||||
bool proistrusted;
|
||||
bool proiscachable;
|
||||
int2 pronargs;
|
||||
bool proretset;
|
||||
Oid prorettype;
|
||||
oid8 proargtypes;
|
||||
int4 probyte_pct;
|
||||
int4 properbyte_cpu;
|
||||
int4 propercall_cpu;
|
||||
int4 prooutin_ratio;
|
||||
text prosrc; /* VARIABLE LENGTH FIELD */
|
||||
bytea probin; /* VARIABLE LENGTH FIELD */
|
||||
} FormData_pg_proc;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_proc corresponds to a pointer to a tuple with
|
||||
* the format of pg_proc relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_proc *Form_pg_proc;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_proc
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_proc 16
|
||||
#define Anum_pg_proc_proname 1
|
||||
#define Anum_pg_proc_proowner 2
|
||||
#define Anum_pg_proc_prolang 3
|
||||
#define Anum_pg_proc_proisinh 4
|
||||
#define Anum_pg_proc_proistrusted 5
|
||||
#define Anum_pg_proc_proiscachable 6
|
||||
#define Anum_pg_proc_pronargs 7
|
||||
#define Anum_pg_proc_proretset 8
|
||||
#define Anum_pg_proc_prorettype 9
|
||||
#define Anum_pg_proc_proargtypes 10
|
||||
#define Anum_pg_proc_probyte_pct 11
|
||||
#define Anum_pg_proc_properbyte_cpu 12
|
||||
#define Anum_pg_proc_propercall_cpu 13
|
||||
#define Anum_pg_proc_prooutin_ratio 14
|
||||
#define Anum_pg_proc_prosrc 15
|
||||
#define Anum_pg_proc_probin 16
|
||||
|
||||
/* ----------------
|
||||
* initial contents of pg_proc
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
/* keep the following ordered by OID so that later changes can be made easier*/
|
||||
|
||||
/* OIDS 1 - 99 */
|
||||
DATA(insert OID = 28 ( boolin PGUID 11 f t f 1 f 16 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 29 ( boolout PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 30 ( byteain PGUID 11 f t f 1 f 17 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 31 ( byteaout PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 32 ( charin PGUID 11 f t f 1 f 18 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 33 ( charout PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 34 ( namein PGUID 11 f t f 1 f 19 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 35 ( nameout PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 36 ( char16in PGUID 11 f t f 1 f 19 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 37 ( char16out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 38 ( int2in PGUID 11 f t f 1 f 21 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 39 ( int2out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 40 ( int28in PGUID 11 f t f 1 f 22 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 41 ( int28out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 42 ( int4in PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 43 ( int4out PGUID 11 f t f 1 f 19 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 44 ( regprocin PGUID 11 f t f 1 f 24 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 45 ( regprocout PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 46 ( textin PGUID 11 f t f 1 f 25 "0" 100 0 0 100 foo bar ));
|
||||
#define TextInRegProcedure 46
|
||||
|
||||
DATA(insert OID = 47 ( textout PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 48 ( tidin PGUID 11 f t f 1 f 27 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 49 ( tidout PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 50 ( xidin PGUID 11 f t f 1 f 28 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 51 ( xidout PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 52 ( cidin PGUID 11 f t f 1 f 29 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 53 ( cidout PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 54 ( oid8in PGUID 11 f t f 1 f 30 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 55 ( oid8out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 60 ( booleq PGUID 11 f t f 2 f 16 "16 16" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 61 ( chareq PGUID 11 f t f 2 f 16 "18 18" 100 0 0 100 foo bar ));
|
||||
#define CharacterEqualRegProcedure 61
|
||||
|
||||
DATA(insert OID = 62 ( nameeq PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar ));
|
||||
#define NameEqualRegProcedure 62
|
||||
|
||||
DATA(insert OID = 63 ( int2eq PGUID 11 f t f 2 f 16 "21 21" 100 0 0 100 foo bar ));
|
||||
#define Integer16EqualRegProcedure 63
|
||||
|
||||
DATA(insert OID = 64 ( int2lt PGUID 11 f t f 2 f 16 "21 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 65 ( int4eq PGUID 11 f t f 2 f 16 "23 23" 100 0 0 100 foo bar ));
|
||||
#define Integer32EqualRegProcedure 65
|
||||
|
||||
DATA(insert OID = 66 ( int4lt PGUID 11 f t f 2 f 16 "23 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 67 ( texteq PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0 foo bar ));
|
||||
#define TextEqualRegProcedure 67
|
||||
|
||||
DATA(insert OID = 68 ( xideq PGUID 11 f t f 2 f 16 "28 28" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 69 ( cideq PGUID 11 f t f 2 f 16 "29 29" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 70 ( charne PGUID 11 f t f 2 f 16 "18 18" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 71 ( charlt PGUID 11 f t f 2 f 16 "18 18" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 72 ( charle PGUID 11 f t f 2 f 16 "18 18" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 73 ( chargt PGUID 11 f t f 2 f 16 "18 18" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 74 ( charge PGUID 11 f t f 2 f 16 "18 18" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 75 ( charpl PGUID 11 f t f 2 f 18 "18 18" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 76 ( charmi PGUID 11 f t f 2 f 18 "18 18" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 77 ( charmul PGUID 11 f t f 2 f 18 "18 18" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 78 ( chardiv PGUID 11 f t f 2 f 18 "18 18" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 79 ( nameregexeq PGUID 11 f t f 2 f 16 "19 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 80 ( nameregexne PGUID 11 f t f 2 f 16 "19 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 81 ( textregexeq PGUID 11 f t f 2 f 16 "25 25" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 82 ( textregexne PGUID 11 f t f 2 f 16 "25 25" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 83 ( textcat PGUID 11 f t f 2 f 25 "25 25" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 84 ( boolne PGUID 11 f t f 2 f 16 "16 16" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 97 ( rtsel PGUID 11 f t f 7 f 701 "26 26 21 0 23 23 26" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 98 ( rtnpage PGUID 11 f t f 7 f 701 "26 26 21 0 23 23 26" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 99 ( btreesel PGUID 11 f t f 7 f 701 "26 26 21 0 23 23 26" 100 0 0 100 foo bar ));
|
||||
|
||||
/* OIDS 100 - 199 */
|
||||
|
||||
DATA(insert OID = 100 ( btreenpage PGUID 11 f t f 7 f 701 "26 26 21 0 23 23 26" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 101 ( eqsel PGUID 11 f t f 5 f 701 "26 26 21 0 23" 100 0 0 100 foo bar ));
|
||||
#define EqualSelectivityProcedure 101
|
||||
|
||||
DATA(insert OID = 102 ( neqsel PGUID 11 f t f 5 f 701 "26 26 21 0 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 103 ( intltsel PGUID 11 f t f 5 f 701 "26 26 21 0 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 104 ( intgtsel PGUID 11 f t f 5 f 701 "26 26 21 0 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 105 ( eqjoinsel PGUID 11 f t f 5 f 701 "26 26 21 26 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 106 ( neqjoinsel PGUID 11 f t f 5 f 701 "26 26 21 26 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 107 ( intltjoinsel PGUID 11 f t f 5 f 701 "26 26 21 26 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 108 ( intgtjoinsel PGUID 11 f t f 5 f 701 "26 26 21 26 21" 100 0 0 100 foo bar ));
|
||||
|
||||
|
||||
|
||||
DATA(insert OID = 117 ( point_in PGUID 11 f t f 1 f 600 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 118 ( point_out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 119 ( lseg_in PGUID 11 f t f 1 f 601 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 120 ( lseg_out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 121 ( path_in PGUID 11 f t f 1 f 602 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 122 ( path_out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 123 ( box_in PGUID 11 f t f 1 f 603 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 124 ( box_out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 125 ( box_overlap PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100 foo bar ));
|
||||
DATA(insert OID = 126 ( box_ge PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100 foo bar ));
|
||||
DATA(insert OID = 127 ( box_gt PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100 foo bar ));
|
||||
DATA(insert OID = 128 ( box_eq PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100 foo bar ));
|
||||
DATA(insert OID = 129 ( box_lt PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100 foo bar ));
|
||||
DATA(insert OID = 130 ( box_le PGUID 11 f t f 2 f 16 "603 603" 100 1 0 100 foo bar ));
|
||||
DATA(insert OID = 131 ( point_above PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 132 ( point_left PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 133 ( point_right PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 134 ( point_below PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 135 ( point_eq PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 136 ( on_pb PGUID 11 f t f 2 f 16 "600 603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 137 ( on_ppath PGUID 11 f t f 2 f 16 "600 602" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 138 ( box_center PGUID 11 f t f 1 f 600 "603" 100 1 0 100 foo bar ));
|
||||
DATA(insert OID = 139 ( areasel PGUID 11 f t f 5 f 701 "26 26 21 0 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 140 ( areajoinsel PGUID 11 f t f 5 f 701 "26 26 21 0 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 141 ( int4mul PGUID 11 f t f 2 f 23 "23 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 142 ( int4fac PGUID 11 f t f 1 f 23 "23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 143 ( pointdist PGUID 11 f t f 2 f 23 "600 600" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 144 ( int4ne PGUID 11 f t f 2 f 16 "23 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 145 ( int2ne PGUID 11 f t f 2 f 16 "21 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 146 ( int2gt PGUID 11 f t f 2 f 16 "21 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 147 ( int4gt PGUID 11 f t f 2 f 16 "23 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 148 ( int2le PGUID 11 f t f 2 f 16 "21 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 149 ( int4le PGUID 11 f t f 2 f 16 "23 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 150 ( int4ge PGUID 11 f t f 2 f 16 "23 23" 100 0 0 100 foo bar ));
|
||||
#define INT4GE_PROC_OID 150
|
||||
DATA(insert OID = 151 ( int2ge PGUID 11 f t f 2 f 16 "21 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 152 ( int2mul PGUID 11 f t f 2 f 21 "21 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 153 ( int2div PGUID 11 f t f 2 f 21 "21 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 154 ( int4div PGUID 11 f t f 2 f 23 "23 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 155 ( int2mod PGUID 11 f t f 2 f 21 "21 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 156 ( int4mod PGUID 11 f t f 2 f 23 "23 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 157 ( textne PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0 foo bar ));
|
||||
DATA(insert OID = 158 ( int24eq PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 159 ( int42eq PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 160 ( int24lt PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 161 ( int42lt PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 162 ( int24gt PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 163 ( int42gt PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 164 ( int24ne PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 165 ( int42ne PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 166 ( int24le PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 167 ( int42le PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 168 ( int24ge PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 169 ( int42ge PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 170 ( int24mul PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 171 ( int42mul PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 172 ( int24div PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 173 ( int42div PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 174 ( int24mod PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 175 ( int42mod PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 176 ( int2pl PGUID 11 f t f 2 f 21 "21 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 177 ( int4pl PGUID 11 f t f 2 f 23 "23 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 178 ( int24pl PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 179 ( int42pl PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 180 ( int2mi PGUID 11 f t f 2 f 21 "21 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 181 ( int4mi PGUID 11 f t f 2 f 23 "23 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 182 ( int24mi PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 183 ( int42mi PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 184 ( oideq PGUID 11 f t f 2 f 16 "26 26" 100 0 0 100 foo bar ));
|
||||
#define ObjectIdEqualRegProcedure 184
|
||||
|
||||
DATA(insert OID = 185 ( oidne PGUID 11 f t f 2 f 16 "26 26" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 186 ( box_same PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 187 ( box_contain PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 188 ( box_left PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 189 ( box_overleft PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 190 ( box_overright PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 191 ( box_right PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 192 ( box_contained PGUID 11 f t f 2 f 16 "603 603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 193 ( rt_box_union PGUID 11 f t f 2 f 603 "603 603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 194 ( rt_box_inter PGUID 11 f t f 2 f 603 "603 603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 195 ( rt_box_size PGUID 11 f t f 2 f 700 "603 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 196 ( rt_bigbox_size PGUID 11 f t f 2 f 700 "603 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 197 ( rt_poly_union PGUID 11 f t f 2 f 604 "604 604" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 198 ( rt_poly_inter PGUID 11 f t f 2 f 604 "604 604" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 199 ( rt_poly_size PGUID 11 f t f 2 f 23 "604 23" 100 0 0 100 foo bar ));
|
||||
|
||||
/* OIDS 200 - 299 */
|
||||
|
||||
DATA(insert OID = 200 ( float4in PGUID 11 f t f 1 f 700 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 201 ( float4out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 202 ( float4mul PGUID 11 f t f 2 f 700 "700 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 203 ( float4div PGUID 11 f t f 2 f 700 "700 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 204 ( float4pl PGUID 11 f t f 2 f 700 "700 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 205 ( float4mi PGUID 11 f t f 2 f 700 "700 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 206 ( float4um PGUID 11 f t f 1 f 700 "700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 207 ( float4abs PGUID 11 f t f 1 f 700 "700 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 208 ( float4inc PGUID 11 f t f 1 f 700 "700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 209 ( float4larger PGUID 11 f t f 2 f 700 "700 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 211 ( float4smaller PGUID 11 f t f 2 f 700 "700 700" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 212 ( int4um PGUID 11 f t f 1 f 23 "23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 213 ( int2um PGUID 11 f t f 1 f 21 "21" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 214 ( float8in PGUID 11 f t f 1 f 701 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 215 ( float8out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 216 ( float8mul PGUID 11 f t f 2 f 701 "701 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 217 ( float8div PGUID 11 f t f 2 f 701 "701 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 218 ( float8pl PGUID 11 f t f 2 f 701 "701 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 219 ( float8mi PGUID 11 f t f 2 f 701 "701 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 220 ( float8um PGUID 11 f t f 1 f 701 "701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 221 ( float8abs PGUID 11 f t f 1 f 701 "701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 222 ( float8inc PGUID 11 f t f 1 f 701 "701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 223 ( float8larger PGUID 11 f t f 2 f 701 "701 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 224 ( float8smaller PGUID 11 f t f 2 f 701 "701 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 228 ( dround PGUID 11 f t f 1 f 701 "701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 229 ( dtrunc PGUID 11 f t f 1 f 701 "701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 230 ( dsqrt PGUID 11 f t f 1 f 701 "701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 231 ( dcbrt PGUID 11 f t f 1 f 701 "701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 232 ( dpow PGUID 11 f t f 2 f 701 "701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 233 ( dexp PGUID 11 f t f 1 f 701 "701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 234 ( dlog1 PGUID 11 f t f 1 f 701 "701" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 240 ( nabstimein PGUID 11 f t f 1 f 702 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 241 ( nabstimeout PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 242 ( reltimein PGUID 11 f t f 1 f 703 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 243 ( reltimeout PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 244 ( timepl PGUID 11 f t f 2 f 702 "702 703" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 245 ( timemi PGUID 11 f t f 2 f 702 "702 703" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 246 ( tintervalin PGUID 11 f t f 1 f 704 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 247 ( tintervalout PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 248 ( ininterval PGUID 11 f t f 2 f 16 "702 704" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 249 ( intervalrel PGUID 11 f t f 1 f 703 "704" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 250 ( timenow PGUID 11 f t f 0 f 702 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 251 ( abstimeeq PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 252 ( abstimene PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 253 ( abstimelt PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 254 ( abstimegt PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 255 ( abstimele PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 256 ( abstimege PGUID 11 f t f 2 f 16 "702 702" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 257 ( reltimeeq PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 258 ( reltimene PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 259 ( reltimelt PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 260 ( reltimegt PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 261 ( reltimele PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 262 ( reltimege PGUID 11 f t f 2 f 16 "703 703" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 263 ( intervaleq PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 264 ( intervalct PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 265 ( intervalov PGUID 11 f t f 2 f 16 "704 704" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 266 ( intervalleneq PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 267 ( intervallenne PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 268 ( intervallenlt PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 269 ( intervallengt PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 270 ( intervallenle PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 271 ( intervallenge PGUID 11 f t f 2 f 16 "704 703" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 272 ( intervalstart PGUID 11 f t f 1 f 702 "704" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 273 ( intervalend PGUID 11 f t f 1 f 702 "704" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 274 ( timeofday PGUID 11 f t f 0 f 25 "0" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 276 ( int2fac PGUID 11 f t f 1 f 21 "21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 279 ( float48mul PGUID 11 f t f 2 f 701 "700 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 280 ( float48div PGUID 11 f t f 2 f 701 "700 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 281 ( float48pl PGUID 11 f t f 2 f 701 "700 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 282 ( float48mi PGUID 11 f t f 2 f 701 "700 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 283 ( float84mul PGUID 11 f t f 2 f 701 "701 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 284 ( float84div PGUID 11 f t f 2 f 701 "701 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 285 ( float84pl PGUID 11 f t f 2 f 701 "701 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 286 ( float84mi PGUID 11 f t f 2 f 701 "701 700" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 287 ( float4eq PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 288 ( float4ne PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 289 ( float4lt PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 290 ( float4le PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 291 ( float4gt PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 292 ( float4ge PGUID 11 f t f 2 f 16 "700 700" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 293 ( float8eq PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 294 ( float8ne PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 295 ( float8lt PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 296 ( float8le PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 297 ( float8gt PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 298 ( float8ge PGUID 11 f t f 2 f 16 "701 701" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 299 ( float48eq PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100 foo bar ));
|
||||
|
||||
/* OIDS 300 - 399 */
|
||||
|
||||
DATA(insert OID = 300 ( float48ne PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 301 ( float48lt PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 302 ( float48le PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 303 ( float48gt PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 304 ( float48ge PGUID 11 f t f 2 f 16 "700 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 305 ( float84eq PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 306 ( float84ne PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 307 ( float84lt PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 308 ( float84le PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 309 ( float84gt PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 310 ( float84ge PGUID 11 f t f 2 f 16 "701 700" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 311 ( ftod PGUID 11 f t f 2 f 701 "700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 312 ( dtof PGUID 11 f t f 2 f 700 "701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 313 ( i2toi4 PGUID 11 f t f 2 f 23 "21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 314 ( i4toi2 PGUID 11 f t f 2 f 21 "23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 315 ( keyfirsteq PGUID 11 f t f 2 f 16 "0 21" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 320 ( rtinsert PGUID 11 f t f 4 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 321 ( rtdelete PGUID 11 f t f 2 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 322 ( rtgettuple PGUID 11 f t f 2 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 323 ( rtbuild PGUID 11 f t f 9 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 324 ( rtbeginscan PGUID 11 f t f 4 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 325 ( rtendscan PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 326 ( rtmarkpos PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 327 ( rtrestrpos PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 328 ( rtrescan PGUID 11 f t f 3 f 23 "0" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 330 ( btgettuple PGUID 11 f t f 2 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 331 ( btinsert PGUID 11 f t f 4 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 332 ( btdelete PGUID 11 f t f 2 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 333 ( btbeginscan PGUID 11 f t f 4 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 334 ( btrescan PGUID 11 f t f 3 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 335 ( btendscan PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 336 ( btmarkpos PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 337 ( btrestrpos PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 338 ( btbuild PGUID 11 f t f 9 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 339 ( poly_same PGUID 11 f t f 2 f 16 "604 604" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 340 ( poly_contain PGUID 11 f t f 2 f 16 "604 604" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 341 ( poly_left PGUID 11 f t f 2 f 16 "604 604" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 342 ( poly_overleft PGUID 11 f t f 2 f 16 "604 604" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 343 ( poly_overright PGUID 11 f t f 2 f 16 "604 604" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 344 ( poly_right PGUID 11 f t f 2 f 16 "604 604" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 345 ( poly_contained PGUID 11 f t f 2 f 16 "604 604" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 346 ( poly_overlap PGUID 11 f t f 2 f 16 "604 604" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 347 ( poly_in PGUID 11 f t f 1 f 604 "0" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 348 ( poly_out PGUID 11 f t f 1 f 23 "0" 100 0 1 0 foo bar ));
|
||||
|
||||
DATA(insert OID = 350 ( btint2cmp PGUID 11 f t f 2 f 23 "21 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 351 ( btint4cmp PGUID 11 f t f 2 f 23 "23 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 352 ( btint42cmp PGUID 11 f t f 2 f 23 "23 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 353 ( btint24cmp PGUID 11 f t f 2 f 23 "21 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 354 ( btfloat4cmp PGUID 11 f t f 2 f 23 "700 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 355 ( btfloat8cmp PGUID 11 f t f 2 f 23 "701 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 356 ( btoidcmp PGUID 11 f t f 2 f 23 "26 26" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 357 ( btabstimecmp PGUID 11 f t f 2 f 23 "702 702" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 358 ( btcharcmp PGUID 11 f t f 2 f 23 "18 18" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 359 ( btnamecmp PGUID 11 f t f 2 f 23 "19 19" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 360 ( bttextcmp PGUID 11 f t f 2 f 23 "25 25" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 361 ( lseg_distance PGUID 11 f t f 2 f 701 "601 601" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 362 ( lseg_interpt PGUID 11 f t f 2 f 600 "601 601" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 363 ( dist_ps PGUID 11 f t f 2 f 701 "600 601" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 364 ( dist_pb PGUID 11 f t f 2 f 701 "600 603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 365 ( dist_sb PGUID 11 f t f 2 f 701 "601 603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 366 ( close_ps PGUID 11 f t f 2 f 600 "600 601" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 367 ( close_pb PGUID 11 f t f 2 f 600 "600 603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 368 ( close_sb PGUID 11 f t f 2 f 600 "601 603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 369 ( on_ps PGUID 11 f t f 2 f 16 "600 601" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 370 ( path_distance PGUID 11 f t f 2 f 701 "602 602" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 371 ( dist_ppth PGUID 11 f t f 2 f 701 "600 602" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 372 ( on_sb PGUID 11 f t f 2 f 16 "601 603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 373 ( inter_sb PGUID 11 f t f 2 f 16 "601 603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 374 ( btchar16cmp PGUID 11 f t f 2 f 23 "19 19" 100 0 0 100 foo bar ));
|
||||
|
||||
/* OIDS 400 - 499 */
|
||||
|
||||
DATA(insert OID = 438 ( hashsel PGUID 11 f t t 7 f 701 "26 26 21 0 23 23 26" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 439 ( hashnpage PGUID 11 f t t 7 f 701 "26 26 21 0 23 23 26" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 440 ( hashgettuple PGUID 11 f t f 2 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 441 ( hashinsert PGUID 11 f t f 4 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 442 ( hashdelete PGUID 11 f t f 2 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 443 ( hashbeginscan PGUID 11 f t f 4 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 444 ( hashrescan PGUID 11 f t f 3 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 445 ( hashendscan PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 446 ( hashmarkpos PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 447 ( hashrestrpos PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 448 ( hashbuild PGUID 11 f t f 9 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 449 ( hashint2 PGUID 11 f t f 2 f 23 "21 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 450 ( hashint4 PGUID 11 f t f 2 f 23 "23 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 451 ( hashfloat4 PGUID 11 f t f 2 f 23 "700 700" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 452 ( hashfloat8 PGUID 11 f t f 2 f 23 "701 701" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 453 ( hashoid PGUID 11 f t f 2 f 23 "26 26" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 454 ( hashchar PGUID 11 f t f 2 f 23 "18 18" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 455 ( hashname PGUID 11 f t f 2 f 23 "19 19" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 456 ( hashtext PGUID 11 f t f 2 f 23 "25 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 466 ( char2in PGUID 11 f t f 1 f 409 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 467 ( char4in PGUID 11 f t f 1 f 410 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 468 ( char8in PGUID 11 f t f 1 f 411 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 469 ( char2out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 470 ( char4out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 471 ( char8out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 472 ( char2eq PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 473 ( char4eq PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 474 ( char8eq PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 475 ( char2lt PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 476 ( char4lt PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 477 ( char8lt PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 478 ( char2le PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 479 ( char4le PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 480 ( char8le PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 481 ( char2gt PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 482 ( char4gt PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 483 ( char8gt PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 484 ( char2ge PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 490 ( char16eq PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar ));
|
||||
#define Character16EqualRegProcedure 490
|
||||
DATA(insert OID = 492 ( char16lt PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 493 ( char16le PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 494 ( char16gt PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 495 ( char16ge PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 496 ( char16ne PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 499 ( hashchar16 PGUID 11 f t f 2 f 23 "19 19" 100 0 0 100 foo bar ));
|
||||
|
||||
/* OIDS 500 - 599 */
|
||||
|
||||
/* OIDS 600 - 699 */
|
||||
|
||||
DATA(insert OID = 650 ( int4notin PGUID 11 f t f 2 f 16 "21 0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 651 ( oidnotin PGUID 11 f t f 2 f 16 "26 0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 652 ( int44in PGUID 11 f t f 1 f 22 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 653 ( int44out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 655 ( namelt PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 656 ( namele PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 657 ( namegt PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 658 ( namege PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 659 ( namene PGUID 11 f t f 2 f 16 "19 19" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 682 ( mktinterval PGUID 11 f t f 2 f 704 "702 702" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 683 ( oid8eq PGUID 11 f t f 2 f 16 "30 30" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 684 ( char4ge PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 685 ( char8ge PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 686 ( char2ne PGUID 11 f t f 2 f 16 "409 409" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 687 ( char4ne PGUID 11 f t f 2 f 16 "410 410" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 688 ( char8ne PGUID 11 f t f 2 f 16 "411 411" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 689 ( btchar2cmp PGUID 11 f t f 2 f 23 "409 409" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 690 ( btchar4cmp PGUID 11 f t f 2 f 23 "410 410" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 691 ( btchar8cmp PGUID 11 f t f 2 f 23 "411 411" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 692 ( hashchar2 PGUID 11 f t f 2 f 23 "409 409" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 693 ( hashchar4 PGUID 11 f t f 2 f 23 "410 410" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 694 ( hashchar8 PGUID 11 f t f 2 f 23 "411 411" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 695 ( char8regexeq PGUID 11 f t f 2 f 16 "411 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 696 ( char8regexne PGUID 11 f t f 2 f 16 "411 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 699 ( char2regexeq PGUID 11 f t f 2 f 16 "409 25" 100 0 0 100 foo bar ));
|
||||
|
||||
/* OIDS 700 - 799 */
|
||||
DATA(insert OID = 700 ( char16regexeq PGUID 11 f t f 2 f 16 "19 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 701 ( char16regexne PGUID 11 f t f 2 f 16 "19 25" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 710 ( GetPgUserName PGUID 11 f t f 0 f 19 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 711 ( userfntest PGUID 11 f t f 1 f 23 "23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 713 ( oidrand PGUID 11 f t f 2 f 16 "26 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 715 ( oidsrand PGUID 11 f t f 1 f 16 "23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 716 ( oideqint4 PGUID 11 f t f 2 f 16 "26 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 717 ( int4eqoid PGUID 11 f t f 2 f 16 "23 26" 100 0 0 100 foo bar ));
|
||||
|
||||
|
||||
DATA(insert OID = 720 ( byteaGetSize PGUID 11 f t f 1 f 23 "17" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 721 ( byteaGetByte PGUID 11 f t f 2 f 23 "17 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 722 ( byteaSetByte PGUID 11 f t f 3 f 17 "17 23 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 723 ( byteaGetBit PGUID 11 f t f 2 f 23 "17 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 724 ( byteaSetBit PGUID 11 f t f 3 f 17 "17 23 23" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 730 ( pqtest PGUID 11 f t f 1 f 23 "25" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 740 ( text_lt PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0 foo bar ));
|
||||
DATA(insert OID = 741 ( text_le PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0 foo bar ));
|
||||
DATA(insert OID = 742 ( text_gt PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0 foo bar ));
|
||||
DATA(insert OID = 743 ( text_ge PGUID 11 f t f 2 f 16 "25 25" 100 0 0 0 foo bar ));
|
||||
|
||||
DATA(insert OID = 744 ( array_eq PGUID 11 f t f 2 f 16 "0 0" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 745 ( array_assgn PGUID 11 f t f 8 f 23 "0 23 0 0 0 23 23 0" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 746 ( array_clip PGUID 11 f t f 7 f 23 "0 23 0 0 23 23 0" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 747 ( array_dims PGUID 11 f t f 1 f 25 "0" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 748 ( array_set PGUID 11 f t f 8 f 23 "0 23 0 0 23 23 23 0" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 749 ( array_ref PGUID 11 f t f 7 f 23 "0 23 0 23 23 23 0" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 750 ( array_in PGUID 11 f t f 2 f 23 "0 0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 751 ( array_out PGUID 11 f t f 2 f 23 "0 0" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 752 ( filename_in PGUID 11 f t f 2 f 605 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 753 ( filename_out PGUID 11 f t f 2 f 19 "0" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 760 ( smgrin PGUID 11 f t f 1 f 210 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 761 ( smgrout PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 762 ( smgreq PGUID 11 f t f 2 f 16 "210 210" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 763 ( smgrne PGUID 11 f t f 2 f 16 "210 210" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 764 ( lo_import PGUID 11 f t f 1 f 26 "25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 765 ( lo_export PGUID 11 f t f 2 f 23 "26 25" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 766 ( int4inc PGUID 11 f t f 1 f 23 "23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 767 ( int2inc PGUID 11 f t f 1 f 21 "21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 768 ( int4larger PGUID 11 f t f 2 f 23 "23 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 769 ( int4smaller PGUID 11 f t f 2 f 23 "23 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 770 ( int2larger PGUID 11 f t f 2 f 23 "21 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 771 ( int2smaller PGUID 11 f t f 2 f 23 "21 21" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 772 ( gistsel PGUID 11 f t t 7 f 701 "26 26 21 0 23 23 26" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 773 ( gistnpage PGUID 11 f t t 7 f 701 "26 26 21 0 23 23 26" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 774 ( gistgettuple PGUID 11 f t f 2 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 775 ( gistinsert PGUID 11 f t f 4 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 776 ( gistdelete PGUID 11 f t f 2 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 777 ( gistbeginscan PGUID 11 f t f 4 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 778 ( gistrescan PGUID 11 f t f 3 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 779 ( gistendscan PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 780 ( gistmarkpos PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 781 ( gistrestrpos PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 782 ( gistbuild PGUID 11 f t f 9 f 23 "0" 100 0 0 100 foo bar ));
|
||||
|
||||
/* OIDS 800 - 899 */
|
||||
DATA(insert OID = 820 ( oidint2in PGUID 11 f t f 1 f 810 "0" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 821 ( oidint2out PGUID 11 f t f 1 f 19 "0" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 822 ( oidint2lt PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 823 ( oidint2le PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 824 ( oidint2eq PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100 foo bar));
|
||||
|
||||
#define OidInt2EqRegProcedure 824
|
||||
|
||||
DATA(insert OID = 825 ( oidint2ge PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 826 ( oidint2gt PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 827 ( oidint2ne PGUID 11 f t f 2 f 16 "810 810" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 828 ( oidint2cmp PGUID 11 f t f 2 f 21 "810 810" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 829 ( mkoidint2 PGUID 11 f t f 2 f 810 "26 21" 100 0 0 100 foo bar));
|
||||
|
||||
DATA(insert OID = 837 ( char2regexne PGUID 11 f t f 2 f 16 "409 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 836 ( char4regexeq PGUID 11 f t f 2 f 16 "410 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 838 ( char4regexne PGUID 11 f t f 2 f 16 "410 25" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 850 ( textlike PGUID 11 f t f 2 f 16 "25 25" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 851 ( textnlike PGUID 11 f t f 2 f 16 "25 25" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 852 ( char2like PGUID 11 f t f 2 f 16 "409 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 853 ( char2nlike PGUID 11 f t f 2 f 16 "409 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 854 ( char4like PGUID 11 f t f 2 f 16 "410 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 855 ( char4nlike PGUID 11 f t f 2 f 16 "410 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 856 ( char8like PGUID 11 f t f 2 f 16 "411 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 857 ( char8nlike PGUID 11 f t f 2 f 16 "411 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 858 ( namelike PGUID 11 f t f 2 f 16 "19 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 859 ( namenlike PGUID 11 f t f 2 f 16 "19 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 860 ( char16like PGUID 11 f t f 2 f 16 "20 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 861 ( char16nlike PGUID 11 f t f 2 f 16 "20 25" 100 0 0 100 foo bar ));
|
||||
|
||||
/* OIDS 900 - 999 */
|
||||
|
||||
DATA(insert OID = 920 ( oidint4in PGUID 11 f t f 1 f 910 "0" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 921 ( oidint4out PGUID 11 f t f 1 f 19 "0" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 922 ( oidint4lt PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 923 ( oidint4le PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 924 ( oidint4eq PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100 foo bar));
|
||||
|
||||
#define OidInt4EqRegProcedure 924
|
||||
|
||||
DATA(insert OID = 925 ( oidint4ge PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 926 ( oidint4gt PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 927 ( oidint4ne PGUID 11 f t f 2 f 16 "910 910" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 928 ( oidint4cmp PGUID 11 f t f 2 f 23 "910 910" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 929 ( mkoidint4 PGUID 11 f t f 2 f 910 "26 23" 100 0 0 100 foo bar));
|
||||
|
||||
DATA(insert OID = 940 ( oidnamein PGUID 11 f t f 1 f 911 "0" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 941 ( oidnameout PGUID 11 f t f 1 f 19 "0" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 942 ( oidnamelt PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 943 ( oidnamele PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 944 ( oidnameeq PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100 foo bar));
|
||||
|
||||
#define OidNameEqRegProcedure 944
|
||||
|
||||
DATA(insert OID = 945 ( oidnamege PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 946 ( oidnamegt PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 947 ( oidnamene PGUID 11 f t f 2 f 16 "911 911" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 948 ( oidnamecmp PGUID 11 f t f 2 f 23 "911 911" 100 0 0 100 foo bar));
|
||||
DATA(insert OID = 949 ( mkoidname PGUID 11 f t f 2 f 911 "26 19" 100 0 0 100 foo bar));
|
||||
|
||||
DATA(insert OID = 952 ( lo_open PGUID 11 f t f 2 f 23 "26 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 953 ( lo_close PGUID 11 f t f 1 f 23 "23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 954 ( LOread PGUID 11 f t f 2 f 17 "23 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 955 ( LOwrite PGUID 11 f t f 2 f 23 "23 17" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 956 ( lo_lseek PGUID 11 f t f 3 f 23 "23 23 23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 957 ( lo_creat PGUID 11 f t f 1 f 26 "23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 958 ( lo_tell PGUID 11 f t f 1 f 23 "23" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 964 ( lo_unlink PGUID 11 f t f 1 f 23 "23" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 972 ( RegprocToOid PGUID 11 f t f 1 f 26 "24" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 973 ( path_inter PGUID 11 f t f 2 f 16 "602 602" 100 0 10 100 foo bar ));
|
||||
DATA(insert OID = 974 ( box_copy PGUID 11 f t f 1 f 603 "603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 975 ( box_area PGUID 11 f t f 1 f 701 "603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 976 ( box_length PGUID 11 f t f 1 f 701 "603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 977 ( box_height PGUID 11 f t f 1 f 701 "603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 978 ( box_distance PGUID 11 f t f 2 f 701 "603 603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 980 ( box_intersect PGUID 11 f t f 2 f 603 "603 603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 981 ( box_diagonal PGUID 11 f t f 1 f 601 "603" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 982 ( path_n_lt PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 983 ( path_n_gt PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 984 ( path_n_eq PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 985 ( path_n_le PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 986 ( path_n_ge PGUID 11 f t f 2 f 16 "602 602" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 987 ( path_length PGUID 11 f t f 1 f 701 "602" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 988 ( point_copy PGUID 11 f t f 1 f 600 "600" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 989 ( point_vert PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 990 ( point_horiz PGUID 11 f t f 2 f 16 "600 600" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 991 ( point_distance PGUID 11 f t f 2 f 701 "600 600" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 992 ( point_slope PGUID 11 f t f 2 f 701 "600 600" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 993 ( lseg_construct PGUID 11 f t f 2 f 601 "600 600" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 994 ( lseg_intersect PGUID 11 f t f 2 f 16 "601 601" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 995 ( lseg_parallel PGUID 11 f t f 2 f 16 "601 601" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 996 ( lseg_perp PGUID 11 f t f 2 f 16 "601 601" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 997 ( lseg_vertical PGUID 11 f t f 1 f 16 "601" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 998 ( lseg_horizontal PGUID 11 f t f 1 f 16 "601" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 999 ( lseg_eq PGUID 11 f t f 2 f 16 "601 601" 100 0 0 100 foo bar ));
|
||||
|
||||
/* OIDS 1000 - 1999 */
|
||||
|
||||
DATA(insert OID = 1029 ( NullValue PGUID 11 f t f 1 f 16 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1030 ( NonNullValue PGUID 11 f t f 1 f 16 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1031 ( aclitemin PGUID 11 f t f 1 f 1033 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1032 ( aclitemout PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1035 ( aclinsert PGUID 11 f t f 2 f 1034 "1034 1033" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1036 ( aclremove PGUID 11 f t f 2 f 1034 "1034 1033" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1037 ( aclcontains PGUID 11 f t f 2 f 16 "1034 1033" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1038 ( seteval PGUID 11 f t f 1 f 23 "26" 100 0 0 100 foo bar ));
|
||||
#define SetEvalRegProcedure 1038
|
||||
|
||||
DATA(insert OID = 1044 ( bpcharin PGUID 11 f t f 3 f 1042 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1045 ( bpcharout PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1046 ( varcharin PGUID 11 f t f 3 f 1043 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1047 ( varcharout PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1048 ( bpchareq PGUID 11 f t f 2 f 16 "1042 1042" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1049 ( bpcharlt PGUID 11 f t f 2 f 16 "1042 1042" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1050 ( bpcharle PGUID 11 f t f 2 f 16 "1042 1042" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1051 ( bpchargt PGUID 11 f t f 2 f 16 "1042 1042" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1052 ( bpcharge PGUID 11 f t f 2 f 16 "1042 1042" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1053 ( bpcharne PGUID 11 f t f 2 f 16 "1042 1042" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1070 ( varchareq PGUID 11 f t f 2 f 16 "1043 1043" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1071 ( varcharlt PGUID 11 f t f 2 f 16 "1043 1043" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1072 ( varcharle PGUID 11 f t f 2 f 16 "1043 1043" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1073 ( varchargt PGUID 11 f t f 2 f 16 "1043 1043" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1074 ( varcharge PGUID 11 f t f 2 f 16 "1043 1043" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1075 ( varcharne PGUID 11 f t f 2 f 16 "1043 1043" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1078 ( bpcharcmp PGUID 11 f t f 2 f 23 "1042 1042" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1079 ( varcharcmp PGUID 11 f t f 2 f 23 "1043 1043" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1080 ( hashbpchar PGUID 11 f t f 1 f 23 "1042" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1081 ( hashvarchar PGUID 11 f t f 1 f 23 "1043" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 1084 ( date_in PGUID 11 f t f 1 f 1082 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1085 ( date_out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1086 ( date_eq PGUID 11 f t f 2 f 16 "1082 1082" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1087 ( date_lt PGUID 11 f t f 2 f 16 "1082 1082" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1088 ( date_le PGUID 11 f t f 2 f 16 "1082 1082" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1089 ( date_gt PGUID 11 f t f 2 f 16 "1082 1082" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1090 ( date_ge PGUID 11 f t f 2 f 16 "1082 1082" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1091 ( date_ne PGUID 11 f t f 2 f 16 "1082 1082" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1092 ( date_cmp PGUID 11 f t f 2 f 23 "1082 1082" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 1099 ( time_in PGUID 11 f t f 1 f 1083 "0" 100 0 0 100 foo bar ));
|
||||
|
||||
/* OIDS 1100 - 1199 */
|
||||
DATA(insert OID = 1100 ( time_out PGUID 11 f t f 1 f 23 "0" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1101 ( time_eq PGUID 11 f t f 2 f 16 "1083 1083" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1102 ( time_lt PGUID 11 f t f 2 f 16 "1083 1083" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1103 ( time_le PGUID 11 f t f 2 f 16 "1083 1083" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1104 ( time_gt PGUID 11 f t f 2 f 16 "1083 1083" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1105 ( time_ge PGUID 11 f t f 2 f 16 "1083 1083" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1106 ( time_ne PGUID 11 f t f 2 f 16 "1083 1083" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1107 ( time_cmp PGUID 11 f t f 2 f 23 "1083 1083" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1200 ( int42reltime PGUID 11 f t f 1 f 703 "21" 100 0 0 100 foo bar ));
|
||||
|
||||
DATA(insert OID = 1230 ( char2icregexeq PGUID 11 f t f 2 f 16 "409 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1231 ( char2icregexne PGUID 11 f t f 2 f 16 "409 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1232 ( char4icregexeq PGUID 11 f t f 2 f 16 "410 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1233 ( char4icregexne PGUID 11 f t f 2 f 16 "410 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1234 ( char8icregexeq PGUID 11 f t f 2 f 16 "411 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1235 ( char8icregexne PGUID 11 f t f 2 f 16 "411 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1236 ( char16icregexeq PGUID 11 f t f 2 f 16 "20 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1237 ( char16icregexne PGUID 11 f t f 2 f 16 "20 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1238 ( texticregexeq PGUID 11 f t f 2 f 16 "25 25" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 1239 ( texticregexne PGUID 11 f t f 2 f 16 "25 25" 100 0 1 0 foo bar ));
|
||||
DATA(insert OID = 1240 ( nameicregexeq PGUID 11 f t f 2 f 16 "19 25" 100 0 0 100 foo bar ));
|
||||
DATA(insert OID = 1241 ( nameicregexne PGUID 11 f t f 2 f 16 "19 25" 100 0 0 100 foo bar ));
|
||||
|
||||
|
||||
#include "nodes/pg_list.h"
|
||||
|
||||
/*
|
||||
* prototypes for functions pg_proc.c
|
||||
*/
|
||||
extern Oid ProcedureCreate(char* procedureName,
|
||||
bool returnsSet,
|
||||
char *returnTypeName,
|
||||
char *languageName,
|
||||
char *prosrc,
|
||||
char *probin,
|
||||
bool canCache,
|
||||
bool trusted,
|
||||
int32 byte_pct,
|
||||
int32 perbyte_cpu,
|
||||
int32 percall_cpu,
|
||||
int32 outin_ratio,
|
||||
List *argList,
|
||||
CommandDest dest);
|
||||
|
||||
|
||||
#endif /* PG_PROC_H */
|
||||
@@ -1,64 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_rewrite.h--
|
||||
* definition of the system "rewrite-rule" relation (pg_rewrite)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_rewrite.h,v 1.1.1.1 1996/07/09 06:21:18 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_REWRITE_H
|
||||
#define PG_REWRITE_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_rewrite definition. cpp turns this into
|
||||
* typedef struct FormData_pg_rewrite
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_rewrite) {
|
||||
NameData rulename;
|
||||
char ev_type;
|
||||
Oid ev_class;
|
||||
int2 ev_attr;
|
||||
bool is_instead;
|
||||
text ev_qual; /* VARLENA */
|
||||
text action; /* VARLENA */
|
||||
} FormData_pg_rewrite;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_rewrite corresponds to a pointer to a tuple with
|
||||
* the format of pg_rewrite relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_rewrite *Form_pg_rewrite;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_rewrite
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_rewrite 7
|
||||
#define Anum_pg_rewrite_rulename 1
|
||||
#define Anum_pg_rewrite_ev_type 2
|
||||
#define Anum_pg_rewrite_ev_class 3
|
||||
#define Anum_pg_rewrite_ev_attr 4
|
||||
#define Anum_pg_rewrite_is_instead 5
|
||||
#define Anum_pg_rewrite_ev_qual 6
|
||||
#define Anum_pg_rewrite_action 7
|
||||
|
||||
#endif /* PG_REWRITE_H */
|
||||
@@ -1,56 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_server.h--
|
||||
* definition of the system "server" relation (pg_server)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_server.h,v 1.1.1.1 1996/07/09 06:21:18 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_SERVER_H
|
||||
#define PG_SERVER_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_server definition. cpp turns this into
|
||||
* typedef struct FormData_pg_server
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_server) BOOTSTRAP {
|
||||
NameData sername;
|
||||
int2 serpid;
|
||||
int2 serport;
|
||||
} FormData_pg_server;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_server corresponds to a pointer to a tuple with
|
||||
* the format of pg_server relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_server *Form_pg_server;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_server
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_server 3
|
||||
#define Anum_pg_server_sername 1
|
||||
#define Anum_pg_server_serpid 2
|
||||
#define Anum_pg_server_serport 3
|
||||
|
||||
#endif /* PG_SERVER_H */
|
||||
@@ -1,60 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_statistic.h--
|
||||
* definition of the system "statistic" relation (pg_statistic)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_statistic.h,v 1.1.1.1 1996/07/09 06:21:18 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_STATISTIC_H
|
||||
#define PG_STATISTIC_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_statistic definition. cpp turns this into
|
||||
* typedef struct FormData_pg_statistic
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_statistic) {
|
||||
Oid starelid;
|
||||
int2 staattnum;
|
||||
Oid staop;
|
||||
text stalokey; /* VARIABLE LENGTH FIELD */
|
||||
text stahikey; /* VARIABLE LENGTH FIELD */
|
||||
} FormData_pg_statistic;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_statistic corresponds to a pointer to a tuple with
|
||||
* the format of pg_statistic relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_statistic *Form_pg_statistic;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_statistic
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_statistic 5
|
||||
#define Anum_pg_statistic_starelid 1
|
||||
#define Anum_pg_statistic_staattnum 2
|
||||
#define Anum_pg_statistic_staop 3
|
||||
#define Anum_pg_statistic_stalokey 4
|
||||
#define Anum_pg_statistic_stahikey 5
|
||||
|
||||
#endif /* PG_STATISTIC_H */
|
||||
@@ -1,41 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_time.h--
|
||||
* the system commit-time relation "pg_time" is not a "heap" relation.
|
||||
* it is automatically created by the transam/ code and the
|
||||
* information here is all bogus and is just here to make the
|
||||
* relcache code happy.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_time.h,v 1.1.1.1 1996/07/09 06:21:18 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* The structures and macros used by the transam/ code
|
||||
* to access pg_time should some day go here -cim 6/18/90
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_TIME_H
|
||||
#define PG_TIME_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
CATALOG(pg_time) BOOTSTRAP {
|
||||
Oid timefoo;
|
||||
} FormData_pg_time;
|
||||
|
||||
typedef FormData_pg_time *Form_pg_time;
|
||||
|
||||
#define Natts_pg_time 1
|
||||
#define Anum_pg_time_timefoo 1
|
||||
|
||||
|
||||
#endif /* PG_TIME_H */
|
||||
@@ -1,310 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_type.h--
|
||||
* definition of the system "type" relation (pg_type)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_type.h,v 1.4 1996/08/24 20:56:16 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_TYPE_H
|
||||
#define PG_TYPE_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
#include "utils/rel.h" /* for Relation */
|
||||
|
||||
/* ----------------
|
||||
* pg_type definition. cpp turns this into
|
||||
* typedef struct FormData_pg_type
|
||||
*
|
||||
* Some of the values in a pg_type instance are copied into
|
||||
* pg_attribute intances. Some parts of Postgres use the pg_type copy,
|
||||
* while others use the pg_attribute copy, so they must match.
|
||||
* See struct FormData_pg_attribute for details.
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_type) BOOTSTRAP {
|
||||
NameData typname;
|
||||
Oid typowner;
|
||||
int2 typlen;
|
||||
/* typlen is the number of bytes we use to represent a value of
|
||||
this type, e.g. 4 for an int4. But for a variable length
|
||||
attribute, typlen is -1.
|
||||
*/
|
||||
int2 typprtlen;
|
||||
bool typbyval;
|
||||
/* typbyval determines whether internal Postgres routines pass a value
|
||||
of this type by value or by reference. Postgres uses a 4 byte
|
||||
area for passing class data, so if the value is not 1, 2,
|
||||
or 4 bytes long, Postgres does not have the option of passing by
|
||||
value and ignores typbyval.
|
||||
|
||||
(I don't understand why this attribute exists. The above description
|
||||
may be an oversimplification. Also, there appear to be bugs in which
|
||||
Postgres doesn't ignore typbyval when it should, but I'm
|
||||
afraid to change them until I see proof of damage. -BRYANH 96.08).
|
||||
*/
|
||||
char typtype;
|
||||
bool typisdefined;
|
||||
char typdelim;
|
||||
Oid typrelid;
|
||||
Oid typelem;
|
||||
regproc typinput;
|
||||
regproc typoutput;
|
||||
regproc typreceive;
|
||||
regproc typsend;
|
||||
char typalign;
|
||||
/* typalign is the alignment required when storing a value of this
|
||||
type. It applies to storage on disk as well as most representations
|
||||
of the value inside Postgres. When multiple values are stored
|
||||
consecutively, such as in the representation of a complete tuple
|
||||
on disk, padding is inserted before a datum of this type so that it
|
||||
begins on the specified boundary. The alignment reference is the
|
||||
beginning of the first datum in the sequence.
|
||||
|
||||
'c' = 1 byte alignment.
|
||||
's' = 2 byte alignment.
|
||||
'i' = 4 byte alignment.
|
||||
'd' = 8 byte alignment.
|
||||
|
||||
(This might actually be flexible depending on machine architecture,
|
||||
but I doubt it - BRYANH 96.08).
|
||||
*/
|
||||
text typdefault; /* VARIABLE LENGTH FIELD */
|
||||
} TypeTupleFormData;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_type corresponds to a pointer to a tuple with
|
||||
* the format of pg_type relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef TypeTupleFormData *TypeTupleForm;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_type
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_type 16
|
||||
#define Anum_pg_type_typname 1
|
||||
#define Anum_pg_type_typowner 2
|
||||
#define Anum_pg_type_typlen 3
|
||||
#define Anum_pg_type_typprtlen 4
|
||||
#define Anum_pg_type_typbyval 5
|
||||
#define Anum_pg_type_typtype 6
|
||||
#define Anum_pg_type_typisdefined 7
|
||||
#define Anum_pg_type_typdelim 8
|
||||
#define Anum_pg_type_typrelid 9
|
||||
#define Anum_pg_type_typelem 10
|
||||
#define Anum_pg_type_typinput 11
|
||||
#define Anum_pg_type_typoutput 12
|
||||
#define Anum_pg_type_typreceive 13
|
||||
#define Anum_pg_type_typsend 14
|
||||
#define Anum_pg_type_typalign 15
|
||||
#define Anum_pg_type_typdefault 16
|
||||
|
||||
/* ----------------
|
||||
* initial contents of pg_type
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
/* keep the following ordered by OID so that later changes can be made easier*/
|
||||
|
||||
/* Make sure the typlen, typbyval, and typalign values here match the initial
|
||||
values for attlen, attbyval, and attalign in both places in pg_attribute.h
|
||||
for every instance.
|
||||
*/
|
||||
|
||||
/* OIDS 1 - 99 */
|
||||
DATA(insert OID = 16 ( bool PGUID 1 1 t b t \054 0 0 boolin boolout boolin boolout c _null_ ));
|
||||
|
||||
#define BOOLOID 16
|
||||
|
||||
DATA(insert OID = 17 ( bytea PGUID -1 -1 f b t \054 0 18 byteain byteaout byteain byteaout i _null_ ));
|
||||
DATA(insert OID = 18 ( char PGUID 1 1 t b t \054 0 0 charin charout charin charout c _null_ ));
|
||||
|
||||
DATA(insert OID = 19 ( name PGUID NAMEDATALEN NAMEDATALEN f b t \054 0 18 namein nameout namein nameout i _null_ ));
|
||||
DATA(insert OID = 20 ( char16 PGUID 16 16 f b t \054 0 18 char16in char16out char16in char16out i _null_ ));
|
||||
/*DATA(insert OID = 20 ( dt PGUID 4 10 t b t \054 0 0 dtin dtout dtin dtout i _null_ )); */
|
||||
DATA(insert OID = 21 ( int2 PGUID 2 5 t b t \054 0 0 int2in int2out int2in int2out s _null_ ));
|
||||
|
||||
#define INT2OID 21
|
||||
|
||||
DATA(insert OID = 22 ( int28 PGUID 16 50 f b t \054 0 21 int28in int28out int28in int28out i _null_ ));
|
||||
|
||||
/*
|
||||
* XXX -- the implementation of int28's in postgres is a hack, and will
|
||||
* go away someday. until that happens, there is a case (in the
|
||||
* catalog cache management code) where we need to step gingerly
|
||||
* over piles of int28's on the sidewalk. in order to do so, we
|
||||
* need the OID of the int28 tuple from pg_type.
|
||||
*/
|
||||
|
||||
#define INT28OID 22
|
||||
|
||||
|
||||
DATA(insert OID = 23 ( int4 PGUID 4 10 t b t \054 0 0 int4in int4out int4in int4out i _null_ ));
|
||||
|
||||
#define INT4OID 23
|
||||
|
||||
DATA(insert OID = 24 ( regproc PGUID 4 16 t b t \054 0 0 regprocin regprocout regprocin regprocout i _null_ ));
|
||||
DATA(insert OID = 25 ( text PGUID -1 -1 f b t \054 0 18 textin textout textin textout i _null_ ));
|
||||
DATA(insert OID = 26 ( oid PGUID 4 10 t b t \054 0 0 int4in int4out int4in int4out i _null_ ));
|
||||
|
||||
#define OIDOID 26
|
||||
|
||||
DATA(insert OID = 27 ( tid PGUID 6 19 f b t \054 0 0 tidin tidout tidin tidout i _null_ ));
|
||||
DATA(insert OID = 28 ( xid PGUID 4 12 t b t \054 0 0 xidin xidout xidin xidout i _null_ ));
|
||||
DATA(insert OID = 29 ( cid PGUID 2 3 t b t \054 0 0 cidin cidout cidin cidout s _null_ ));
|
||||
DATA(insert OID = 30 ( oid8 PGUID 32 89 f b t \054 0 26 oid8in oid8out oid8in oid8out i _null_ ));
|
||||
DATA(insert OID = 32 ( SET PGUID -1 -1 f r t \054 0 -1 textin textout textin textout i _null_ ));
|
||||
|
||||
DATA(insert OID = 71 ( pg_type PGUID 1 1 t b t \054 71 0 foo bar foo bar c _null_));
|
||||
DATA(insert OID = 75 ( pg_attribute PGUID 1 1 t b t \054 75 0 foo bar foo bar c _null_));
|
||||
DATA(insert OID = 76 ( pg_demon PGUID 1 1 t b t \054 76 0 foo bar foo bar c _null_));
|
||||
DATA(insert OID = 80 ( pg_magic PGUID 1 1 t b t \054 80 0 foo bar foo bar c _null_));
|
||||
DATA(insert OID = 81 ( pg_proc PGUID 1 1 t b t \054 81 0 foo bar foo bar c _null_));
|
||||
DATA(insert OID = 82 ( pg_server PGUID 1 1 t b t \054 82 0 foo bar foo bar c _null_));
|
||||
DATA(insert OID = 83 ( pg_class PGUID 1 1 t b t \054 83 0 foo bar foo bar c _null_));
|
||||
DATA(insert OID = 86 ( pg_user PGUID 1 1 t b t \054 86 0 foo bar foo bar c _null_));
|
||||
DATA(insert OID = 87 ( pg_group PGUID 1 1 t b t \054 87 0 foo bar foo bar c _null_));
|
||||
DATA(insert OID = 88 ( pg_database PGUID 1 1 t b t \054 88 0 foo bar foo bar c _null_));
|
||||
DATA(insert OID = 89 ( pg_defaults PGUID 1 1 t b t \054 89 0 foo bar foo bar c _null_));
|
||||
DATA(insert OID = 90 ( pg_variable PGUID 1 1 t b t \054 90 0 foo bar foo bar c _null_));
|
||||
DATA(insert OID = 99 ( pg_log PGUID 1 1 t b t \054 99 0 foo bar foo bar c _null_));
|
||||
|
||||
/* OIDS 100 - 199 */
|
||||
|
||||
DATA(insert OID = 100 ( pg_time PGUID 1 1 t b t \054 100 0 foo bar foo bar c _null_));
|
||||
DATA(insert OID = 101 ( pg_time PGUID 1 1 t b t \054 101 0 foo bar foo bar c _null_));
|
||||
|
||||
/* OIDS 200 - 299 */
|
||||
|
||||
DATA(insert OID = 210 ( smgr PGUID 2 12 t b t \054 0 -1 smgrin smgrout smgrin smgrout s _null_ ));
|
||||
|
||||
/* OIDS 300 - 399 */
|
||||
|
||||
/* OIDS 400 - 499 */
|
||||
DATA(insert OID = 409 ( char2 PGUID 2 2 t b t \054 0 18 char2in char2out char2in char2out s _null_ ));
|
||||
DATA(insert OID = 410 ( char4 PGUID 4 4 t b t \054 0 18 char4in char4out char4in char4out i _null_ ));
|
||||
DATA(insert OID = 411 ( char8 PGUID 8 8 f b t \054 0 18 char8in char8out char8in char8out i _null_ ));
|
||||
|
||||
/* OIDS 500 - 599 */
|
||||
|
||||
/* OIDS 600 - 699 */
|
||||
DATA(insert OID = 600 ( point PGUID 16 24 f b t \054 0 701 point_in point_out point_in point_out d _null_ ));
|
||||
DATA(insert OID = 601 ( lseg PGUID 32 48 f b t \054 0 600 lseg_in lseg_out lseg_in lseg_out d _null_ ));
|
||||
DATA(insert OID = 602 ( path PGUID -1 -1 f b t \054 0 600 path_in path_out path_in path_out d _null_ ));
|
||||
DATA(insert OID = 603 ( box PGUID 32 100 f b t \073 0 600 box_in box_out box_in box_out d _null_ ));
|
||||
DATA(insert OID = 604 ( polygon PGUID -1 -1 f b t \054 0 -1 poly_in poly_out poly_in poly_out d _null_ ));
|
||||
DATA(insert OID = 605 ( filename PGUID 256 -1 f b t \054 0 18 filename_in filename_out filename_in filename_out i _null_ ));
|
||||
|
||||
/* OIDS 700 - 799 */
|
||||
|
||||
#define FLOAT4OID 700
|
||||
|
||||
DATA(insert OID = 700 ( float4 PGUID 4 12 f b t \054 0 0 float4in float4out float4in float4out i _null_ ));
|
||||
|
||||
|
||||
#define FLOAT8OID 701
|
||||
|
||||
DATA(insert OID = 701 ( float8 PGUID 8 24 f b t \054 0 0 float8in float8out float8in float8out d _null_ ));
|
||||
DATA(insert OID = 702 ( abstime PGUID 4 20 t b t \054 0 0 nabstimein nabstimeout nabstimein nabstimeout i _null_ ));
|
||||
DATA(insert OID = 703 ( reltime PGUID 4 20 t b t \054 0 0 reltimein reltimeout reltimein reltimeout i _null_ ));
|
||||
DATA(insert OID = 704 ( tinterval PGUID 12 47 f b t \054 0 0 tintervalin tintervalout tintervalin tintervalout i _null_ ));
|
||||
DATA(insert OID = 705 ( unknown PGUID -1 -1 f b t \054 0 18 textin textout textin textout i _null_ ));
|
||||
|
||||
#define UNKNOWNOID 705
|
||||
|
||||
/* OIDS 800 - 899 */
|
||||
DATA(insert OID = 810 ( oidint2 PGUID 6 20 f b t \054 0 0 oidint2in oidint2out oidint2in oidint2out i _null_ ));
|
||||
|
||||
/* OIDS 900 - 999 */
|
||||
DATA(insert OID = 910 ( oidint4 PGUID 8 20 f b t \054 0 0 oidint4in oidint4out oidint4in oidint4out i _null_ ));
|
||||
DATA(insert OID = 911 ( oidname PGUID OIDNAMELEN OIDNAMELEN f b t \054 0 0 oidnamein oidnameout oidnamein oidnameout i _null_ ));
|
||||
|
||||
/* OIDS 1000 - 1099 */
|
||||
DATA(insert OID = 1000 ( _bool PGUID -1 -1 f b t \054 0 16 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1001 ( _bytea PGUID -1 -1 f b t \054 0 17 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1002 ( _char PGUID -1 -1 f b t \054 0 18 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1003 ( _name PGUID -1 -1 f b t \054 0 19 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1004 ( _char16 PGUID -1 -1 f b t \054 0 20 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1005 ( _int2 PGUID -1 -1 f b t \054 0 21 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1006 ( _int28 PGUID -1 -1 f b t \054 0 22 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1007 ( _int4 PGUID -1 -1 f b t \054 0 23 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1008 ( _regproc PGUID -1 -1 f b t \054 0 24 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1009 ( _text PGUID -1 -1 f b t \054 0 25 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1028 ( _oid PGUID -1 -1 f b t \054 0 26 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1010 ( _tid PGUID -1 -1 f b t \054 0 27 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1011 ( _xid PGUID -1 -1 f b t \054 0 28 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1012 ( _cid PGUID -1 -1 f b t \054 0 29 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1013 ( _oid8 PGUID -1 -1 f b t \054 0 30 array_in array_out array_in array_out i _null_ ));
|
||||
/*DATA(insert OID = 1014 ( _lock PGUID -1 -1 f b t \054 0 31 array_in array_out array_in array_out i _null_ ));*/
|
||||
DATA(insert OID = 1015 ( _stub PGUID -1 -1 f b t \054 0 33 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1016 ( _ref PGUID -1 -1 f b t \054 0 591 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1017 ( _point PGUID -1 -1 f b t \054 0 600 array_in array_out array_in array_out d _null_ ));
|
||||
DATA(insert OID = 1018 ( _lseg PGUID -1 -1 f b t \054 0 601 array_in array_out array_in array_out d _null_ ));
|
||||
DATA(insert OID = 1019 ( _path PGUID -1 -1 f b t \054 0 602 array_in array_out array_in array_out d _null_ ));
|
||||
DATA(insert OID = 1020 ( _box PGUID -1 -1 f b t \073 0 603 array_in array_out array_in array_out d _null_ ));
|
||||
DATA(insert OID = 1021 ( _float4 PGUID -1 -1 f b t \054 0 700 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1022 ( _float8 PGUID -1 -1 f b t \054 0 701 array_in array_out array_in array_out d _null_ ));
|
||||
DATA(insert OID = 1023 ( _abstime PGUID -1 -1 f b t \054 0 702 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1024 ( _reltime PGUID -1 -1 f b t \054 0 703 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1025 ( _tinterval PGUID -1 -1 f b t \054 0 704 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1026 ( _filename PGUID -1 -1 f b t \054 0 605 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1027 ( _polygon PGUID -1 -1 f b t \054 0 604 array_in array_out array_in array_out d _null_ ));
|
||||
/* Note: the size of an aclitem needs to match sizeof(AclItem) in acl.h */
|
||||
DATA(insert OID = 1033 ( aclitem PGUID 8 -1 f b t \054 0 0 aclitemin aclitemout aclitemin aclitemout i _null_ ));
|
||||
DATA(insert OID = 1034 ( _aclitem PGUID -1 -1 f b t \054 0 1033 array_in array_out array_in array_out i _null_ ));
|
||||
|
||||
DATA(insert OID = 1039 ( _char2 PGUID -1 -1 f b t \054 0 409 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1040 ( _char4 PGUID -1 -1 f b t \054 0 410 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1041 ( _char8 PGUID -1 -1 f b t \054 0 411 array_in array_out array_in array_out i _null_ ));
|
||||
|
||||
#define BPCHAROID 1042
|
||||
DATA(insert OID = 1042 ( bpchar PGUID -1 -1 f b t \054 0 18 bpcharin bpcharout bpcharin bpcharout i _null_ ));
|
||||
#define VARCHAROID 1043
|
||||
DATA(insert OID = 1043 ( varchar PGUID -1 -1 f b t \054 0 18 varcharin varcharout varcharin varcharout i _null_ ));
|
||||
|
||||
DATA(insert OID = 1082 ( date PGUID 4 10 t b t \054 0 0 date_in date_out date_in date_out i _null_ ));
|
||||
DATA(insert OID = 1083 ( time PGUID 8 16 f b t \054 0 0 time_in time_out time_in time_out i _null_ ));
|
||||
DATA(insert OID = 1182 ( _date PGUID -1 -1 f b t \054 0 1082 array_in array_out array_in array_out i _null_ ));
|
||||
DATA(insert OID = 1183 ( _time PGUID -1 -1 f b t \054 0 1083 array_in array_out array_in array_out d _null_ ));
|
||||
/*
|
||||
* prototypes for functions in pg_type.c
|
||||
*/
|
||||
extern Oid TypeGet(char *typeName, bool *defined);
|
||||
extern Oid TypeShellMakeWithOpenRelation(Relation pg_type_desc,
|
||||
char *typeName);
|
||||
extern Oid TypeShellMake(char *typeName);
|
||||
extern Oid TypeCreate(char *typeName,
|
||||
Oid relationOid,
|
||||
int16 internalSize,
|
||||
int16 externalSize,
|
||||
char typeType,
|
||||
char typDelim,
|
||||
char *inputProcedure,
|
||||
char *outputProcedure,
|
||||
char *sendProcedure,
|
||||
char *receiveProcedure,
|
||||
char *elementTypeName,
|
||||
char *defaultTypeValue,
|
||||
bool passedByValue, char alignment);
|
||||
extern void TypeRename(char *oldTypeName, char *newTypeName);
|
||||
extern char *makeArrayTypeName(char *typeName);
|
||||
|
||||
|
||||
#endif /* PG_TYPE_H */
|
||||
@@ -1,99 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_user.h--
|
||||
* definition of the system "user" relation (pg_user)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_user.h,v 1.1.1.1 1996/07/09 06:21:18 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_USER_H
|
||||
#define PG_USER_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_user definition. cpp turns this into
|
||||
* typedef struct FormData_pg_user
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_user) BOOTSTRAP {
|
||||
NameData usename;
|
||||
int4 usesysid;
|
||||
bool usecreatedb;
|
||||
bool usetrace;
|
||||
bool usesuper;
|
||||
bool usecatupd;
|
||||
} FormData_pg_user;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_user corresponds to a pointer to a tuple with
|
||||
* the format of pg_user relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_user *Form_pg_user;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_user
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_user 6
|
||||
#define Anum_pg_user_usename 1
|
||||
#define Anum_pg_user_usesysid 2
|
||||
#define Anum_pg_user_usecreatedb 3
|
||||
#define Anum_pg_user_usetrace 4
|
||||
#define Anum_pg_user_usesuper 5
|
||||
#define Anum_pg_user_usecatupd 6
|
||||
|
||||
/* ----------------
|
||||
* initial contents of pg_user
|
||||
* ----------------
|
||||
*/
|
||||
DATA(insert OID = 0 ( postgres PGUID t t t t ));
|
||||
|
||||
BKI_BEGIN
|
||||
#ifdef ALLOW_PG_GROUP
|
||||
BKI_END
|
||||
|
||||
DATA(insert OID = 0 ( mike 799 t t t t ));
|
||||
DATA(insert OID = 0 ( mao 1806 t t t t ));
|
||||
DATA(insert OID = 0 ( hellers 1089 t t t t ));
|
||||
DATA(insert OID = 0 ( joey 5209 t t t t ));
|
||||
DATA(insert OID = 0 ( jolly 5443 t t t t ));
|
||||
DATA(insert OID = 0 ( sunita 6559 t t t t ));
|
||||
DATA(insert OID = 0 ( paxson 3029 t t t t ));
|
||||
DATA(insert OID = 0 ( marc 2435 t t t t ));
|
||||
DATA(insert OID = 0 ( jiangwu 6124 t t t t ));
|
||||
DATA(insert OID = 0 ( aoki 2360 t t t t ));
|
||||
DATA(insert OID = 0 ( avi 31080 t t t t ));
|
||||
DATA(insert OID = 0 ( kristin 1123 t t t t ));
|
||||
DATA(insert OID = 0 ( andrew 5229 t t t t ));
|
||||
DATA(insert OID = 0 ( nobuko 5493 t t t t ));
|
||||
DATA(insert OID = 0 ( hartzell 6676 t t t t ));
|
||||
DATA(insert OID = 0 ( devine 6724 t t t t ));
|
||||
DATA(insert OID = 0 ( boris 6396 t t t t ));
|
||||
DATA(insert OID = 0 ( sklower 354 t t t t ));
|
||||
DATA(insert OID = 0 ( marcel 31113 t t t t ));
|
||||
DATA(insert OID = 0 ( ginger 3692 t t t t ));
|
||||
DATA(insert OID = 0 ( woodruff 31026 t t t t ));
|
||||
DATA(insert OID = 0 ( searcher 8261 t t t t ));
|
||||
|
||||
BKI_BEGIN
|
||||
#endif /* ALLOW_PG_GROUP */
|
||||
BKI_END
|
||||
|
||||
#endif /* PG_USER_H */
|
||||
@@ -1,40 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_variable.h--
|
||||
* the system variable relation "pg_variable" is not a "heap" relation.
|
||||
* it is automatically created by the transam/ code and the
|
||||
* information here is all bogus and is just here to make the
|
||||
* relcache code happy.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_variable.h,v 1.1.1.1 1996/07/09 06:21:18 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* The structures and macros used by the transam/ code
|
||||
* to access pg_variable should someday go here -cim 6/18/90
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_VARIABLE_H
|
||||
#define PG_VARIABLE_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
|
||||
CATALOG(pg_variable) BOOTSTRAP {
|
||||
Oid varfoo;
|
||||
} FormData_pg_variable;
|
||||
|
||||
typedef FormData_pg_variable *Form_pg_variable;
|
||||
|
||||
#define Natts_pg_variable 1
|
||||
#define Anum_pg_variable_varfoo 1
|
||||
|
||||
#endif /* PG_VARIABLE_H */
|
||||
@@ -1,58 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_version.h--
|
||||
* definition of the system "version" relation (pg_version)
|
||||
* along with the relation's initial contents.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_version.h,v 1.1.1.1 1996/07/09 06:21:18 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* the genbki.sh script reads this file and generates .bki
|
||||
* information from the DATA() statements.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_VERSION_H
|
||||
#define PG_VERSION_H
|
||||
|
||||
/* ----------------
|
||||
* postgres.h contains the system type definintions and the
|
||||
* CATALOG(), BOOTSTRAP and DATA() sugar words so this file
|
||||
* can be read by both genbki.sh and the C compiler.
|
||||
* ----------------
|
||||
*/
|
||||
#include "postgres.h"
|
||||
#include "utils/nabstime.h"
|
||||
|
||||
/* ----------------
|
||||
* pg_version definition. cpp turns this into
|
||||
* typedef struct FormData_pg_version
|
||||
* ----------------
|
||||
*/
|
||||
CATALOG(pg_version) {
|
||||
Oid verrelid;
|
||||
Oid verbaseid;
|
||||
int4 vertime; /* really should be some abstime */
|
||||
} FormData_pg_version;
|
||||
|
||||
/* ----------------
|
||||
* Form_pg_version corresponds to a pointer to a tuple with
|
||||
* the format of pg_version relation.
|
||||
* ----------------
|
||||
*/
|
||||
typedef FormData_pg_version *VersionTupleForm;
|
||||
|
||||
/* ----------------
|
||||
* compiler constants for pg_version
|
||||
* ----------------
|
||||
*/
|
||||
#define Natts_pg_version 3
|
||||
#define Anum_pg_version_verrelid 1
|
||||
#define Anum_pg_version_verbaseid 2
|
||||
#define Anum_pg_version_vertime 3
|
||||
|
||||
|
||||
#endif /* PG_VERSION_H */
|
||||
@@ -1,33 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* async.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: async.h,v 1.1.1.1 1996/07/09 06:21:19 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef ASYNC_H
|
||||
#define ASYNC_H
|
||||
|
||||
#include "nodes/memnodes.h"
|
||||
|
||||
#if defined(PORTNAME_linux)
|
||||
extern void Async_NotifyHandler(int);
|
||||
#else
|
||||
extern void Async_NotifyHandler(void);
|
||||
#endif
|
||||
extern void Async_Notify(char *relname);
|
||||
extern void Async_NotifyAtCommit(void);
|
||||
extern void Async_NotifyAtAbort(void);
|
||||
extern void Async_Listen(char *relname, int pid);
|
||||
extern void Async_Unlisten(char *relname, int pid);
|
||||
extern void Async_UnlistenOnExit(int code, char *relname);
|
||||
|
||||
extern GlobalMemory notifyContext;
|
||||
extern void Async_NotifyFrontEnd(void);
|
||||
|
||||
#endif /* ASYNC_H */
|
||||
@@ -1,30 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* cluster.h--
|
||||
* header file for postgres cluster command stuff
|
||||
*
|
||||
* Copyright (c) 1994-5, Regents of the University of California
|
||||
*
|
||||
* $Id: cluster.h,v 1.1.1.1 1996/07/09 06:21:19 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef CLUSTER_H
|
||||
#define CLUSTER_H
|
||||
|
||||
/*
|
||||
* defines for contant stuff
|
||||
*/
|
||||
#define _TEMP_RELATION_KEY_ "clXXXXXXXX"
|
||||
#define _SIZE_OF_TEMP_RELATION_KEY_ 11
|
||||
|
||||
|
||||
/*
|
||||
* functions
|
||||
*/
|
||||
extern void cluster(char oldrelname[], char oldindexname[]);
|
||||
extern Relation copy_heap(Oid OIDOldHeap);
|
||||
extern void copy_index(Oid OIDOldIndex, Oid OIDNewHeap);
|
||||
extern void rebuildheap(Oid OIDNewHeap, Oid OIDOldHeap, Oid OIDOldIndex);
|
||||
|
||||
#endif /* CLUSTER_H */
|
||||
@@ -1,56 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* command.h--
|
||||
* prototypes for command.c.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: command.h,v 1.1.1.1 1996/07/09 06:21:19 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef COMMAND_H
|
||||
#define COMMAND_H
|
||||
|
||||
#include "utils/portal.h"
|
||||
#include "tcop/dest.h"
|
||||
|
||||
extern MemoryContext PortalExecutorHeapMemory;
|
||||
|
||||
/*
|
||||
* PortalCleanup --
|
||||
* Cleans up the query state of the portal.
|
||||
*
|
||||
* Exceptions:
|
||||
* BadArg if portal invalid.
|
||||
*/
|
||||
extern void PortalCleanup(Portal portal);
|
||||
|
||||
|
||||
/*
|
||||
* PerformPortalFetch --
|
||||
* Performs the POSTQUEL function FETCH. Fetches count (or all if 0)
|
||||
* tuples in portal with name in the forward direction iff goForward.
|
||||
*
|
||||
* Exceptions:
|
||||
* BadArg if forward invalid.
|
||||
* "WARN" if portal not found.
|
||||
*/
|
||||
extern void PerformPortalFetch(char *name, bool forward, int count,
|
||||
char *tag, CommandDest dest);
|
||||
|
||||
/*
|
||||
* PerformPortalClose --
|
||||
* Performs the POSTQUEL function CLOSE.
|
||||
*/
|
||||
extern void PerformPortalClose(char *name, CommandDest dest);
|
||||
|
||||
/*
|
||||
* PerformAddAttribute --
|
||||
* Performs the POSTQUEL function ADD.
|
||||
*/
|
||||
extern void PerformAddAttribute(char *relationName, char *userName,
|
||||
bool inh, ColumnDef *colDef);
|
||||
|
||||
#endif /* COMMAND_H */
|
||||
@@ -1,21 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* copy.h--
|
||||
* Definitions for using the POSTGRES copy command.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: copy.h,v 1.2 1996/08/24 20:48:16 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef COPY_H
|
||||
#define COPY_H
|
||||
|
||||
#include "postgres.h"
|
||||
|
||||
void DoCopy(char *relname, bool binary, bool oids, bool from, bool pipe, char *filename,
|
||||
char *delim);
|
||||
|
||||
#endif /* COPY_H */
|
||||
@@ -1,20 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* creatinh.h--
|
||||
* prototypes for creatinh.c.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: creatinh.h,v 1.1.1.1 1996/07/09 06:21:20 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef CREATINH_H
|
||||
#define CREATINH_H
|
||||
|
||||
extern void DefineRelation(CreateStmt *stmt);
|
||||
extern void RemoveRelation(char *name);
|
||||
extern char* MakeArchiveName(Oid relid);
|
||||
|
||||
#endif /* CREATINH_H */
|
||||
@@ -1,53 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* defrem.h--
|
||||
* POSTGRES define and remove utility definitions.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: defrem.h,v 1.1.1.1 1996/07/09 06:21:20 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef DEFREM_H
|
||||
#define DEFREM_H
|
||||
|
||||
#include "postgres.h"
|
||||
#include "nodes/pg_list.h"
|
||||
#include "nodes/primnodes.h"
|
||||
#include "nodes/parsenodes.h"
|
||||
#include "tcop/dest.h"
|
||||
|
||||
/*
|
||||
* prototypes in defind.c
|
||||
*/
|
||||
extern void DefineIndex(char *heapRelationName,
|
||||
char *indexRelationName,
|
||||
char *accessMethodName,
|
||||
List *attributeList,
|
||||
List *parameterList, Expr *predicate,
|
||||
List *rangetable);
|
||||
extern void ExtendIndex(char *indexRelationName,
|
||||
Expr *predicate,
|
||||
List *rangetable);
|
||||
extern void RemoveIndex(char *name);
|
||||
|
||||
/*
|
||||
* prototypes in define.c
|
||||
*/
|
||||
extern void DefineFunction(ProcedureStmt *nameargsexe, CommandDest dest);
|
||||
extern void DefineOperator(char *name, List *parameters);
|
||||
extern void DefineAggregate(char *name, List *parameters);
|
||||
extern void DefineType(char *name, List *parameters);
|
||||
|
||||
/*
|
||||
* prototypes in remove.c
|
||||
*/
|
||||
extern void RemoveFunction(char *functionName, int nargs, List *argNameList);
|
||||
extern void RemoveOperator(char *operatorName,
|
||||
char *typeName1, char *typeName2);
|
||||
extern void RemoveType(char *typeName);
|
||||
extern void RemoveAggregate(char *aggName);
|
||||
|
||||
#endif /* DEFREM_H */
|
||||
@@ -1,17 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* explain.h--
|
||||
* prototypes for explain.c
|
||||
*
|
||||
* Copyright (c) 1994-5, Regents of the University of California
|
||||
*
|
||||
* $Id: explain.h,v 1.1.1.1 1996/07/09 06:21:21 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef EXPLAIN_H
|
||||
#define EXPLAIN_H
|
||||
|
||||
extern void ExplainQuery(Query *query, List *options, CommandDest dest);
|
||||
|
||||
#endif /* EXPLAIN_H*/
|
||||
@@ -1,20 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* purge.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: purge.h,v 1.1.1.1 1996/07/09 06:21:21 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PURGE_H
|
||||
#define PURGE_H
|
||||
|
||||
extern int32 RelationPurge(char *relationName,
|
||||
char *absoluteTimeString,
|
||||
char *relativeTimeString);
|
||||
|
||||
#endif /* PURGE_H */
|
||||
@@ -7,13 +7,13 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/commands/Attic/recipe.c,v 1.1.1.1 1996/07/09 06:21:21 scrappy Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/commands/Attic/recipe.c,v 1.2 1996/08/28 07:16:17 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
|
||||
#include "include/postgres.h"
|
||||
#include "postgres.h"
|
||||
#include "nodes/parsenodes.h"
|
||||
#include "nodes/plannodes.h"
|
||||
#include "nodes/execnodes.h"
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* recipe.h--
|
||||
* recipe handling routines
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: recipe.h,v 1.1.1.1 1996/07/09 06:21:21 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef RECIPE_H
|
||||
#define RECIPE_H
|
||||
|
||||
extern void beginRecipe(RecipeStmt* stmt);
|
||||
|
||||
#endif /* RECIPE_H */
|
||||
@@ -1,24 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* rename.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: rename.h,v 1.1.1.1 1996/07/09 06:21:22 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef RENAME_H
|
||||
#define RENAME_H
|
||||
|
||||
extern void renameatt(char *relname,
|
||||
char *oldattname,
|
||||
char *newattname,
|
||||
char *userName, int recurse);
|
||||
|
||||
extern void renamerel(char *oldrelname,
|
||||
char *newrelname);
|
||||
|
||||
#endif /* RENAME_H */
|
||||
@@ -1,48 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* vacuum.h--
|
||||
* header file for postgres vacuum cleaner
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: vacuum.h,v 1.1.1.1 1996/07/09 06:21:23 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef VACUUM_H
|
||||
#define VACUUM_H
|
||||
|
||||
typedef struct VAttListData {
|
||||
int val_dummy;
|
||||
struct VAttListData *val_next;
|
||||
} VAttListData;
|
||||
|
||||
typedef VAttListData *VAttList;
|
||||
|
||||
typedef struct VTidListData {
|
||||
ItemPointerData vtl_tid;
|
||||
struct VTidListData *vtl_next;
|
||||
} VTidListData;
|
||||
|
||||
typedef VTidListData *VTidList;
|
||||
|
||||
typedef struct VRelListData {
|
||||
Oid vrl_relid;
|
||||
VAttList vrl_attlist;
|
||||
VTidList vrl_tidlist;
|
||||
int vrl_ntups;
|
||||
int vrl_npages;
|
||||
bool vrl_hasindex;
|
||||
struct VRelListData *vrl_next;
|
||||
} VRelListData;
|
||||
|
||||
typedef VRelListData *VRelList;
|
||||
|
||||
extern bool VacuumRunning;
|
||||
|
||||
extern void vc_abort(void);
|
||||
extern void vacuum(char *vacrel);
|
||||
|
||||
|
||||
#endif /* VACUUM_H */
|
||||
@@ -1,26 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* version.h--
|
||||
* Header file for versions.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: version.h,v 1.1.1.1 1996/07/09 06:21:23 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef VERSION_H
|
||||
#define VERSION_H
|
||||
|
||||
#include "postgres.h"
|
||||
#include "nodes/pg_list.h"
|
||||
|
||||
extern void DefineVersion(char *name, char *fromRelname, char *date);
|
||||
extern void VersionCreate(char *vname, char *bname);
|
||||
extern void VersionAppend(char *vname, char *bname);
|
||||
extern void VersionRetrieve(char *vname, char *bname, char *snapshot);
|
||||
extern void VersionDelete(char *vname, char *bname, char *snapshot);
|
||||
extern void VersionReplace(char *vname, char *bname, char *snapshot);
|
||||
|
||||
#endif /* VERSION_H */
|
||||
@@ -1,20 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* view.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: view.h,v 1.1.1.1 1996/07/09 06:21:23 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef VIEW_H
|
||||
#define VIEW_H
|
||||
|
||||
extern char *MakeRetrieveViewRuleName(char *view_name);
|
||||
extern void DefineView(char *view_name, Query *view_parse);
|
||||
extern void RemoveView(char *view_name);
|
||||
|
||||
#endif /* VIEW_H */
|
||||
@@ -1,26 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* execFlatten.h--
|
||||
* prototypes for execFlatten.c.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: execFlatten.h,v 1.1.1.1 1996/07/09 06:21:24 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef EXECFLATTEN_H
|
||||
#define EXECFLATTEN_H
|
||||
|
||||
extern Datum ExecEvalIter(Iter *iterNode, ExprContext *econtext, bool *resultIsNull, bool *iterIsDone);
|
||||
|
||||
extern void ExecEvalFjoin(TargetEntry *tlist, ExprContext *econtext, bool *isNullVect, bool *fj_isDone);
|
||||
|
||||
extern bool FjoinBumpOuterNodes(TargetEntry *tlist, ExprContext *econtext, DatumPtr results, char *nulls);
|
||||
|
||||
|
||||
#endif /* EXECFLATTEN_H */
|
||||
|
||||
|
||||
|
||||
@@ -1,377 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* execdebug.h--
|
||||
* #defines governing debugging behaviour in the executor
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: execdebug.h,v 1.1.1.1 1996/07/09 06:21:25 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef EXECDEBUG_H
|
||||
#define EXECDEBUG_H
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* debugging defines.
|
||||
*
|
||||
* If you want certain debugging behaviour, then #define
|
||||
* the variable to 1, else #undef it. -cim 10/26/89
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* ----------------
|
||||
* EXEC_DEBUGSTORETUP is for tuple table debugging - this
|
||||
* will print a message every time we call ExecStoreTuple.
|
||||
* -cim 3/20/91
|
||||
* ----------------
|
||||
*/
|
||||
#undef EXEC_DEBUGSTORETUP
|
||||
|
||||
/* ----------------
|
||||
* EXEC_TUPLECOUNT is a #define which causes the
|
||||
* executor keep track of tuple counts. This might be
|
||||
* causing some problems with the decstation stuff so
|
||||
* you might want to undefine this if you are doing work
|
||||
* on the decs - cim 10/20/89
|
||||
* ----------------
|
||||
*/
|
||||
#undef EXEC_TUPLECOUNT
|
||||
|
||||
/* ----------------
|
||||
* EXEC_SHOWBUFSTATS controls whether or not buffer statistics
|
||||
* are shown for each query. -cim 2/9/89
|
||||
* ----------------
|
||||
*/
|
||||
#undef EXEC_SHOWBUFSTATS
|
||||
|
||||
/* ----------------
|
||||
* EXEC_CONTEXTDEBUG turns on the printing of debugging information
|
||||
* by CXT_printf() calls regarding which memory context is the
|
||||
* CurrentMemoryContext for palloc() calls.
|
||||
* ----------------
|
||||
*/
|
||||
#undef EXEC_CONTEXTDEBUG
|
||||
|
||||
/* ----------------
|
||||
* EXEC_RETURNSIZE is a compile flag governing the
|
||||
* behaviour of lispFmgr.. See ExecMakeFunctionResult().
|
||||
* Undefining this avoids a problem in the system cache.
|
||||
*
|
||||
* Note: undefining this means that there is incorrect
|
||||
* information in the const nodes corresponding
|
||||
* to function (or operator) results. The thing is,
|
||||
* 99% of the time this is fine because when you do
|
||||
* something like x = emp.sal + 1, you already know
|
||||
* the type and size of x so the fact that + didn't
|
||||
* return the correct size doesn't matter.
|
||||
* With variable length stuff the size is stored in
|
||||
* the first few bytes of the data so again, it's
|
||||
* not likely to matter.
|
||||
* ----------------
|
||||
*/
|
||||
#undef EXEC_RETURNSIZE
|
||||
|
||||
/* ----------------
|
||||
* EXEC_UTILSDEBUG is a flag which turns on debugging of the
|
||||
* executor utilities by EU_printf() in eutils.c
|
||||
* ----------------
|
||||
*/
|
||||
#undef EXEC_UTILSDEBUG
|
||||
|
||||
/* ----------------
|
||||
* EXEC_NESTLOOPDEBUG is a flag which turns on debugging of the
|
||||
* nest loop node by NL_printf() and ENL_printf() in nestloop.c
|
||||
* ----------------
|
||||
*/
|
||||
#undef EXEC_NESTLOOPDEBUG
|
||||
|
||||
/* ----------------
|
||||
* EXEC_PROCDEBUG is a flag which turns on debugging of
|
||||
* ExecProcNode() by PN_printf() in procnode.c
|
||||
* ----------------
|
||||
*/
|
||||
#undef EXEC_PROCDEBUG
|
||||
|
||||
/* ----------------
|
||||
* EXEC_EVALDEBUG is a flag which turns on debugging of
|
||||
* ExecEval and ExecTargetList() stuff by EV_printf() in qual.c
|
||||
* ----------------
|
||||
*/
|
||||
#undef EXEC_EVALDEBUG
|
||||
|
||||
/* ----------------
|
||||
* EXEC_SCANDEBUG is a flag which turns on debugging of
|
||||
* the ExecSeqScan() stuff by S_printf() in seqscan.c
|
||||
* ----------------
|
||||
*/
|
||||
#undef EXEC_SCANDEBUG
|
||||
|
||||
/* ----------------
|
||||
* EXEC_SORTDEBUG is a flag which turns on debugging of
|
||||
* the ExecSort() stuff by SO_printf() in sort.c
|
||||
* ----------------
|
||||
*/
|
||||
#undef EXEC_SORTDEBUG
|
||||
|
||||
/* ----------------
|
||||
* EXEC_MERGEJOINDEBUG is a flag which turns on debugging of
|
||||
* the ExecMergeJoin() stuff by MJ_printf() in mergejoin.c
|
||||
* ----------------
|
||||
*/
|
||||
#undef EXEC_MERGEJOINDEBUG
|
||||
|
||||
/* ----------------
|
||||
* EXEC_MERGEJOINPFREE is a flag which causes merge joins
|
||||
* to pfree intermittant tuples (which is the proper thing)
|
||||
* Not defining this means we avoid menory management problems
|
||||
* at the cost of doing deallocation of stuff only at the
|
||||
* end of the transaction
|
||||
* ----------------
|
||||
*/
|
||||
#undef EXEC_MERGEJOINPFREE
|
||||
|
||||
/* ----------------
|
||||
* EXEC_DEBUGINTERACTIVE is a flag which enables the
|
||||
* user to issue "DEBUG" commands from an interactive
|
||||
* backend.
|
||||
* ----------------
|
||||
*/
|
||||
#undef EXEC_DEBUGINTERACTIVE
|
||||
|
||||
/* ----------------
|
||||
* EXEC_DEBUGVARIABLEFILE is string, which if defined will
|
||||
* be loaded when the executor is initialized. If this
|
||||
* string is not defined then nothing will be loaded..
|
||||
*
|
||||
* Example:
|
||||
*
|
||||
* #define EXEC_DEBUGVARIABLEFILE "/a/postgres/cimarron/.pg_debugvars"
|
||||
#
|
||||
* Note: since these variables are read at execution time,
|
||||
* they can't affect the first query.. this hack should be
|
||||
* replaced by something better sometime. -cim 11/2/89
|
||||
* ----------------
|
||||
*/
|
||||
#undef EXEC_DEBUGVARIABLEFILE
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* #defines controlled by above definitions
|
||||
*
|
||||
* Note: most of these are "incomplete" because I didn't
|
||||
* need the ones not defined. More should be added
|
||||
* only as necessary -cim 10/26/89
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
#define T_OR_F(b) (b ? "true" : "false")
|
||||
#define NULL_OR_TUPLE(slot) (TupIsNull(slot) ? "null" : "a tuple")
|
||||
|
||||
|
||||
/* #define EXEC_TUPLECOUNT - XXX take out for now for executor stubbing -- jolly*/
|
||||
/* ----------------
|
||||
* tuple count debugging defines
|
||||
* ----------------
|
||||
*/
|
||||
#ifdef EXEC_TUPLECOUNT
|
||||
extern int NTupleProcessed;
|
||||
extern int NTupleRetrieved;
|
||||
extern int NTupleReplaced;
|
||||
extern int NTupleAppended;
|
||||
extern int NTupleDeleted;
|
||||
extern int NIndexTupleProcessed;
|
||||
extern int NIndexTupleInserted;
|
||||
|
||||
#define IncrRetrieved() NTupleRetrieved++
|
||||
#define IncrAppended() NTupleAppended++
|
||||
#define IncrDeleted() NTupleDeleted++
|
||||
#define IncrReplaced() NTupleReplaced++
|
||||
#define IncrInserted() NTupleInserted++
|
||||
#define IncrProcessed() NTupleProcessed++
|
||||
#define IncrIndexProcessed() NIndexTupleProcessed++
|
||||
#define IncrIndexInserted() NIndexTupleInserted++
|
||||
#else
|
||||
#define IncrRetrieved()
|
||||
#define IncrAppended()
|
||||
#define IncrDeleted()
|
||||
#define IncrReplaced()
|
||||
#define IncrInserted()
|
||||
#define IncrProcessed()
|
||||
#define IncrIndexProcessed()
|
||||
#define IncrIndexInserted()
|
||||
#endif /* EXEC_TUPLECOUNT */
|
||||
|
||||
/* ----------------
|
||||
* memory context debugging defines
|
||||
* ----------------
|
||||
*/
|
||||
#ifdef EXEC_CONTEXTDEBUG
|
||||
#define CXT_printf(s) printf(s)
|
||||
#define CXT1_printf(s, a) printf(s, a)
|
||||
#else
|
||||
#define CXT_printf(s)
|
||||
#define CXT1_printf(s, a)
|
||||
#endif /* EXEC_CONTEXTDEBUG */
|
||||
|
||||
/* ----------------
|
||||
* eutils debugging defines
|
||||
* ----------------
|
||||
*/
|
||||
#ifdef EXEC_UTILSDEBUG
|
||||
#define EU_nodeDisplay(l) nodeDisplay(l, 0)
|
||||
#define EU_printf(s) printf(s)
|
||||
#define EU1_printf(s, a) printf(s, a)
|
||||
#define EU4_printf(s, a, b, c, d) printf(s, a, b, c, d)
|
||||
#else
|
||||
#define EU_nodeDisplay(l)
|
||||
#define EU_printf(s)
|
||||
#define EU1_printf(s, a)
|
||||
#define EU4_printf(s, a, b, c, d)
|
||||
#endif /* EXEC_UTILSDEBUG */
|
||||
|
||||
|
||||
/* ----------------
|
||||
* nest loop debugging defines
|
||||
* ----------------
|
||||
*/
|
||||
#ifdef EXEC_NESTLOOPDEBUG
|
||||
#define NL_nodeDisplay(l) nodeDisplay(l, 0)
|
||||
#define NL_printf(s) printf(s)
|
||||
#define NL1_printf(s, a) printf(s, a)
|
||||
#define NL4_printf(s, a, b, c, d) printf(s, a, b, c, d)
|
||||
#define ENL1_printf(message) printf("ExecNestLoop: %s\n", message)
|
||||
#else
|
||||
#define NL_nodeDisplay(l)
|
||||
#define NL_printf(s)
|
||||
#define NL1_printf(s, a)
|
||||
#define NL4_printf(s, a, b, c, d)
|
||||
#define ENL1_printf(message)
|
||||
#endif /* EXEC_NESTLOOPDEBUG */
|
||||
|
||||
/* ----------------
|
||||
* proc node debugging defines
|
||||
* ----------------
|
||||
*/
|
||||
#ifdef EXEC_PROCDEBUG
|
||||
#define PN_printf(s) printf(s)
|
||||
#define PN1_printf(s, p) printf(s, p)
|
||||
#else
|
||||
#define PN_printf(s)
|
||||
#define PN1_printf(s, p)
|
||||
#endif /* EXEC_PROCDEBUG */
|
||||
|
||||
/* ----------------
|
||||
* exec eval / target list debugging defines
|
||||
* ----------------
|
||||
*/
|
||||
#ifdef EXEC_EVALDEBUG
|
||||
#define EV_nodeDisplay(l) nodeDisplay(l, 0)
|
||||
#define EV_printf(s) printf(s)
|
||||
#define EV1_printf(s, a) printf(s, a)
|
||||
#define EV5_printf(s, a, b, c, d, e) printf(s, a, b, c, d, e)
|
||||
#else
|
||||
#define EV_nodeDisplay(l)
|
||||
#define EV_printf(s)
|
||||
#define EV1_printf(s, a)
|
||||
#define EV5_printf(s, a, b, c, d, e)
|
||||
#endif /* EXEC_EVALDEBUG */
|
||||
|
||||
/* ----------------
|
||||
* scan debugging defines
|
||||
* ----------------
|
||||
*/
|
||||
#ifdef EXEC_SCANDEBUG
|
||||
#define S_nodeDisplay(l) nodeDisplay(l, 0)
|
||||
#define S_printf(s) printf(s)
|
||||
#define S1_printf(s, p) printf(s, p)
|
||||
#else
|
||||
#define S_nodeDisplay(l)
|
||||
#define S_printf(s)
|
||||
#define S1_printf(s, p)
|
||||
#endif /* EXEC_SCANDEBUG */
|
||||
|
||||
/* ----------------
|
||||
* sort node debugging defines
|
||||
* ----------------
|
||||
*/
|
||||
#ifdef EXEC_SORTDEBUG
|
||||
#define SO_nodeDisplay(l) nodeDisplay(l, 0)
|
||||
#define SO_printf(s) printf(s)
|
||||
#define SO1_printf(s, p) printf(s, p)
|
||||
#else
|
||||
#define SO_nodeDisplay(l)
|
||||
#define SO_printf(s)
|
||||
#define SO1_printf(s, p)
|
||||
#endif /* EXEC_SORTDEBUG */
|
||||
|
||||
/* ----------------
|
||||
* merge join debugging defines
|
||||
* ----------------
|
||||
*/
|
||||
#ifdef EXEC_MERGEJOINDEBUG
|
||||
#define MJ_nodeDisplay(l) nodeDisplay(l, 0)
|
||||
#define MJ_printf(s) printf(s)
|
||||
#define MJ1_printf(s, p) printf(s, p)
|
||||
#define MJ2_printf(s, p1, p2) printf(s, p1, p2)
|
||||
#define MJ_debugtup(tuple, type) debugtup(tuple, type)
|
||||
#define MJ_dump(context, state) ExecMergeTupleDump(econtext, state)
|
||||
#define MJ_DEBUG_QUAL(clause, res) \
|
||||
MJ2_printf(" ExecQual(%s, econtext) returns %s\n", \
|
||||
CppAsString(clause), T_OR_F(res));
|
||||
|
||||
#define MJ_DEBUG_MERGE_COMPARE(qual, res) \
|
||||
MJ2_printf(" MergeCompare(mergeclauses, %s, ..) returns %s\n", \
|
||||
CppAsString(qual), T_OR_F(res));
|
||||
|
||||
#define MJ_DEBUG_PROC_NODE(slot) \
|
||||
MJ2_printf(" %s = ExecProcNode(innerPlan) returns %s\n", \
|
||||
CppAsString(slot), NULL_OR_TUPLE(slot));
|
||||
#else
|
||||
#define MJ_nodeDisplay(l)
|
||||
#define MJ_printf(s)
|
||||
#define MJ1_printf(s, p)
|
||||
#define MJ2_printf(s, p1, p2)
|
||||
#define MJ_debugtup(tuple, type)
|
||||
#define MJ_dump(context, state)
|
||||
#define MJ_DEBUG_QUAL(clause, res)
|
||||
#define MJ_DEBUG_MERGE_COMPARE(qual, res)
|
||||
#define MJ_DEBUG_PROC_NODE(slot)
|
||||
#endif /* EXEC_MERGEJOINDEBUG */
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* DO NOT DEFINE THESE EVER OR YOU WILL BURN!
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
/* ----------------
|
||||
* DOESNOTWORK is currently placed around memory manager
|
||||
* code that is known to cause problems. Code in between
|
||||
* is likely not converted and probably won't work anyways.
|
||||
* ----------------
|
||||
*/
|
||||
#undef DOESNOTWORK
|
||||
|
||||
/* ----------------
|
||||
* PERHAPSNEVER is placed around the "scan attribute"
|
||||
* support code for the rule manager because for now we
|
||||
* do things inefficiently. The correct solution to our
|
||||
* problem is to add code to the parser/planner to save
|
||||
* attribute information for the rule manager rather than
|
||||
* have the executor have to grope through the entire plan
|
||||
* for it so if we ever decide to make things better,
|
||||
* we should probably delete the stuff in between PERHAPSNEVER..
|
||||
* ----------------
|
||||
*/
|
||||
#undef PERHAPSNEVER
|
||||
|
||||
/* ----------------
|
||||
* NOTYET is placed around any code not yet implemented
|
||||
* in the executor. Only remove these when actually implementing
|
||||
* said code.
|
||||
* ----------------
|
||||
*/
|
||||
#undef NOTYET
|
||||
|
||||
extern long NDirectFileRead;
|
||||
extern long NDirectFileWrite;
|
||||
|
||||
#endif /* ExecDebugIncluded */
|
||||
@@ -1,47 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* execdefs.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: execdefs.h,v 1.2 1996/07/30 07:45:29 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef EXECDEFS_H
|
||||
#define EXECDEFS_H
|
||||
|
||||
/* ----------------
|
||||
* ExecutePlan() tuplecount definitions
|
||||
* ----------------
|
||||
*/
|
||||
#define ALL_TUPLES 0 /* return all tuples */
|
||||
#define ONE_TUPLE 1 /* return only one tuple */
|
||||
|
||||
/* ----------------
|
||||
* constants used by ExecMain
|
||||
* ----------------
|
||||
*/
|
||||
#define EXEC_RUN 3
|
||||
#define EXEC_FOR 4
|
||||
#define EXEC_BACK 5
|
||||
#define EXEC_RETONE 6
|
||||
#define EXEC_RESULT 7
|
||||
|
||||
/* ----------------
|
||||
* Merge Join states
|
||||
* ----------------
|
||||
*/
|
||||
#define EXEC_MJ_INITIALIZE 1
|
||||
#define EXEC_MJ_JOINMARK 2
|
||||
#define EXEC_MJ_JOINTEST 3
|
||||
#define EXEC_MJ_JOINTUPLES 4
|
||||
#define EXEC_MJ_NEXTOUTER 5
|
||||
#define EXEC_MJ_TESTOUTER 6
|
||||
#define EXEC_MJ_NEXTINNER 7
|
||||
#define EXEC_MJ_SKIPINNER 8
|
||||
#define EXEC_MJ_SKIPOUTER 9
|
||||
|
||||
#endif /* EXECDEFS_H */
|
||||
@@ -1,38 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* execdesc.h--
|
||||
* plan and query descriptor accessor macros used by the executor
|
||||
* and related modules.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: execdesc.h,v 1.1.1.1 1996/07/09 06:21:25 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef EXECDESC_H
|
||||
#define EXECDESC_H
|
||||
|
||||
#include "nodes/parsenodes.h"
|
||||
#include "nodes/plannodes.h"
|
||||
#include "tcop/dest.h"
|
||||
|
||||
/* ----------------
|
||||
* query descriptor:
|
||||
* a QueryDesc encapsulates everything that the executor
|
||||
* needs to execute the query
|
||||
* ---------------------
|
||||
*/
|
||||
typedef struct QueryDesc {
|
||||
CmdType operation; /* CMD_SELECT, CMD_UPDATE, etc. */
|
||||
Query *parsetree;
|
||||
Plan *plantree;
|
||||
CommandDest dest; /* the destination output of the execution */
|
||||
} QueryDesc;
|
||||
|
||||
/* in pquery.c */
|
||||
extern QueryDesc *CreateQueryDesc(Query *parsetree, Plan *plantree,
|
||||
CommandDest dest);
|
||||
|
||||
#endif /* EXECDESC_H */
|
||||
@@ -1,229 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* executor.h--
|
||||
* support for the POSTGRES executor module
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: executor.h,v 1.1.1.1 1996/07/09 06:21:25 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef EXECUTOR_H
|
||||
#define EXECUTOR_H
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* #includes
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
#include "postgres.h"
|
||||
#include "nodes/pg_list.h"
|
||||
|
||||
/* ----------------
|
||||
* executor debugging definitions are kept in a separate file
|
||||
* so people can customize what debugging they want to see and not
|
||||
* have this information clobbered every time a new version of
|
||||
* executor.h is checked in -cim 10/26/89
|
||||
* ----------------
|
||||
*/
|
||||
#include "executor/execdebug.h"
|
||||
|
||||
#include "access/heapam.h"
|
||||
#include "access/htup.h"
|
||||
#include "access/istrat.h"
|
||||
#include "access/itup.h"
|
||||
#include "access/skey.h"
|
||||
#include "utils/tqual.h"
|
||||
#include "catalog/catname.h"
|
||||
#include "utils/syscache.h"
|
||||
#include "executor/execdefs.h"
|
||||
#include "executor/tuptable.h"
|
||||
|
||||
#include "nodes/parsenodes.h"
|
||||
|
||||
#include "storage/buf.h"
|
||||
#include "miscadmin.h"
|
||||
#include "fmgr.h"
|
||||
#include "utils/elog.h"
|
||||
#include "utils/mcxt.h"
|
||||
#include "utils/memutils.h"
|
||||
#include "utils/rel.h"
|
||||
|
||||
#include "catalog/pg_index.h"
|
||||
#include "catalog/pg_proc.h"
|
||||
#include "catalog/pg_type.h"
|
||||
#include "catalog/pg_aggregate.h"
|
||||
|
||||
#include "access/printtup.h"
|
||||
#include "nodes/primnodes.h"
|
||||
#include "nodes/plannodes.h"
|
||||
#include "nodes/execnodes.h"
|
||||
|
||||
#include "tcop/dest.h"
|
||||
#include "storage/smgr.h"
|
||||
|
||||
#include "access/genam.h"
|
||||
#include "executor/execdesc.h"
|
||||
|
||||
/*
|
||||
* prototypes from functions in execAmi.c
|
||||
*/
|
||||
extern void ExecOpenScanR(Oid relOid, int nkeys, ScanKey skeys, bool isindex,
|
||||
ScanDirection dir, TimeQual timeRange,
|
||||
Relation *returnRelation, Pointer *returnScanDesc);
|
||||
extern Relation ExecOpenR(Oid relationOid, bool isindex);
|
||||
extern Pointer ExecBeginScan(Relation relation, int nkeys, ScanKey skeys,
|
||||
bool isindex, ScanDirection dir, TimeQual time_range);
|
||||
extern void ExecCloseR(Plan *node);
|
||||
extern void ExecReScan(Plan *node, ExprContext *exprCtxt, Plan *parent);
|
||||
extern HeapScanDesc ExecReScanR(Relation relDesc, HeapScanDesc scanDesc,
|
||||
ScanDirection direction, int nkeys, ScanKey skeys);
|
||||
extern void ExecMarkPos(Plan *node);
|
||||
extern void ExecRestrPos(Plan *node);
|
||||
extern Relation ExecCreatR(TupleDesc tupType, Oid relationOid);
|
||||
|
||||
/*
|
||||
* prototypes from functions in execJunk.c
|
||||
*/
|
||||
extern JunkFilter *ExecInitJunkFilter(List *targetList);
|
||||
extern bool ExecGetJunkAttribute(JunkFilter *junkfilter, TupleTableSlot *slot,
|
||||
char *attrName, Datum *value, bool *isNull);
|
||||
extern HeapTuple ExecRemoveJunk(JunkFilter *junkfilter, TupleTableSlot *slot);
|
||||
|
||||
|
||||
/*
|
||||
* prototypes from functions in execMain.c
|
||||
*/
|
||||
extern TupleDesc ExecutorStart(QueryDesc *queryDesc, EState *estate);
|
||||
extern TupleTableSlot* ExecutorRun(QueryDesc *queryDesc, EState *estate, int feature, int count);
|
||||
extern void ExecutorEnd(QueryDesc *queryDesc, EState *estate);
|
||||
|
||||
/*
|
||||
* prototypes from functions in execProcnode.c
|
||||
*/
|
||||
extern bool ExecInitNode(Plan *node, EState *estate, Plan *parent);
|
||||
extern TupleTableSlot *ExecProcNode(Plan *node, Plan *parent);
|
||||
extern int ExecCountSlotsNode(Plan *node);
|
||||
extern void ExecEndNode(Plan *node, Plan *parent);
|
||||
|
||||
/*
|
||||
* prototypes from functions in execQual.c
|
||||
*/
|
||||
extern bool execConstByVal;
|
||||
extern int execConstLen;
|
||||
|
||||
extern Datum ExecExtractResult(TupleTableSlot *slot, AttrNumber attnum,
|
||||
bool *isNull);
|
||||
extern Datum ExecEvalVar(Var *variable, ExprContext *econtext, bool *isNull);
|
||||
extern Datum ExecEvalParam(Param *expression, ExprContext *econtext,
|
||||
bool *isNull);
|
||||
extern char *GetAttributeByNum(TupleTableSlot *slot, AttrNumber attrno,
|
||||
bool *isNull);
|
||||
extern char *att_by_num(TupleTableSlot *slot, AttrNumber attrno,
|
||||
bool *isNull);
|
||||
/* stop here */
|
||||
extern char *GetAttributeByName(TupleTableSlot *slot, char *attname,
|
||||
bool *isNull);
|
||||
extern char *att_by_name(TupleTableSlot *slot, char *attname, bool *isNull);
|
||||
extern void ExecEvalFuncArgs(FunctionCachePtr fcache, ExprContext *econtext,
|
||||
List *argList, Datum argV[], bool *argIsDone);
|
||||
extern Datum ExecMakeFunctionResult(Node *node, List *arguments,
|
||||
ExprContext *econtext, bool *isNull, bool *isDone);
|
||||
extern Datum ExecEvalOper(Expr *opClause, ExprContext *econtext,
|
||||
bool *isNull);
|
||||
extern Datum ExecEvalFunc(Expr *funcClause, ExprContext *econtext,
|
||||
bool *isNull, bool *isDone);
|
||||
extern Datum ExecEvalNot(Expr *notclause, ExprContext *econtext, bool *isNull);
|
||||
extern Datum ExecEvalOr(Expr *orExpr, ExprContext *econtext, bool *isNull);
|
||||
extern Datum ExecEvalAnd(Expr *andExpr, ExprContext *econtext, bool *isNull);
|
||||
extern Datum ExecEvalExpr(Node *expression, ExprContext *econtext, bool *isNull,
|
||||
bool *isDone);
|
||||
extern bool ExecQualClause(Node *clause, ExprContext *econtext);
|
||||
extern bool ExecQual(List *qual, ExprContext *econtext);
|
||||
extern int ExecTargetListLength(List *targetlist);
|
||||
extern TupleTableSlot *ExecProject(ProjectionInfo *projInfo, bool *isDone);
|
||||
|
||||
/*
|
||||
* prototypes from functions in execScan.c
|
||||
*/
|
||||
extern TupleTableSlot *ExecScan(Scan *node, TupleTableSlot* (*accessMtd)());
|
||||
|
||||
/*
|
||||
* prototypes from functions in execTuples.c
|
||||
*/
|
||||
extern TupleTable ExecCreateTupleTable(int initialSize);
|
||||
extern void ExecDestroyTupleTable(TupleTable table, bool shouldFree);
|
||||
extern TupleTableSlot* ExecAllocTableSlot(TupleTable table);
|
||||
extern TupleTableSlot* ExecStoreTuple(HeapTuple tuple,
|
||||
TupleTableSlot *slot,
|
||||
Buffer buffer,
|
||||
bool shouldFree);
|
||||
extern TupleTableSlot* ExecClearTuple(TupleTableSlot* slot);
|
||||
extern bool ExecSlotPolicy(TupleTableSlot *slot);
|
||||
extern bool ExecSetSlotPolicy(TupleTableSlot *slot, bool shouldFree);
|
||||
extern TupleDesc ExecSetSlotDescriptor(TupleTableSlot *slot,
|
||||
TupleDesc tupdesc);
|
||||
extern void ExecSetSlotDescriptorIsNew(TupleTableSlot *slot, bool isNew);
|
||||
extern TupleDesc ExecSetNewSlotDescriptor(TupleTableSlot *slot,
|
||||
TupleDesc tupdesc);
|
||||
extern Buffer ExecSetSlotBuffer(TupleTableSlot *slot, Buffer b);
|
||||
extern void ExecIncrSlotBufferRefcnt(TupleTableSlot *slot);
|
||||
extern bool TupIsNull(TupleTableSlot* slot);
|
||||
extern bool ExecSlotDescriptorIsNew(TupleTableSlot *slot);
|
||||
extern void ExecInitResultTupleSlot(EState *estate, CommonState *commonstate);
|
||||
extern void ExecInitScanTupleSlot(EState *estate,
|
||||
CommonScanState *commonscanstate);
|
||||
extern void ExecInitMarkedTupleSlot(EState *estate, MergeJoinState *mergestate);
|
||||
extern void ExecInitOuterTupleSlot(EState *estate, HashJoinState *hashstate);
|
||||
extern void ExecInitHashTupleSlot(EState *estate, HashJoinState *hashstate);
|
||||
extern TupleTableSlot *NodeGetResultTupleSlot(Plan *node);
|
||||
|
||||
extern TupleDesc ExecGetTupType(Plan *node);
|
||||
extern TupleDesc ExecTypeFromTL(List *targetList);
|
||||
|
||||
/*
|
||||
* prototypes from functions in execTuples.c
|
||||
*/
|
||||
extern void ResetTupleCount();
|
||||
extern void DisplayTupleCount(FILE *statfp);
|
||||
extern void ExecAssignNodeBaseInfo(EState *estate, CommonState *basenode,
|
||||
Plan *parent);
|
||||
extern void ExecAssignExprContext(EState *estate, CommonState *commonstate);
|
||||
extern void ExecAssignResultType(CommonState *commonstate,
|
||||
TupleDesc tupDesc);
|
||||
extern void ExecAssignResultTypeFromOuterPlan(Plan *node,
|
||||
CommonState *commonstate);
|
||||
extern void ExecAssignResultTypeFromTL(Plan *node, CommonState *commonstate);
|
||||
extern TupleDesc ExecGetResultType(CommonState *commonstate);
|
||||
extern void ExecFreeResultType(CommonState *commonstate);
|
||||
extern void ExecAssignProjectionInfo(Plan *node, CommonState *commonstate);
|
||||
extern void ExecFreeProjectionInfo(CommonState *commonstate);
|
||||
extern TupleDesc ExecGetScanType(CommonScanState *csstate);
|
||||
extern void ExecFreeScanType(CommonScanState *csstate);
|
||||
extern void ExecAssignScanType(CommonScanState *csstate,
|
||||
TupleDesc tupDesc);
|
||||
extern void ExecAssignScanTypeFromOuterPlan(Plan *node,
|
||||
CommonScanState *csstate);
|
||||
extern AttributeTupleForm ExecGetTypeInfo(Relation relDesc);
|
||||
|
||||
extern void ExecGetIndexKeyInfo(IndexTupleForm indexTuple, int *numAttsOutP,
|
||||
AttrNumber **attsOutP, FuncIndexInfoPtr fInfoP);
|
||||
extern void ExecOpenIndices(Oid resultRelationOid,
|
||||
RelationInfo *resultRelationInfo);
|
||||
extern void ExecCloseIndices(RelationInfo *resultRelationInfo);
|
||||
extern IndexTuple ExecFormIndexTuple(HeapTuple heapTuple,
|
||||
Relation heapRelation, Relation indexRelation, IndexInfo *indexInfo);
|
||||
extern void ExecInsertIndexTuples(TupleTableSlot *slot, ItemPointer tupleid,
|
||||
EState *estate);
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* the end
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#endif /* EXECUTOR_H */
|
||||
@@ -1,22 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* functions.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: functions.h,v 1.1.1.1 1996/07/09 06:21:25 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef FUNCTIONS_H
|
||||
#define FUNCTIONS_H
|
||||
|
||||
extern Datum ProjectAttribute(TupleDesc TD, TargetEntry *tlist,
|
||||
HeapTuple tup, bool *isnullP);
|
||||
|
||||
extern Datum postquel_function(Func *funcNode, char **args,
|
||||
bool *isNull, bool *isDone);
|
||||
|
||||
#endif /* FUNCTIONS_H */
|
||||
@@ -1,82 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* hashjoin.h--
|
||||
* internal structures for hash table and buckets
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: hashjoin.h,v 1.1.1.1 1996/07/09 06:21:25 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef HASHJOIN_H
|
||||
#define HASHJOIN_H
|
||||
|
||||
#include "access/htup.h"
|
||||
#include "storage/ipc.h"
|
||||
|
||||
/* -----------------
|
||||
* have to use relative address as pointers in the hashtable
|
||||
* because the hashtable may reallocate in difference processes
|
||||
* -----------------
|
||||
*/
|
||||
typedef int RelativeAddr;
|
||||
|
||||
/* ------------------
|
||||
* the relative addresses are always relative to the head of the
|
||||
* hashtable, the following macro converts them to absolute address.
|
||||
* ------------------
|
||||
*/
|
||||
#define ABSADDR(X) ((X) < 0 ? NULL: (char*)hashtable + X)
|
||||
#define RELADDR(X) (RelativeAddr)((char*)(X) - (char*)hashtable)
|
||||
|
||||
typedef char **charPP;
|
||||
typedef int *intP;
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* hash-join hash table structures
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
typedef struct HashTableData {
|
||||
int nbuckets;
|
||||
int totalbuckets;
|
||||
int bucketsize;
|
||||
IpcMemoryId shmid;
|
||||
RelativeAddr top; /* char* */
|
||||
RelativeAddr bottom; /* char* */
|
||||
RelativeAddr overflownext; /* char* */
|
||||
RelativeAddr batch; /* char* */
|
||||
RelativeAddr readbuf; /* char* */
|
||||
int nbatch;
|
||||
RelativeAddr outerbatchNames; /* RelativeAddr* */
|
||||
RelativeAddr outerbatchPos; /* RelativeAddr* */
|
||||
RelativeAddr innerbatchNames; /* RelativeAddr* */
|
||||
RelativeAddr innerbatchPos; /* RelativeAddr* */
|
||||
RelativeAddr innerbatchSizes; /* int* */
|
||||
int curbatch;
|
||||
int nprocess;
|
||||
int pcount;
|
||||
} HashTableData; /* real hash table follows here */
|
||||
|
||||
typedef HashTableData *HashJoinTable;
|
||||
|
||||
typedef struct OverflowTupleData {
|
||||
RelativeAddr tuple; /* HeapTuple */
|
||||
RelativeAddr next; /* struct OverflowTupleData * */
|
||||
} OverflowTupleData; /* real tuple follows here */
|
||||
|
||||
typedef OverflowTupleData *OverflowTuple;
|
||||
|
||||
typedef struct HashBucketData {
|
||||
RelativeAddr top; /* HeapTuple */
|
||||
RelativeAddr bottom; /* HeapTuple */
|
||||
RelativeAddr firstotuple; /* OverflowTuple */
|
||||
RelativeAddr lastotuple; /* OverflowTuple */
|
||||
} HashBucketData; /* real bucket follows here */
|
||||
|
||||
typedef HashBucketData *HashBucket;
|
||||
|
||||
#define HASH_PERMISSION 0700
|
||||
|
||||
#endif /* HASHJOIN_H */
|
||||
@@ -1,21 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* nodeAgg.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: nodeAgg.h,v 1.1.1.1 1996/07/09 06:21:26 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef NODEAGG_H
|
||||
#define NODEAGG_H
|
||||
|
||||
extern TupleTableSlot *ExecAgg(Agg *node);
|
||||
extern bool ExecInitAgg(Agg *node, EState *estate, Plan *parent);
|
||||
extern int ExecCountSlotsAgg(Agg *node);
|
||||
extern void ExecEndAgg(Agg *node);
|
||||
|
||||
#endif /* NODEAGG_H */
|
||||
@@ -1,22 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* nodeAppend.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: nodeAppend.h,v 1.1.1.1 1996/07/09 06:21:26 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef NODEAPPEND_H
|
||||
#define NODEAPPEND_H
|
||||
|
||||
extern bool exec_append_initialize_next(Append *node);
|
||||
extern bool ExecInitAppend(Append *node, EState *estate, Plan *parent);
|
||||
extern int ExecCountSlotsAppend(Append *node);
|
||||
extern TupleTableSlot *ExecProcAppend(Append *node);
|
||||
extern void ExecEndAppend(Append *node);
|
||||
|
||||
#endif /* NODEAPPEND_H */
|
||||
@@ -1,21 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* nodeGroup.h--
|
||||
* prototypes for nodeGroup.c
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: nodeGroup.h,v 1.1.1.1 1996/07/09 06:21:26 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef NODEGROUP_H
|
||||
#define NODEGROUP_H
|
||||
|
||||
extern TupleTableSlot *ExecGroup(Group *node);
|
||||
extern bool ExecInitGroup(Group *node, EState *estate, Plan *parent);
|
||||
extern int ExecCountSlotsGroup(Group *node);
|
||||
extern void ExecEndGroup(Group *node);
|
||||
|
||||
#endif /* NODEGROUP_H */
|
||||
@@ -1,35 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* nodeHash.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: nodeHash.h,v 1.1.1.1 1996/07/09 06:21:26 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef NODEHASH_H
|
||||
#define NODEHASH_H
|
||||
|
||||
extern TupleTableSlot *ExecHash(Hash *node);
|
||||
extern bool ExecInitHash(Hash *node, EState *estate, Plan *parent);
|
||||
extern int ExecCountSlotsHash(Hash *node);
|
||||
extern void ExecEndHash(Hash *node);
|
||||
extern RelativeAddr hashTableAlloc(int size, HashJoinTable hashtable);
|
||||
extern HashJoinTable ExecHashTableCreate(Hash *node);
|
||||
extern void ExecHashTableInsert(HashJoinTable hashtable, ExprContext *econtext,
|
||||
Var *hashkey, File *batches);
|
||||
extern void ExecHashTableDestroy(HashJoinTable hashtable);
|
||||
extern int ExecHashGetBucket(HashJoinTable hashtable, ExprContext *econtext,
|
||||
Var *hashkey);
|
||||
extern void ExecHashOverflowInsert(HashJoinTable hashtable, HashBucket bucket,
|
||||
HeapTuple heapTuple);
|
||||
extern HeapTuple ExecScanHashBucket(HashJoinState *hjstate, HashBucket bucket,
|
||||
HeapTuple curtuple, List *hjclauses,
|
||||
ExprContext *econtext);
|
||||
extern int ExecHashPartition(Hash *node);
|
||||
extern void ExecHashTableReset(HashJoinTable hashtable, int ntuples);
|
||||
|
||||
#endif /* NODEHASH_H */
|
||||
@@ -1,33 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* nodeHashjoin.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: nodeHashjoin.h,v 1.1.1.1 1996/07/09 06:21:26 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef NODEHASHJOIN_H
|
||||
#define NODEHASHJOIN_H
|
||||
|
||||
extern TupleTableSlot *ExecHashJoin(HashJoin *node);
|
||||
|
||||
extern bool ExecInitHashJoin(HashJoin *node, EState *estate, Plan *parent);
|
||||
|
||||
extern int ExecCountSlotsHashJoin(HashJoin *node);
|
||||
|
||||
extern void ExecEndHashJoin(HashJoin *node);
|
||||
|
||||
extern int ExecHashJoinNewBatch(HashJoinState *hjstate);
|
||||
|
||||
extern char *ExecHashJoinSaveTuple(HeapTuple heapTuple, char *buffer,
|
||||
File file, char *position);
|
||||
|
||||
extern int ExecHashJoinGetBatch(int bucketno, HashJoinTable hashtable,
|
||||
int nbatch);
|
||||
|
||||
|
||||
#endif /* NODEHASHJOIN_H */
|
||||
@@ -1,32 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* nodeIndexscan.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: nodeIndexscan.h,v 1.1.1.1 1996/07/09 06:21:26 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef NODEINDEXSCAN_H
|
||||
#define NODEINDEXSCAN_H
|
||||
|
||||
extern TupleTableSlot *ExecIndexScan(IndexScan *node);
|
||||
|
||||
extern void ExecIndexReScan(IndexScan *node, ExprContext *exprCtxt, Plan *parent);
|
||||
|
||||
extern void ExecEndIndexScan(IndexScan *node);
|
||||
|
||||
extern void ExecIndexMarkPos(IndexScan *node);
|
||||
|
||||
extern void ExecIndexRestrPos(IndexScan *node);
|
||||
|
||||
extern void ExecUpdateIndexScanKeys(IndexScan *node, ExprContext *econtext);
|
||||
|
||||
extern bool ExecInitIndexScan(IndexScan *node, EState *estate, Plan *parent);
|
||||
|
||||
extern int ExecCountSlotsIndexScan(IndexScan *node);
|
||||
|
||||
#endif /* NODEINDEXSCAN_H */
|
||||
@@ -1,23 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* nodeMaterial.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: nodeMaterial.h,v 1.1.1.1 1996/07/09 06:21:27 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef NODEMATERIAL_H
|
||||
#define NODEMATERIAL_H
|
||||
|
||||
extern TupleTableSlot *ExecMaterial(Material *node);
|
||||
extern bool ExecInitMaterial(Material *node, EState *estate, Plan *parent);
|
||||
extern int ExecCountSlotsMaterial(Material *node);
|
||||
extern void ExecEndMaterial(Material *node);
|
||||
extern List ExecMaterialMarkPos(Material *node);
|
||||
extern void ExecMaterialRestrPos(Material *node);
|
||||
|
||||
#endif /* NODEMATERIAL_H */
|
||||
@@ -1,40 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* nodeMergejoin.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: nodeMergejoin.h,v 1.1.1.1 1996/07/09 06:21:27 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef NODEMERGEJOIN_H
|
||||
#define NODEMERGEJOIN_H
|
||||
|
||||
#if 0 /* aren't these static? */
|
||||
extern List MJFormOSortopI(List qualList, Oid sortOp);
|
||||
extern List MJFormISortopO(List qualList, Oid sortOp);
|
||||
#endif
|
||||
extern bool MergeCompare(List *eqQual, List *compareQual, ExprContext *econtext);
|
||||
|
||||
extern void ExecMergeTupleDumpInner(ExprContext *econtext);
|
||||
|
||||
extern void ExecMergeTupleDumpOuter(ExprContext *econtext);
|
||||
|
||||
extern void ExecMergeTupleDumpMarked(ExprContext *econtext,
|
||||
MergeJoinState *mergestate);
|
||||
|
||||
extern void ExecMergeTupleDump(ExprContext *econtext,
|
||||
MergeJoinState *mergestate);
|
||||
|
||||
extern TupleTableSlot *ExecMergeJoin(MergeJoin *node);
|
||||
|
||||
extern bool ExecInitMergeJoin(MergeJoin *node, EState *estate, Plan *parent);
|
||||
|
||||
extern int ExecCountSlotsMergeJoin(MergeJoin *node);
|
||||
|
||||
extern void ExecEndMergeJoin(MergeJoin *node);
|
||||
|
||||
#endif /* NODEMERGEJOIN_H; */
|
||||
@@ -1,21 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* nodeNestloop.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: nodeNestloop.h,v 1.1.1.1 1996/07/09 06:21:27 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef NODENESTLOOP_H
|
||||
#define NODENESTLOOP_H
|
||||
|
||||
extern TupleTableSlot *ExecNestLoop(NestLoop *node, Plan *parent);
|
||||
extern bool ExecInitNestLoop(NestLoop *node, EState *estate, Plan *parent);
|
||||
extern int ExecCountSlotsNestLoop(NestLoop *node);
|
||||
extern void ExecEndNestLoop(NestLoop *node);
|
||||
|
||||
#endif /* NODENESTLOOP_H */
|
||||
@@ -1,21 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* nodeResult.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: nodeResult.h,v 1.1.1.1 1996/07/09 06:21:27 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef NODERESULT_H
|
||||
#define NODERESULT_H
|
||||
|
||||
extern TupleTableSlot *ExecResult(Result *node);
|
||||
extern bool ExecInitResult(Result *node, EState *estate, Plan *parent);
|
||||
extern int ExecCountSlotsResult(Result *node);
|
||||
extern void ExecEndResult(Result *node);
|
||||
|
||||
#endif /* NODERESULT_H */
|
||||
@@ -1,27 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* nodeSeqscan.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: nodeSeqscan.h,v 1.1.1.1 1996/07/09 06:21:27 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef NODESEQSCAN_H
|
||||
#define NODESEQSCAN_H
|
||||
|
||||
extern TupleTableSlot *SeqNext(SeqScan *node);
|
||||
extern TupleTableSlot *ExecSeqScan(SeqScan *node);
|
||||
extern Oid InitScanRelation(SeqScan *node, EState *estate,
|
||||
CommonScanState *scanstate, Plan *outerPlan);
|
||||
extern bool ExecInitSeqScan(SeqScan *node, EState *estate, Plan *parent);
|
||||
extern int ExecCountSlotsSeqScan(SeqScan *node);
|
||||
extern void ExecEndSeqScan(SeqScan *node);
|
||||
extern void ExecSeqReScan(SeqScan *node, ExprContext *exprCtxt, Plan* parent);
|
||||
extern void ExecSeqMarkPos(SeqScan *node);
|
||||
extern void ExecSeqRestrPos(SeqScan *node);
|
||||
|
||||
#endif /* NODESEQSCAN_H */
|
||||
@@ -1,23 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* nodeSort.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: nodeSort.h,v 1.1.1.1 1996/07/09 06:21:27 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef NODESORT_H
|
||||
#define NODESORT_H
|
||||
|
||||
extern TupleTableSlot *ExecSort(Sort *node);
|
||||
extern bool ExecInitSort(Sort *node, EState *estate, Plan *parent);
|
||||
extern int ExecCountSlotsSort(Sort *node);
|
||||
extern void ExecEndSort(Sort *node);
|
||||
extern void ExecSortMarkPos(Sort *node);
|
||||
extern void ExecSortRestrPos(Sort *node);
|
||||
|
||||
#endif /* NODESORT_H */
|
||||
@@ -1,22 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* nodeTee.h--
|
||||
* support functions for a Tee executor node
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: nodeTee.h,v 1.1.1.1 1996/07/09 06:21:27 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef NODETEE_H
|
||||
#define NODETEE_H
|
||||
|
||||
extern TupleTableSlot* ExecTee(Tee* node, Plan* parent);
|
||||
extern bool ExecInitTee(Tee* node, EState* estate, Plan* parent);
|
||||
extern void ExecTeeReScan(Tee *node, ExprContext *exprCtxt, Plan *parent);
|
||||
extern void ExecEndTee(Tee* node, Plan* parent);
|
||||
extern int ExecCountSlotsTee(Tee* node);
|
||||
|
||||
#endif /* NODETEE_H */
|
||||
@@ -1,21 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* nodeUnique.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: nodeUnique.h,v 1.1.1.1 1996/07/09 06:21:28 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef NODEUNIQUE_H
|
||||
#define NODEUNIQUE_H
|
||||
|
||||
extern TupleTableSlot *ExecUnique(Unique *node);
|
||||
extern bool ExecInitUnique(Unique *node, EState *estate, Plan *parent);
|
||||
extern int ExecCountSlotsUnique(Unique *node);
|
||||
extern void ExecEndUnique(Unique *node);
|
||||
|
||||
#endif /* NODEUNIQUE_H */
|
||||
@@ -1,72 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* tuptable.h--
|
||||
* tuple table support stuff
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: tuptable.h,v 1.1.1.1 1996/07/09 06:21:28 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* The tuple table interface is getting pretty ugly.
|
||||
* It should be redesigned soon.
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef TUPTABLE_H
|
||||
#define TUPTABLE_H
|
||||
|
||||
/* ----------------
|
||||
* Note: the executor tuple table is managed and manipulated by special
|
||||
* code and macros in executor/execTuples.c and tupTable.h
|
||||
*
|
||||
* TupleTableSlot information
|
||||
*
|
||||
* shouldFree boolean - should we call pfree() on tuple
|
||||
* descIsNew boolean - true when tupleDescriptor changes
|
||||
* tupleDescriptor type information kept regarding the tuple data
|
||||
* buffer the buffer for tuples pointing to disk pages
|
||||
*
|
||||
* The executor stores pointers to tuples in a ``tuple table''
|
||||
* which is composed of TupleTableSlot's. Some of the tuples
|
||||
* are pointers to buffer pages and others are pointers to
|
||||
* palloc'ed memory and the shouldFree variable tells us when
|
||||
* we may call pfree() on a tuple. -cim 9/23/90
|
||||
*
|
||||
* In the implementation of nested-dot queries such as
|
||||
* "retrieve (EMP.hobbies.all)", a single scan may return tuples
|
||||
* of many types, so now we return pointers to tuple descriptors
|
||||
* along with tuples returned via the tuple table. -cim 1/18/90
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct TupleTableSlot {
|
||||
NodeTag type;
|
||||
HeapTuple val;
|
||||
bool ttc_shouldFree;
|
||||
bool ttc_descIsNew;
|
||||
TupleDesc ttc_tupleDescriptor;
|
||||
Buffer ttc_buffer;
|
||||
int ttc_whichplan;
|
||||
} TupleTableSlot;
|
||||
|
||||
/* ----------------
|
||||
* tuple table data structure
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct TupleTableData {
|
||||
int size; /* size of the table */
|
||||
int next; /* next available slot number */
|
||||
TupleTableSlot *array; /* array of TupleTableSlot's */
|
||||
} TupleTableData;
|
||||
|
||||
typedef TupleTableData *TupleTable;
|
||||
|
||||
/*
|
||||
tuple table macros are all excised from the system now
|
||||
see executor.h for decls of functions defined in execTuples.c
|
||||
|
||||
- jolly
|
||||
*/
|
||||
|
||||
#endif /* TUPTABLE_H */
|
||||
@@ -1,72 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* dllist.h--
|
||||
* simple doubly linked list primitives
|
||||
* the elements of the list are void* so the lists can contain
|
||||
* anything
|
||||
* Dlelem can only be in one list at a time
|
||||
*
|
||||
*
|
||||
* Here's a small example of how to use Dllist's :
|
||||
*
|
||||
* Dllist *lst;
|
||||
* Dlelem *elt;
|
||||
* void *in_stuff; -- stuff to stick in the list
|
||||
* void *out_stuff
|
||||
*
|
||||
* lst = DLNewList(); -- make a new dllist
|
||||
* DLAddHead(lst, DLNewElem(in_stuff)); -- add a new element to the list
|
||||
* with in_stuff as the value
|
||||
* ...
|
||||
* elt = DLGetHead(lst); -- retrieve the head element
|
||||
* out_stuff = (void*)DLE_VAL(elt); -- get the stuff out
|
||||
* DLRemove(elt); -- removes the element from its list
|
||||
* DLFreeElem(elt); -- free the element since we don't
|
||||
* use it anymore
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: dllist.h,v 1.1.1.1 1996/07/09 06:21:28 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
|
||||
#ifndef DLLIST_H
|
||||
#define DLLIST_H
|
||||
|
||||
#include "c.h"
|
||||
|
||||
struct Dllist;
|
||||
struct Dlelem;
|
||||
|
||||
typedef struct Dlelem {
|
||||
struct Dlelem *dle_next; /* next element */
|
||||
struct Dlelem *dle_prev; /* previous element */
|
||||
void *dle_val; /* value of the element */
|
||||
struct Dllist *dle_list; /* what list this element is in */
|
||||
} Dlelem;
|
||||
|
||||
typedef struct Dllist {
|
||||
Dlelem *dll_head;
|
||||
Dlelem *dll_tail;
|
||||
} Dllist;
|
||||
|
||||
extern Dllist* DLNewList(); /* initialize a new list */
|
||||
extern void DLFreeList(Dllist*); /* free up a list and all the nodes in it*/
|
||||
extern Dlelem* DLNewElem(void* val);
|
||||
extern void DLFreeElem(Dlelem*);
|
||||
extern Dlelem* DLGetHead(Dllist*);
|
||||
extern Dlelem* DLGetTail(Dllist*);
|
||||
extern void* DLGetHeadVal(Dllist*);
|
||||
extern void* DLGetTailVal(Dllist*);
|
||||
extern Dlelem* DLGetPred(Dlelem*); /* get predecessor */
|
||||
extern Dlelem* DLGetSucc(Dlelem*); /* get successor */
|
||||
extern void DLRemove(Dlelem*); /* removes node from list*/
|
||||
extern void DLAddHead(Dllist* list, Dlelem* node);
|
||||
extern void DLAddTail(Dllist* list, Dlelem* node);
|
||||
extern Dlelem* DLRemHead(Dllist* list); /* remove and return the head */
|
||||
extern Dlelem* DLRemTail(Dllist* list); /* remove and return the tail */
|
||||
|
||||
#define DLE_VAL(x) (x->dle_val)
|
||||
|
||||
#endif /* DLLIST_H */
|
||||
@@ -1,113 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* fstack.h--
|
||||
* Fixed format stack definitions.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: fstack.h,v 1.1.1.1 1996/07/09 06:21:29 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
/*
|
||||
* Note:
|
||||
* Fixed format stacks assist in the construction of FIFO stacks of
|
||||
* fixed format structures. Structures which are to be stackable
|
||||
* should contain a FixedItemData component. A stack is initilized
|
||||
* with the offset of the FixedItemData component of the structure
|
||||
* it will hold. By doing so, push and pop operations are simplified
|
||||
* for the callers. All references to stackable items are pointers
|
||||
* to the base of the structure instead of pointers to the
|
||||
* FixedItemData component.
|
||||
*
|
||||
*/
|
||||
#ifndef FSTACK_H
|
||||
#define FSTACK_H
|
||||
|
||||
#include "c.h"
|
||||
|
||||
/*
|
||||
* FixedItem --
|
||||
* Fixed format stackable item chain component.
|
||||
*
|
||||
* Note:
|
||||
* Structures must contain one FixedItemData component per stack in
|
||||
* which it will be an item.
|
||||
*/
|
||||
typedef struct FixedItemData FixedItemData;
|
||||
typedef FixedItemData *FixedItem;
|
||||
|
||||
struct FixedItemData {
|
||||
FixedItem next; /* next item or NULL */
|
||||
};
|
||||
|
||||
/*
|
||||
* FixedStack --
|
||||
* Fixed format stack.
|
||||
*/
|
||||
typedef struct FixedStackData {
|
||||
FixedItem top; /* Top item on the stack or NULL */
|
||||
Offset offset; /* Offset from struct base to item */
|
||||
/* this could be signed short int! */
|
||||
} FixedStackData;
|
||||
|
||||
typedef FixedStackData *FixedStack;
|
||||
|
||||
/*
|
||||
* FixedStackInit --
|
||||
* Iniitializes stack for structures with given fixed component offset.
|
||||
*
|
||||
* Exceptions:
|
||||
* BadArg if stack is invalid pointer.
|
||||
*/
|
||||
extern void FixedStackInit(FixedStack stack, Offset offset);
|
||||
|
||||
/*
|
||||
* FixedStackPop --
|
||||
* Returns pointer to top structure on stack or NULL if empty stack.
|
||||
*
|
||||
* Exceptions:
|
||||
* BadArg if stack is invalid.
|
||||
*/
|
||||
Pointer FixedStackPop(FixedStack stack);
|
||||
|
||||
/*
|
||||
* FixedStackPush --
|
||||
* Places structure associated with pointer onto top of stack.
|
||||
*
|
||||
* Exceptions:
|
||||
* BadArg if stack is invalid.
|
||||
* BadArg if pointer is invalid.
|
||||
*/
|
||||
extern void FixedStackPush(FixedStack stack, Pointer pointer);
|
||||
|
||||
/*
|
||||
* FixedStackGetTop --
|
||||
* Returns pointer to top structure of a stack. This item is not poped.
|
||||
*
|
||||
* Note:
|
||||
* This is not part of the normal stack interface. It is intended for
|
||||
* debugging use only.
|
||||
*
|
||||
* Exceptions:
|
||||
* BadArg if stack is invalid.
|
||||
*/
|
||||
extern Pointer FixedStackGetTop(FixedStack stack);
|
||||
|
||||
/*
|
||||
* FixedStackGetNext --
|
||||
* Returns pointer to next structure after pointer of a stack.
|
||||
*
|
||||
* Note:
|
||||
* This is not part of the normal stack interface. It is intended for
|
||||
* debugging use only.
|
||||
*
|
||||
* Exceptions:
|
||||
* BadArg if stack is invalid.
|
||||
* BadArg if pointer is invalid.
|
||||
* BadArg if stack does not contain pointer.
|
||||
*/
|
||||
extern Pointer FixedStackGetNext(FixedStack stack, Pointer pointer);
|
||||
|
||||
#endif /* FSTACK_H */
|
||||
@@ -1,23 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* hasht.h--
|
||||
* hash table related functions that are not directly supported
|
||||
* under utils/hash.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: hasht.h,v 1.1.1.1 1996/07/09 06:21:29 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef HASHT_H
|
||||
#define HASHT_H
|
||||
|
||||
#include "utils/hsearch.h"
|
||||
|
||||
typedef void (*HashtFunc)();
|
||||
|
||||
extern void HashTableWalk(HTAB *hashtable, HashtFunc function, int arg);
|
||||
|
||||
#endif /* HASHT_H */
|
||||
@@ -1,18 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* lispsort.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: lispsort.h,v 1.1.1.1 1996/07/09 06:21:29 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef LISPSORT_H
|
||||
#define LISPSORT_H
|
||||
|
||||
extern List *lisp_qsort(List *the_list, int (*compare)());
|
||||
|
||||
#endif /* LISPSORT_H */
|
||||
@@ -1,24 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* qsort.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: qsort.h,v 1.1.1.1 1996/07/09 06:21:29 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef QSORT_H
|
||||
#define QSORT_H
|
||||
|
||||
#include <sys/types.h>
|
||||
|
||||
extern void pg_qsort(void *bot,
|
||||
size_t nmemb,
|
||||
size_t size,
|
||||
int (*compar)(void *, void *));
|
||||
|
||||
#endif /* QSORT_H */
|
||||
|
||||
@@ -1,47 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* stringinfo.h--
|
||||
* Declarations/definitons for "string" functions.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: stringinfo.h,v 1.1.1.1 1996/07/09 06:21:29 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef STRINGINFO_H
|
||||
#define STRINGINFO_H
|
||||
|
||||
/*#include "c.h" */ /* for 'String' */
|
||||
|
||||
/*-------------------------
|
||||
* StringInfoData holds information about a string.
|
||||
* 'data' is the string.
|
||||
* 'len' is the current string length (as returned by 'strlen')
|
||||
* 'maxlen' is the size in bytes of 'data', i.e. the maximum string
|
||||
* size (includeing the terminating '\0' char) that we can
|
||||
* currently store in 'data' without having to reallocate
|
||||
* more space.
|
||||
*/
|
||||
typedef struct StringInfoData {
|
||||
char *data;
|
||||
int maxlen;
|
||||
int len;
|
||||
} StringInfoData;
|
||||
|
||||
typedef StringInfoData *StringInfo;
|
||||
|
||||
/*------------------------
|
||||
* makeStringInfo
|
||||
* create a 'StringInfoData' & return a pointer to it.
|
||||
*/
|
||||
extern StringInfo makeStringInfo(void);
|
||||
|
||||
/*------------------------
|
||||
* appendStringInfo
|
||||
* similar to 'strcat' but reallocates more space if necessary...
|
||||
*/
|
||||
extern void appendStringInfo(StringInfo str, char *buffer);
|
||||
|
||||
#endif /* STRINGINFO_H */
|
||||
@@ -1,49 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* auth.h--
|
||||
* Definitions for network authentication routines
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: auth.h,v 1.1.1.1 1996/07/09 06:21:30 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef AUTH_H
|
||||
#define AUTH_H
|
||||
|
||||
#include "c.h"
|
||||
#include "libpq/pqcomm.h"
|
||||
|
||||
/*----------------------------------------------------------------
|
||||
* Common routines and definitions
|
||||
*----------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* what we call "no authentication system" */
|
||||
#define UNAUTHNAME "unauth"
|
||||
|
||||
/* what a frontend uses by default */
|
||||
#if !defined(KRB4) && !defined(KRB5)
|
||||
#define DEFAULT_CLIENT_AUTHSVC UNAUTHNAME
|
||||
#else /* KRB4 || KRB5 */
|
||||
#define DEFAULT_CLIENT_AUTHSVC "kerberos"
|
||||
#endif /* KRB4 || KRB5 */
|
||||
|
||||
extern int fe_sendauth(MsgType msgtype, Port *port, char *hostname);
|
||||
extern void fe_setauthsvc(char *name);
|
||||
extern MsgType fe_getauthsvc();
|
||||
extern char *fe_getauthname(void);
|
||||
extern int be_recvauth(MsgType msgtype, Port *port, char *username, StartupInfo* sp);
|
||||
extern void be_setauthsvc(char *name);
|
||||
extern int be_getauthsvc(MsgType msgtype);
|
||||
|
||||
/* the value that matches any dbName value when doing
|
||||
host based authentication*/
|
||||
#define ALL_DBNAME "*"
|
||||
|
||||
#define PG_KRB4_VERSION "PGVER4.1" /* at most KRB_SENDAUTH_VLEN chars */
|
||||
#define PG_KRB5_VERSION "PGVER5.1"
|
||||
|
||||
#endif /* AUTH_H */
|
||||
@@ -1,32 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* be-fsstubs.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: be-fsstubs.h,v 1.1.1.1 1996/07/09 06:21:30 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef BE_FSSTUBS_H
|
||||
#define BE_FSSTUBS_H
|
||||
|
||||
extern Oid lo_import(text *filename);
|
||||
extern int4 lo_export(Oid lobjId, text *filename);
|
||||
|
||||
extern Oid lo_creat(int mode);
|
||||
|
||||
extern int lo_open(Oid lobjId, int mode);
|
||||
extern int lo_close(int fd);
|
||||
extern int lo_read(int fd, char *buf, int len);
|
||||
extern int lo_write(int fd, char *buf, int len);
|
||||
extern int lo_lseek(int fd, int offset, int whence);
|
||||
extern int lo_tell(int fd);
|
||||
extern int lo_unlink(Oid lobjId);
|
||||
|
||||
extern struct varlena *LOread(int fd, int len);
|
||||
extern int LOwrite(int fd, struct varlena *wbuf);
|
||||
|
||||
#endif /* BE_FSSTUBS_H */
|
||||
@@ -1,51 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* libpq-be.h--
|
||||
* This file contains definitions for structures and
|
||||
* externs for functions used by the POSTGRES backend.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: libpq-be.h,v 1.1.1.1 1996/07/09 06:21:30 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef LIBPQ_BE_H
|
||||
#define LIBPQ_BE_H
|
||||
|
||||
/* ----------------
|
||||
* include stuff common to fe and be
|
||||
* ----------------
|
||||
*/
|
||||
#include "libpq/libpq.h"
|
||||
#include "access/htup.h"
|
||||
|
||||
#include "access/tupdesc.h"
|
||||
|
||||
/* ----------------
|
||||
* declarations for backend libpq support routines
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
/* in be-dumpdata.c */
|
||||
extern void be_portalinit(void);
|
||||
extern void be_portalpush(PortalEntry *entry);
|
||||
extern PortalEntry *be_portalpop(void);
|
||||
extern PortalEntry *be_currentportal();
|
||||
extern PortalEntry *be_newportal(void);
|
||||
extern void be_typeinit(PortalEntry *entry, TupleDesc attrs,
|
||||
int natts);
|
||||
extern void be_printtup(HeapTuple tuple, TupleDesc typeinfo);
|
||||
|
||||
|
||||
/* in be-pqexec.c */
|
||||
extern char *PQfn(int fnid, int *result_buf, int result_len, int result_is_int,
|
||||
PQArgBlock *args, int nargs);
|
||||
extern char *PQexec(char *query);
|
||||
extern int pqtest_PQexec(char *q);
|
||||
extern char *strmake(char *str, int len);
|
||||
extern int pqtest_PQfn(char *q);
|
||||
extern int32 pqtest(struct varlena *vlena);
|
||||
|
||||
#endif /* LIBPQ_BE_H */
|
||||
@@ -1,119 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* libpq-fs.h--
|
||||
* definitions for using Inversion file system routines
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: libpq-fs.h,v 1.1.1.1 1996/07/09 06:21:30 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef LIBPQ_FS_H
|
||||
#define LIBPQ_FS_H
|
||||
|
||||
#include "lib/dllist.h"
|
||||
#include <sys/file.h>
|
||||
#include <sys/stat.h>
|
||||
|
||||
#include <fcntl.h> /* for O_ on some */
|
||||
#ifndef WIN32
|
||||
#include <unistd.h> /* for SEEK_ on most */
|
||||
#endif /* WIN32 */
|
||||
#ifndef SEEK_SET
|
||||
#include <stdio.h> /* for SEEK_ on others */
|
||||
#endif /* SEEK_SET */
|
||||
|
||||
/* UNIX compatibility junk. This should be in all systems' include files,
|
||||
but this is not always the case. */
|
||||
|
||||
#ifndef MAXNAMLEN
|
||||
#define MAXNAMLEN 255
|
||||
#endif /* MAXNAMLEN */
|
||||
|
||||
struct pgdirent {
|
||||
unsigned long d_ino;
|
||||
unsigned short d_namlen;
|
||||
char d_name[MAXNAMLEN+1];
|
||||
};
|
||||
|
||||
/*
|
||||
* SysV struct dirent doesn't have d_namlen.
|
||||
* This counts on d_name being last, which is moderately safe (ha) since
|
||||
* it's the variable-length part of the structure.
|
||||
*/
|
||||
#ifdef SYSV_DIRENT
|
||||
#define D_NAMLEN(dp) \
|
||||
((dp)->d_reclen - offsetof(struct dirent, d_name[0]))
|
||||
#else /* SYSV_DIRENT */
|
||||
#define D_NAMLEN(dp) \
|
||||
((dp)->d_namlen)
|
||||
#endif /* SYSV_DIRENT */
|
||||
|
||||
/* for stat(2) */
|
||||
#ifndef S_IRUSR
|
||||
/* file modes */
|
||||
|
||||
#define S_IRWXU 00700 /* read, write, execute: owner */
|
||||
#define S_IRUSR 00400 /* read permission: owner */
|
||||
#define S_IWUSR 00200 /* write permission: owner */
|
||||
#define S_IXUSR 00100 /* execute permission: owner */
|
||||
|
||||
#define S_IRWXG 00070 /* read, write, execute: group */
|
||||
#define S_IRGRP 00040 /* read permission: group */
|
||||
#define S_IWGRP 00020 /* write permission: group */
|
||||
#define S_IXGRP 00010 /* execute permission: group */
|
||||
|
||||
#define S_IRWXO 00007 /* read, write, execute: other */
|
||||
#define S_IROTH 00004 /* read permission: other */
|
||||
#define S_IWOTH 00002 /* write permission: other */
|
||||
#define S_IXOTH 00001 /* execute permission: other */
|
||||
|
||||
#define _S_IFMT 0170000 /* type of file; sync with S_IFMT */
|
||||
#define _S_IFBLK 0060000 /* block special; sync with S_IFBLK */
|
||||
#define _S_IFCHR 0020000 /* character special sync with S_IFCHR */
|
||||
#define _S_IFDIR 0040000 /* directory; sync with S_IFDIR */
|
||||
#define _S_IFIFO 0010000 /* FIFO - named pipe; sync with S_IFIFO */
|
||||
#define _S_IFREG 0100000 /* regular; sync with S_IFREG */
|
||||
|
||||
#define S_IFDIR _S_IFDIR
|
||||
#define S_IFREG _S_IFREG
|
||||
|
||||
#define S_ISDIR( mode ) (((mode) & _S_IFMT) == _S_IFDIR)
|
||||
|
||||
#endif /* S_IRUSR */
|
||||
|
||||
/*
|
||||
* Inversion doesn't have links.
|
||||
*/
|
||||
#ifndef S_ISLNK
|
||||
#define S_ISLNK(x) 0
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Flags for inversion file system large objects. Normally, creat()
|
||||
* takes mode arguments, but we don't use them in inversion, since
|
||||
* you get postgres protections. Instead, we use the low sixteen bits
|
||||
* of the integer mode argument to store the number of the storage
|
||||
* manager to be used, and the high sixteen bits for flags.
|
||||
*/
|
||||
|
||||
#define INV_SMGRMASK 0x0000ffff
|
||||
#define INV_ARCHIVE 0x00010000
|
||||
#define INV_WRITE 0x00020000
|
||||
#define INV_READ 0x00040000
|
||||
|
||||
/* Error values for p_errno */
|
||||
#define PEPERM 1 /* Not owner */
|
||||
#define PENOENT 2 /* No such file or directory */
|
||||
#define PEACCES 13 /* Permission denied */
|
||||
#define PEEXIST 17 /* File exists */
|
||||
#define PENOTDIR 20 /* Not a directory*/
|
||||
#define PEISDIR 21 /* Is a directory */
|
||||
#define PEINVAL 22 /* Invalid argument */
|
||||
#define PENAMETOOLONG 63 /* File name too long */
|
||||
#define PENOTEMPTY 66 /* Directory not empty */
|
||||
#define PEPGIO 99 /* postgres backend had problems */
|
||||
|
||||
#endif /* LIBPQ_FS_H */
|
||||
@@ -1,261 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* libpq.h--
|
||||
* POSTGRES LIBPQ buffer structure definitions.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: libpq.h,v 1.1.1.1 1996/07/09 06:21:30 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* This file contains definitions for structures and
|
||||
* externs for functions used by both frontend applications
|
||||
* and the POSTGRES backend. See the files libpq-fe.h and
|
||||
* libpq-be.h for frontend/backend specific information
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef LIBPQ_H
|
||||
#define LIBPQ_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <sys/types.h>
|
||||
#ifdef WIN32
|
||||
#include <winsock.h>
|
||||
#else
|
||||
#include <netinet/in.h>
|
||||
#endif /* WIN32 */
|
||||
|
||||
#include "lib/dllist.h"
|
||||
#include "utils/exc.h"
|
||||
#include "postgres.h"
|
||||
|
||||
#include "libpq/pqcomm.h"
|
||||
|
||||
/* ----------------
|
||||
* PQArgBlock --
|
||||
* Information (pointer to array of this structure) required
|
||||
* for the PQfn() call.
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct {
|
||||
int len;
|
||||
int isint;
|
||||
union {
|
||||
int *ptr; /* can't use void (dec compiler barfs) */
|
||||
int integer;
|
||||
} u;
|
||||
} PQArgBlock;
|
||||
|
||||
/* ----------------
|
||||
* TypeBlock --
|
||||
* Information about an attribute.
|
||||
* ----------------
|
||||
*/
|
||||
#define NameLength 16
|
||||
|
||||
typedef struct TypeBlock {
|
||||
char name[NAMEDATALEN]; /* name of the attribute */
|
||||
int adtid; /* adtid of the type */
|
||||
int adtsize; /* adtsize of the type */
|
||||
} TypeBlock;
|
||||
|
||||
/* ----------------
|
||||
* TupleBlock --
|
||||
* Data of a tuple.
|
||||
* ----------------
|
||||
*/
|
||||
#define TupleBlockSize 100
|
||||
|
||||
typedef struct TupleBlock {
|
||||
char **values[TupleBlockSize]; /* an array of tuples */
|
||||
int *lengths[TupleBlockSize]; /* an array of length vec. foreach
|
||||
tuple */
|
||||
struct TupleBlock *next; /* next tuple block */
|
||||
int tuple_index; /* current tuple index */
|
||||
} TupleBlock;
|
||||
|
||||
/* ----------------
|
||||
* GroupBuffer --
|
||||
* A group of tuples with the same attributes.
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct GroupBuffer {
|
||||
int no_tuples; /* number of tuples in this group */
|
||||
int no_fields; /* number of attributes */
|
||||
TypeBlock *types; /* types of the attributes */
|
||||
TupleBlock *tuples; /* tuples in this group */
|
||||
struct GroupBuffer *next; /* next group */
|
||||
} GroupBuffer;
|
||||
|
||||
/* ----------------
|
||||
* PortalBuffer --
|
||||
* Data structure of a portal buffer.
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct PortalBuffer {
|
||||
int rule_p; /* 1 if this is an asynchronized portal. */
|
||||
int no_tuples; /* number of tuples in this portal buffer */
|
||||
int no_groups; /* number of tuple groups */
|
||||
GroupBuffer *groups; /* linked list of tuple groups */
|
||||
} PortalBuffer;
|
||||
|
||||
/* ----------------
|
||||
* PortalEntry --
|
||||
* an entry in the global portal table
|
||||
*
|
||||
* Note: the portalcxt is only meaningful for PQcalls made from
|
||||
* within a postgres backend. frontend apps should ignore it.
|
||||
* ----------------
|
||||
*/
|
||||
#define PortalNameLength 32
|
||||
|
||||
typedef struct PortalEntry {
|
||||
char name[PortalNameLength]; /* name of this portal */
|
||||
PortalBuffer *portal; /* tuples contained in this portal */
|
||||
Pointer portalcxt; /* memory context (for backend) */
|
||||
Pointer result; /* result for PQexec */
|
||||
} PortalEntry;
|
||||
|
||||
#define PORTALS_INITIAL_SIZE 32
|
||||
#define PORTALS_GROW_BY 32
|
||||
|
||||
/* in portalbuf.c */
|
||||
extern PortalEntry** portals;
|
||||
extern size_t portals_array_size;
|
||||
|
||||
/*
|
||||
* Asynchronous notification
|
||||
*/
|
||||
typedef struct PQNotifyList {
|
||||
char relname[NAMEDATALEN]; /* name of relation containing data */
|
||||
int be_pid; /* process id of backend */
|
||||
int valid; /* has this already been handled by user. */
|
||||
/* SLNode Node; */
|
||||
} PQNotifyList;
|
||||
|
||||
/*
|
||||
* Exceptions.
|
||||
*/
|
||||
|
||||
#define libpq_raise(X, Y) ExcRaise((Exception *)(X), (ExcDetail) (Y),\
|
||||
(ExcData)0, (ExcMessage) 0)
|
||||
|
||||
/* in portal.c */
|
||||
extern Exception MemoryError, PortalError, PostquelError, ProtocolError;
|
||||
|
||||
/*
|
||||
* POSTGRES backend dependent Constants.
|
||||
*/
|
||||
|
||||
/* ERROR_MSG_LENGTH should really be the same as ELOG_MAXLEN in utils/elog.h*/
|
||||
#define ERROR_MSG_LENGTH 4096
|
||||
#define COMMAND_LENGTH 20
|
||||
#define REMARK_LENGTH 80
|
||||
|
||||
extern char PQerrormsg[ERROR_MSG_LENGTH]; /* in portal.c */
|
||||
|
||||
/*
|
||||
* External functions.
|
||||
*/
|
||||
|
||||
/*
|
||||
* prototypes for functions in portal.c
|
||||
*/
|
||||
extern void pqdebug(char *target, char *msg);
|
||||
extern void pqdebug2(char *target, char *msg1, char *msg2);
|
||||
extern void PQtrace(void);
|
||||
extern void PQuntrace(void);
|
||||
extern int PQnportals(int rule_p);
|
||||
extern void PQpnames(char **pnames, int rule_p);
|
||||
extern PortalBuffer *PQparray(char *pname);
|
||||
extern int PQrulep(PortalBuffer *portal);
|
||||
extern int PQntuples(PortalBuffer *portal);
|
||||
extern int PQninstances(PortalBuffer *portal);
|
||||
extern int PQngroups(PortalBuffer *portal);
|
||||
extern int PQntuplesGroup(PortalBuffer *portal, int group_index);
|
||||
extern int PQninstancesGroup(PortalBuffer *portal, int group_index);
|
||||
extern int PQnfieldsGroup(PortalBuffer *portal, int group_index);
|
||||
extern int PQfnumberGroup(PortalBuffer *portal, int group_index, char *field_name);
|
||||
extern char *PQfnameGroup(PortalBuffer *portal, int group_index, int field_number);
|
||||
extern int PQftypeGroup(PortalBuffer *portal, int group_index,
|
||||
int field_number);
|
||||
extern int PQfsizeGroup(PortalBuffer *portal, int group_index,
|
||||
int field_number);
|
||||
extern GroupBuffer *PQgroup(PortalBuffer *portal, int tuple_index);
|
||||
extern int PQgetgroup(PortalBuffer *portal, int tuple_index);
|
||||
extern int PQnfields(PortalBuffer *portal, int tuple_index);
|
||||
extern int PQfnumber(PortalBuffer *portal, int tuple_index, char *field_name);
|
||||
extern char *PQfname(PortalBuffer *portal, int tuple_index, int field_number);
|
||||
extern int PQftype(PortalBuffer *portal, int tuple_index, int field_number);
|
||||
extern int PQfsize(PortalBuffer *portal, int tuple_index, int field_number);
|
||||
extern int PQsametype(PortalBuffer *portal, int tuple_index1, int tuple_index2);
|
||||
extern char *PQgetvalue(PortalBuffer *portal, int tuple_index, int field_number);
|
||||
extern char *PQgetAttr(PortalBuffer *portal, int tuple_index, int field_number);
|
||||
extern int PQgetlength(PortalBuffer *portal, int tuple_index, int field_number);
|
||||
extern void PQclear(char *pname);
|
||||
extern void PQcleanNotify(void);
|
||||
extern void PQnotifies_init(void);
|
||||
extern PQNotifyList *PQnotifies(void);
|
||||
extern void PQremoveNotify(PQNotifyList *nPtr);
|
||||
extern void PQappendNotify(char *relname, int pid);
|
||||
/*
|
||||
* prototypes for functions in portalbuf.c
|
||||
*/
|
||||
extern caddr_t pbuf_alloc(size_t size);
|
||||
extern void pbuf_free(caddr_t pointer);
|
||||
extern PortalBuffer *pbuf_addPortal(void);
|
||||
extern GroupBuffer *pbuf_addGroup(PortalBuffer *portal);
|
||||
extern TypeBlock *pbuf_addTypes(int n);
|
||||
extern TupleBlock *pbuf_addTuples(void);
|
||||
extern char **pbuf_addTuple(int n);
|
||||
extern int *pbuf_addTupleValueLengths(int n);
|
||||
extern char *pbuf_addValues(int n);
|
||||
extern PortalEntry *pbuf_addEntry(void);
|
||||
extern void pbuf_freeEntry(int i);
|
||||
extern void pbuf_freeTypes(TypeBlock *types);
|
||||
extern void pbuf_freeTuples(TupleBlock *tuples, int no_tuples, int no_fields);
|
||||
extern void pbuf_freeGroup(GroupBuffer *group);
|
||||
extern void pbuf_freePortal(PortalBuffer *portal);
|
||||
extern int pbuf_getIndex(char *pname);
|
||||
extern void pbuf_setportalinfo(PortalEntry *entry, char *pname);
|
||||
extern PortalEntry *pbuf_setup(char *pname);
|
||||
extern void pbuf_close(char *pname);
|
||||
extern GroupBuffer *pbuf_findGroup(PortalBuffer *portal, int group_index);
|
||||
extern int pbuf_findFnumber(GroupBuffer *group, char *field_name);
|
||||
extern void pbuf_checkFnumber(GroupBuffer *group, int field_number);
|
||||
extern char *pbuf_findFname(GroupBuffer *group, int field_number);
|
||||
|
||||
/*
|
||||
* prototypes for functions in pqcomm.c
|
||||
*/
|
||||
extern void pq_init(int fd);
|
||||
extern void pq_gettty(char *tp);
|
||||
extern int pq_getport(void);
|
||||
extern void pq_close(void);
|
||||
extern void pq_flush(void);
|
||||
extern int pq_getstr(char *s, int maxlen);
|
||||
extern int PQgetline(char *s, int maxlen);
|
||||
extern int PQputline(char *s);
|
||||
extern int pq_getnchar(char *s, int off, int maxlen);
|
||||
extern int pq_getint(int b);
|
||||
extern void pq_putstr(char *s);
|
||||
extern void pq_putnchar(char *s, int n);
|
||||
extern void pq_putint(int i, int b);
|
||||
extern int pq_sendoob(char *msg, int len);
|
||||
extern int pq_recvoob(char *msgPtr, int *lenPtr);
|
||||
extern int pq_getinaddr(struct sockaddr_in *sin, char *host, int port);
|
||||
extern int pq_getinserv(struct sockaddr_in *sin, char *host, char *serv);
|
||||
extern int pq_connect(char *dbname, char *user, char *args, char *hostName,
|
||||
char *debugTty, char *execFile, short portName);
|
||||
extern int StreamOpen(char *hostName, short portName, Port *port);
|
||||
extern void pq_regoob(void (*fptr)());
|
||||
extern void pq_unregoob(void);
|
||||
extern void pq_async_notify(void);
|
||||
extern int StreamServerPort(char *hostName, short portName, int *fdP);
|
||||
extern int StreamConnection(int server_fd, Port *port);
|
||||
extern void StreamClose(int sock);
|
||||
|
||||
#endif /* LIBPQ_H */
|
||||
@@ -1,124 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pqcomm.h--
|
||||
* Parameters for the communication module
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pqcomm.h,v 1.1.1.1 1996/07/09 06:21:31 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* Some of this should move to libpq.h
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PQCOMM_H
|
||||
#define PQCOMM_H
|
||||
|
||||
#include <sys/types.h>
|
||||
#ifdef WIN32
|
||||
#include <winsock.h>
|
||||
#else
|
||||
#include <netinet/in.h>
|
||||
#endif /* WIN32 */
|
||||
|
||||
#include "postgres.h"
|
||||
|
||||
/*
|
||||
* startup msg parameters: path length, argument string length
|
||||
*/
|
||||
#define PATH_SIZE 64
|
||||
#define ARGV_SIZE 64
|
||||
|
||||
|
||||
typedef enum _MsgType {
|
||||
ACK_MSG = 0, /* acknowledge a message */
|
||||
ERROR_MSG=1, /* error response to client from server */
|
||||
RESET_MSG=2, /* client must reset connection */
|
||||
PRINT_MSG=3, /* tuples for client from server */
|
||||
NET_ERROR=4, /* error in net system call */
|
||||
FUNCTION_MSG=5, /* fastpath call (unused) */
|
||||
QUERY_MSG=6, /* client query to server */
|
||||
STARTUP_MSG=7, /* initialize a connection with a backend */
|
||||
DUPLICATE_MSG=8, /* duplicate msg arrived (errors msg only) */
|
||||
INVALID_MSG=9, /* for some control functions */
|
||||
STARTUP_KRB4_MSG=10, /* krb4 session follows startup packet */
|
||||
STARTUP_KRB5_MSG=11, /* krb5 session follows startup packet */
|
||||
STARTUP_HBA_MSG=12 /* use host-based authentication */
|
||||
/* insert new values here -- DO NOT REORDER OR DELETE ENTRIES */
|
||||
} MsgType;
|
||||
|
||||
typedef char *Addr;
|
||||
typedef int PacketLen; /* packet length */
|
||||
|
||||
|
||||
typedef struct StartupInfo {
|
||||
/* PacketHdr hdr; */
|
||||
char database[PATH_SIZE]; /* database name */
|
||||
char user[NAMEDATALEN]; /* user name */
|
||||
char options[ARGV_SIZE]; /* possible additional args */
|
||||
char execFile[ARGV_SIZE]; /* possible backend to use */
|
||||
char tty[PATH_SIZE]; /* possible tty for debug output*/
|
||||
} StartupInfo;
|
||||
|
||||
/* amount of available data in a packet buffer */
|
||||
#define MESSAGE_SIZE sizeof(StartupInfo) + 5
|
||||
|
||||
/* I/O can be blocking or non-blocking */
|
||||
#define BLOCKING (FALSE)
|
||||
#define NON_BLOCKING (TRUE)
|
||||
|
||||
/* a PacketBuf gets shipped from client to server so be careful
|
||||
of differences in representation.
|
||||
Be sure to use htonl() and ntohl() on the len and msgtype fields! */
|
||||
typedef struct PacketBuf {
|
||||
int len;
|
||||
MsgType msgtype;
|
||||
char data[MESSAGE_SIZE];
|
||||
} PacketBuf;
|
||||
|
||||
/* update the conversion routines
|
||||
StartupInfo2PacketBuf() and PacketBuf2StartupInfo() (decl. below)
|
||||
if StartupInfo or PacketBuf structs ever change */
|
||||
|
||||
/*
|
||||
* socket descriptor port
|
||||
* we need addresses of both sides to do authentication calls
|
||||
*/
|
||||
typedef struct Port {
|
||||
int sock; /* file descriptor */
|
||||
int mask; /* select mask */
|
||||
int nBytes; /* nBytes read in so far */
|
||||
struct sockaddr_in laddr; /* local addr (us) */
|
||||
struct sockaddr_in raddr; /* remote addr (them) */
|
||||
/* PacketBufId id;*/ /* id of packet buf currently in use */
|
||||
PacketBuf buf; /* stream implementation (curr pack buf) */
|
||||
} Port;
|
||||
|
||||
/* invalid socket descriptor */
|
||||
#define INVALID_SOCK (-1)
|
||||
|
||||
#define INVALID_ID (-1)
|
||||
#define MAX_CONNECTIONS 10
|
||||
#define N_PACK_BUFS 20
|
||||
|
||||
/* no multi-packet messages yet */
|
||||
#define MAX_PACKET_BACKLOG 1
|
||||
|
||||
#define DEFAULT_STRING ""
|
||||
|
||||
extern FILE *Pfout, *Pfin;
|
||||
extern int PQAsyncNotifyWaiting;
|
||||
|
||||
/*
|
||||
* prototypes for functions in pqpacket.c
|
||||
*/
|
||||
extern int PacketReceive(Port *port, PacketBuf *buf, bool nonBlocking);
|
||||
extern int PacketSend(Port *port, PacketBuf *buf,
|
||||
PacketLen len, bool nonBlocking);
|
||||
/* extern PacketBuf* StartupInfo2PacketBuf(StartupInfo*); */
|
||||
/* extern StartupInfo* PacketBuf2StartupInfo(PacketBuf*); */
|
||||
|
||||
|
||||
#endif /* PQCOMM_H */
|
||||
@@ -1,32 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pqsignal.h--
|
||||
* prototypes for the reliable BSD-style signal(2) routine.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pqsignal.h,v 1.1.1.1 1996/07/09 06:21:31 scrappy Exp $
|
||||
*
|
||||
* NOTES
|
||||
* This shouldn't be in libpq, but the monitor and some other
|
||||
* things need it...
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PQSIGNAL_H
|
||||
#define PQSIGNAL_H
|
||||
|
||||
#include <signal.h>
|
||||
|
||||
#include "c.h"
|
||||
|
||||
typedef void (*pqsigfunc)(int);
|
||||
|
||||
extern pqsigfunc pqsignal(int signo, pqsigfunc func);
|
||||
|
||||
#if defined(USE_POSIX_SIGNALS)
|
||||
#define signal(signo, handler) pqsignal(signo, (pqsigfunc)(handler))
|
||||
#endif /* USE_POSIX_SIGNALS */
|
||||
|
||||
#endif /* PQSIGNAL_H */
|
||||
@@ -1,689 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* execnodes.h--
|
||||
* definitions for executor state nodes
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: execnodes.h,v 1.1.1.1 1996/07/09 06:21:32 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef EXECNODES_H
|
||||
#define EXECNODES_H
|
||||
|
||||
#include "postgres.h"
|
||||
|
||||
#include "nodes/nodes.h"
|
||||
#include "nodes/primnodes.h"
|
||||
#include "nodes/pg_list.h"
|
||||
|
||||
#include "nodes/memnodes.h"
|
||||
|
||||
#include "storage/item.h"
|
||||
#include "access/sdir.h"
|
||||
#include "access/htup.h"
|
||||
#include "access/tupdesc.h"
|
||||
#include "access/funcindex.h"
|
||||
#include "utils/rel.h"
|
||||
#include "access/relscan.h"
|
||||
#include "executor/hashjoin.h"
|
||||
#include "executor/tuptable.h"
|
||||
|
||||
/* ----------------
|
||||
* IndexInfo information
|
||||
*
|
||||
* this class holds the information saying what attributes
|
||||
* are the key attributes for this index. -cim 10/15/89
|
||||
*
|
||||
* NumKeyAttributes number of key attributes for this index
|
||||
* KeyAttributeNumbers array of attribute numbers used as keys
|
||||
* Predicate partial-index predicate for this index
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct IndexInfo {
|
||||
NodeTag type;
|
||||
int ii_NumKeyAttributes;
|
||||
AttrNumber *ii_KeyAttributeNumbers;
|
||||
FuncIndexInfoPtr ii_FuncIndexInfo;
|
||||
Node *ii_Predicate;
|
||||
} IndexInfo;
|
||||
|
||||
/* ----------------
|
||||
* RelationInfo information
|
||||
*
|
||||
* whenever we update an existing relation, we have to
|
||||
* update indices on the relation. The RelationInfo class
|
||||
* is used to hold all the information on result relations,
|
||||
* including indices.. -cim 10/15/89
|
||||
*
|
||||
* RangeTableIndex result relation's range table index
|
||||
* RelationDesc relation descriptor for result relation
|
||||
* NumIndices number indices existing on result relation
|
||||
* IndexRelationDescs array of relation descriptors for indices
|
||||
* IndexRelationInfo array of key/attr info for indices
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct RelationInfo {
|
||||
NodeTag type;
|
||||
Index ri_RangeTableIndex;
|
||||
Relation ri_RelationDesc;
|
||||
int ri_NumIndices;
|
||||
RelationPtr ri_IndexRelationDescs;
|
||||
IndexInfo **ri_IndexRelationInfo;
|
||||
} RelationInfo;
|
||||
|
||||
/* ----------------
|
||||
* ExprContext
|
||||
*
|
||||
* This class holds the "current context" information
|
||||
* needed to evaluate expressions for doing tuple qualifications
|
||||
* and tuple projections. For example, if an expression refers
|
||||
* to an attribute in the current inner tuple then we need to know
|
||||
* what the current inner tuple is and so we look at the expression
|
||||
* context.
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct ExprContext {
|
||||
NodeTag type;
|
||||
TupleTableSlot *ecxt_scantuple;
|
||||
TupleTableSlot *ecxt_innertuple;
|
||||
TupleTableSlot *ecxt_outertuple;
|
||||
Relation ecxt_relation;
|
||||
Index ecxt_relid;
|
||||
ParamListInfo ecxt_param_list_info;
|
||||
List *ecxt_range_table;
|
||||
Datum *ecxt_values; /* precomputed values for aggreg */
|
||||
char *ecxt_nulls; /* null flags for aggreg values */
|
||||
} ExprContext;
|
||||
|
||||
/* ----------------
|
||||
* ProjectionInfo node information
|
||||
*
|
||||
* This is all the information needed to preform projections
|
||||
* on a tuple. Nodes which need to do projections create one
|
||||
* of these. In theory, when a node wants to preform a projection
|
||||
* it should just update this information as necessary and then
|
||||
* call ExecProject(). -cim 6/3/91
|
||||
*
|
||||
* targetlist target list for projection
|
||||
* len length of target list
|
||||
* tupValue array of pointers to projection results
|
||||
* exprContext expression context for ExecTargetList
|
||||
* slot slot to place projection result in
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct ProjectionInfo {
|
||||
NodeTag type;
|
||||
List *pi_targetlist;
|
||||
int pi_len;
|
||||
Datum *pi_tupValue;
|
||||
ExprContext *pi_exprContext;
|
||||
TupleTableSlot *pi_slot;
|
||||
} ProjectionInfo;
|
||||
|
||||
/* ----------------
|
||||
* JunkFilter
|
||||
*
|
||||
* this class is used to store information regarding junk attributes.
|
||||
* A junk attribute is an attribute in a tuple that is needed only for
|
||||
* storing intermediate information in the executor, and does not belong
|
||||
* in the tuple proper. For example, when we do a delete or replace
|
||||
* query, the planner adds an entry to the targetlist so that the tuples
|
||||
* returned to ExecutePlan() contain an extra attribute: the t_ctid of
|
||||
* the tuple to be deleted/replaced. This is needed for amdelete() and
|
||||
* amreplace(). In doing a delete this does not make much of a
|
||||
* difference, but in doing a replace we have to make sure we disgard
|
||||
* all the junk in a tuple before calling amreplace(). Otherwise the
|
||||
* inserted tuple will not have the correct schema. This solves a
|
||||
* problem with hash-join and merge-sort replace plans. -cim 10/10/90
|
||||
*
|
||||
* targetList: the original target list (including junk attributes).
|
||||
* length: the length of 'targetList'.
|
||||
* tupType: the tuple descriptor for the "original" tuple
|
||||
* (including the junk attributes).
|
||||
* cleanTargetList: the "clean" target list (junk attributes removed).
|
||||
* cleanLength: the length of 'cleanTargetList'
|
||||
* cleanTupTyp: the tuple descriptor of the "clean" tuple (with
|
||||
* junk attributes removed).
|
||||
* cleanMap: A map with the correspondance between the non junk
|
||||
* attributes of the "original" tuple and the
|
||||
* attributes of the "clean" tuple.
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct JunkFilter {
|
||||
NodeTag type;
|
||||
List *jf_targetList;
|
||||
int jf_length;
|
||||
TupleDesc jf_tupType;
|
||||
List *jf_cleanTargetList;
|
||||
int jf_cleanLength;
|
||||
TupleDesc jf_cleanTupType;
|
||||
AttrNumber *jf_cleanMap;
|
||||
} JunkFilter;
|
||||
|
||||
/* ----------------
|
||||
* EState information
|
||||
*
|
||||
* direction direction of the scan
|
||||
*
|
||||
* range_table array of scan relation information
|
||||
*
|
||||
* result_relation_information for update queries
|
||||
*
|
||||
* into_relation_descriptor relation being retrieved "into"
|
||||
*
|
||||
* param_list_info information needed to transform
|
||||
* Param nodes into Const nodes
|
||||
*
|
||||
* BaseId during InitPlan(), each node is
|
||||
* given a number. this is the next
|
||||
* number to be assigned.
|
||||
*
|
||||
* tupleTable this is a pointer to an array
|
||||
* of pointers to tuples used by
|
||||
* the executor at any given moment.
|
||||
*
|
||||
* junkFilter contains information used to
|
||||
* extract junk attributes from a tuple.
|
||||
* (see JunkFilter above)
|
||||
*
|
||||
* refcount local buffer refcounts used in
|
||||
* an ExecMain cycle. this is introduced
|
||||
* to avoid ExecStart's unpinning each
|
||||
* other's buffers when called recursively
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct EState {
|
||||
NodeTag type;
|
||||
ScanDirection es_direction;
|
||||
List *es_range_table;
|
||||
RelationInfo *es_result_relation_info;
|
||||
Relation es_into_relation_descriptor;
|
||||
ParamListInfo es_param_list_info;
|
||||
int es_BaseId;
|
||||
TupleTable es_tupleTable;
|
||||
JunkFilter *es_junkFilter;
|
||||
int *es_refcount;
|
||||
} EState;
|
||||
|
||||
/* ----------------
|
||||
* Executor Type information needed by plannodes.h
|
||||
*
|
||||
*| Note: the bogus classes CommonState and CommonScanState exist only
|
||||
*| because our inheritance system only allows single inheritance
|
||||
*| and we have to have unique slot names. Hence two or more
|
||||
*| classes which want to have a common slot must ALL inherit
|
||||
*| the slot from some other class. (This is a big hack to
|
||||
*| allow our classes to share slot names..)
|
||||
*|
|
||||
*| Example:
|
||||
*| the class Result and the class NestLoop nodes both want
|
||||
*| a slot called "OuterTuple" so they both have to inherit
|
||||
*| it from some other class. In this case they inherit
|
||||
*| it from CommonState. "CommonState" and "CommonScanState" are
|
||||
*| the best names I could come up with for this sort of
|
||||
*| stuff.
|
||||
*|
|
||||
*| As a result, many classes have extra slots which they
|
||||
*| don't use. These slots are denoted (unused) in the
|
||||
*| comment preceeding the class definition. If you
|
||||
*| comes up with a better idea of a way of doing things
|
||||
*| along these lines, then feel free to make your idea
|
||||
*| known to me.. -cim 10/15/89
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* Common Executor State Information
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* BaseNode removed -- base_id moved into CommonState - jolly */
|
||||
|
||||
/* ----------------
|
||||
* CommonState information
|
||||
*
|
||||
*| this is a bogus class used to hold slots so other
|
||||
*| nodes can inherit them...
|
||||
*
|
||||
* OuterTupleSlot pointer to slot containing current "outer" tuple
|
||||
* ResultTupleSlot pointer to slot in tuple table for projected tuple
|
||||
* ExprContext node's current expression context
|
||||
* ProjInfo info this node uses to form tuple projections
|
||||
* NumScanAttributes size of ScanAttributes array
|
||||
* ScanAttributes attribute numbers of interest in this tuple
|
||||
*
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct CommonState {
|
||||
NodeTag type; /* its first field is NodeTag */
|
||||
int cs_base_id;
|
||||
TupleTableSlot *cs_OuterTupleSlot;
|
||||
TupleTableSlot *cs_ResultTupleSlot;
|
||||
ExprContext *cs_ExprContext;
|
||||
ProjectionInfo *cs_ProjInfo;
|
||||
bool cs_TupFromTlist;
|
||||
} CommonState;
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* Control Node State Information
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* ----------------
|
||||
* ResultState information
|
||||
*
|
||||
* done flag which tells us to quit when we
|
||||
* have already returned a constant tuple.
|
||||
*
|
||||
* CommonState information
|
||||
*
|
||||
* OuterTupleSlot pointer to slot containing current "outer" tuple
|
||||
* ResultTupleSlot pointer to slot in tuple table for projected tuple
|
||||
* ExprContext node's current expression context
|
||||
* ProjInfo info this node uses to form tuple projections
|
||||
* NumScanAttributes size of ScanAttributes array
|
||||
* ScanAttributes attribute numbers of interest in this tuple
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct ResultState {
|
||||
CommonState cstate; /* its first field is NodeTag */
|
||||
int rs_done;
|
||||
} ResultState;
|
||||
|
||||
/* ----------------
|
||||
* AppendState information
|
||||
*
|
||||
* append nodes have this field "unionplans" which is this
|
||||
* list of plans to execute in sequence.. these variables
|
||||
* keep track of things..
|
||||
*
|
||||
* whichplan which plan is being executed
|
||||
* nplans how many plans are in the list
|
||||
* initialized array of ExecInitNode() results
|
||||
* rtentries range table for the current plan
|
||||
* result_relation_info_list array of each subplan's result relation info
|
||||
* junkFilter_list array of each subplan's junk filter
|
||||
*
|
||||
* CommonState information
|
||||
*
|
||||
* OuterTupleSlot pointer to slot containing current "outer" tuple
|
||||
* ResultTupleSlot pointer to slot in tuple table for projected tuple
|
||||
* ExprContext node's current expression context
|
||||
* ProjInfo info this node uses to form tuple projections
|
||||
* NumScanAttributes size of ScanAttributes array
|
||||
* ScanAttributes attribute numbers of interest in this tuple
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct AppendState {
|
||||
CommonState cstate; /* its first field is NodeTag */
|
||||
int as_whichplan;
|
||||
int as_nplans;
|
||||
bool *as_initialized;
|
||||
List *as_rtentries;
|
||||
List *as_result_relation_info_list;
|
||||
List *as_junkFilter_list;
|
||||
} AppendState;
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* Scan State Information
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* ----------------
|
||||
* CommonScanState information
|
||||
*
|
||||
* CommonScanState is a class like CommonState, but is used more
|
||||
* by the nodes like SeqScan and Sort which want to
|
||||
* keep track of an underlying relation.
|
||||
*
|
||||
* currentRelation relation being scanned
|
||||
* currentScanDesc current scan descriptor for scan
|
||||
* ScanTupleSlot pointer to slot in tuple table holding scan tuple
|
||||
*
|
||||
* CommonState information
|
||||
*
|
||||
* OuterTupleSlot pointer to slot containing current "outer" tuple
|
||||
* ResultTupleSlot pointer to slot in tuple table for projected tuple
|
||||
* ExprContext node's current expression context
|
||||
* ProjInfo info this node uses to form tuple projections
|
||||
* NumScanAttributes size of ScanAttributes array
|
||||
* ScanAttributes attribute numbers of interest in this tuple
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct CommonScanState {
|
||||
CommonState cstate; /* its first field is NodeTag */
|
||||
Relation css_currentRelation;
|
||||
HeapScanDesc css_currentScanDesc;
|
||||
TupleTableSlot *css_ScanTupleSlot;
|
||||
} CommonScanState;
|
||||
|
||||
/* ----------------
|
||||
* IndexScanState information
|
||||
*
|
||||
*| index scans don't use CommonScanState because
|
||||
*| the underlying AM abstractions for heap scans and
|
||||
*| index scans are too different.. It would be nice
|
||||
*| if the current abstraction was more useful but ... -cim 10/15/89
|
||||
*
|
||||
* IndexPtr current index in use
|
||||
* NumIndices number of indices in this scan
|
||||
* ScanKeys Skey structures to scan index rels
|
||||
* NumScanKeys array of no of keys in each Skey struct
|
||||
* RuntimeKeyInfo array of array of flags for Skeys evaled at runtime
|
||||
* RelationDescs ptr to array of relation descriptors
|
||||
* ScanDescs ptr to array of scan descriptors
|
||||
*
|
||||
* CommonState information
|
||||
*
|
||||
* OuterTupleSlot pointer to slot containing current "outer" tuple
|
||||
* ResultTupleSlot pointer to slot in tuple table for projected tuple
|
||||
* ExprContext node's current expression context
|
||||
* ProjInfo info this node uses to form tuple projections
|
||||
* NumScanAttributes size of ScanAttributes array
|
||||
* ScanAttributes attribute numbers of interest in this tuple
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct IndexScanState {
|
||||
CommonState cstate; /* its first field is NodeTag */
|
||||
int iss_NumIndices;
|
||||
int iss_IndexPtr;
|
||||
ScanKey *iss_ScanKeys;
|
||||
int *iss_NumScanKeys;
|
||||
Pointer iss_RuntimeKeyInfo;
|
||||
RelationPtr iss_RelationDescs;
|
||||
IndexScanDescPtr iss_ScanDescs;
|
||||
} IndexScanState;
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* Join State Information
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* ----------------
|
||||
* JoinState information
|
||||
*
|
||||
* CommonState information
|
||||
*
|
||||
* OuterTupleSlot pointer to slot containing current "outer" tuple
|
||||
* ResultTupleSlot pointer to slot in tuple table for projected tuple
|
||||
* ExprContext node's current expression context
|
||||
* ProjInfo info this node uses to form tuple projections
|
||||
* NumScanAttributes size of ScanAttributes array
|
||||
* ScanAttributes attribute numbers of interest in this tuple
|
||||
* ----------------
|
||||
*/
|
||||
typedef CommonState JoinState;
|
||||
|
||||
/* ----------------
|
||||
* NestLoopState information
|
||||
*
|
||||
* PortalFlag Set to enable portals to work.
|
||||
*
|
||||
* JoinState information
|
||||
*
|
||||
* CommonState information
|
||||
*
|
||||
* OuterTupleSlot pointer to slot containing current "outer" tuple
|
||||
* ResultTupleSlot pointer to slot in tuple table for projected tuple
|
||||
* ExprContext node's current expression context
|
||||
* ProjInfo info this node uses to form tuple projections
|
||||
* NumScanAttributes size of ScanAttributes array
|
||||
* ScanAttributes attribute numbers of interest in this tuple
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct NestLoopState {
|
||||
JoinState jstate; /* its first field is NodeTag */
|
||||
bool nl_PortalFlag;
|
||||
} NestLoopState;
|
||||
|
||||
/* ----------------
|
||||
* MergeJoinState information
|
||||
*
|
||||
* OSortopI outerKey1 sortOp innerKey1 ...
|
||||
* ISortopO innerkey1 sortOp outerkey1 ...
|
||||
* JoinState current "state" of join. see executor.h
|
||||
* MarkedTupleSlot pointer to slot in tuple table for marked tuple
|
||||
*
|
||||
* JoinState information
|
||||
*
|
||||
* CommonState information
|
||||
*
|
||||
* OuterTupleSlot pointer to slot containing current "outer" tuple
|
||||
* ResultTupleSlot pointer to slot in tuple table for projected tuple
|
||||
* ExprContext node's current expression context
|
||||
* ProjInfo info this node uses to form tuple projections
|
||||
* NumScanAttributes size of ScanAttributes array
|
||||
* ScanAttributes attribute numbers of interest in this tuple
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct MergeJoinState {
|
||||
JoinState jstate; /* its first field is NodeTag */
|
||||
List *mj_OSortopI;
|
||||
List *mj_ISortopO;
|
||||
int mj_JoinState;
|
||||
TupleTableSlot *mj_MarkedTupleSlot;
|
||||
} MergeJoinState;
|
||||
|
||||
/* ----------------
|
||||
* HashJoinState information
|
||||
*
|
||||
* hj_HashTable address of the hash table for the hashjoin
|
||||
* hj_HashTableShmId shared memory id of hash table
|
||||
* hj_CurBucket the current hash bucket that we are searching
|
||||
* for matches of the current outer tuple
|
||||
* hj_CurTuple the current matching inner tuple in the
|
||||
* current hash bucket
|
||||
* hj_CurOTuple the current matching inner tuple in the
|
||||
* current hash overflow chain
|
||||
* hj_InnerHashKey the inner hash key in the hashjoin condition
|
||||
* hj_OuterBatches file descriptors for outer batches
|
||||
* hj_InnerBatches file descriptors for inner batches
|
||||
* hj_OuterReadPos current read position of outer batch
|
||||
* hj_OuterReadBlk current read block of outer batch
|
||||
* hj_OuterTupleSlot tuple slot for outer tuples
|
||||
* hj_HashTupleSlot tuple slot for hashed tuples
|
||||
*
|
||||
*
|
||||
*
|
||||
* JoinState information
|
||||
*
|
||||
* CommonState information
|
||||
*
|
||||
* OuterTupleSlot pointer to slot containing current "outer" tuple
|
||||
* ResultTupleSlot pointer to slot in tuple table for projected tuple
|
||||
* ExprContext node's current expression context
|
||||
* ProjInfo info this node uses to form tuple projections
|
||||
* NumScanAttributes size of ScanAttributes array
|
||||
* ScanAttributes attribute numbers of interest in this tuple
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct HashJoinState {
|
||||
JoinState jstate; /* its first field is NodeTag */
|
||||
HashJoinTable hj_HashTable;
|
||||
IpcMemoryId hj_HashTableShmId;
|
||||
HashBucket hj_CurBucket;
|
||||
HeapTuple hj_CurTuple;
|
||||
OverflowTuple hj_CurOTuple;
|
||||
Var *hj_InnerHashKey;
|
||||
File *hj_OuterBatches;
|
||||
File *hj_InnerBatches;
|
||||
char *hj_OuterReadPos;
|
||||
int hj_OuterReadBlk;
|
||||
TupleTableSlot *hj_OuterTupleSlot;
|
||||
TupleTableSlot *hj_HashTupleSlot;
|
||||
} HashJoinState;
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* Materialization State Information
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* ----------------
|
||||
* MaterialState information
|
||||
*
|
||||
* materialize nodes are used to materialize the results
|
||||
* of a subplan into a temporary relation.
|
||||
*
|
||||
* Flag indicated whether subplan has been materialized
|
||||
* TempRelation temporary relation containing result of executing
|
||||
* the subplan.
|
||||
*
|
||||
* CommonScanState information
|
||||
*
|
||||
* currentRelation relation descriptor of sorted relation
|
||||
* currentScanDesc current scan descriptor for scan
|
||||
* ScanTupleSlot pointer to slot in tuple table holding scan tuple
|
||||
*
|
||||
* CommonState information
|
||||
*
|
||||
* OuterTupleSlot pointer to slot containing current "outer" tuple
|
||||
* ResultTupleSlot pointer to slot in tuple table for projected tuple
|
||||
* ExprContext node's current expression context
|
||||
* ProjInfo info this node uses to form tuple projections
|
||||
* NumScanAttributes size of ScanAttributes array
|
||||
* ScanAttributes attribute numbers of interest in this tuple
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct MaterialState {
|
||||
CommonScanState csstate; /* its first field is NodeTag */
|
||||
bool mat_Flag;
|
||||
Relation mat_TempRelation;
|
||||
} MaterialState;
|
||||
|
||||
/* ---------------------
|
||||
* AggregateState information
|
||||
*
|
||||
* done indicated whether aggregate has been materialized
|
||||
* -------------------------
|
||||
*/
|
||||
typedef struct AggState {
|
||||
CommonScanState csstate; /* its first field is NodeTag */
|
||||
bool agg_done;
|
||||
} AggState;
|
||||
|
||||
/* ---------------------
|
||||
* GroupState information
|
||||
*
|
||||
* -------------------------
|
||||
*/
|
||||
typedef struct GroupState {
|
||||
CommonScanState csstate; /* its first field is NodeTag */
|
||||
bool grp_useLastTuple; /* last tuple not processed yet */
|
||||
bool grp_done;
|
||||
TupleTableSlot *grp_lastSlot;
|
||||
} GroupState;
|
||||
|
||||
/* ----------------
|
||||
* SortState information
|
||||
*
|
||||
*| sort nodes are really just a kind of a scan since
|
||||
*| we implement sorts by retrieveing the entire subplan
|
||||
*| into a temp relation, sorting the temp relation into
|
||||
*| another sorted relation, and then preforming a simple
|
||||
*| unqualified sequential scan on the sorted relation..
|
||||
*| -cim 10/15/89
|
||||
*
|
||||
* Flag indicated whether relation has been sorted
|
||||
* Keys scan key structures used to keep info on sort keys
|
||||
* TempRelation temporary relation containing result of executing
|
||||
* the subplan.
|
||||
*
|
||||
* CommonScanState information
|
||||
*
|
||||
* currentRelation relation descriptor of sorted relation
|
||||
* currentScanDesc current scan descriptor for scan
|
||||
* ScanTupleSlot pointer to slot in tuple table holding scan tuple
|
||||
*
|
||||
* CommonState information
|
||||
*
|
||||
* OuterTupleSlot pointer to slot containing current "outer" tuple
|
||||
* ResultTupleSlot pointer to slot in tuple table for projected tuple
|
||||
* ExprContext node's current expression context
|
||||
* ProjInfo info this node uses to form tuple projections
|
||||
* NumScanAttributes size of ScanAttributes array
|
||||
* ScanAttributes attribute numbers of interest in this tuple
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct SortState {
|
||||
CommonScanState csstate; /* its first field is NodeTag */
|
||||
bool sort_Flag;
|
||||
ScanKey sort_Keys;
|
||||
Relation sort_TempRelation;
|
||||
} SortState;
|
||||
|
||||
/* ----------------
|
||||
* UniqueState information
|
||||
*
|
||||
* Unique nodes are used "on top of" sort nodes to discard
|
||||
* duplicate tuples returned from the sort phase. Basically
|
||||
* all it does is compare the current tuple from the subplan
|
||||
* with the previously fetched tuple stored in OuterTuple and
|
||||
* if the two are identical, then we just fetch another tuple
|
||||
* from the sort and try again.
|
||||
*
|
||||
* CommonState information
|
||||
*
|
||||
* OuterTupleSlot pointer to slot containing current "outer" tuple
|
||||
* ResultTupleSlot pointer to slot in tuple table for projected tuple
|
||||
* ExprContext node's current expression context
|
||||
* ProjInfo info this node uses to form tuple projections
|
||||
* NumScanAttributes size of ScanAttributes array
|
||||
* ScanAttributes attribute numbers of interest in this tuple
|
||||
* ----------------
|
||||
*/
|
||||
typedef CommonState UniqueState;
|
||||
|
||||
|
||||
/* ----------------
|
||||
* HashState information
|
||||
*
|
||||
* hashBatches file descriptors for the batches
|
||||
*
|
||||
* CommonState information
|
||||
*
|
||||
* OuterTupleSlot pointer to slot containing current "outer" tuple
|
||||
* ResultTupleSlot pointer to slot in tuple table for projected tuple
|
||||
* ExprContext node's current expression context
|
||||
* ProjInfo info this node uses to form tuple projections
|
||||
* NumScanAttributes size of ScanAttributes array
|
||||
* ScanAttributes attribute numbers of interest in this tuple
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct HashState {
|
||||
CommonState cstate; /* its first field is NodeTag */
|
||||
File *hashBatches;
|
||||
} HashState;
|
||||
|
||||
/* -----------------------
|
||||
* TeeState information
|
||||
* leftPlace : next item in the queue unseen by the left parent
|
||||
* rightPlace : next item in the queue unseen by the right parent
|
||||
* lastPlace : last item in the queue
|
||||
* bufferRelname : name of the relation used as the buffer queue
|
||||
* bufferRel : the relation used as the buffer queue
|
||||
* mcxt : for now, tee's have their own memory context
|
||||
* may be cleaned up later if portals are cleaned up
|
||||
*
|
||||
* initially, a Tee starts with [left/right]Place variables set to -1.
|
||||
* on cleanup, queue is free'd when both leftPlace and rightPlace = -1
|
||||
* -------------------------
|
||||
*/
|
||||
typedef struct TeeState {
|
||||
CommonState cstate; /* its first field is NodeTag */
|
||||
int tee_leftPlace;
|
||||
int tee_rightPlace;
|
||||
int tee_lastPlace;
|
||||
char *tee_bufferRelname;
|
||||
Relation tee_bufferRel;
|
||||
MemoryContext tee_mcxt;
|
||||
HeapScanDesc tee_leftScanDesc;
|
||||
HeapScanDesc tee_rightScanDesc;
|
||||
} TeeState;
|
||||
|
||||
#endif /* EXECNODES_H */
|
||||
@@ -1,48 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* makefuncs.h--
|
||||
* prototypes for the creator functions (for primitive nodes)
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: makefuncs.h,v 1.1.1.1 1996/07/09 06:21:32 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef MAKEFUNC_H
|
||||
#define MAKEFUNC_H
|
||||
|
||||
#include "access/attnum.h"
|
||||
#include "catalog/pg_operator.h"
|
||||
#include "utils/fcache.h"
|
||||
#include "nodes/primnodes.h"
|
||||
|
||||
extern Oper *makeOper(Oid opno,
|
||||
Oid opid,
|
||||
Oid opresulttype,
|
||||
int opsize,
|
||||
FunctionCachePtr op_fcache);
|
||||
|
||||
extern Var *makeVar(Index varno,
|
||||
AttrNumber varattno,
|
||||
Oid vartype,
|
||||
Index varnoold,
|
||||
AttrNumber varoattno);
|
||||
|
||||
extern Resdom *makeResdom(AttrNumber resno,
|
||||
Oid restype,
|
||||
int reslen,
|
||||
char *resname,
|
||||
Index reskey,
|
||||
Oid reskeyop,
|
||||
int resjunk);
|
||||
|
||||
extern Const *makeConst(Oid consttype,
|
||||
Size constlen,
|
||||
Datum constvalue,
|
||||
bool constisnull,
|
||||
bool constbyval,
|
||||
bool constisset);
|
||||
|
||||
#endif /* MAKEFUNC_H */
|
||||
@@ -1,101 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* memnodes.h--
|
||||
* POSTGRES memory context node definitions.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: memnodes.h,v 1.1.1.1 1996/07/09 06:21:32 scrappy Exp $
|
||||
*
|
||||
* XXX the typedefs in this file are different from the other ???nodes.h;
|
||||
* they are pointers to structures instead of the structures themselves.
|
||||
* If you're wondering, this is plain laziness. I don't want to touch
|
||||
* the memory context code which should be revamped altogether some day.
|
||||
* - ay 10/94
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef MEMNODES_H
|
||||
#define MEMNODES_H
|
||||
|
||||
#include "c.h"
|
||||
|
||||
#include "utils/memutils.h"
|
||||
#include "lib/fstack.h"
|
||||
|
||||
#include "nodes/nodes.h"
|
||||
|
||||
/*
|
||||
* MemoryContext --
|
||||
* A logical context in which memory allocations occur.
|
||||
*
|
||||
* The types of memory contexts can be thought of as members of the
|
||||
* following inheritance hierarchy with properties summarized below.
|
||||
*
|
||||
* Node
|
||||
* |
|
||||
* MemoryContext___
|
||||
* / \
|
||||
* GlobalMemory PortalMemoryContext
|
||||
* / \
|
||||
* PortalVariableMemory PortalHeapMemory
|
||||
*
|
||||
* Flushed at Flushed at Checkpoints
|
||||
* Transaction Portal
|
||||
* Commit Close
|
||||
*
|
||||
* GlobalMemory n n n
|
||||
* PortalVariableMemory n y n
|
||||
* PortalHeapMemory y y y
|
||||
*/
|
||||
|
||||
typedef struct MemoryContextMethodsData {
|
||||
Pointer (*alloc)();
|
||||
void (*free_p)(); /* need to use free as a #define,
|
||||
so can't use free */
|
||||
Pointer (*realloc)();
|
||||
char* (*getName)();
|
||||
void (*dump)();
|
||||
} *MemoryContextMethods;
|
||||
|
||||
typedef struct MemoryContext {
|
||||
NodeTag type;
|
||||
MemoryContextMethods method;
|
||||
} *MemoryContext;
|
||||
|
||||
/* think about doing this right some time but we'll have explicit fields
|
||||
for now -ay 10/94 */
|
||||
typedef struct GlobalMemory {
|
||||
NodeTag type;
|
||||
MemoryContextMethods method;
|
||||
AllocSetData setData;
|
||||
char *name;
|
||||
OrderedElemData elemData;
|
||||
} *GlobalMemory;
|
||||
|
||||
typedef MemoryContext *PortalMemoryContext;
|
||||
|
||||
typedef struct PortalVariableMemory {
|
||||
NodeTag type;
|
||||
MemoryContextMethods method;
|
||||
AllocSetData setData;
|
||||
} *PortalVariableMemory;
|
||||
|
||||
typedef struct PortalHeapMemory {
|
||||
NodeTag type;
|
||||
MemoryContextMethods method;
|
||||
Pointer block;
|
||||
FixedStackData stackData;
|
||||
} *PortalHeapMemory;
|
||||
|
||||
/*
|
||||
* MemoryContextIsValid --
|
||||
* True iff memory context is valid.
|
||||
*/
|
||||
#define MemoryContextIsValid(context) \
|
||||
(IsA(context,MemoryContext) || IsA(context,GlobalMemory) || \
|
||||
IsA(context,PortalVariableMemory) || IsA(context,PortalHeapMemory))
|
||||
|
||||
#endif /* MEMNODES_H */
|
||||
|
||||
|
||||
@@ -1,23 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* nodeFuncs.h--
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: nodeFuncs.h,v 1.1.1.1 1996/07/09 06:21:32 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef NODEFUNCS_H
|
||||
#define NODEFUNCS_H
|
||||
|
||||
extern bool single_node(Node *node);
|
||||
extern bool var_is_outer(Var *var);
|
||||
extern bool var_is_inner(Var *var);
|
||||
extern bool var_is_rel(Var *var);
|
||||
extern Oper *replace_opid(Oper *oper);
|
||||
extern bool non_null(Expr *c);
|
||||
|
||||
#endif /* NODEFUNCS_H */
|
||||
@@ -1,299 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* nodes.h--
|
||||
* Definitions for tagged nodes.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: nodes.h,v 1.1.1.1 1996/07/09 06:21:33 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef NODES_H
|
||||
#define NODES_H
|
||||
|
||||
#include "c.h"
|
||||
|
||||
/*
|
||||
* The first field of every node is NodeTag. Each node created (with makeNode)
|
||||
* will have one of the following tags as the value of its first field.
|
||||
*
|
||||
* Note that the number of the node tags are not contiguous. We left holes
|
||||
* here so that we can add more tags without changing the existing enum's.
|
||||
*/
|
||||
typedef enum NodeTag {
|
||||
T_Invalid = 0,
|
||||
|
||||
/*---------------------
|
||||
* TAGS FOR PLAN NODES (plannodes.h)
|
||||
*---------------------
|
||||
*/
|
||||
T_Plan = 10,
|
||||
T_Existential,
|
||||
T_Result,
|
||||
T_Append,
|
||||
T_Scan,
|
||||
T_SeqScan,
|
||||
T_IndexScan,
|
||||
T_Join,
|
||||
T_NestLoop,
|
||||
T_MergeJoin,
|
||||
T_HashJoin,
|
||||
T_Temp,
|
||||
T_Material,
|
||||
T_Sort,
|
||||
T_Agg,
|
||||
T_Unique,
|
||||
T_Hash,
|
||||
T_Choose,
|
||||
T_Tee,
|
||||
T_Group,
|
||||
|
||||
/*---------------------
|
||||
* TAGS FOR PRIMITIVE NODES (primnodes.h)
|
||||
*---------------------
|
||||
*/
|
||||
T_Resdom = 100,
|
||||
T_Fjoin,
|
||||
T_Expr,
|
||||
T_Var,
|
||||
T_Oper,
|
||||
T_Const,
|
||||
T_Param,
|
||||
T_Aggreg,
|
||||
T_Func,
|
||||
T_Array,
|
||||
T_ArrayRef,
|
||||
|
||||
/*---------------------
|
||||
* TAGS FOR INNER PLAN NODES (relation.h)
|
||||
*---------------------
|
||||
*/
|
||||
T_Rel = 200,
|
||||
T_Path,
|
||||
T_IndexPath,
|
||||
T_JoinPath,
|
||||
T_MergePath,
|
||||
T_HashPath,
|
||||
T_OrderKey,
|
||||
T_JoinKey,
|
||||
T_MergeOrder,
|
||||
T_CInfo,
|
||||
T_JoinMethod,
|
||||
T_HInfo,
|
||||
T_MInfo,
|
||||
T_JInfo,
|
||||
T_Iter,
|
||||
T_Stream,
|
||||
|
||||
/*---------------------
|
||||
* TAGS FOR EXECUTOR NODES (execnodes.h)
|
||||
*---------------------
|
||||
*/
|
||||
T_IndexInfo = 300,
|
||||
T_RelationInfo,
|
||||
T_TupleCount,
|
||||
T_TupleTableSlot,
|
||||
T_ExprContext,
|
||||
T_ProjectionInfo,
|
||||
T_JunkFilter,
|
||||
T_EState,
|
||||
T_BaseNode,
|
||||
T_CommonState,
|
||||
T_ResultState,
|
||||
T_AppendState,
|
||||
T_CommonScanState,
|
||||
T_ScanState,
|
||||
T_IndexScanState,
|
||||
T_JoinState,
|
||||
T_NestLoopState,
|
||||
T_MergeJoinState,
|
||||
T_HashJoinState,
|
||||
T_MaterialState,
|
||||
T_AggState,
|
||||
T_GroupState,
|
||||
T_SortState,
|
||||
T_UniqueState,
|
||||
T_HashState,
|
||||
T_TeeState,
|
||||
|
||||
/*---------------------
|
||||
* TAGS FOR MEMORY NODES (memnodes.h)
|
||||
*---------------------
|
||||
*/
|
||||
T_MemoryContext = 400,
|
||||
T_GlobalMemory,
|
||||
T_PortalMemoryContext,
|
||||
T_PortalVariableMemory,
|
||||
T_PortalHeapMemory,
|
||||
|
||||
/*---------------------
|
||||
* TAGS FOR VALUE NODES (pg_list.h)
|
||||
*---------------------
|
||||
*/
|
||||
T_Value = 500,
|
||||
T_List,
|
||||
T_Integer,
|
||||
T_Float,
|
||||
T_String,
|
||||
T_Null,
|
||||
|
||||
/*---------------------
|
||||
* TAGS FOR PARSE TREE NODES (parsenode.h)
|
||||
*---------------------
|
||||
*/
|
||||
T_Query = 600,
|
||||
T_AppendStmt,
|
||||
T_DeleteStmt,
|
||||
T_ReplaceStmt,
|
||||
T_CursorStmt,
|
||||
T_RetrieveStmt,
|
||||
T_AddAttrStmt,
|
||||
T_AggregateStmt,
|
||||
T_ChangeACLStmt,
|
||||
T_ClosePortalStmt,
|
||||
T_ClusterStmt,
|
||||
T_CopyStmt,
|
||||
T_CreateStmt,
|
||||
T_VersionStmt,
|
||||
T_DefineStmt,
|
||||
T_DestroyStmt,
|
||||
T_ExtendStmt,
|
||||
T_FetchStmt,
|
||||
T_IndexStmt,
|
||||
T_MoveStmt,
|
||||
T_ProcedureStmt,
|
||||
T_PurgeStmt,
|
||||
T_RecipeStmt,
|
||||
T_RemoveFuncStmt,
|
||||
T_RemoveOperStmt,
|
||||
T_RemoveStmt,
|
||||
T_RenameStmt,
|
||||
T_RuleStmt,
|
||||
T_NotifyStmt,
|
||||
T_ListenStmt,
|
||||
T_TransactionStmt,
|
||||
T_ViewStmt,
|
||||
T_LoadStmt,
|
||||
T_CreatedbStmt,
|
||||
T_DestroydbStmt,
|
||||
T_VacuumStmt,
|
||||
T_ExplainStmt,
|
||||
|
||||
T_A_Expr = 700,
|
||||
T_Attr,
|
||||
T_A_Const,
|
||||
T_ParamNo,
|
||||
T_Ident,
|
||||
T_FuncCall,
|
||||
T_A_Indices,
|
||||
T_ResTarget,
|
||||
T_ParamString,
|
||||
T_TimeRange,
|
||||
T_RelExpr,
|
||||
T_SortBy,
|
||||
T_RangeVar,
|
||||
T_TypeName,
|
||||
T_IndexElem,
|
||||
T_ColumnDef,
|
||||
T_DefElem,
|
||||
T_TargetEntry,
|
||||
T_RangeTblEntry,
|
||||
T_SortClause,
|
||||
T_GroupClause
|
||||
} NodeTag;
|
||||
|
||||
/*
|
||||
* The first field of a node of any type is gauranteed to be the NodeTag.
|
||||
* Hence the type of any node can be gotten by casting it to Node. Declaring
|
||||
* a variable to be of Node * (instead of void *) can also facilitate
|
||||
* debugging.
|
||||
*/
|
||||
typedef struct Node {
|
||||
NodeTag type;
|
||||
} Node;
|
||||
|
||||
#define nodeTag(_node_) ((Node*)_node_)->type
|
||||
|
||||
#define makeNode(_node_) (_node_*)newNode(sizeof(_node_),T_##_node_)
|
||||
#define NodeSetTag(n, t) ((Node *)n)->type = t
|
||||
|
||||
#define IsA(_node_,_tag_) (nodeTag(_node_) == T_##_tag_)
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* IsA functions (no inheritence any more)
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
#define IsA_JoinPath(jp) \
|
||||
(nodeTag(jp)==T_JoinPath || nodeTag(jp)==T_MergePath || \
|
||||
nodeTag(jp)==T_HashPath)
|
||||
|
||||
#define IsA_Join(j) \
|
||||
(nodeTag(j)==T_Join || nodeTag(j)==T_NestLoop || \
|
||||
nodeTag(j)==T_MergeJoin || nodeTag(j)==T_HashJoin)
|
||||
|
||||
#define IsA_Temp(t) \
|
||||
(nodeTag(t)==T_Temp || nodeTag(t)==T_Material || nodeTag(t)==T_Sort || \
|
||||
nodeTag(t)==T_Unique)
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* extern declarations follow
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/*
|
||||
* nodes/nodes.c
|
||||
*/
|
||||
extern Node *newNode(Size size, NodeTag tag);
|
||||
|
||||
/*
|
||||
* nodes/{outfuncs.c,print.c}
|
||||
*/
|
||||
#define nodeDisplay print
|
||||
|
||||
extern char *nodeToString(void *obj);
|
||||
extern void print(void *obj);
|
||||
|
||||
/*
|
||||
* nodes/{readfuncs.c,read.c}
|
||||
*/
|
||||
extern void *stringToNode(char *str);
|
||||
|
||||
/*
|
||||
* nodes/copyfuncs.c
|
||||
*/
|
||||
extern void *copyObject(void *obj);
|
||||
|
||||
/*
|
||||
* nodes/equalfuncs.c
|
||||
*/
|
||||
extern bool equal(void *a, void *b);
|
||||
|
||||
|
||||
/* ----------------
|
||||
* I don't know why this is here. Most likely a hack..
|
||||
* -cim 6/3/90
|
||||
* ----------------
|
||||
*/
|
||||
typedef float Cost;
|
||||
|
||||
/*
|
||||
* CmdType -
|
||||
* enums for type of operation to aid debugging
|
||||
*
|
||||
* ??? could have put this in parsenodes.h but many files not in the
|
||||
* optimizer also need this...
|
||||
*/
|
||||
typedef enum CmdType {
|
||||
CMD_UNKNOWN,
|
||||
CMD_SELECT, /* select stmt (formerly retrieve) */
|
||||
CMD_UPDATE, /* update stmt (formerly replace) */
|
||||
CMD_INSERT, /* insert stmt (formerly append) */
|
||||
CMD_DELETE,
|
||||
CMD_NOTIFY,
|
||||
CMD_UTILITY /* cmds like create, destroy, copy, vacuum, etc. */
|
||||
} CmdType;
|
||||
|
||||
|
||||
#endif /* NODES_H */
|
||||
@@ -1,90 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* params.h--
|
||||
* Declarations/definitions of stuff needed to handle parameterized plans.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: params.h,v 1.1.1.1 1996/07/09 06:21:33 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PARAMS_H
|
||||
#define PARAMS_H
|
||||
|
||||
#include "postgres.h"
|
||||
#include "access/attnum.h"
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
*
|
||||
* The following are the possible values for the 'paramkind'
|
||||
* field of a Param node.
|
||||
*
|
||||
* PARAM_NAMED: The parameter has a name, i.e. something
|
||||
* like `$.salary' or `$.foobar'.
|
||||
* In this case field `paramname' must be a valid Name.
|
||||
* and field `paramid' must be == 0.
|
||||
*
|
||||
* PARAM_NUM: The parameter has only a numeric identifier,
|
||||
* i.e. something like `$1', `$2' etc.
|
||||
* The number is contained in the `parmid' field.
|
||||
*
|
||||
* PARAM_NEW: Used in PRS2 rule, similar to PARAM_NAMED.
|
||||
* The `paramname' & `paramid' refer to the "NEW" tuple
|
||||
* `paramname' is the attribute name and `paramid' its
|
||||
* attribute number.
|
||||
*
|
||||
* PARAM_OLD: Same as PARAM_NEW, but in this case we refer to
|
||||
* the "OLD" tuple.
|
||||
*/
|
||||
|
||||
#define PARAM_NAMED 11
|
||||
#define PARAM_NUM 12
|
||||
#define PARAM_NEW 13
|
||||
#define PARAM_OLD 14
|
||||
#define PARAM_INVALID 100
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* ParamListInfo
|
||||
*
|
||||
* Information needed in order for the executor to handle
|
||||
* parameterized plans (you know, $.salary, $.name etc. stuff...).
|
||||
*
|
||||
* ParamListInfoData contains information needed when substituting a
|
||||
* Param node with a Const node.
|
||||
*
|
||||
* kind : the kind of parameter.
|
||||
* name : the parameter name (valid if kind == PARAM_NAMED,
|
||||
* PARAM_NEW or PARAM_OLD)
|
||||
* id : the parameter id (valid if kind == PARAM_NUM)
|
||||
* or the attrno (if kind == PARAM_NEW or PARAM_OLD)
|
||||
* type : PG_TYPE OID of the value
|
||||
* length : length in bytes of the value
|
||||
* isnull : true if & only if the value is null (if true then
|
||||
* the fields 'length' and 'value' are undefined).
|
||||
* value : the value that has to be substituted in the place
|
||||
* of the parameter.
|
||||
*
|
||||
* ParamListInfo is to be used as an array of ParamListInfoData
|
||||
* records. An 'InvalidName' in the name field of such a record
|
||||
* indicates that this is the last record in the array.
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
|
||||
typedef struct ParamListInfoData {
|
||||
int kind;
|
||||
char *name;
|
||||
AttrNumber id;
|
||||
Oid type;
|
||||
Size length;
|
||||
bool isnull;
|
||||
bool byval;
|
||||
Datum value;
|
||||
} ParamListInfoData;
|
||||
|
||||
typedef ParamListInfoData *ParamListInfo;
|
||||
|
||||
#endif /* PARAMS_H */
|
||||
@@ -1,736 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* parsenodes.h--
|
||||
* definitions for parse tree nodes
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: parsenodes.h,v 1.5 1996/08/26 06:30:54 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PARSENODES_H
|
||||
#define PARSENODES_H
|
||||
|
||||
#include "nodes/nodes.h"
|
||||
#include "nodes/pg_list.h"
|
||||
#include "nodes/primnodes.h"
|
||||
#include "utils/tqual.h"
|
||||
|
||||
/*****************************************************************************
|
||||
* Query Tree
|
||||
*****************************************************************************/
|
||||
|
||||
/*
|
||||
* Query -
|
||||
* all statments are turned into a Query tree (via transformStmt)
|
||||
* for further processing by the optimizer
|
||||
* utility statements (i.e. non-optimizable statements)
|
||||
* have the *utilityStmt field set.
|
||||
*
|
||||
* we need the isPortal flag because portal names can be null too; can
|
||||
* get rid of it if we support CURSOR as a commandType.
|
||||
*
|
||||
*/
|
||||
typedef struct Query {
|
||||
NodeTag type;
|
||||
|
||||
CmdType commandType; /* select|insert|update|delete|utility */
|
||||
|
||||
Node *utilityStmt; /* non-null if this is a non-optimizable
|
||||
statement */
|
||||
|
||||
int resultRelation; /* target relation (index to rtable) */
|
||||
char *into; /* portal (cursor) name */
|
||||
bool isPortal; /* is this a retrieve into portal? */
|
||||
bool isBinary; /* binary portal? */
|
||||
|
||||
char *uniqueFlag; /* NULL, '*', or Unique attribute name */
|
||||
List *sortClause; /* a list of SortClause's */
|
||||
|
||||
List *rtable; /* list of range table entries */
|
||||
List *targetList; /* target list (of TargetEntry) */
|
||||
Node *qual; /* qualifications */
|
||||
|
||||
List *groupClause; /* list of columns to specified in GROUP BY */
|
||||
Node *havingQual; /* qualification of each group */
|
||||
|
||||
int qry_numAgg; /* number of aggregates in the target list */
|
||||
Aggreg **qry_aggs; /* the aggregates */
|
||||
|
||||
/* internal to planner */
|
||||
List *base_relation_list_; /* base relation list */
|
||||
List *join_relation_list_; /* list of relations generated by joins */
|
||||
bool query_is_archival_; /* archival query flag */
|
||||
} Query;
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Other Statements (no optimizations required)
|
||||
*
|
||||
* Some of them require a little bit of transformation (which is also
|
||||
* done by transformStmt). The whole structure is then passed on to
|
||||
* ProcessUtility (by-passing the optimization step) as the utilityStmt
|
||||
* field in Query.
|
||||
*****************************************************************************/
|
||||
|
||||
/* ----------------------
|
||||
* Add Column Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct AddAttrStmt {
|
||||
NodeTag type;
|
||||
char *relname; /* the relation to add attr */
|
||||
bool inh; /* add recursively to children? */
|
||||
struct ColumnDef *colDef; /* the attribute definition */
|
||||
} AddAttrStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Change ACL Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct ChangeACLStmt {
|
||||
NodeTag type;
|
||||
struct AclItem *aclitem;
|
||||
unsigned modechg;
|
||||
List *relNames;
|
||||
} ChangeACLStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Close Portal Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct ClosePortalStmt {
|
||||
NodeTag type;
|
||||
char *portalname; /* name of the portal (cursor) */
|
||||
} ClosePortalStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Copy Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct CopyStmt {
|
||||
NodeTag type;
|
||||
bool binary; /* is a binary copy? */
|
||||
char *relname; /* the relation to copy */
|
||||
bool oids; /* copy oid's? */
|
||||
int direction; /* TO or FROM */
|
||||
char *filename; /* if NULL, use stdin/stdout */
|
||||
char *delimiter; /* delimiter character, \t by default*/
|
||||
} CopyStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Create Table Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef enum ArchType {
|
||||
ARCH_NONE, ARCH_LIGHT, ARCH_HEAVY /* archive mode */
|
||||
} ArchType;
|
||||
|
||||
typedef struct CreateStmt {
|
||||
NodeTag type;
|
||||
char *relname; /* the relation to create */
|
||||
List *tableElts; /* column definitions
|
||||
list of ColumnDef */
|
||||
List *inhRelnames; /* relations to inherit from
|
||||
list of Value (string) */
|
||||
ArchType archiveType; /* archive mode (ARCH_NONE if none */
|
||||
int location; /* smgrid (-1 if none) */
|
||||
int archiveLoc; /* smgrid (-1 if none) */
|
||||
} CreateStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Create Version Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct VersionStmt {
|
||||
NodeTag type;
|
||||
char *relname; /* the new relation */
|
||||
int direction; /* FORWARD | BACKWARD */
|
||||
char *fromRelname; /* relation to create a version */
|
||||
char *date; /* date of the snapshot */
|
||||
} VersionStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Create {Operator|Type|Aggregate} Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct DefineStmt {
|
||||
NodeTag type;
|
||||
int defType; /* OPERATOR|P_TYPE|AGGREGATE*/
|
||||
char *defname;
|
||||
List *definition; /* a list of DefElem */
|
||||
} DefineStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Drop Table Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct DestroyStmt {
|
||||
NodeTag type;
|
||||
List *relNames; /* relations to be dropped */
|
||||
} DestroyStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Extend Index Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct ExtendStmt {
|
||||
NodeTag type;
|
||||
char *idxname; /* name of the index */
|
||||
Node *whereClause; /* qualifications */
|
||||
List *rangetable; /* range table, filled in
|
||||
by transformStmt() */
|
||||
} ExtendStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Begin Recipe Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct RecipeStmt {
|
||||
NodeTag type;
|
||||
char *recipeName; /* name of the recipe*/
|
||||
} RecipeStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Fetch Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct FetchStmt {
|
||||
NodeTag type;
|
||||
int direction; /* FORWARD or BACKWARD */
|
||||
int howMany; /* amount to fetch ("ALL" --> 0) */
|
||||
char *portalname; /* name of portal (cursor) */
|
||||
} FetchStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Create Index Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct IndexStmt {
|
||||
NodeTag type;
|
||||
char *idxname; /* name of the index */
|
||||
char *relname; /* name of relation to index on */
|
||||
char *accessMethod; /* name of acess methood (eg. btree) */
|
||||
List *indexParams; /* a list of IndexElem */
|
||||
List *withClause; /* a list of ParamString */
|
||||
Node *whereClause; /* qualifications */
|
||||
List *rangetable; /* range table, filled in
|
||||
by transformStmt() */
|
||||
bool *lossy; /* is index lossy? */
|
||||
} IndexStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Move Statement (Not implemented)
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct MoveStmt {
|
||||
NodeTag type;
|
||||
int direction; /* FORWARD or BACKWARD */
|
||||
bool to;
|
||||
int where;
|
||||
char *portalname;
|
||||
} MoveStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Create Function Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct ProcedureStmt {
|
||||
NodeTag type;
|
||||
char *funcname; /* name of function to create */
|
||||
List *defArgs; /* list of definitions
|
||||
a list of strings (as Value *) */
|
||||
Node *returnType; /* the return type (as a string or
|
||||
a TypeName (ie.setof) */
|
||||
List *withClause; /* a list of ParamString */
|
||||
char *as; /* the SQL statement or filename */
|
||||
char *language; /* C or SQL */
|
||||
} ProcedureStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Purge Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct PurgeStmt {
|
||||
NodeTag type;
|
||||
char *relname; /* relation to purge */
|
||||
char *beforeDate; /* purge before this date */
|
||||
char *afterDate; /* purge after this date */
|
||||
} PurgeStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Drop Function Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct RemoveFuncStmt {
|
||||
NodeTag type;
|
||||
char *funcname; /* function to drop */
|
||||
List *args; /* types of the arguments */
|
||||
} RemoveFuncStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Drop Operator Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct RemoveOperStmt {
|
||||
NodeTag type;
|
||||
char *opname; /* operator to drop */
|
||||
List *args; /* types of the arguments */
|
||||
} RemoveOperStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Drop {Aggregate|Type|Index|Rule|View} Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct RemoveStmt {
|
||||
NodeTag type;
|
||||
int removeType; /* AGGREGATE|P_TYPE|INDEX|RULE|VIEW */
|
||||
char *name; /* name to drop */
|
||||
} RemoveStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Alter Table Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct RenameStmt {
|
||||
NodeTag type;
|
||||
char *relname; /* relation to be altered */
|
||||
bool inh; /* recursively alter children? */
|
||||
char *column; /* if NULL, rename the relation name
|
||||
to the new name. Otherwise, rename
|
||||
this column name. */
|
||||
char *newname; /* the new name */
|
||||
} RenameStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Create Rule Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct RuleStmt {
|
||||
NodeTag type;
|
||||
char *rulename; /* name of the rule */
|
||||
Node *whereClause; /* qualifications */
|
||||
CmdType event; /* RETRIEVE */
|
||||
struct Attr *object; /* object affected */
|
||||
bool instead; /* is a 'do instead'? */
|
||||
List *actions; /* the action statements */
|
||||
} RuleStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Notify Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct NotifyStmt {
|
||||
NodeTag type;
|
||||
char *relname; /* relation to notify */
|
||||
} NotifyStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Listen Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct ListenStmt {
|
||||
NodeTag type;
|
||||
char *relname; /* relation to listen on */
|
||||
} ListenStmt;
|
||||
|
||||
/* ----------------------
|
||||
* {Begin|Abort|End} Transaction Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct TransactionStmt {
|
||||
NodeTag type;
|
||||
int command; /* BEGIN|END|ABORT */
|
||||
} TransactionStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Create View Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct ViewStmt {
|
||||
NodeTag type;
|
||||
char *viewname; /* name of the view */
|
||||
Query *query; /* the SQL statement */
|
||||
} ViewStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Load Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct LoadStmt {
|
||||
NodeTag type;
|
||||
char *filename; /* file to load */
|
||||
} LoadStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Createdb Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct CreatedbStmt {
|
||||
NodeTag type;
|
||||
char *dbname; /* database to create */
|
||||
} CreatedbStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Destroydb Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct DestroydbStmt {
|
||||
NodeTag type;
|
||||
char *dbname; /* database to drop */
|
||||
} DestroydbStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Cluster Statement (support pbrown's cluster index implementation)
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct ClusterStmt {
|
||||
NodeTag type;
|
||||
char *relname; /* relation being indexed */
|
||||
char *indexname; /* original index defined */
|
||||
} ClusterStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Vacuum Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct VacuumStmt {
|
||||
NodeTag type;
|
||||
char *vacrel; /* table to vacuum */
|
||||
} VacuumStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Explain Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct ExplainStmt {
|
||||
NodeTag type;
|
||||
Query *query; /* the query */
|
||||
List *options;
|
||||
} ExplainStmt;
|
||||
|
||||
|
||||
/*****************************************************************************
|
||||
* Optimizable Statements
|
||||
*****************************************************************************/
|
||||
|
||||
/* ----------------------
|
||||
* Insert Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct AppendStmt {
|
||||
NodeTag type;
|
||||
char *relname; /* relation to insert into */
|
||||
List *cols; /* names of the columns */
|
||||
List *exprs; /* the expressions (same order as
|
||||
the columns) */
|
||||
List *fromClause; /* the from clause */
|
||||
Node *whereClause; /* qualifications */
|
||||
} AppendStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Delete Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct DeleteStmt {
|
||||
NodeTag type;
|
||||
char *relname; /* relation to delete from */
|
||||
Node *whereClause; /* qualifications */
|
||||
} DeleteStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Update Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct ReplaceStmt {
|
||||
NodeTag type;
|
||||
char *relname; /* relation to update */
|
||||
List *targetList; /* the target list (of ResTarget) */
|
||||
Node *whereClause; /* qualifications */
|
||||
List *fromClause; /* the from clause */
|
||||
} ReplaceStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Create Cursor Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct CursorStmt {
|
||||
NodeTag type;
|
||||
char *portalname; /* the portal (cursor) to create */
|
||||
bool binary; /* a binary (internal) portal? */
|
||||
char *unique; /* NULL, "*", or unique attribute name */
|
||||
List *targetList; /* the target list (of ResTarget) */
|
||||
List *fromClause; /* the from clause */
|
||||
Node *whereClause; /* qualifications */
|
||||
List *groupClause; /* group by clause */
|
||||
List *orderClause; /* sort clause (a list of SortBy's) */
|
||||
} CursorStmt;
|
||||
|
||||
/* ----------------------
|
||||
* Select Statement
|
||||
* ----------------------
|
||||
*/
|
||||
typedef struct RetrieveStmt {
|
||||
NodeTag type;
|
||||
char *unique; /* NULL, '*', or unique attribute name */
|
||||
char *into; /* name of table (for select into
|
||||
table) */
|
||||
List *targetList; /* the target list (of ResTarget) */
|
||||
List *fromClause; /* the from clause */
|
||||
Node *whereClause; /* qualifications */
|
||||
List *groupClause; /* group by clause */
|
||||
Node *havingClause; /* having conditional-expression */
|
||||
List *orderClause; /* sort clause (a list of SortBy's) */
|
||||
} RetrieveStmt;
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* Supporting data structures for Parse Trees
|
||||
****************************************************************************/
|
||||
|
||||
/*
|
||||
* TypeName - specifies a type in definitions
|
||||
*/
|
||||
typedef struct TypeName {
|
||||
NodeTag type;
|
||||
char *name; /* name of the type */
|
||||
bool setof; /* is a set? */
|
||||
List *arrayBounds; /* array bounds */
|
||||
int typlen; /* length for char() and varchar() */
|
||||
} TypeName;
|
||||
|
||||
/*
|
||||
* ParamNo - specifies a parameter reference
|
||||
*/
|
||||
typedef struct ParamNo {
|
||||
NodeTag type;
|
||||
int number; /* the number of the parameter */
|
||||
TypeName *typename; /* the typecast */
|
||||
} ParamNo;
|
||||
|
||||
/*
|
||||
* A_Expr - binary expressions
|
||||
*/
|
||||
typedef struct A_Expr {
|
||||
NodeTag type;
|
||||
int oper; /* type of operation
|
||||
{OP,OR,AND,NOT,ISNULL,NOTNULL} */
|
||||
char *opname; /* name of operator/function */
|
||||
Node *lexpr; /* left argument */
|
||||
Node *rexpr; /* right argument */
|
||||
} A_Expr;
|
||||
|
||||
/*
|
||||
* Attr -
|
||||
* specifies an Attribute (ie. a Column); could have nested dots or
|
||||
* array references.
|
||||
*
|
||||
*/
|
||||
typedef struct Attr {
|
||||
NodeTag type;
|
||||
char *relname; /* name of relation (can be "*") */
|
||||
ParamNo *paramNo; /* or a parameter */
|
||||
List *attrs; /* attributes (possibly nested);
|
||||
list of Values (strings) */
|
||||
List *indirection; /* array refs (list of A_Indices') */
|
||||
} Attr;
|
||||
|
||||
/*
|
||||
* A_Const - a constant expression
|
||||
*/
|
||||
typedef struct A_Const {
|
||||
NodeTag type;
|
||||
Value val; /* the value (with the tag) */
|
||||
TypeName *typename; /* typecast */
|
||||
} A_Const;
|
||||
|
||||
/*
|
||||
* ColumnDef - column definition (used in various creates)
|
||||
*/
|
||||
typedef struct ColumnDef {
|
||||
NodeTag type;
|
||||
char *colname; /* name of column */
|
||||
TypeName *typename; /* type of column */
|
||||
} ColumnDef;
|
||||
|
||||
/*
|
||||
* Ident -
|
||||
* an identifier (could be an attribute or a relation name). Depending
|
||||
* on the context at transformStmt time, the identifier is treated as
|
||||
* either a relation name (in which case, isRel will be set) or an
|
||||
* attribute (in which case, it will be transformed into an Attr).
|
||||
*/
|
||||
typedef struct Ident {
|
||||
NodeTag type;
|
||||
char *name; /* its name */
|
||||
List *indirection; /* array references */
|
||||
bool isRel; /* is a relation - filled in by
|
||||
transformExpr() */
|
||||
} Ident;
|
||||
|
||||
/*
|
||||
* FuncCall - a function/aggregate invocation
|
||||
*/
|
||||
typedef struct FuncCall {
|
||||
NodeTag type;
|
||||
char *funcname; /* name of function */
|
||||
List *args; /* the arguments (list of exprs) */
|
||||
} FuncCall;
|
||||
|
||||
/*
|
||||
* A_Indices - array reference or bounds ([lidx:uidx] or [uidx])
|
||||
*/
|
||||
typedef struct A_Indices {
|
||||
NodeTag type;
|
||||
Node *lidx; /* could be NULL */
|
||||
Node *uidx;
|
||||
} A_Indices;
|
||||
|
||||
/*
|
||||
* ResTarget -
|
||||
* result target (used in target list of pre-transformed Parse trees)
|
||||
*/
|
||||
typedef struct ResTarget {
|
||||
NodeTag type;
|
||||
char *name; /* name of the result column */
|
||||
List *indirection; /* array references */
|
||||
Node *val; /* the value of the result
|
||||
(A_Expr or Attr) */
|
||||
} ResTarget;
|
||||
|
||||
/*
|
||||
* ParamString - used in with clauses
|
||||
*/
|
||||
typedef struct ParamString {
|
||||
NodeTag type;
|
||||
char *name;
|
||||
char *val;
|
||||
} ParamString;
|
||||
|
||||
/*
|
||||
* TimeRange - specifies a time range
|
||||
*/
|
||||
typedef struct TimeRange {
|
||||
NodeTag type;
|
||||
char *startDate;
|
||||
char *endDate; /* snapshot if NULL */
|
||||
} TimeRange;
|
||||
|
||||
/*
|
||||
* RelExpr - relation expressions
|
||||
*/
|
||||
typedef struct RelExpr {
|
||||
NodeTag type;
|
||||
char *relname; /* the relation name */
|
||||
bool inh; /* inheritance query */
|
||||
TimeRange *timeRange; /* the time range */
|
||||
} RelExpr;
|
||||
|
||||
/*
|
||||
* Sortby - for order by clause
|
||||
*/
|
||||
typedef struct SortBy {
|
||||
NodeTag type;
|
||||
char *range;
|
||||
char *name; /* name of column to sort on */
|
||||
char *useOp; /* operator to use */
|
||||
} SortBy;
|
||||
|
||||
/*
|
||||
* RangeVar - range variable, used in from clauses
|
||||
*/
|
||||
typedef struct RangeVar {
|
||||
NodeTag type;
|
||||
RelExpr *relExpr; /* the relation expression */
|
||||
char *name; /* the name to be referenced
|
||||
(optional) */
|
||||
} RangeVar;
|
||||
|
||||
/*
|
||||
* IndexElem - index parameters (used in create index)
|
||||
*/
|
||||
typedef struct IndexElem {
|
||||
NodeTag type;
|
||||
char *name; /* name of index */
|
||||
List *args; /* if not NULL, function index */
|
||||
char *class;
|
||||
TypeName *tname; /* type of index's keys (optional) */
|
||||
} IndexElem;
|
||||
|
||||
/*
|
||||
* DefElem -
|
||||
* a definition (used in definition lists in the form of defname = arg)
|
||||
*/
|
||||
typedef struct DefElem {
|
||||
NodeTag type;
|
||||
char *defname;
|
||||
Node *arg; /* a (Value *) or a (TypeName *) */
|
||||
} DefElem;
|
||||
|
||||
|
||||
/****************************************************************************
|
||||
* Nodes for a Query tree
|
||||
****************************************************************************/
|
||||
|
||||
/*
|
||||
* TargetEntry -
|
||||
* a target entry (used in the transformed target list)
|
||||
*
|
||||
* one of resdom or fjoin is not NULL. a target list is
|
||||
* ((<resdom | fjoin> expr) (<resdom | fjoin> expr) ...)
|
||||
*/
|
||||
typedef struct TargetEntry {
|
||||
NodeTag type;
|
||||
Resdom *resdom; /* fjoin overload this to be a list??*/
|
||||
Fjoin *fjoin;
|
||||
Node *expr; /* can be a list too */
|
||||
} TargetEntry;
|
||||
|
||||
/*
|
||||
* RangeTblEntry -
|
||||
* used in range tables. Some of the following are only used in one of
|
||||
* the parsing, optimizing, execution stages.
|
||||
*
|
||||
* inFromCl marks those range variables that are listed in the from clause.
|
||||
* In SQL, the targetlist can only refer to range variables listed in the
|
||||
* from clause but POSTQUEL allows you to refer to tables not specified, in
|
||||
* which case a range table entry will be generated. We use POSTQUEL
|
||||
* semantics which is more powerful. However, we need SQL semantics in
|
||||
* some cases (eg. when expanding a '*')
|
||||
*/
|
||||
typedef struct RangeTblEntry {
|
||||
NodeTag type;
|
||||
char *relname; /* real name of the relation */
|
||||
TimeRange *timeRange; /* time range */
|
||||
char *refname; /* the reference name (specified in
|
||||
the from clause) */
|
||||
Oid relid;
|
||||
bool inh; /* inheritance? */
|
||||
bool archive; /* filled in by plan_archive */
|
||||
bool inFromCl; /* comes from From Clause */
|
||||
TimeQual timeQual; /* filled in by pg_plan */
|
||||
} RangeTblEntry;
|
||||
|
||||
/*
|
||||
* SortClause -
|
||||
* used in the sort clause for retrieves and cursors
|
||||
*/
|
||||
typedef struct SortClause {
|
||||
NodeTag type;
|
||||
Resdom *resdom; /* attributes in tlist to be sorted */
|
||||
Oid opoid; /* sort operators */
|
||||
} SortClause;
|
||||
|
||||
/*
|
||||
* GroupClause -
|
||||
* used in the GROUP BY clause
|
||||
*/
|
||||
typedef struct GroupClause {
|
||||
NodeTag type;
|
||||
Var *grpAttr; /* attributes to group on */
|
||||
Oid grpOpoid; /* the sort operator to use */
|
||||
} GroupClause;
|
||||
|
||||
#endif /* PARSENODES_H */
|
||||
@@ -1,112 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* pg_list.h--
|
||||
* POSTGRES generic list package
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: pg_list.h,v 1.2 1996/07/28 06:56:28 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PG_LIST_H
|
||||
#define PG_LIST_H
|
||||
|
||||
#include <stdio.h>
|
||||
#include "c.h"
|
||||
#include "nodes/nodes.h"
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* node definitions
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/*----------------------
|
||||
* Value node
|
||||
*----------------------
|
||||
*/
|
||||
typedef struct Value {
|
||||
NodeTag type; /* tag appropriately (eg. T_String) */
|
||||
union ValUnion {
|
||||
char *str; /* string */
|
||||
long ival;
|
||||
double dval;
|
||||
} val;
|
||||
} Value;
|
||||
|
||||
#define intVal(v) (((Value *)v)->val.ival)
|
||||
#define floatVal(v) (((Value *)v)->val.dval)
|
||||
#define strVal(v) (((Value *)v)->val.str)
|
||||
|
||||
|
||||
/*----------------------
|
||||
* List node
|
||||
*----------------------
|
||||
*/
|
||||
typedef struct List {
|
||||
NodeTag type;
|
||||
void *elem;
|
||||
struct List *next;
|
||||
} List;
|
||||
|
||||
#define NIL ((List *) NULL)
|
||||
|
||||
/* ----------------
|
||||
* accessor macros
|
||||
* ----------------
|
||||
*/
|
||||
#define lfirst(l) ((l)->elem)
|
||||
#define lnext(l) ((l)->next)
|
||||
#define lsecond(l) (lfirst(lnext(l)))
|
||||
|
||||
/*
|
||||
* foreach -
|
||||
* a convenience macro which loops through the list
|
||||
*/
|
||||
#define foreach(_elt_,_list_) \
|
||||
for(_elt_=_list_; _elt_!=NIL;_elt_=lnext(_elt_))
|
||||
|
||||
|
||||
/*
|
||||
* function prototypes in nodes/list.c
|
||||
*/
|
||||
extern int length(List *list);
|
||||
extern List *append(List *list1, List *list2);
|
||||
extern List *nconc(List *list1, List *list2);
|
||||
extern List *lcons(void *datum, List *list);
|
||||
extern bool member(void *foo, List *bar);
|
||||
extern Value *makeInteger(long i);
|
||||
extern Value *makeFloat(double d);
|
||||
extern Value *makeString(char *str);
|
||||
extern List *makeList(void *elem, ...);
|
||||
extern List *lappend(List *list, void *obj);
|
||||
extern List *lremove(void *elem, List *list);
|
||||
extern void freeList(List *list);
|
||||
|
||||
extern void *nth(int n, List *l);
|
||||
extern void set_nth(List *l, int n, void *elem);
|
||||
|
||||
/* hack for now */
|
||||
#define lconsi(i,l) lcons((void*)(int)i,l)
|
||||
#define lfirsti(l) ((int)lfirst(l))
|
||||
#define lappendi(l,i) lappend(l,(void*)i)
|
||||
extern bool intMember(int, List *);
|
||||
extern List *intAppend(List *list1, List *list2);
|
||||
|
||||
extern List *nreverse(List *);
|
||||
extern List *set_difference(List *, List *);
|
||||
extern List *set_differencei(List *, List *);
|
||||
extern List *LispRemove(void *, List *);
|
||||
extern List *intLispRemove(int, List *);
|
||||
extern List *LispUnion(List *foo, List *bar);
|
||||
extern List *LispUnioni(List *foo, List *bar);
|
||||
extern bool same(List *foo, List *bar);
|
||||
|
||||
/* should be in nodes.h but needs List */
|
||||
extern bool equali(List *a, List *b);
|
||||
|
||||
/* in copyfuncs.c */
|
||||
extern List *listCopy(List *);
|
||||
|
||||
#endif /* PG_LIST_H */
|
||||
@@ -1,330 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* plannodes.h--
|
||||
* definitions for query plan nodes
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: plannodes.h,v 1.1.1.1 1996/07/09 06:21:33 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PLANNODES_H
|
||||
#define PLANNODES_H
|
||||
|
||||
#include "postgres.h"
|
||||
|
||||
#include "nodes/nodes.h"
|
||||
#include "nodes/pg_list.h"
|
||||
#include "nodes/primnodes.h"
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* Executor State types are used in the plannode structures
|
||||
* so we have to include their definitions too.
|
||||
*
|
||||
* Node Type node information used by executor
|
||||
*
|
||||
* control nodes
|
||||
*
|
||||
* Existential ExistentialState exstate;
|
||||
* Result ResultState resstate;
|
||||
* Append AppendState unionstate;
|
||||
*
|
||||
* scan nodes
|
||||
*
|
||||
* Scan *** CommonScanState scanstate;
|
||||
* IndexScan IndexScanState indxstate;
|
||||
*
|
||||
* (*** nodes which inherit Scan also inherit scanstate)
|
||||
*
|
||||
* join nodes
|
||||
*
|
||||
* NestLoop NestLoopState nlstate;
|
||||
* MergeJoin MergeJoinState mergestate;
|
||||
* HashJoin HashJoinState hashjoinstate;
|
||||
*
|
||||
* materialize nodes
|
||||
*
|
||||
* Material MaterialState matstate;
|
||||
* Sort SortState sortstate;
|
||||
* Unique UniqueState uniquestate;
|
||||
* Hash HashState hashstate;
|
||||
*
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
#include "nodes/execnodes.h" /* XXX move executor types elsewhere */
|
||||
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* node definitions
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* ----------------
|
||||
* Plan node
|
||||
* ----------------
|
||||
*/
|
||||
|
||||
typedef struct Plan {
|
||||
NodeTag type;
|
||||
Cost cost;
|
||||
int plan_size;
|
||||
int plan_width;
|
||||
int plan_tupperpage;
|
||||
EState *state; /* at execution time, state's of individual
|
||||
nodes point to one EState for the
|
||||
whole top-level plan */
|
||||
List *targetlist;
|
||||
List *qual; /* Node* or List* ?? */
|
||||
struct Plan *lefttree;
|
||||
struct Plan *righttree;
|
||||
} Plan;
|
||||
|
||||
/* ----------------
|
||||
* these are are defined to avoid confusion problems with "left"
|
||||
* and "right" and "inner" and "outer". The convention is that
|
||||
* the "left" plan is the "outer" plan and the "right" plan is
|
||||
* the inner plan, but these make the code more readable.
|
||||
* ----------------
|
||||
*/
|
||||
#define innerPlan(node) (((Plan *)(node))->righttree)
|
||||
#define outerPlan(node) (((Plan *)(node))->lefttree)
|
||||
|
||||
|
||||
/*
|
||||
* ===============
|
||||
* Top-level nodes
|
||||
* ===============
|
||||
*/
|
||||
|
||||
/* all plan nodes "derive" from the Plan structure by having the
|
||||
Plan structure as the first field. This ensures that everything works
|
||||
when nodes are cast to Plan's. (node pointers are frequently cast to Plan*
|
||||
when passed around generically in the executor */
|
||||
|
||||
|
||||
/* ----------------
|
||||
* existential node
|
||||
* ----------------
|
||||
*/
|
||||
typedef Plan Existential;
|
||||
|
||||
/* ----------------
|
||||
* result node -
|
||||
* returns tuples from outer plan that satisfy the qualifications
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct Result {
|
||||
Plan plan;
|
||||
Node *resconstantqual;
|
||||
ResultState *resstate;
|
||||
} Result;
|
||||
|
||||
/* ----------------
|
||||
* append node
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct Append {
|
||||
Plan plan;
|
||||
List *unionplans;
|
||||
Index unionrelid;
|
||||
List *unionrtentries;
|
||||
AppendState *unionstate;
|
||||
} Append;
|
||||
|
||||
/*
|
||||
* ==========
|
||||
* Scan nodes
|
||||
* ==========
|
||||
*/
|
||||
typedef struct Scan {
|
||||
Plan plan;
|
||||
Index scanrelid; /* relid is index into the range table */
|
||||
CommonScanState *scanstate;
|
||||
} Scan;
|
||||
|
||||
/* ----------------
|
||||
* sequential scan node
|
||||
* ----------------
|
||||
*/
|
||||
typedef Scan SeqScan;
|
||||
|
||||
/* ----------------
|
||||
* index scan node
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct IndexScan {
|
||||
Scan scan;
|
||||
List *indxid;
|
||||
List *indxqual;
|
||||
IndexScanState *indxstate;
|
||||
} IndexScan;
|
||||
|
||||
/*
|
||||
* ==========
|
||||
* Join nodes
|
||||
* ==========
|
||||
*/
|
||||
|
||||
/* ----------------
|
||||
* Join node
|
||||
* ----------------
|
||||
*/
|
||||
typedef Plan Join;
|
||||
|
||||
/* ----------------
|
||||
* nest loop join node
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct NestLoop {
|
||||
Join join;
|
||||
NestLoopState *nlstate;
|
||||
} NestLoop;
|
||||
|
||||
/* ----------------
|
||||
* merge join node
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct MergeJoin {
|
||||
Join join;
|
||||
List *mergeclauses;
|
||||
Oid mergesortop;
|
||||
Oid *mergerightorder; /* inner sort operator */
|
||||
Oid *mergeleftorder; /* outer sort operator */
|
||||
MergeJoinState *mergestate;
|
||||
} MergeJoin;
|
||||
|
||||
/* ----------------
|
||||
* hash join (probe) node
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct HashJoin {
|
||||
Join join;
|
||||
List *hashclauses;
|
||||
Oid hashjoinop;
|
||||
HashJoinState *hashjoinstate;
|
||||
HashJoinTable hashjointable;
|
||||
IpcMemoryKey hashjointablekey;
|
||||
int hashjointablesize;
|
||||
bool hashdone;
|
||||
} HashJoin;
|
||||
|
||||
/* ---------------
|
||||
* aggregate node
|
||||
* ---------------
|
||||
*/
|
||||
typedef struct Agg {
|
||||
Plan plan;
|
||||
int numAgg;
|
||||
Aggreg **aggs;
|
||||
AggState *aggstate;
|
||||
} Agg;
|
||||
|
||||
/* ---------------
|
||||
* group node -
|
||||
* use for queries with GROUP BY specified.
|
||||
*
|
||||
* If tuplePerGroup is true, one tuple (with group columns only) is
|
||||
* returned for each group and NULL is returned when there are no more
|
||||
* groups. Otherwise, all the tuples of a group are returned with a
|
||||
* NULL returned at the end of each group. (see nodeGroup.c for details)
|
||||
* ---------------
|
||||
*/
|
||||
typedef struct Group {
|
||||
Plan plan;
|
||||
bool tuplePerGroup; /* what tuples to return (see above) */
|
||||
int numCols; /* number of group columns */
|
||||
AttrNumber *grpColIdx; /* index into the target list */
|
||||
GroupState *grpstate;
|
||||
} Group;
|
||||
|
||||
/*
|
||||
* ==========
|
||||
* Temp nodes
|
||||
* ==========
|
||||
*/
|
||||
typedef struct Temp {
|
||||
Plan plan;
|
||||
Oid tempid;
|
||||
int keycount;
|
||||
} Temp;
|
||||
|
||||
/* ----------------
|
||||
* materialization node
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct Material {
|
||||
Plan plan; /* temp node flattened out */
|
||||
Oid tempid;
|
||||
int keycount;
|
||||
MaterialState *matstate;
|
||||
} Material;
|
||||
|
||||
/* ----------------
|
||||
* sort node
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct Sort {
|
||||
Plan plan; /* temp node flattened out */
|
||||
Oid tempid;
|
||||
int keycount;
|
||||
SortState *sortstate;
|
||||
} Sort;
|
||||
|
||||
/* ----------------
|
||||
* unique node
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct Unique {
|
||||
Plan plan; /* temp node flattened out */
|
||||
Oid tempid;
|
||||
int keycount;
|
||||
char *uniqueAttr; /* NULL if all attrs,
|
||||
or unique attribute name */
|
||||
AttrNumber uniqueAttrNum; /* attribute number of attribute
|
||||
to select distinct on */
|
||||
UniqueState *uniquestate;
|
||||
} Unique;
|
||||
|
||||
/* ----------------
|
||||
* hash build node
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct Hash {
|
||||
Plan plan;
|
||||
Var *hashkey;
|
||||
HashState *hashstate;
|
||||
HashJoinTable hashtable;
|
||||
IpcMemoryKey hashtablekey;
|
||||
int hashtablesize;
|
||||
} Hash;
|
||||
|
||||
/* ---------------------
|
||||
* choose node
|
||||
* ---------------------
|
||||
*/
|
||||
typedef struct Choose {
|
||||
Plan plan;
|
||||
List *chooseplanlist;
|
||||
} Choose;
|
||||
|
||||
/* -------------------
|
||||
* Tee node information
|
||||
*
|
||||
* leftParent : the left parent of this node
|
||||
* rightParent: the right parent of this node
|
||||
* -------------------
|
||||
*/
|
||||
typedef struct Tee {
|
||||
Plan plan;
|
||||
Plan* leftParent;
|
||||
Plan* rightParent;
|
||||
TeeState *teestate;
|
||||
char *teeTableName; /* the name of the table to materialize
|
||||
the tee into */
|
||||
List *rtentries; /* the range table for the plan below the Tee
|
||||
may be different than the parent plans */
|
||||
} Tee;
|
||||
|
||||
#endif /* PLANNODES_H */
|
||||
@@ -1,318 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* primnodes.h--
|
||||
* Definitions for parse tree/query tree ("primitive") nodes.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: primnodes.h,v 1.1.1.1 1996/07/09 06:21:33 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef PRIMNODES_H
|
||||
#define PRIMNODES_H
|
||||
|
||||
#include "postgres.h"
|
||||
|
||||
#include "access/attnum.h"
|
||||
#include "storage/buf.h"
|
||||
#include "utils/rel.h"
|
||||
#include "utils/fcache.h"
|
||||
#include "nodes/params.h"
|
||||
|
||||
#include "nodes/nodes.h"
|
||||
#include "nodes/pg_list.h"
|
||||
|
||||
/* ----------------------------------------------------------------
|
||||
* node definitions
|
||||
* ----------------------------------------------------------------
|
||||
*/
|
||||
|
||||
/* ----------------
|
||||
* Resdom (Result Domain)
|
||||
* resno - attribute number
|
||||
* restype - type of the resdom
|
||||
* reslen - length (in bytes) of the result
|
||||
* resname - name of the resdom (could be NULL)
|
||||
* reskey - order of key in a sort (for those > 0)
|
||||
* reskeyop - sort operator Oid
|
||||
* resjunk - set to nonzero to eliminate the attribute
|
||||
* from final target list e.g., ctid for replace
|
||||
* and delete
|
||||
*
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct Resdom {
|
||||
NodeTag type;
|
||||
AttrNumber resno;
|
||||
Oid restype;
|
||||
int reslen;
|
||||
char *resname;
|
||||
Index reskey;
|
||||
Oid reskeyop;
|
||||
int resjunk;
|
||||
} Resdom;
|
||||
|
||||
/* -------------
|
||||
* Fjoin
|
||||
* initialized - true if the Fjoin has already been initialized for
|
||||
* the current target list evaluation
|
||||
* nNodes - The number of Iter nodes returning sets that the
|
||||
* node will flatten
|
||||
* outerList - 1 or more Iter nodes
|
||||
* inner - exactly one Iter node. We eval every node in the
|
||||
* outerList once then eval the inner node to completion
|
||||
* pair the outerList result vector with each inner
|
||||
* result to form the full result. When the inner has
|
||||
* been exhausted, we get the next outer result vector
|
||||
* and reset the inner.
|
||||
* results - The complete (flattened) result vector
|
||||
* alwaysNull - a null vector to indicate sets with a cardinality of
|
||||
* 0, we treat them as the set {NULL}.
|
||||
*/
|
||||
typedef struct Fjoin {
|
||||
NodeTag type;
|
||||
bool fj_initialized;
|
||||
int fj_nNodes;
|
||||
List *fj_innerNode;
|
||||
DatumPtr fj_results;
|
||||
BoolPtr fj_alwaysDone;
|
||||
} Fjoin;
|
||||
|
||||
/* ----------------
|
||||
* Expr
|
||||
* typeOid - oid of the type of this expression
|
||||
* opType - type of this expression
|
||||
* oper - the Oper node if it is an OPER_EXPR or the
|
||||
* Func node if it is a FUNC_EXPR
|
||||
* args - arguments to this expression
|
||||
* ----------------
|
||||
*/
|
||||
typedef enum OpType {
|
||||
OP_EXPR, FUNC_EXPR, OR_EXPR, AND_EXPR, NOT_EXPR
|
||||
} OpType;
|
||||
|
||||
typedef struct Expr {
|
||||
NodeTag type;
|
||||
Oid typeOid; /* oid of the type of this expr */
|
||||
OpType opType; /* type of the op */
|
||||
Node *oper; /* could be Oper or Func */
|
||||
List *args; /* list of argument nodes */
|
||||
} Expr;
|
||||
|
||||
/* ----------------
|
||||
* Var
|
||||
* varno - index of this var's relation in the range table
|
||||
* (could be INNER or OUTER)
|
||||
* varattno - attribute number of this var
|
||||
* vartype - pg_type tuple oid for the type of this var
|
||||
* varnoold - keep varno around in case it got changed to INNER/
|
||||
* OUTER (see match_varid)
|
||||
* varoattno - attribute number of this var
|
||||
* [ '(varnoold varoattno) was varid -ay 2/95]
|
||||
* ----------------
|
||||
*/
|
||||
#define INNER 65000
|
||||
#define OUTER 65001
|
||||
|
||||
#define PRS2_CURRENT_VARNO 1
|
||||
#define PRS2_NEW_VARNO 2
|
||||
|
||||
typedef struct Var {
|
||||
NodeTag type;
|
||||
Index varno;
|
||||
AttrNumber varattno;
|
||||
Oid vartype;
|
||||
Index varnoold; /* only used by optimizer */
|
||||
AttrNumber varoattno; /* only used by optimizer */
|
||||
} Var;
|
||||
|
||||
/* ----------------
|
||||
* Oper
|
||||
* opno - PG_OPERATOR OID of the operator
|
||||
* opid - PG_PROC OID for the operator
|
||||
* opresulttype - PG_TYPE OID of the operator's return value
|
||||
* opsize - size of return result (cached by executor)
|
||||
* op_fcache - XXX comment me.
|
||||
*
|
||||
* ----
|
||||
* NOTE: in the good old days 'opno' used to be both (or either, or
|
||||
* neither) the pg_operator oid, and/or the pg_proc oid depending
|
||||
* on the postgres module in question (parser->pg_operator,
|
||||
* executor->pg_proc, planner->both), the mood of the programmer,
|
||||
* and the phase of the moon (rumors that it was also depending on the day
|
||||
* of the week are probably false). To make things even more postgres-like
|
||||
* (i.e. a mess) some comments were referring to 'opno' using the name
|
||||
* 'opid'. Anyway, now we have two separate fields, and of course that
|
||||
* immediately removes all bugs from the code... [ sp :-) ].
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct Oper {
|
||||
NodeTag type;
|
||||
Oid opno;
|
||||
Oid opid;
|
||||
Oid opresulttype;
|
||||
int opsize;
|
||||
FunctionCachePtr op_fcache;
|
||||
} Oper;
|
||||
|
||||
|
||||
/* ----------------
|
||||
* Const
|
||||
* consttype - PG_TYPE OID of the constant's value
|
||||
* constlen - length in bytes of the constant's value
|
||||
* constvalue - the constant's value
|
||||
* constisnull - whether the constant is null
|
||||
* (if true, the other fields are undefined)
|
||||
* constbyval - whether the information in constvalue
|
||||
* if passed by value. If true, then all the information
|
||||
* is stored in the datum. If false, then the datum
|
||||
* contains a pointer to the information.
|
||||
* constisset - whether the const represents a set. The const
|
||||
* value corresponding will be the query that defines
|
||||
* the set.
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct Const {
|
||||
NodeTag type;
|
||||
Oid consttype;
|
||||
Size constlen;
|
||||
Datum constvalue;
|
||||
bool constisnull;
|
||||
bool constbyval;
|
||||
bool constisset;
|
||||
} Const;
|
||||
|
||||
/* ----------------
|
||||
* Param
|
||||
* paramkind - specifies the kind of parameter. The possible values
|
||||
* for this field are specified in "params.h", and they are:
|
||||
*
|
||||
* PARAM_NAMED: The parameter has a name, i.e. something
|
||||
* like `$.salary' or `$.foobar'.
|
||||
* In this case field `paramname' must be a valid Name.
|
||||
*
|
||||
* PARAM_NUM: The parameter has only a numeric identifier,
|
||||
* i.e. something like `$1', `$2' etc.
|
||||
* The number is contained in the `paramid' field.
|
||||
*
|
||||
* PARAM_NEW: Used in PRS2 rule, similar to PARAM_NAMED.
|
||||
* The `paramname' and `paramid' refer to the "NEW" tuple
|
||||
* The `pramname' is the attribute name and `paramid'
|
||||
* is the attribute number.
|
||||
*
|
||||
* PARAM_OLD: Same as PARAM_NEW, but in this case we refer to
|
||||
* the "OLD" tuple.
|
||||
*
|
||||
* paramid - numeric identifier for literal-constant parameters ("$1")
|
||||
* paramname - attribute name for tuple-substitution parameters ("$.foo")
|
||||
* paramtype - PG_TYPE OID of the parameter's value
|
||||
* param_tlist - allows for projection in a param node.
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct Param {
|
||||
NodeTag type;
|
||||
int paramkind;
|
||||
AttrNumber paramid;
|
||||
char *paramname;
|
||||
Oid paramtype;
|
||||
List *param_tlist;
|
||||
} Param;
|
||||
|
||||
|
||||
/* ----------------
|
||||
* Func
|
||||
* funcid - PG_FUNCTION OID of the function
|
||||
* functype - PG_TYPE OID of the function's return value
|
||||
* funcisindex - the function can be evaluated by scanning an index
|
||||
* (set during query optimization)
|
||||
* funcsize - size of return result (cached by executor)
|
||||
* func_fcache - runtime state while running this function. Where
|
||||
* we are in the execution of the function if it
|
||||
* returns more than one value, etc.
|
||||
* See utils/fcache.h
|
||||
* func_tlist - projection of functions returning tuples
|
||||
* func_planlist - result of planning this func, if it's a PQ func
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct Func {
|
||||
NodeTag type;
|
||||
Oid funcid;
|
||||
Oid functype;
|
||||
bool funcisindex;
|
||||
int funcsize;
|
||||
FunctionCachePtr func_fcache;
|
||||
List *func_tlist;
|
||||
List *func_planlist;
|
||||
} Func;
|
||||
|
||||
/* ----------------
|
||||
* Aggreg
|
||||
* aggname - name of the aggregate
|
||||
* basetype - base type Oid of the aggregate
|
||||
* aggtype - type Oid of final result of the aggregate
|
||||
* query - XXX comment me
|
||||
* target - XXX comment me
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct Aggreg {
|
||||
NodeTag type;
|
||||
char *aggname;
|
||||
Oid basetype; /* base type of the aggregate */
|
||||
Oid aggtype; /* type of final result */
|
||||
Node *target; /* attribute to aggreg on */
|
||||
int aggno; /* index to ecxt_values */
|
||||
} Aggreg;
|
||||
|
||||
/* ----------------
|
||||
* Array
|
||||
* arrayelemtype - base type of the array's elements (homogenous!)
|
||||
* arrayelemlength - length of that type
|
||||
* arrayelembyval - can you pass this element by value?
|
||||
* arrayndim - number of dimensions of the array
|
||||
* arraylow - base for array indexing
|
||||
* arrayhigh - limit for array indexing
|
||||
* arraylen -
|
||||
* ----------------
|
||||
*
|
||||
* memo from mao: the array support we inherited from 3.1 is just
|
||||
* wrong. when time exists, we should redesign this stuff to get
|
||||
* around a bunch of unfortunate implementation decisions made there.
|
||||
*/
|
||||
typedef struct Array {
|
||||
NodeTag type;
|
||||
Oid arrayelemtype;
|
||||
int arrayelemlength;
|
||||
bool arrayelembyval;
|
||||
int arrayndim;
|
||||
IntArray arraylow;
|
||||
IntArray arrayhigh;
|
||||
int arraylen;
|
||||
} Array;
|
||||
|
||||
/* ----------------
|
||||
* ArrayRef:
|
||||
* refelemtype - type of the element referenced here
|
||||
* refelemlength - length of that type
|
||||
* refelembyval - can you pass this element type by value?
|
||||
* refupperindexpr - expressions that evaluate to upper array index
|
||||
* reflowerexpr- the expressions that evaluate to a lower array index
|
||||
* refexpr - the expression that evaluates to an array
|
||||
* refassignexpr- the expression that evaluates to the new value
|
||||
* to be assigned to the array in case of replace.
|
||||
* ----------------
|
||||
*/
|
||||
typedef struct ArrayRef {
|
||||
NodeTag type;
|
||||
int refattrlength;
|
||||
int refelemlength;
|
||||
Oid refelemtype;
|
||||
bool refelembyval;
|
||||
List *refupperindexpr;
|
||||
List *reflowerindexpr;
|
||||
Node *refexpr;
|
||||
Node *refassgnexpr;
|
||||
} ArrayRef;
|
||||
|
||||
#endif /* PRIMNODES_H */
|
||||
@@ -1,27 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* readfuncs.h--
|
||||
* header file for read.c and readfuncs.c. These functions are internal
|
||||
* to the stringToNode interface and should not be used by anyone else.
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: readfuncs.h,v 1.1.1.1 1996/07/09 06:21:33 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef READFUNCS_H
|
||||
#define READFUNCS_H
|
||||
|
||||
/*
|
||||
* prototypes for functions in read.c (the lisp token parser)
|
||||
*/
|
||||
extern char *lsptok(char *string, int *length);
|
||||
extern void *nodeRead(bool read_car_only);
|
||||
|
||||
/*
|
||||
* prototypes for functions in readfuncs.c
|
||||
*/
|
||||
extern Node *parsePlanString();
|
||||
|
||||
#endif /* READFUNCS_H */
|
||||
@@ -1,279 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* relation.h--
|
||||
* Definitions for internal planner nodes.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: relation.h,v 1.1.1.1 1996/07/09 06:21:33 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef RELATION_H
|
||||
#define RELATION_H
|
||||
|
||||
#include "c.h"
|
||||
#include "nodes/pg_list.h"
|
||||
#include "nodes/primnodes.h"
|
||||
#include "nodes/parsenodes.h"
|
||||
#include "nodes/nodes.h"
|
||||
|
||||
/*
|
||||
* Relid
|
||||
* List of relation identifiers (indexes into the rangetable).
|
||||
*/
|
||||
|
||||
typedef List *Relid;
|
||||
|
||||
/*
|
||||
* Rel
|
||||
* Per-base-relation information
|
||||
*
|
||||
* Parts of this data structure are specific to various scan and join
|
||||
* mechanisms. It didn't seem worth creating new node types for them.
|
||||
*
|
||||
* relids - List of relation indentifiers
|
||||
* indexed - true if the relation has secondary indices
|
||||
* pages - number of pages in the relation
|
||||
* tuples - number of tuples in the relation
|
||||
* size - number of tuples in the relation after restrictions clauses
|
||||
* have been applied
|
||||
* width - number of bytes per tuple in the relation after the
|
||||
* appropriate projections have been done
|
||||
* targetlist - List of TargetList nodes
|
||||
* pathlist - List of Path nodes, one for each possible method of
|
||||
* generating the relation
|
||||
* unorderedpath - a Path node generating this relation whose resulting
|
||||
* tuples are unordered (this isn't necessarily a
|
||||
* sequential scan path, e.g., scanning with a hash index
|
||||
* leaves the tuples unordered)
|
||||
* cheapestpath - least expensive Path (regardless of final order)
|
||||
* pruneable - flag to let the planner know whether it can prune the plan
|
||||
* space of this Rel or not. -- JMH, 11/11/92
|
||||
*
|
||||
* * If the relation is a (secondary) index it will have the following
|
||||
* three fields:
|
||||
*
|
||||
* classlist - List of PG_AMOPCLASS OIDs for the index
|
||||
* indexkeys - List of base-relation attribute numbers that are index keys
|
||||
* ordering - List of PG_OPERATOR OIDs which order the indexscan result
|
||||
* relam - the OID of the pg_am of the index
|
||||
*
|
||||
* * The presence of the remaining fields depends on the restrictions
|
||||
* and joins which the relation participates in:
|
||||
*
|
||||
* clauseinfo - List of ClauseInfo nodes, containing info about each
|
||||
* qualification clause in which this relation participates
|
||||
* joininfo - List of JoinInfo nodes, containing info about each join
|
||||
* clause in which this relation participates
|
||||
* innerjoin - List of Path nodes that represent indices that may be used
|
||||
* as inner paths of nestloop joins
|
||||
*
|
||||
* NB. the last element of the arrays classlist, indexkeys and ordering
|
||||
* is always 0. 2/95 - ay
|
||||
*/
|
||||
|
||||
typedef struct Rel {
|
||||
NodeTag type;
|
||||
|
||||
/* all relations: */
|
||||
Relid relids;
|
||||
|
||||
/* catalog statistics information */
|
||||
bool indexed;
|
||||
int pages;
|
||||
int tuples;
|
||||
int size;
|
||||
int width;
|
||||
|
||||
/* materialization information */
|
||||
List *targetlist;
|
||||
List *pathlist;
|
||||
struct Path *unorderedpath;
|
||||
struct Path *cheapestpath;
|
||||
bool pruneable;
|
||||
|
||||
/* used solely by indices: */
|
||||
Oid *classlist; /* classes of AM operators */
|
||||
int *indexkeys; /* keys over which we're indexing */
|
||||
Oid relam; /* OID of the access method (in pg_am) */
|
||||
|
||||
Oid indproc;
|
||||
List *indpred;
|
||||
|
||||
/* used by various scans and joins: */
|
||||
Oid *ordering; /* OID of operators in sort order */
|
||||
List *clauseinfo; /* restriction clauses */
|
||||
List *joininfo; /* join clauses */
|
||||
List *innerjoin;
|
||||
List *superrels;
|
||||
} Rel;
|
||||
|
||||
extern Var *get_expr(TargetEntry *foo);
|
||||
|
||||
typedef struct MergeOrder {
|
||||
NodeTag type;
|
||||
Oid join_operator;
|
||||
Oid left_operator;
|
||||
Oid right_operator;
|
||||
Oid left_type;
|
||||
Oid right_type;
|
||||
} MergeOrder;
|
||||
|
||||
typedef enum OrderType {
|
||||
MERGE_ORDER, SORTOP_ORDER
|
||||
} OrderType;
|
||||
|
||||
typedef struct PathOrder {
|
||||
OrderType ordtype;
|
||||
union {
|
||||
Oid *sortop;
|
||||
MergeOrder *merge;
|
||||
} ord;
|
||||
} PathOrder;
|
||||
|
||||
typedef struct Path {
|
||||
NodeTag type;
|
||||
|
||||
Rel *parent;
|
||||
Cost path_cost;
|
||||
|
||||
NodeTag pathtype;
|
||||
|
||||
PathOrder p_ordering;
|
||||
|
||||
List *keys;
|
||||
Cost outerjoincost;
|
||||
Relid joinid;
|
||||
List *locclauseinfo;
|
||||
} Path;
|
||||
|
||||
typedef struct IndexPath {
|
||||
Path path;
|
||||
List *indexid;
|
||||
List *indexqual;
|
||||
} IndexPath;
|
||||
|
||||
typedef struct JoinPath {
|
||||
Path path;
|
||||
List *pathclauseinfo;
|
||||
Path *outerjoinpath;
|
||||
Path *innerjoinpath;
|
||||
} JoinPath;
|
||||
|
||||
typedef struct MergePath {
|
||||
JoinPath jpath;
|
||||
List *path_mergeclauses;
|
||||
List *outersortkeys;
|
||||
List *innersortkeys;
|
||||
} MergePath;
|
||||
|
||||
typedef struct HashPath {
|
||||
JoinPath jpath;
|
||||
List *path_hashclauses;
|
||||
List *outerhashkeys;
|
||||
List *innerhashkeys;
|
||||
} HashPath;
|
||||
|
||||
/******
|
||||
* Keys
|
||||
******/
|
||||
|
||||
typedef struct OrderKey {
|
||||
NodeTag type;
|
||||
int attribute_number;
|
||||
Index array_index;
|
||||
} OrderKey;
|
||||
|
||||
typedef struct JoinKey {
|
||||
NodeTag type;
|
||||
Var *outer;
|
||||
Var *inner;
|
||||
} JoinKey;
|
||||
|
||||
/*******
|
||||
* clause info
|
||||
*******/
|
||||
|
||||
typedef struct CInfo {
|
||||
NodeTag type;
|
||||
Expr *clause; /* should be an OP clause */
|
||||
Cost selectivity;
|
||||
bool notclause;
|
||||
List *indexids;
|
||||
|
||||
/* mergesort only */
|
||||
MergeOrder *mergesortorder;
|
||||
|
||||
/* hashjoin only */
|
||||
Oid hashjoinoperator;
|
||||
Relid cinfojoinid;
|
||||
} CInfo;
|
||||
|
||||
typedef struct JoinMethod {
|
||||
NodeTag type;
|
||||
List *jmkeys;
|
||||
List *clauses;
|
||||
} JoinMethod;
|
||||
|
||||
typedef struct HInfo {
|
||||
JoinMethod jmethod;
|
||||
Oid hashop;
|
||||
} HInfo;
|
||||
|
||||
typedef struct MInfo {
|
||||
JoinMethod jmethod;
|
||||
MergeOrder *m_ordering;
|
||||
} MInfo;
|
||||
|
||||
typedef struct JInfo {
|
||||
NodeTag type;
|
||||
List *otherrels;
|
||||
List *jinfoclauseinfo;
|
||||
bool mergesortable;
|
||||
bool hashjoinable;
|
||||
bool inactive;
|
||||
} JInfo;
|
||||
|
||||
typedef struct Iter {
|
||||
NodeTag type;
|
||||
Node *iterexpr;
|
||||
Oid itertype; /* type of the iter expr (use for type
|
||||
checking) */
|
||||
} Iter;
|
||||
|
||||
/*
|
||||
** Stream:
|
||||
** A stream represents a root-to-leaf path in a plan tree (i.e. a tree of
|
||||
** JoinPaths and Paths). The stream includes pointers to all Path nodes,
|
||||
** as well as to any clauses that reside above Path nodes. This structure
|
||||
** is used to make Path nodes and clauses look similar, so that Predicate
|
||||
** Migration can run.
|
||||
**
|
||||
** pathptr -- pointer to the current path node
|
||||
** cinfo -- if NULL, this stream node referes to the path node.
|
||||
** Otherwise this is a pointer to the current clause.
|
||||
** clausetype -- whether cinfo is in locclauseinfo or pathclauseinfo in the
|
||||
** path node
|
||||
** upstream -- linked list pointer upwards
|
||||
** downstream -- ditto, downwards
|
||||
** groupup -- whether or not this node is in a group with the node upstream
|
||||
** groupcost -- total cost of the group that node is in
|
||||
** groupsel -- total selectivity of the group that node is in
|
||||
*/
|
||||
typedef struct Stream *StreamPtr;
|
||||
|
||||
typedef struct Stream {
|
||||
NodeTag type;
|
||||
Path *pathptr;
|
||||
CInfo *cinfo;
|
||||
int *clausetype;
|
||||
struct Stream *upstream;
|
||||
struct Stream *downstream;
|
||||
bool groupup;
|
||||
Cost groupcost;
|
||||
Cost groupsel;
|
||||
} Stream;
|
||||
|
||||
#endif /* RELATION_H */
|
||||
@@ -1,24 +0,0 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* clauseinfo.h--
|
||||
* prototypes for clauseinfo.c.
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: clauseinfo.h,v 1.1.1.1 1996/07/09 06:21:34 scrappy Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef CLAUSEINFO_H
|
||||
#define CLAUSEINFO_H
|
||||
|
||||
extern bool valid_or_clause(CInfo *clauseinfo);
|
||||
extern List *get_actual_clauses(List *clauseinfo_list);
|
||||
extern void get_relattvals(List *clauseinfo_list, List **attnos,
|
||||
List **values, List **flags);
|
||||
extern void get_joinvars(Oid relid, List *clauseinfo_list,
|
||||
List **attnos, List **values, List **flags);
|
||||
extern List *get_opnos(List *clauseinfo_list);
|
||||
|
||||
#endif /* CLAUSEINFO_H */
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user