mirror of
https://github.com/postgres/postgres.git
synced 2025-10-27 00:12:01 +03:00
Run pgindent on 9.2 source tree in preparation for first 9.3
commit-fest.
This commit is contained in:
@@ -408,7 +408,7 @@ typedef struct GiSTOptions
|
||||
int32 vl_len_; /* varlena header (do not touch directly!) */
|
||||
int fillfactor; /* page fill factor in percent (0..100) */
|
||||
int bufferingModeOffset; /* use buffering build? */
|
||||
} GiSTOptions;
|
||||
} GiSTOptions;
|
||||
|
||||
/* gist.c */
|
||||
extern Datum gistbuildempty(PG_FUNCTION_ARGS);
|
||||
|
||||
@@ -113,7 +113,7 @@ extern HTSU_Result heap_lock_tuple(Relation relation, HeapTuple tuple,
|
||||
extern void heap_inplace_update(Relation relation, HeapTuple tuple);
|
||||
extern bool heap_freeze_tuple(HeapTupleHeader tuple, TransactionId cutoff_xid);
|
||||
extern bool heap_tuple_needs_freeze(HeapTupleHeader tuple, TransactionId cutoff_xid,
|
||||
Buffer buf);
|
||||
Buffer buf);
|
||||
|
||||
extern Oid simple_heap_insert(Relation relation, HeapTuple tup);
|
||||
extern void simple_heap_delete(Relation relation, ItemPointer tid);
|
||||
|
||||
@@ -608,7 +608,7 @@ typedef HeapTupleData *HeapTuple;
|
||||
/* 0x20 is free, was XLOG_HEAP2_CLEAN_MOVE */
|
||||
#define XLOG_HEAP2_CLEANUP_INFO 0x30
|
||||
#define XLOG_HEAP2_VISIBLE 0x40
|
||||
#define XLOG_HEAP2_MULTI_INSERT 0x50
|
||||
#define XLOG_HEAP2_MULTI_INSERT 0x50
|
||||
|
||||
/*
|
||||
* All what we need to find changed tuple
|
||||
@@ -671,7 +671,7 @@ typedef struct xl_heap_insert
|
||||
typedef struct xl_heap_multi_insert
|
||||
{
|
||||
RelFileNode node;
|
||||
BlockNumber blkno;
|
||||
BlockNumber blkno;
|
||||
bool all_visible_cleared;
|
||||
uint16 ntuples;
|
||||
OffsetNumber offsets[1];
|
||||
@@ -683,7 +683,7 @@ typedef struct xl_heap_multi_insert
|
||||
|
||||
typedef struct xl_multi_insert_tuple
|
||||
{
|
||||
uint16 datalen; /* size of tuple data that follows */
|
||||
uint16 datalen; /* size of tuple data that follows */
|
||||
uint16 t_infomask2;
|
||||
uint16 t_infomask;
|
||||
uint8 t_hoff;
|
||||
|
||||
@@ -418,12 +418,12 @@ typedef struct xl_btree_newroot
|
||||
/*
|
||||
* When a new operator class is declared, we require that the user
|
||||
* supply us with an amproc procedure (BTORDER_PROC) for determining
|
||||
* whether, for two keys a and b, a < b, a = b, or a > b. This routine
|
||||
* whether, for two keys a and b, a < b, a = b, or a > b. This routine
|
||||
* must return < 0, 0, > 0, respectively, in these three cases. (It must
|
||||
* not return INT_MIN, since we may negate the result before using it.)
|
||||
*
|
||||
* To facilitate accelerated sorting, an operator class may choose to
|
||||
* offer a second procedure (BTSORTSUPPORT_PROC). For full details, see
|
||||
* offer a second procedure (BTSORTSUPPORT_PROC). For full details, see
|
||||
* src/include/utils/sortsupport.h.
|
||||
*/
|
||||
|
||||
@@ -551,7 +551,7 @@ typedef struct BTScanOpaqueData
|
||||
int numArrayKeys; /* number of equality-type array keys (-1 if
|
||||
* there are any unsatisfiable array keys) */
|
||||
BTArrayKeyInfo *arrayKeys; /* info about each equality-type array key */
|
||||
MemoryContext arrayContext; /* scan-lifespan context for array data */
|
||||
MemoryContext arrayContext; /* scan-lifespan context for array data */
|
||||
|
||||
/* info about killed items if any (killedItems is NULL if never used) */
|
||||
int *killedItems; /* currPos.items indexes of killed items */
|
||||
@@ -559,8 +559,8 @@ typedef struct BTScanOpaqueData
|
||||
|
||||
/*
|
||||
* If we are doing an index-only scan, these are the tuple storage
|
||||
* workspaces for the currPos and markPos respectively. Each is of
|
||||
* size BLCKSZ, so it can hold as much as a full page's worth of tuples.
|
||||
* workspaces for the currPos and markPos respectively. Each is of size
|
||||
* BLCKSZ, so it can hold as much as a full page's worth of tuples.
|
||||
*/
|
||||
char *currTuples; /* tuple storage for currPos */
|
||||
char *markTuples; /* tuple storage for markPos */
|
||||
|
||||
@@ -147,7 +147,7 @@ extern void SimpleLruFlush(SlruCtl ctl, bool checkpoint);
|
||||
extern void SimpleLruTruncate(SlruCtl ctl, int cutoffPage);
|
||||
|
||||
typedef bool (*SlruScanCallback) (SlruCtl ctl, char *filename, int segpage,
|
||||
void *data);
|
||||
void *data);
|
||||
extern bool SlruScanDirectory(SlruCtl ctl, SlruScanCallback callback, void *data);
|
||||
|
||||
/* SlruScanDirectory public callbacks */
|
||||
|
||||
@@ -78,25 +78,25 @@ typedef struct spgChooseOut
|
||||
{
|
||||
struct /* results for spgMatchNode */
|
||||
{
|
||||
int nodeN; /* descend to this node (index from 0) */
|
||||
int levelAdd; /* increment level by this much */
|
||||
Datum restDatum; /* new leaf datum */
|
||||
int nodeN; /* descend to this node (index from 0) */
|
||||
int levelAdd; /* increment level by this much */
|
||||
Datum restDatum; /* new leaf datum */
|
||||
} matchNode;
|
||||
struct /* results for spgAddNode */
|
||||
{
|
||||
Datum nodeLabel; /* new node's label */
|
||||
int nodeN; /* where to insert it (index from 0) */
|
||||
Datum nodeLabel; /* new node's label */
|
||||
int nodeN; /* where to insert it (index from 0) */
|
||||
} addNode;
|
||||
struct /* results for spgSplitTuple */
|
||||
{
|
||||
/* Info to form new inner tuple with one node */
|
||||
bool prefixHasPrefix; /* tuple should have a prefix? */
|
||||
Datum prefixPrefixDatum; /* if so, its value */
|
||||
Datum nodeLabel; /* node's label */
|
||||
bool prefixHasPrefix; /* tuple should have a prefix? */
|
||||
Datum prefixPrefixDatum; /* if so, its value */
|
||||
Datum nodeLabel; /* node's label */
|
||||
|
||||
/* Info to form new lower-level inner tuple with all old nodes */
|
||||
bool postfixHasPrefix; /* tuple should have a prefix? */
|
||||
Datum postfixPrefixDatum; /* if so, its value */
|
||||
bool postfixHasPrefix; /* tuple should have a prefix? */
|
||||
Datum postfixPrefixDatum; /* if so, its value */
|
||||
} splitTuple;
|
||||
} result;
|
||||
} spgChooseOut;
|
||||
@@ -119,7 +119,7 @@ typedef struct spgPickSplitOut
|
||||
int nNodes; /* number of nodes for new inner tuple */
|
||||
Datum *nodeLabels; /* their labels (or NULL for no labels) */
|
||||
|
||||
int *mapTuplesToNodes; /* node index for each leaf tuple */
|
||||
int *mapTuplesToNodes; /* node index for each leaf tuple */
|
||||
Datum *leafTupleDatums; /* datum to store in each new leaf tuple */
|
||||
} spgPickSplitOut;
|
||||
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
#define SPGIST_METAPAGE_BLKNO (0) /* metapage */
|
||||
#define SPGIST_ROOT_BLKNO (1) /* root for normal entries */
|
||||
#define SPGIST_NULL_BLKNO (2) /* root for null-value entries */
|
||||
#define SPGIST_LAST_FIXED_BLKNO SPGIST_NULL_BLKNO
|
||||
#define SPGIST_LAST_FIXED_BLKNO SPGIST_NULL_BLKNO
|
||||
|
||||
#define SpGistBlockIsRoot(blkno) \
|
||||
((blkno) == SPGIST_ROOT_BLKNO || (blkno) == SPGIST_NULL_BLKNO)
|
||||
@@ -40,7 +40,7 @@ typedef struct SpGistPageOpaqueData
|
||||
uint16 nRedirection; /* number of redirection tuples on page */
|
||||
uint16 nPlaceholder; /* number of placeholder tuples on page */
|
||||
/* note there's no count of either LIVE or DEAD tuples ... */
|
||||
uint16 spgist_page_id; /* for identification of SP-GiST indexes */
|
||||
uint16 spgist_page_id; /* for identification of SP-GiST indexes */
|
||||
} SpGistPageOpaqueData;
|
||||
|
||||
typedef SpGistPageOpaqueData *SpGistPageOpaque;
|
||||
@@ -91,7 +91,7 @@ typedef struct SpGistLUPCache
|
||||
typedef struct SpGistMetaPageData
|
||||
{
|
||||
uint32 magicNumber; /* for identity cross-check */
|
||||
SpGistLUPCache lastUsedPages; /* shared storage of last-used info */
|
||||
SpGistLUPCache lastUsedPages; /* shared storage of last-used info */
|
||||
} SpGistMetaPageData;
|
||||
|
||||
#define SPGIST_MAGIC_NUMBER (0xBA0BABEE)
|
||||
@@ -116,11 +116,11 @@ typedef struct SpGistState
|
||||
{
|
||||
spgConfigOut config; /* filled in by opclass config method */
|
||||
|
||||
SpGistTypeDesc attType; /* type of input data and leaf values */
|
||||
SpGistTypeDesc attPrefixType; /* type of inner-tuple prefix values */
|
||||
SpGistTypeDesc attType; /* type of input data and leaf values */
|
||||
SpGistTypeDesc attPrefixType; /* type of inner-tuple prefix values */
|
||||
SpGistTypeDesc attLabelType; /* type of node label values */
|
||||
|
||||
char *deadTupleStorage; /* workspace for spgFormDeadTuple */
|
||||
char *deadTupleStorage; /* workspace for spgFormDeadTuple */
|
||||
|
||||
TransactionId myXid; /* XID to use when creating a redirect tuple */
|
||||
bool isBuild; /* true if doing index build */
|
||||
@@ -136,7 +136,7 @@ typedef struct SpGistScanOpaqueData
|
||||
|
||||
/* Control flags showing whether to search nulls and/or non-nulls */
|
||||
bool searchNulls; /* scan matches (all) null entries */
|
||||
bool searchNonNulls; /* scan matches (some) non-null entries */
|
||||
bool searchNonNulls; /* scan matches (some) non-null entries */
|
||||
|
||||
/* Index quals to be passed to opclass (null-related quals removed) */
|
||||
int numberOfKeys; /* number of index qualifier conditions */
|
||||
@@ -154,14 +154,14 @@ typedef struct SpGistScanOpaqueData
|
||||
TupleDesc indexTupDesc; /* if so, tuple descriptor for them */
|
||||
int nPtrs; /* number of TIDs found on current page */
|
||||
int iPtr; /* index for scanning through same */
|
||||
ItemPointerData heapPtrs[MaxIndexTuplesPerPage]; /* TIDs from cur page */
|
||||
bool recheck[MaxIndexTuplesPerPage]; /* their recheck flags */
|
||||
IndexTuple indexTups[MaxIndexTuplesPerPage]; /* reconstructed tuples */
|
||||
ItemPointerData heapPtrs[MaxIndexTuplesPerPage]; /* TIDs from cur page */
|
||||
bool recheck[MaxIndexTuplesPerPage]; /* their recheck flags */
|
||||
IndexTuple indexTups[MaxIndexTuplesPerPage]; /* reconstructed tuples */
|
||||
|
||||
/*
|
||||
* Note: using MaxIndexTuplesPerPage above is a bit hokey since
|
||||
* SpGistLeafTuples aren't exactly IndexTuples; however, they are
|
||||
* larger, so this is safe.
|
||||
* SpGistLeafTuples aren't exactly IndexTuples; however, they are larger,
|
||||
* so this is safe.
|
||||
*/
|
||||
} SpGistScanOpaqueData;
|
||||
|
||||
@@ -175,17 +175,17 @@ typedef struct SpGistCache
|
||||
{
|
||||
spgConfigOut config; /* filled in by opclass config method */
|
||||
|
||||
SpGistTypeDesc attType; /* type of input data and leaf values */
|
||||
SpGistTypeDesc attPrefixType; /* type of inner-tuple prefix values */
|
||||
SpGistTypeDesc attType; /* type of input data and leaf values */
|
||||
SpGistTypeDesc attPrefixType; /* type of inner-tuple prefix values */
|
||||
SpGistTypeDesc attLabelType; /* type of node label values */
|
||||
|
||||
SpGistLUPCache lastUsedPages; /* local storage of last-used info */
|
||||
SpGistLUPCache lastUsedPages; /* local storage of last-used info */
|
||||
} SpGistCache;
|
||||
|
||||
|
||||
/*
|
||||
* SPGiST tuple types. Note: inner, leaf, and dead tuple structs
|
||||
* must have the same tupstate field in the same position! Real inner and
|
||||
* SPGiST tuple types. Note: inner, leaf, and dead tuple structs
|
||||
* must have the same tupstate field in the same position! Real inner and
|
||||
* leaf tuples always have tupstate = LIVE; if the state is something else,
|
||||
* use the SpGistDeadTuple struct to inspect the tuple.
|
||||
*/
|
||||
@@ -353,7 +353,7 @@ typedef SpGistDeadTupleData *SpGistDeadTuple;
|
||||
* ACCEPT_RDATA_* can only use fixed-length rdata arrays, because of lengthof
|
||||
*/
|
||||
|
||||
#define ACCEPT_RDATA_DATA(p, s, i) \
|
||||
#define ACCEPT_RDATA_DATA(p, s, i) \
|
||||
do { \
|
||||
Assert((i) < lengthof(rdata)); \
|
||||
rdata[i].data = (char *) (p); \
|
||||
@@ -387,7 +387,7 @@ typedef SpGistDeadTupleData *SpGistDeadTuple;
|
||||
#define XLOG_SPGIST_PICKSPLIT 0x50
|
||||
#define XLOG_SPGIST_VACUUM_LEAF 0x60
|
||||
#define XLOG_SPGIST_VACUUM_ROOT 0x70
|
||||
#define XLOG_SPGIST_VACUUM_REDIRECT 0x80
|
||||
#define XLOG_SPGIST_VACUUM_REDIRECT 0x80
|
||||
|
||||
/*
|
||||
* Some redo functions need an SpGistState, although only a few of its fields
|
||||
@@ -415,7 +415,7 @@ typedef struct spgxlogAddLeaf
|
||||
bool newPage; /* init dest page? */
|
||||
bool storesNulls; /* page is in the nulls tree? */
|
||||
OffsetNumber offnumLeaf; /* offset where leaf tuple gets placed */
|
||||
OffsetNumber offnumHeadLeaf; /* offset of head tuple in chain, if any */
|
||||
OffsetNumber offnumHeadLeaf; /* offset of head tuple in chain, if any */
|
||||
|
||||
BlockNumber blknoParent; /* where the parent downlink is, if any */
|
||||
OffsetNumber offnumParent;
|
||||
@@ -589,7 +589,7 @@ typedef struct spgxlogVacuumRedirect
|
||||
RelFileNode node;
|
||||
|
||||
BlockNumber blkno; /* block number to clean */
|
||||
uint16 nToPlaceholder; /* number of redirects to make placeholders */
|
||||
uint16 nToPlaceholder; /* number of redirects to make placeholders */
|
||||
OffsetNumber firstPlaceholder; /* first placeholder tuple to remove */
|
||||
|
||||
/* offsets of redirect tuples to make placeholders follow */
|
||||
@@ -620,24 +620,24 @@ extern void initSpGistState(SpGistState *state, Relation index);
|
||||
extern Buffer SpGistNewBuffer(Relation index);
|
||||
extern void SpGistUpdateMetaPage(Relation index);
|
||||
extern Buffer SpGistGetBuffer(Relation index, int flags,
|
||||
int needSpace, bool *isNew);
|
||||
int needSpace, bool *isNew);
|
||||
extern void SpGistSetLastUsedPage(Relation index, Buffer buffer);
|
||||
extern void SpGistInitPage(Page page, uint16 f);
|
||||
extern void SpGistInitBuffer(Buffer b, uint16 f);
|
||||
extern void SpGistInitMetapage(Page page);
|
||||
extern unsigned int SpGistGetTypeSize(SpGistTypeDesc *att, Datum datum);
|
||||
extern SpGistLeafTuple spgFormLeafTuple(SpGistState *state,
|
||||
ItemPointer heapPtr,
|
||||
Datum datum, bool isnull);
|
||||
ItemPointer heapPtr,
|
||||
Datum datum, bool isnull);
|
||||
extern SpGistNodeTuple spgFormNodeTuple(SpGistState *state,
|
||||
Datum label, bool isnull);
|
||||
Datum label, bool isnull);
|
||||
extern SpGistInnerTuple spgFormInnerTuple(SpGistState *state,
|
||||
bool hasPrefix, Datum prefix,
|
||||
int nNodes, SpGistNodeTuple *nodes);
|
||||
bool hasPrefix, Datum prefix,
|
||||
int nNodes, SpGistNodeTuple *nodes);
|
||||
extern SpGistDeadTuple spgFormDeadTuple(SpGistState *state, int tupstate,
|
||||
BlockNumber blkno, OffsetNumber offnum);
|
||||
extern Datum *spgExtractNodeLabels(SpGistState *state,
|
||||
SpGistInnerTuple innerTuple);
|
||||
SpGistInnerTuple innerTuple);
|
||||
extern OffsetNumber SpGistPageAddNewItem(SpGistState *state, Page page,
|
||||
Item item, Size size,
|
||||
OffsetNumber *startOffset,
|
||||
@@ -645,12 +645,12 @@ extern OffsetNumber SpGistPageAddNewItem(SpGistState *state, Page page,
|
||||
|
||||
/* spgdoinsert.c */
|
||||
extern void spgUpdateNodeLink(SpGistInnerTuple tup, int nodeN,
|
||||
BlockNumber blkno, OffsetNumber offset);
|
||||
BlockNumber blkno, OffsetNumber offset);
|
||||
extern void spgPageIndexMultiDelete(SpGistState *state, Page page,
|
||||
OffsetNumber *itemnos, int nitems,
|
||||
int firststate, int reststate,
|
||||
BlockNumber blkno, OffsetNumber offnum);
|
||||
extern void spgdoinsert(Relation index, SpGistState *state,
|
||||
ItemPointer heapPtr, Datum datum, bool isnull);
|
||||
ItemPointer heapPtr, Datum datum, bool isnull);
|
||||
|
||||
#endif /* SPGIST_PRIVATE_H */
|
||||
|
||||
@@ -55,7 +55,8 @@ typedef enum
|
||||
{
|
||||
SYNCHRONOUS_COMMIT_OFF, /* asynchronous commit */
|
||||
SYNCHRONOUS_COMMIT_LOCAL_FLUSH, /* wait for local flush only */
|
||||
SYNCHRONOUS_COMMIT_REMOTE_WRITE, /* wait for local flush and remote write */
|
||||
SYNCHRONOUS_COMMIT_REMOTE_WRITE, /* wait for local flush and remote
|
||||
* write */
|
||||
SYNCHRONOUS_COMMIT_REMOTE_FLUSH /* wait for local and remote flush */
|
||||
} SyncCommitLevel;
|
||||
|
||||
|
||||
@@ -157,8 +157,8 @@ typedef XLogLongPageHeaderData *XLogLongPageHeader;
|
||||
#define NextLogPage(recptr) \
|
||||
do { \
|
||||
if ((recptr).xrecoff % XLOG_BLCKSZ != 0) \
|
||||
(recptr).xrecoff += \
|
||||
(XLOG_BLCKSZ - (recptr).xrecoff % XLOG_BLCKSZ); \
|
||||
(recptr).xrecoff += \
|
||||
(XLOG_BLCKSZ - (recptr).xrecoff % XLOG_BLCKSZ); \
|
||||
if ((recptr).xrecoff >= XLogFileSize) \
|
||||
{ \
|
||||
((recptr).xlogid)++; \
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
* 'pgrminclude ignore' needed here because CppAsString2() does not throw
|
||||
* an error if the symbol is not defined.
|
||||
*/
|
||||
#include "catalog/catversion.h" /* pgrminclude ignore */
|
||||
#include "catalog/catversion.h" /* pgrminclude ignore */
|
||||
#include "catalog/pg_class.h"
|
||||
#include "storage/relfilenode.h"
|
||||
#include "utils/relcache.h"
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
*
|
||||
* Variable-length catalog fields (except possibly the first not nullable one)
|
||||
* should not be visible in C structures, so they are made invisible by #ifdefs
|
||||
* of an undefined symbol. See also MARKNOTNULL in bootstrap.c for how this is
|
||||
* of an undefined symbol. See also MARKNOTNULL in bootstrap.c for how this is
|
||||
* handled.
|
||||
*/
|
||||
#undef CATALOG_VARLEN
|
||||
|
||||
@@ -99,6 +99,6 @@ extern bool reindex_relation(Oid relid, int flags);
|
||||
|
||||
extern bool ReindexIsProcessingHeap(Oid heapOid);
|
||||
extern bool ReindexIsProcessingIndex(Oid indexOid);
|
||||
extern Oid IndexGetRelation(Oid indexId, bool missing_ok);
|
||||
extern Oid IndexGetRelation(Oid indexId, bool missing_ok);
|
||||
|
||||
#endif /* INDEX_H */
|
||||
|
||||
@@ -47,18 +47,18 @@ typedef struct OverrideSearchPath
|
||||
bool addTemp; /* implicitly prepend temp schema? */
|
||||
} OverrideSearchPath;
|
||||
|
||||
typedef void (*RangeVarGetRelidCallback)(const RangeVar *relation, Oid relId,
|
||||
Oid oldRelId, void *callback_arg);
|
||||
typedef void (*RangeVarGetRelidCallback) (const RangeVar *relation, Oid relId,
|
||||
Oid oldRelId, void *callback_arg);
|
||||
|
||||
#define RangeVarGetRelid(relation, lockmode, missing_ok) \
|
||||
RangeVarGetRelidExtended(relation, lockmode, missing_ok, false, NULL, NULL)
|
||||
|
||||
extern Oid RangeVarGetRelidExtended(const RangeVar *relation,
|
||||
extern Oid RangeVarGetRelidExtended(const RangeVar *relation,
|
||||
LOCKMODE lockmode, bool missing_ok, bool nowait,
|
||||
RangeVarGetRelidCallback callback,
|
||||
void *callback_arg);
|
||||
extern Oid RangeVarGetCreationNamespace(const RangeVar *newRelation);
|
||||
extern Oid RangeVarGetAndCheckCreationNamespace(RangeVar *newRelation,
|
||||
extern Oid RangeVarGetAndCheckCreationNamespace(RangeVar *newRelation,
|
||||
LOCKMODE lockmode,
|
||||
Oid *existing_relation_id);
|
||||
extern void RangeVarAdjustRelationPersistence(RangeVar *newRelation, Oid nspid);
|
||||
|
||||
@@ -36,10 +36,10 @@ typedef enum ObjectAccessType
|
||||
typedef struct
|
||||
{
|
||||
/*
|
||||
* Flags to inform extensions the context of this deletion.
|
||||
* Also see PERFORM_DELETION_* in dependency.h
|
||||
* Flags to inform extensions the context of this deletion. Also see
|
||||
* PERFORM_DELETION_* in dependency.h
|
||||
*/
|
||||
int dropflags;
|
||||
int dropflags;
|
||||
} ObjectAccessDrop;
|
||||
|
||||
/*
|
||||
|
||||
@@ -28,8 +28,8 @@ typedef struct ObjectAddress
|
||||
} ObjectAddress;
|
||||
|
||||
extern ObjectAddress get_object_address(ObjectType objtype, List *objname,
|
||||
List *objargs, Relation *relp,
|
||||
LOCKMODE lockmode, bool missing_ok);
|
||||
List *objargs, Relation *relp,
|
||||
LOCKMODE lockmode, bool missing_ok);
|
||||
|
||||
extern void check_object_ownership(Oid roleid,
|
||||
ObjectType objtype, ObjectAddress address,
|
||||
|
||||
@@ -44,6 +44,7 @@ CATALOG(pg_aggregate,2600) BKI_WITHOUT_OIDS
|
||||
regproc aggfinalfn;
|
||||
Oid aggsortop;
|
||||
Oid aggtranstype;
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
text agginitval;
|
||||
#endif
|
||||
|
||||
@@ -32,6 +32,7 @@ CATALOG(pg_attrdef,2604)
|
||||
{
|
||||
Oid adrelid; /* OID of table containing attribute */
|
||||
int2 adnum; /* attnum of attribute */
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
pg_node_tree adbin; /* nodeToString representation of default */
|
||||
text adsrc; /* human-readable representation of default */
|
||||
|
||||
@@ -201,7 +201,7 @@ typedef FormData_pg_attribute *Form_pg_attribute;
|
||||
#define Anum_pg_attribute_attcollation 18
|
||||
#define Anum_pg_attribute_attacl 19
|
||||
#define Anum_pg_attribute_attoptions 20
|
||||
#define Anum_pg_attribute_attfdwoptions 21
|
||||
#define Anum_pg_attribute_attfdwoptions 21
|
||||
|
||||
|
||||
/* ----------------
|
||||
|
||||
@@ -92,6 +92,7 @@ CATALOG(pg_constraint,2606)
|
||||
bool connoinherit;
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
|
||||
/*
|
||||
* Columns of conrelid that the constraint applies to, if known (this is
|
||||
* NULL for trigger constraints)
|
||||
|
||||
@@ -33,7 +33,7 @@ typedef struct CheckPoint
|
||||
XLogRecPtr redo; /* next RecPtr available when we began to
|
||||
* create CheckPoint (i.e. REDO start point) */
|
||||
TimeLineID ThisTimeLineID; /* current TLI */
|
||||
bool fullPageWrites; /* current full_page_writes */
|
||||
bool fullPageWrites; /* current full_page_writes */
|
||||
uint32 nextXidEpoch; /* higher-order bits of nextXid */
|
||||
TransactionId nextXid; /* next free XID */
|
||||
Oid nextOid; /* next free OID */
|
||||
@@ -140,11 +140,11 @@ typedef struct ControlFileData
|
||||
* record, to make sure the end-of-backup record corresponds the base
|
||||
* backup we're recovering from.
|
||||
*
|
||||
* backupEndPoint is the backup end location, if we are recovering from
|
||||
* an online backup which was taken from the standby and haven't reached
|
||||
* the end of backup yet. It is initialized to the minimum recovery point
|
||||
* in pg_control which was backed up last. It is reset to zero when
|
||||
* the end of backup is reached, and we mustn't start up before that.
|
||||
* backupEndPoint is the backup end location, if we are recovering from an
|
||||
* online backup which was taken from the standby and haven't reached the
|
||||
* end of backup yet. It is initialized to the minimum recovery point in
|
||||
* pg_control which was backed up last. It is reset to zero when the end
|
||||
* of backup is reached, and we mustn't start up before that.
|
||||
*
|
||||
* If backupEndRequired is true, we know for sure that we're restoring
|
||||
* from a backup, and must see a backup-end record before we can safely
|
||||
|
||||
@@ -42,6 +42,7 @@ CATALOG(pg_database,1262) BKI_SHARED_RELATION BKI_ROWTYPE_OID(1248) BKI_SCHEMA_M
|
||||
Oid datlastsysoid; /* highest OID to consider a system OID */
|
||||
TransactionId datfrozenxid; /* all Xids < this are frozen in this DB */
|
||||
Oid dattablespace; /* default table space for this DB */
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
aclitem datacl[1]; /* access permissions */
|
||||
#endif
|
||||
|
||||
@@ -35,6 +35,7 @@ CATALOG(pg_db_role_setting,2964) BKI_SHARED_RELATION BKI_WITHOUT_OIDS
|
||||
{
|
||||
Oid setdatabase; /* database */
|
||||
Oid setrole; /* role */
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
text setconfig[1]; /* GUC settings to apply at login */
|
||||
#endif
|
||||
|
||||
@@ -32,6 +32,7 @@ CATALOG(pg_default_acl,826)
|
||||
Oid defaclrole; /* OID of role owning this ACL */
|
||||
Oid defaclnamespace; /* OID of namespace, or 0 for all */
|
||||
char defaclobjtype; /* see DEFACLOBJ_xxx constants below */
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
aclitem defaclacl[1]; /* permissions to add at CREATE time */
|
||||
#endif
|
||||
|
||||
@@ -50,6 +50,7 @@ CATALOG(pg_description,2609) BKI_WITHOUT_OIDS
|
||||
Oid objoid; /* OID of object itself */
|
||||
Oid classoid; /* OID of table containing object */
|
||||
int4 objsubid; /* column number, or 0 if not used */
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
text description; /* description of object */
|
||||
#endif
|
||||
|
||||
@@ -34,7 +34,8 @@ CATALOG(pg_extension,3079)
|
||||
Oid extowner; /* extension owner */
|
||||
Oid extnamespace; /* namespace of contained objects */
|
||||
bool extrelocatable; /* if true, allow ALTER EXTENSION SET SCHEMA */
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
/* extversion should never be null, but the others can be. */
|
||||
text extversion; /* extension version name */
|
||||
Oid extconfig[1]; /* dumpable configuration tables */
|
||||
|
||||
@@ -34,6 +34,7 @@ CATALOG(pg_foreign_data_wrapper,2328)
|
||||
Oid fdwowner; /* FDW owner */
|
||||
Oid fdwhandler; /* handler function, or 0 if none */
|
||||
Oid fdwvalidator; /* option validation function, or 0 if none */
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
aclitem fdwacl[1]; /* access permissions */
|
||||
text fdwoptions[1]; /* FDW options */
|
||||
|
||||
@@ -31,6 +31,7 @@ CATALOG(pg_foreign_server,1417)
|
||||
NameData srvname; /* foreign server name */
|
||||
Oid srvowner; /* server owner */
|
||||
Oid srvfdw; /* server FDW */
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
text srvtype;
|
||||
text srvversion;
|
||||
|
||||
@@ -30,6 +30,7 @@ CATALOG(pg_foreign_table,3118) BKI_WITHOUT_OIDS
|
||||
{
|
||||
Oid ftrelid; /* OID of foreign table */
|
||||
Oid ftserver; /* OID of foreign server */
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
text ftoptions[1]; /* FDW-specific options */
|
||||
#endif
|
||||
|
||||
@@ -44,6 +44,7 @@ CATALOG(pg_index,2610) BKI_WITHOUT_OIDS BKI_SCHEMA_MACRO
|
||||
|
||||
/* variable-length fields start here, but we allow direct access to indkey */
|
||||
int2vector indkey; /* column numbers of indexed cols, or 0 */
|
||||
|
||||
#ifdef CATALOG_VARLEN
|
||||
oidvector indcollation; /* collation identifiers */
|
||||
oidvector indclass; /* opclass identifiers */
|
||||
|
||||
@@ -37,6 +37,7 @@ CATALOG(pg_language,2612)
|
||||
Oid lanplcallfoid; /* Call handler for PL */
|
||||
Oid laninline; /* Optional anonymous-block handler function */
|
||||
Oid lanvalidator; /* Optional validation function */
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
aclitem lanacl[1]; /* Access privileges */
|
||||
#endif
|
||||
|
||||
@@ -32,6 +32,7 @@ CATALOG(pg_largeobject,2613) BKI_WITHOUT_OIDS
|
||||
{
|
||||
Oid loid; /* Identifier of large object */
|
||||
int4 pageno; /* Page number (starting from 0) */
|
||||
|
||||
/* data has variable length, but we allow direct access; see inv_api.c */
|
||||
bytea data; /* Data for page (may be zero-length) */
|
||||
} FormData_pg_largeobject;
|
||||
|
||||
@@ -31,6 +31,7 @@
|
||||
CATALOG(pg_largeobject_metadata,2995)
|
||||
{
|
||||
Oid lomowner; /* OID of the largeobject owner */
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
aclitem lomacl[1]; /* access permissions */
|
||||
#endif
|
||||
|
||||
@@ -37,6 +37,7 @@ CATALOG(pg_namespace,2615)
|
||||
{
|
||||
NameData nspname;
|
||||
Oid nspowner;
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
aclitem nspacl[1];
|
||||
#endif
|
||||
|
||||
@@ -134,7 +134,7 @@ DATA(insert ( 405 macaddr_ops PGNSP PGUID 1985 829 t 0 ));
|
||||
*/
|
||||
DATA(insert ( 403 name_ops PGNSP PGUID 1986 19 t 2275 ));
|
||||
DATA(insert ( 405 name_ops PGNSP PGUID 1987 19 t 0 ));
|
||||
DATA(insert OID = 3125 ( 403 numeric_ops PGNSP PGUID 1988 1700 t 0 ));
|
||||
DATA(insert OID = 3125 ( 403 numeric_ops PGNSP PGUID 1988 1700 t 0 ));
|
||||
#define NUMERIC_BTREE_OPS_OID 3125
|
||||
DATA(insert ( 405 numeric_ops PGNSP PGUID 1998 1700 t 0 ));
|
||||
DATA(insert OID = 1981 ( 403 oid_ops PGNSP PGUID 1989 26 t 0 ));
|
||||
@@ -148,7 +148,7 @@ DATA(insert OID = 3126 ( 403 text_ops PGNSP PGUID 1994 25 t 0 ));
|
||||
DATA(insert ( 405 text_ops PGNSP PGUID 1995 25 t 0 ));
|
||||
DATA(insert ( 403 time_ops PGNSP PGUID 1996 1083 t 0 ));
|
||||
DATA(insert ( 405 time_ops PGNSP PGUID 1997 1083 t 0 ));
|
||||
DATA(insert OID = 3127 ( 403 timestamptz_ops PGNSP PGUID 434 1184 t 0 ));
|
||||
DATA(insert OID = 3127 ( 403 timestamptz_ops PGNSP PGUID 434 1184 t 0 ));
|
||||
#define TIMESTAMPTZ_BTREE_OPS_OID 3127
|
||||
DATA(insert ( 405 timestamptz_ops PGNSP PGUID 1999 1184 t 0 ));
|
||||
DATA(insert ( 403 timetz_ops PGNSP PGUID 2000 1266 t 0 ));
|
||||
|
||||
@@ -1702,7 +1702,7 @@ DATA(insert OID = 3895 ( "&<" PGNSP PGUID b f f 3831 3831 16 0 0 range_overl
|
||||
DESCR("overlaps or is left of");
|
||||
DATA(insert OID = 3896 ( "&>" PGNSP PGUID b f f 3831 3831 16 0 0 range_overright scalargtsel scalargtjoinsel ));
|
||||
DESCR("overlaps or is right of");
|
||||
DATA(insert OID = 3897 ( "-|-" PGNSP PGUID b f f 3831 3831 16 3897 0 range_adjacent contsel contjoinsel ));
|
||||
DATA(insert OID = 3897 ( "-|-" PGNSP PGUID b f f 3831 3831 16 3897 0 range_adjacent contsel contjoinsel ));
|
||||
DESCR("is adjacent to");
|
||||
DATA(insert OID = 3898 ( "+" PGNSP PGUID b f f 3831 3831 3831 3898 0 range_union - - ));
|
||||
DESCR("range union");
|
||||
|
||||
@@ -33,6 +33,7 @@ CATALOG(pg_pltemplate,1136) BKI_SHARED_RELATION BKI_WITHOUT_OIDS
|
||||
NameData tmplname; /* name of PL */
|
||||
bool tmpltrusted; /* PL is trusted? */
|
||||
bool tmpldbacreate; /* PL is installable by db owner? */
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
text tmplhandler; /* name of call handler function */
|
||||
text tmplinline; /* name of anonymous-block handler, or NULL */
|
||||
|
||||
@@ -54,8 +54,12 @@ CATALOG(pg_proc,1255) BKI_BOOTSTRAP BKI_ROWTYPE_OID(81) BKI_SCHEMA_MACRO
|
||||
int2 pronargdefaults; /* number of arguments with defaults */
|
||||
Oid prorettype; /* OID of result type */
|
||||
|
||||
/* variable-length fields start here, but we allow direct access to proargtypes */
|
||||
/*
|
||||
* variable-length fields start here, but we allow direct access to
|
||||
* proargtypes
|
||||
*/
|
||||
oidvector proargtypes; /* parameter types (excludes OUT params) */
|
||||
|
||||
#ifdef CATALOG_VARLEN
|
||||
Oid proallargtypes[1]; /* all param types (NULL if IN only) */
|
||||
char proargmodes[1]; /* parameter modes (NULL if IN only) */
|
||||
@@ -2664,7 +2668,7 @@ DATA(insert OID = 3151 ( pg_stat_get_db_temp_bytes PGNSP PGUID 12 1 0 0 0 f f f
|
||||
DESCR("statistics: number of bytes in temporary files written");
|
||||
DATA(insert OID = 2844 ( pg_stat_get_db_blk_read_time PGNSP PGUID 12 1 0 0 0 f f f f t f s 1 0 701 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_blk_read_time _null_ _null_ _null_ ));
|
||||
DESCR("statistics: block read time, in msec");
|
||||
DATA(insert OID = 2845 ( pg_stat_get_db_blk_write_time PGNSP PGUID 12 1 0 0 0 f f f f t f s 1 0 701 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_blk_write_time _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 2845 ( pg_stat_get_db_blk_write_time PGNSP PGUID 12 1 0 0 0 f f f f t f s 1 0 701 "26" _null_ _null_ _null_ _null_ pg_stat_get_db_blk_write_time _null_ _null_ _null_ ));
|
||||
DESCR("statistics: block write time, in msec");
|
||||
DATA(insert OID = 2769 ( pg_stat_get_bgwriter_timed_checkpoints PGNSP PGUID 12 1 0 0 0 f f f f t f s 0 0 20 "" _null_ _null_ _null_ _null_ pg_stat_get_bgwriter_timed_checkpoints _null_ _null_ _null_ ));
|
||||
DESCR("statistics: number of timed checkpoints started by the bgwriter");
|
||||
@@ -2904,7 +2908,7 @@ DATA(insert OID = 2082 ( pg_operator_is_visible PGNSP PGUID 12 1 0 0 0 f f f f
|
||||
DESCR("is operator visible in search path?");
|
||||
DATA(insert OID = 2083 ( pg_opclass_is_visible PGNSP PGUID 12 1 0 0 0 f f f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_opclass_is_visible _null_ _null_ _null_ ));
|
||||
DESCR("is opclass visible in search path?");
|
||||
DATA(insert OID = 3829 ( pg_opfamily_is_visible PGNSP PGUID 12 1 0 0 0 f f f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_opfamily_is_visible _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3829 ( pg_opfamily_is_visible PGNSP PGUID 12 1 0 0 0 f f f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_opfamily_is_visible _null_ _null_ _null_ ));
|
||||
DESCR("is opfamily visible in search path?");
|
||||
DATA(insert OID = 2093 ( pg_conversion_is_visible PGNSP PGUID 12 1 0 0 0 f f f f t f s 1 0 16 "26" _null_ _null_ _null_ _null_ pg_conversion_is_visible _null_ _null_ _null_ ));
|
||||
DESCR("is conversion visible in search path?");
|
||||
@@ -4067,9 +4071,9 @@ DATA(insert OID = 323 ( json_recv PGNSP PGUID 12 1 0 0 0 f f f f t f s 1 0
|
||||
DESCR("I/O");
|
||||
DATA(insert OID = 324 ( json_send PGNSP PGUID 12 1 0 0 0 f f f f t f s 1 0 17 "114" _null_ _null_ _null_ _null_ json_send _null_ _null_ _null_ ));
|
||||
DESCR("I/O");
|
||||
DATA(insert OID = 3153 ( array_to_json PGNSP PGUID 12 1 0 0 0 f f f f t f s 1 0 114 "2277" _null_ _null_ _null_ _null_ array_to_json _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3153 ( array_to_json PGNSP PGUID 12 1 0 0 0 f f f f t f s 1 0 114 "2277" _null_ _null_ _null_ _null_ array_to_json _null_ _null_ _null_ ));
|
||||
DESCR("map array to json");
|
||||
DATA(insert OID = 3154 ( array_to_json PGNSP PGUID 12 1 0 0 0 f f f f t f s 2 0 114 "2277 16" _null_ _null_ _null_ _null_ array_to_json_pretty _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3154 ( array_to_json PGNSP PGUID 12 1 0 0 0 f f f f t f s 2 0 114 "2277 16" _null_ _null_ _null_ _null_ array_to_json_pretty _null_ _null_ _null_ ));
|
||||
DESCR("map array to json with optional pretty printing");
|
||||
DATA(insert OID = 3155 ( row_to_json PGNSP PGUID 12 1 0 0 0 f f f f t f s 1 0 114 "2249" _null_ _null_ _null_ _null_ row_to_json _null_ _null_ _null_ ));
|
||||
DESCR("map row to json");
|
||||
@@ -4466,13 +4470,13 @@ DATA(insert OID = 3849 ( upper PGNSP PGUID 12 1 0 0 0 f f f f t f i 1 0 2283 "
|
||||
DESCR("upper bound of range");
|
||||
DATA(insert OID = 3850 ( isempty PGNSP PGUID 12 1 0 0 0 f f f f t f i 1 0 16 "3831" _null_ _null_ _null_ _null_ range_empty _null_ _null_ _null_ ));
|
||||
DESCR("is the range empty?");
|
||||
DATA(insert OID = 3851 ( lower_inc PGNSP PGUID 12 1 0 0 0 f f f f t f i 1 0 16 "3831" _null_ _null_ _null_ _null_ range_lower_inc _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3851 ( lower_inc PGNSP PGUID 12 1 0 0 0 f f f f t f i 1 0 16 "3831" _null_ _null_ _null_ _null_ range_lower_inc _null_ _null_ _null_ ));
|
||||
DESCR("is the range's lower bound inclusive?");
|
||||
DATA(insert OID = 3852 ( upper_inc PGNSP PGUID 12 1 0 0 0 f f f f t f i 1 0 16 "3831" _null_ _null_ _null_ _null_ range_upper_inc _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3852 ( upper_inc PGNSP PGUID 12 1 0 0 0 f f f f t f i 1 0 16 "3831" _null_ _null_ _null_ _null_ range_upper_inc _null_ _null_ _null_ ));
|
||||
DESCR("is the range's upper bound inclusive?");
|
||||
DATA(insert OID = 3853 ( lower_inf PGNSP PGUID 12 1 0 0 0 f f f f t f i 1 0 16 "3831" _null_ _null_ _null_ _null_ range_lower_inf _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3853 ( lower_inf PGNSP PGUID 12 1 0 0 0 f f f f t f i 1 0 16 "3831" _null_ _null_ _null_ _null_ range_lower_inf _null_ _null_ _null_ ));
|
||||
DESCR("is the range's lower bound infinite?");
|
||||
DATA(insert OID = 3854 ( upper_inf PGNSP PGUID 12 1 0 0 0 f f f f t f i 1 0 16 "3831" _null_ _null_ _null_ _null_ range_upper_inf _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3854 ( upper_inf PGNSP PGUID 12 1 0 0 0 f f f f t f i 1 0 16 "3831" _null_ _null_ _null_ _null_ range_upper_inf _null_ _null_ _null_ ));
|
||||
DESCR("is the range's upper bound infinite?");
|
||||
DATA(insert OID = 3855 ( range_eq PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ range_eq _null_ _null_ _null_ ));
|
||||
DESCR("implementation of = operator");
|
||||
@@ -4504,19 +4508,19 @@ DATA(insert OID = 3868 ( range_intersect PGNSP PGUID 12 1 0 0 0 f f f f t f i 2
|
||||
DESCR("implementation of * operator");
|
||||
DATA(insert OID = 3869 ( range_minus PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 3831 "3831 3831" _null_ _null_ _null_ _null_ range_minus _null_ _null_ _null_ ));
|
||||
DESCR("implementation of - operator");
|
||||
DATA(insert OID = 3870 ( range_cmp PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 23 "3831 3831" _null_ _null_ _null_ _null_ range_cmp _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3870 ( range_cmp PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 23 "3831 3831" _null_ _null_ _null_ _null_ range_cmp _null_ _null_ _null_ ));
|
||||
DESCR("less-equal-greater");
|
||||
DATA(insert OID = 3871 ( range_lt PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ range_lt _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3872 ( range_le PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ range_le _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3873 ( range_ge PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ range_ge _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3874 ( range_gt PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 16 "3831 3831" _null_ _null_ _null_ _null_ range_gt _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3875 ( range_gist_consistent PGNSP PGUID 12 1 0 0 0 f f f f t f i 5 0 16 "2281 3831 23 26 2281" _null_ _null_ _null_ _null_ range_gist_consistent _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3875 ( range_gist_consistent PGNSP PGUID 12 1 0 0 0 f f f f t f i 5 0 16 "2281 3831 23 26 2281" _null_ _null_ _null_ _null_ range_gist_consistent _null_ _null_ _null_ ));
|
||||
DESCR("GiST support");
|
||||
DATA(insert OID = 3876 ( range_gist_union PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ range_gist_union _null_ _null_ _null_ ));
|
||||
DESCR("GiST support");
|
||||
DATA(insert OID = 3877 ( range_gist_compress PGNSP PGUID 12 1 0 0 0 f f f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ range_gist_compress _null_ _null_ _null_ ));
|
||||
DESCR("GiST support");
|
||||
DATA(insert OID = 3878 ( range_gist_decompress PGNSP PGUID 12 1 0 0 0 f f f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ range_gist_decompress _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3878 ( range_gist_decompress PGNSP PGUID 12 1 0 0 0 f f f f t f i 1 0 2281 "2281" _null_ _null_ _null_ _null_ range_gist_decompress _null_ _null_ _null_ ));
|
||||
DESCR("GiST support");
|
||||
DATA(insert OID = 3879 ( range_gist_penalty PGNSP PGUID 12 1 0 0 0 f f f f t f i 3 0 2281 "2281 2281 2281" _null_ _null_ _null_ _null_ range_gist_penalty _null_ _null_ _null_ ));
|
||||
DESCR("GiST support");
|
||||
@@ -4524,7 +4528,7 @@ DATA(insert OID = 3880 ( range_gist_picksplit PGNSP PGUID 12 1 0 0 0 f f f f t
|
||||
DESCR("GiST support");
|
||||
DATA(insert OID = 3881 ( range_gist_same PGNSP PGUID 12 1 0 0 0 f f f f t f i 3 0 2281 "3831 3831 2281" _null_ _null_ _null_ _null_ range_gist_same _null_ _null_ _null_ ));
|
||||
DESCR("GiST support");
|
||||
DATA(insert OID = 3902 ( hash_range PGNSP PGUID 12 1 0 0 0 f f f f t f i 1 0 23 "3831" _null_ _null_ _null_ _null_ hash_range _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3902 ( hash_range PGNSP PGUID 12 1 0 0 0 f f f f t f i 1 0 23 "3831" _null_ _null_ _null_ _null_ hash_range _null_ _null_ _null_ ));
|
||||
DESCR("hash a range");
|
||||
DATA(insert OID = 3916 ( range_typanalyze PGNSP PGUID 12 1 0 0 0 f f f f t f s 1 0 16 "2281" _null_ _null_ _null_ _null_ range_typanalyze _null_ _null_ _null_ ));
|
||||
DESCR("range typanalyze");
|
||||
@@ -4548,9 +4552,9 @@ DESCR("float8 difference of two timestamp values");
|
||||
DATA(insert OID = 3930 ( tstzrange_subdiff PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 701 "1184 1184" _null_ _null_ _null_ _null_ tstzrange_subdiff _null_ _null_ _null_ ));
|
||||
DESCR("float8 difference of two timestamp with time zone values");
|
||||
|
||||
DATA(insert OID = 3840 ( int4range PGNSP PGUID 12 1 0 0 0 f f f f f f i 2 0 3904 "23 23" _null_ _null_ _null_ _null_ range_constructor2 _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3840 ( int4range PGNSP PGUID 12 1 0 0 0 f f f f f f i 2 0 3904 "23 23" _null_ _null_ _null_ _null_ range_constructor2 _null_ _null_ _null_ ));
|
||||
DESCR("int4range constructor");
|
||||
DATA(insert OID = 3841 ( int4range PGNSP PGUID 12 1 0 0 0 f f f f f f i 3 0 3904 "23 23 25" _null_ _null_ _null_ _null_ range_constructor3 _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3841 ( int4range PGNSP PGUID 12 1 0 0 0 f f f f f f i 3 0 3904 "23 23 25" _null_ _null_ _null_ _null_ range_constructor3 _null_ _null_ _null_ ));
|
||||
DESCR("int4range constructor");
|
||||
DATA(insert OID = 3844 ( numrange PGNSP PGUID 12 1 0 0 0 f f f f f f i 2 0 3906 "1700 1700" _null_ _null_ _null_ _null_ range_constructor2 _null_ _null_ _null_ ));
|
||||
DESCR("numrange constructor");
|
||||
@@ -4560,17 +4564,17 @@ DATA(insert OID = 3933 ( tsrange PGNSP PGUID 12 1 0 0 0 f f f f f f i 2 0 3908
|
||||
DESCR("tsrange constructor");
|
||||
DATA(insert OID = 3934 ( tsrange PGNSP PGUID 12 1 0 0 0 f f f f f f i 3 0 3908 "1114 1114 25" _null_ _null_ _null_ _null_ range_constructor3 _null_ _null_ _null_ ));
|
||||
DESCR("tsrange constructor");
|
||||
DATA(insert OID = 3937 ( tstzrange PGNSP PGUID 12 1 0 0 0 f f f f f f i 2 0 3910 "1184 1184" _null_ _null_ _null_ _null_ range_constructor2 _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3937 ( tstzrange PGNSP PGUID 12 1 0 0 0 f f f f f f i 2 0 3910 "1184 1184" _null_ _null_ _null_ _null_ range_constructor2 _null_ _null_ _null_ ));
|
||||
DESCR("tstzrange constructor");
|
||||
DATA(insert OID = 3938 ( tstzrange PGNSP PGUID 12 1 0 0 0 f f f f f f i 3 0 3910 "1184 1184 25" _null_ _null_ _null_ _null_ range_constructor3 _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3938 ( tstzrange PGNSP PGUID 12 1 0 0 0 f f f f f f i 3 0 3910 "1184 1184 25" _null_ _null_ _null_ _null_ range_constructor3 _null_ _null_ _null_ ));
|
||||
DESCR("tstzrange constructor");
|
||||
DATA(insert OID = 3941 ( daterange PGNSP PGUID 12 1 0 0 0 f f f f f f i 2 0 3912 "1082 1082" _null_ _null_ _null_ _null_ range_constructor2 _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3941 ( daterange PGNSP PGUID 12 1 0 0 0 f f f f f f i 2 0 3912 "1082 1082" _null_ _null_ _null_ _null_ range_constructor2 _null_ _null_ _null_ ));
|
||||
DESCR("daterange constructor");
|
||||
DATA(insert OID = 3942 ( daterange PGNSP PGUID 12 1 0 0 0 f f f f f f i 3 0 3912 "1082 1082 25" _null_ _null_ _null_ _null_ range_constructor3 _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3942 ( daterange PGNSP PGUID 12 1 0 0 0 f f f f f f i 3 0 3912 "1082 1082 25" _null_ _null_ _null_ _null_ range_constructor3 _null_ _null_ _null_ ));
|
||||
DESCR("daterange constructor");
|
||||
DATA(insert OID = 3945 ( int8range PGNSP PGUID 12 1 0 0 0 f f f f f f i 2 0 3926 "20 20" _null_ _null_ _null_ _null_ range_constructor2 _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3945 ( int8range PGNSP PGUID 12 1 0 0 0 f f f f f f i 2 0 3926 "20 20" _null_ _null_ _null_ _null_ range_constructor2 _null_ _null_ _null_ ));
|
||||
DESCR("int8range constructor");
|
||||
DATA(insert OID = 3946 ( int8range PGNSP PGUID 12 1 0 0 0 f f f f f f i 3 0 3926 "20 20 25" _null_ _null_ _null_ _null_ range_constructor3 _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 3946 ( int8range PGNSP PGUID 12 1 0 0 0 f f f f f f i 3 0 3926 "20 20 25" _null_ _null_ _null_ _null_ range_constructor3 _null_ _null_ _null_ ));
|
||||
DESCR("int8range constructor");
|
||||
|
||||
/* spgist support functions */
|
||||
@@ -4596,7 +4600,7 @@ DATA(insert OID = 4010 ( spgbuildempty PGNSP PGUID 12 1 0 0 0 f f f f t f v
|
||||
DESCR("spgist(internal)");
|
||||
DATA(insert OID = 4011 ( spgbulkdelete PGNSP PGUID 12 1 0 0 0 f f f f t f v 4 0 2281 "2281 2281 2281 2281" _null_ _null_ _null_ _null_ spgbulkdelete _null_ _null_ _null_ ));
|
||||
DESCR("spgist(internal)");
|
||||
DATA(insert OID = 4012 ( spgvacuumcleanup PGNSP PGUID 12 1 0 0 0 f f f f t f v 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ spgvacuumcleanup _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 4012 ( spgvacuumcleanup PGNSP PGUID 12 1 0 0 0 f f f f t f v 2 0 2281 "2281 2281" _null_ _null_ _null_ _null_ spgvacuumcleanup _null_ _null_ _null_ ));
|
||||
DESCR("spgist(internal)");
|
||||
DATA(insert OID = 4032 ( spgcanreturn PGNSP PGUID 12 1 0 0 0 f f f f t f s 1 0 16 "2281" _null_ _null_ _null_ _null_ spgcanreturn _null_ _null_ _null_ ));
|
||||
DESCR("spgist(internal)");
|
||||
@@ -4612,14 +4616,14 @@ DATA(insert OID = 4019 ( spg_quad_choose PGNSP PGUID 12 1 0 0 0 f f f f t f i 2
|
||||
DESCR("SP-GiST support for quad tree over point");
|
||||
DATA(insert OID = 4020 ( spg_quad_picksplit PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ spg_quad_picksplit _null_ _null_ _null_ ));
|
||||
DESCR("SP-GiST support for quad tree over point");
|
||||
DATA(insert OID = 4021 ( spg_quad_inner_consistent PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ spg_quad_inner_consistent _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 4021 ( spg_quad_inner_consistent PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ spg_quad_inner_consistent _null_ _null_ _null_ ));
|
||||
DESCR("SP-GiST support for quad tree over point");
|
||||
DATA(insert OID = 4022 ( spg_quad_leaf_consistent PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 16 "2281 2281" _null_ _null_ _null_ _null_ spg_quad_leaf_consistent _null_ _null_ _null_ ));
|
||||
DESCR("SP-GiST support for quad tree and k-d tree over point");
|
||||
|
||||
DATA(insert OID = 4023 ( spg_kd_config PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ spg_kd_config _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 4023 ( spg_kd_config PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ spg_kd_config _null_ _null_ _null_ ));
|
||||
DESCR("SP-GiST support for k-d tree over point");
|
||||
DATA(insert OID = 4024 ( spg_kd_choose PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ spg_kd_choose _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 4024 ( spg_kd_choose PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ spg_kd_choose _null_ _null_ _null_ ));
|
||||
DESCR("SP-GiST support for k-d tree over point");
|
||||
DATA(insert OID = 4025 ( spg_kd_picksplit PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ spg_kd_picksplit _null_ _null_ _null_ ));
|
||||
DESCR("SP-GiST support for k-d tree over point");
|
||||
@@ -4632,7 +4636,7 @@ DATA(insert OID = 4028 ( spg_text_choose PGNSP PGUID 12 1 0 0 0 f f f f t f i 2
|
||||
DESCR("SP-GiST support for suffix tree over text");
|
||||
DATA(insert OID = 4029 ( spg_text_picksplit PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ spg_text_picksplit _null_ _null_ _null_ ));
|
||||
DESCR("SP-GiST support for suffix tree over text");
|
||||
DATA(insert OID = 4030 ( spg_text_inner_consistent PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ spg_text_inner_consistent _null_ _null_ _null_ ));
|
||||
DATA(insert OID = 4030 ( spg_text_inner_consistent PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 2278 "2281 2281" _null_ _null_ _null_ _null_ spg_text_inner_consistent _null_ _null_ _null_ ));
|
||||
DESCR("SP-GiST support for suffix tree over text");
|
||||
DATA(insert OID = 4031 ( spg_text_leaf_consistent PGNSP PGUID 12 1 0 0 0 f f f f t f i 2 0 16 "2281 2281" _null_ _null_ _null_ _null_ spg_text_leaf_consistent _null_ _null_ _null_ ));
|
||||
DESCR("SP-GiST support for suffix tree over text");
|
||||
@@ -4662,4 +4666,3 @@ DESCR("SP-GiST support for suffix tree over text");
|
||||
#define PROARGMODE_TABLE 't'
|
||||
|
||||
#endif /* PG_PROC_H */
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@
|
||||
* typedef struct FormData_pg_range
|
||||
* ----------------
|
||||
*/
|
||||
#define RangeRelationId 3541
|
||||
#define RangeRelationId 3541
|
||||
|
||||
CATALOG(pg_range,3541) BKI_WITHOUT_OIDS
|
||||
{
|
||||
@@ -65,12 +65,12 @@ typedef FormData_pg_range *Form_pg_range;
|
||||
* initial contents of pg_range
|
||||
* ----------------
|
||||
*/
|
||||
DATA(insert ( 3904 23 0 1978 int4range_canonical int4range_subdiff));
|
||||
DATA(insert ( 3904 23 0 1978 int4range_canonical int4range_subdiff));
|
||||
DATA(insert ( 3906 1700 0 3125 - numrange_subdiff));
|
||||
DATA(insert ( 3908 1114 0 3128 - tsrange_subdiff));
|
||||
DATA(insert ( 3910 1184 0 3127 - tstzrange_subdiff));
|
||||
DATA(insert ( 3912 1082 0 3122 daterange_canonical daterange_subdiff));
|
||||
DATA(insert ( 3926 20 0 3124 int8range_canonical int8range_subdiff));
|
||||
DATA(insert ( 3926 20 0 3124 int8range_canonical int8range_subdiff));
|
||||
|
||||
|
||||
/*
|
||||
|
||||
@@ -39,6 +39,7 @@ CATALOG(pg_rewrite,2618)
|
||||
char ev_type;
|
||||
char ev_enabled;
|
||||
bool is_instead;
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
pg_node_tree ev_qual;
|
||||
pg_node_tree ev_action;
|
||||
|
||||
@@ -25,6 +25,7 @@ CATALOG(pg_seclabel,3596) BKI_WITHOUT_OIDS
|
||||
Oid objoid; /* OID of the object itself */
|
||||
Oid classoid; /* OID of table containing the object */
|
||||
int4 objsubid; /* column number, or 0 if not used */
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
text provider; /* name of label provider */
|
||||
text label; /* security label of the object */
|
||||
|
||||
@@ -42,6 +42,7 @@ CATALOG(pg_shdescription,2396) BKI_SHARED_RELATION BKI_WITHOUT_OIDS
|
||||
{
|
||||
Oid objoid; /* OID of object itself */
|
||||
Oid classoid; /* OID of table containing object */
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
text description; /* description of object */
|
||||
#endif
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* -------------------------------------------------------------------------
|
||||
*
|
||||
* pg_shseclabel.h
|
||||
* definition of the system "security label" relation (pg_shseclabel)
|
||||
* definition of the system "security label" relation (pg_shseclabel)
|
||||
*
|
||||
* Portions Copyright (c) 1996-2012, PostgreSQL Global Development Group
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
@@ -22,11 +22,12 @@
|
||||
|
||||
CATALOG(pg_shseclabel,3592) BKI_SHARED_RELATION BKI_WITHOUT_OIDS
|
||||
{
|
||||
Oid objoid; /* OID of the shared object itself */
|
||||
Oid classoid; /* OID of table containing the shared object */
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
text provider; /* name of label provider */
|
||||
text label; /* security label of the object */
|
||||
Oid objoid; /* OID of the shared object itself */
|
||||
Oid classoid; /* OID of table containing the shared object */
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
text provider; /* name of label provider */
|
||||
text label; /* security label of the object */
|
||||
#endif
|
||||
} FormData_pg_shseclabel;
|
||||
|
||||
@@ -40,4 +41,4 @@ CATALOG(pg_shseclabel,3592) BKI_SHARED_RELATION BKI_WITHOUT_OIDS
|
||||
#define Anum_pg_shseclabel_provider 3
|
||||
#define Anum_pg_shseclabel_label 4
|
||||
|
||||
#endif /* PG_SHSECLABEL_H */
|
||||
#endif /* PG_SHSECLABEL_H */
|
||||
|
||||
@@ -105,7 +105,7 @@ CATALOG(pg_statistic,2619) BKI_WITHOUT_OIDS
|
||||
|
||||
/*
|
||||
* Values in these arrays are values of the column's data type, or of some
|
||||
* related type such as an array element type. We presently have to cheat
|
||||
* related type such as an array element type. We presently have to cheat
|
||||
* quite a bit to allow polymorphic arrays of this kind, but perhaps
|
||||
* someday it'll be a less bogus facility.
|
||||
*/
|
||||
@@ -258,7 +258,7 @@ typedef FormData_pg_statistic *Form_pg_statistic;
|
||||
/*
|
||||
* A "distinct elements count histogram" slot describes the distribution of
|
||||
* the number of distinct element values present in each row of an array-type
|
||||
* column. Only non-null rows are considered, and only non-null elements.
|
||||
* column. Only non-null rows are considered, and only non-null elements.
|
||||
* staop contains the equality operator appropriate to the element type.
|
||||
* stavalues is not used and should be NULL. The last member of stanumbers is
|
||||
* the average count of distinct element values over all non-null rows. The
|
||||
@@ -266,6 +266,6 @@ typedef FormData_pg_statistic *Form_pg_statistic;
|
||||
* distinct-elements counts into M-1 bins of approximately equal population.
|
||||
* The first of these is the minimum observed count, and the last the maximum.
|
||||
*/
|
||||
#define STATISTIC_KIND_DECHIST 5
|
||||
#define STATISTIC_KIND_DECHIST 5
|
||||
|
||||
#endif /* PG_STATISTIC_H */
|
||||
|
||||
@@ -32,6 +32,7 @@ CATALOG(pg_tablespace,1213) BKI_SHARED_RELATION
|
||||
{
|
||||
NameData spcname; /* tablespace name */
|
||||
Oid spcowner; /* owner of tablespace */
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
aclitem spcacl[1]; /* access permissions */
|
||||
text spcoptions[1]; /* per-tablespace options */
|
||||
|
||||
@@ -50,9 +50,12 @@ CATALOG(pg_trigger,2620)
|
||||
bool tginitdeferred; /* constraint trigger is deferred initially */
|
||||
int2 tgnargs; /* # of extra arguments in tgargs */
|
||||
|
||||
/* Variable-length fields start here, but we allow direct access to tgattr.
|
||||
* Note: tgattr and tgargs must not be null. */
|
||||
/*
|
||||
* Variable-length fields start here, but we allow direct access to
|
||||
* tgattr. Note: tgattr and tgargs must not be null.
|
||||
*/
|
||||
int2vector tgattr; /* column numbers, if trigger is on columns */
|
||||
|
||||
#ifdef CATALOG_VARLEN
|
||||
bytea tgargs; /* first\000second\000tgnargs\000 */
|
||||
pg_node_tree tgqual; /* WHEN expression, or NULL if none */
|
||||
|
||||
@@ -36,6 +36,7 @@ CATALOG(pg_ts_dict,3600)
|
||||
Oid dictnamespace; /* name space */
|
||||
Oid dictowner; /* owner */
|
||||
Oid dicttemplate; /* dictionary's template */
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
text dictinitoption; /* options passed to dict_init() */
|
||||
#endif
|
||||
|
||||
@@ -61,9 +61,8 @@ CATALOG(pg_type,1247) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71) BKI_SCHEMA_MACRO
|
||||
|
||||
/*
|
||||
* typtype is 'b' for a base type, 'c' for a composite type (e.g., a
|
||||
* table's rowtype), 'd' for a domain, 'e' for an enum type,
|
||||
* 'p' for a pseudo-type, or 'r' for a range type.
|
||||
* (Use the TYPTYPE macros below.)
|
||||
* table's rowtype), 'd' for a domain, 'e' for an enum type, 'p' for a
|
||||
* pseudo-type, or 'r' for a range type. (Use the TYPTYPE macros below.)
|
||||
*
|
||||
* If typtype is 'c', typrelid is the OID of the class' entry in pg_class.
|
||||
*/
|
||||
@@ -201,6 +200,7 @@ CATALOG(pg_type,1247) BKI_BOOTSTRAP BKI_ROWTYPE_OID(71) BKI_SCHEMA_MACRO
|
||||
Oid typcollation;
|
||||
|
||||
#ifdef CATALOG_VARLEN /* variable-length fields start here */
|
||||
|
||||
/*
|
||||
* If typdefaultbin is not NULL, it is the nodeToString representation of
|
||||
* a default expression for the type. Currently this is only used for
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
|
||||
|
||||
extern void ExecCreateTableAs(CreateTableAsStmt *stmt, const char *queryString,
|
||||
ParamListInfo params, char *completionTag);
|
||||
ParamListInfo params, char *completionTag);
|
||||
|
||||
extern int GetIntoRelEFlags(IntoClause *intoClause);
|
||||
|
||||
|
||||
@@ -149,7 +149,7 @@ extern List *deserialize_deflist(Datum txt);
|
||||
extern void RenameForeignServer(const char *oldname, const char *newname);
|
||||
extern void RenameForeignDataWrapper(const char *oldname, const char *newname);
|
||||
extern void AlterForeignServerOwner(const char *name, Oid newOwnerId);
|
||||
extern void AlterForeignServerOwner_oid(Oid , Oid newOwnerId);
|
||||
extern void AlterForeignServerOwner_oid(Oid, Oid newOwnerId);
|
||||
extern void AlterForeignDataWrapperOwner(const char *name, Oid newOwnerId);
|
||||
extern void AlterForeignDataWrapperOwner_oid(Oid fwdId, Oid newOwnerId);
|
||||
extern void CreateForeignDataWrapper(CreateFdwStmt *stmt);
|
||||
|
||||
@@ -42,7 +42,7 @@ typedef struct ExplainState
|
||||
|
||||
/* Hook for plugins to get control in ExplainOneQuery() */
|
||||
typedef void (*ExplainOneQuery_hook_type) (Query *query,
|
||||
IntoClause *into,
|
||||
IntoClause *into,
|
||||
ExplainState *es,
|
||||
const char *queryString,
|
||||
ParamListInfo params);
|
||||
|
||||
@@ -75,6 +75,6 @@ extern void AtEOSubXact_on_commit_actions(bool isCommit,
|
||||
SubTransactionId parentSubid);
|
||||
|
||||
extern void RangeVarCallbackOwnsTable(const RangeVar *relation,
|
||||
Oid relId, Oid oldRelId, void *arg);
|
||||
Oid relId, Oid oldRelId, void *arg);
|
||||
|
||||
#endif /* TABLECMDS_H */
|
||||
|
||||
@@ -34,7 +34,7 @@ extern void AlterDomainNotNull(List *names, bool notNull);
|
||||
extern void AlterDomainAddConstraint(List *names, Node *constr);
|
||||
extern void AlterDomainValidateConstraint(List *names, char *constrName);
|
||||
extern void AlterDomainDropConstraint(List *names, const char *constrName,
|
||||
DropBehavior behavior, bool missing_ok);
|
||||
DropBehavior behavior, bool missing_ok);
|
||||
|
||||
extern void checkDomainOwner(HeapTuple tup);
|
||||
|
||||
|
||||
@@ -62,9 +62,9 @@ typedef Datum (*AnalyzeAttrFetchFunc) (VacAttrStatsP stats, int rownum,
|
||||
bool *isNull);
|
||||
|
||||
typedef void (*AnalyzeAttrComputeStatsFunc) (VacAttrStatsP stats,
|
||||
AnalyzeAttrFetchFunc fetchfunc,
|
||||
int samplerows,
|
||||
double totalrows);
|
||||
AnalyzeAttrFetchFunc fetchfunc,
|
||||
int samplerows,
|
||||
double totalrows);
|
||||
|
||||
typedef struct VacAttrStats
|
||||
{
|
||||
|
||||
@@ -109,10 +109,10 @@ typedef struct
|
||||
* We allow numeric timezone offsets up to 15:59:59 either way from Greenwich.
|
||||
* Currently, the record holders for wackiest offsets in actual use are zones
|
||||
* Asia/Manila, at -15:56:00 until 1844, and America/Metlakatla, at +15:13:42
|
||||
* until 1867. If we were to reject such values we would fail to dump and
|
||||
* until 1867. If we were to reject such values we would fail to dump and
|
||||
* restore old timestamptz values with these zone settings.
|
||||
*/
|
||||
#define MAX_TZDISP_HOUR 15 /* maximum allowed hour part */
|
||||
#define MAX_TZDISP_HOUR 15 /* maximum allowed hour part */
|
||||
#define TZDISP_LIMIT ((MAX_TZDISP_HOUR + 1) * SECS_PER_HOUR)
|
||||
|
||||
/*
|
||||
@@ -121,7 +121,7 @@ typedef struct
|
||||
#ifdef HAVE_INT64_TIMESTAMP
|
||||
#define DT_NOBEGIN (-INT64CONST(0x7fffffffffffffff) - 1)
|
||||
#define DT_NOEND (INT64CONST(0x7fffffffffffffff))
|
||||
#else /* !HAVE_INT64_TIMESTAMP */
|
||||
#else /* !HAVE_INT64_TIMESTAMP */
|
||||
#ifdef HUGE_VAL
|
||||
#define DT_NOBEGIN (-HUGE_VAL)
|
||||
#define DT_NOEND (HUGE_VAL)
|
||||
@@ -164,7 +164,7 @@ typedef struct
|
||||
|| ((m) == JULIAN_MINMONTH && (d) >= JULIAN_MINDAY)))) \
|
||||
&& (y) < JULIAN_MAXYEAR)
|
||||
|
||||
#define JULIAN_MAX (2147483494) /* == date2j(JULIAN_MAXYEAR, 1, 1) */
|
||||
#define JULIAN_MAX (2147483494) /* == date2j(JULIAN_MAXYEAR, 1, 1) */
|
||||
|
||||
/* Julian-date equivalents of Day 0 in Unix and Postgres reckoning */
|
||||
#define UNIX_EPOCH_JDATE 2440588 /* == date2j(1970, 1, 1) */
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
* is responsible for there being a trigger context for them to be queued in.
|
||||
*
|
||||
* WITH/WITHOUT_OIDS tell the executor to emit tuples with or without space
|
||||
* for OIDs, respectively. These are currently used only for CREATE TABLE AS.
|
||||
* for OIDs, respectively. These are currently used only for CREATE TABLE AS.
|
||||
* If neither is set, the plan may or may not produce tuples including OIDs.
|
||||
*/
|
||||
#define EXEC_FLAG_EXPLAIN_ONLY 0x0001 /* EXPLAIN, no ANALYZE */
|
||||
|
||||
@@ -18,18 +18,18 @@
|
||||
|
||||
typedef struct BufferUsage
|
||||
{
|
||||
long shared_blks_hit; /* # of shared buffer hits */
|
||||
long shared_blks_hit; /* # of shared buffer hits */
|
||||
long shared_blks_read; /* # of shared disk blocks read */
|
||||
long shared_blks_dirtied; /* # of shared blocks dirtied */
|
||||
long shared_blks_written; /* # of shared disk blocks written */
|
||||
long local_blks_hit; /* # of local buffer hits */
|
||||
long local_blks_read; /* # of local disk blocks read */
|
||||
long local_blks_hit; /* # of local buffer hits */
|
||||
long local_blks_read; /* # of local disk blocks read */
|
||||
long local_blks_dirtied; /* # of shared blocks dirtied */
|
||||
long local_blks_written; /* # of local disk blocks written */
|
||||
long temp_blks_read; /* # of temp blocks read */
|
||||
long temp_blks_read; /* # of temp blocks read */
|
||||
long temp_blks_written; /* # of temp blocks written */
|
||||
instr_time blk_read_time; /* time spent reading */
|
||||
instr_time blk_write_time; /* time spent writing */
|
||||
instr_time blk_read_time; /* time spent reading */
|
||||
instr_time blk_write_time; /* time spent writing */
|
||||
} BufferUsage;
|
||||
|
||||
/* Flag bits included in InstrAlloc's instrument_options bitmask */
|
||||
@@ -44,7 +44,7 @@ typedef enum InstrumentOption
|
||||
typedef struct Instrumentation
|
||||
{
|
||||
/* Parameters set at node creation: */
|
||||
bool need_timer; /* TRUE if we need timer data */
|
||||
bool need_timer; /* TRUE if we need timer data */
|
||||
bool need_bufusage; /* TRUE if we need buffer usage data */
|
||||
/* Info about current plan cycle: */
|
||||
bool running; /* TRUE if we've completed first tuple */
|
||||
|
||||
@@ -48,7 +48,7 @@ typedef struct
|
||||
* adequate locks to prevent other backends from messing with the tables.
|
||||
*
|
||||
* For a saved plan, the plancxt is made a child of CacheMemoryContext
|
||||
* since it should persist until explicitly destroyed. Likewise, the
|
||||
* since it should persist until explicitly destroyed. Likewise, the
|
||||
* plancache entries will be under CacheMemoryContext since we tell
|
||||
* plancache.c to save them. We rely on plancache.c to keep the cache
|
||||
* entries up-to-date as needed in the face of invalidation events.
|
||||
|
||||
@@ -24,19 +24,19 @@ struct ExplainState;
|
||||
*/
|
||||
|
||||
typedef void (*GetForeignRelSize_function) (PlannerInfo *root,
|
||||
RelOptInfo *baserel,
|
||||
Oid foreigntableid);
|
||||
RelOptInfo *baserel,
|
||||
Oid foreigntableid);
|
||||
|
||||
typedef void (*GetForeignPaths_function) (PlannerInfo *root,
|
||||
RelOptInfo *baserel,
|
||||
Oid foreigntableid);
|
||||
RelOptInfo *baserel,
|
||||
Oid foreigntableid);
|
||||
|
||||
typedef ForeignScan *(*GetForeignPlan_function) (PlannerInfo *root,
|
||||
RelOptInfo *baserel,
|
||||
Oid foreigntableid,
|
||||
ForeignPath *best_path,
|
||||
List *tlist,
|
||||
List *scan_clauses);
|
||||
RelOptInfo *baserel,
|
||||
Oid foreigntableid,
|
||||
ForeignPath *best_path,
|
||||
List *tlist,
|
||||
List *scan_clauses);
|
||||
|
||||
typedef void (*ExplainForeignScan_function) (ForeignScanState *node,
|
||||
struct ExplainState *es);
|
||||
@@ -51,13 +51,13 @@ typedef void (*ReScanForeignScan_function) (ForeignScanState *node);
|
||||
typedef void (*EndForeignScan_function) (ForeignScanState *node);
|
||||
|
||||
typedef int (*AcquireSampleRowsFunc) (Relation relation, int elevel,
|
||||
HeapTuple *rows, int targrows,
|
||||
double *totalrows,
|
||||
double *totaldeadrows);
|
||||
HeapTuple *rows, int targrows,
|
||||
double *totalrows,
|
||||
double *totaldeadrows);
|
||||
|
||||
typedef bool (*AnalyzeForeignTable_function) (Relation relation,
|
||||
AcquireSampleRowsFunc *func,
|
||||
BlockNumber *totalpages);
|
||||
AcquireSampleRowsFunc *func,
|
||||
BlockNumber *totalpages);
|
||||
|
||||
/*
|
||||
* FdwRoutine is the struct returned by a foreign-data wrapper's handler
|
||||
@@ -86,8 +86,8 @@ typedef struct FdwRoutine
|
||||
EndForeignScan_function EndForeignScan;
|
||||
|
||||
/*
|
||||
* These functions are optional. Set the pointer to NULL for any
|
||||
* that are not provided.
|
||||
* These functions are optional. Set the pointer to NULL for any that are
|
||||
* not provided.
|
||||
*/
|
||||
AnalyzeForeignTable_function AnalyzeForeignTable;
|
||||
} FdwRoutine;
|
||||
|
||||
@@ -105,7 +105,8 @@ __attribute__((format(PG_PRINTF_ATTRIBUTE, 2, 3)));
|
||||
* without modifying str. Typically the caller would enlarge str and retry
|
||||
* on false return --- see appendStringInfo for standard usage pattern.
|
||||
*/
|
||||
extern bool appendStringInfoVA(StringInfo str, const char *fmt, va_list args)
|
||||
extern bool
|
||||
appendStringInfoVA(StringInfo str, const char *fmt, va_list args)
|
||||
__attribute__((format(PG_PRINTF_ATTRIBUTE, 2, 0)));
|
||||
|
||||
/*------------------------
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
#ifndef HBA_H
|
||||
#define HBA_H
|
||||
|
||||
#include "libpq/pqcomm.h" /* pgrminclude ignore */ /* needed for NetBSD */
|
||||
#include "libpq/pqcomm.h" /* pgrminclude ignore */ /* needed for NetBSD */
|
||||
#include "nodes/pg_list.h"
|
||||
|
||||
|
||||
|
||||
@@ -15,8 +15,8 @@
|
||||
#ifndef IP_H
|
||||
#define IP_H
|
||||
|
||||
#include "getaddrinfo.h" /* pgrminclude ignore */
|
||||
#include "libpq/pqcomm.h" /* pgrminclude ignore */
|
||||
#include "getaddrinfo.h" /* pgrminclude ignore */
|
||||
#include "libpq/pqcomm.h" /* pgrminclude ignore */
|
||||
|
||||
|
||||
#ifdef HAVE_UNIX_SOCKETS
|
||||
|
||||
@@ -1100,7 +1100,7 @@ typedef struct MergeAppendState
|
||||
PlanState **mergeplans; /* array of PlanStates for my inputs */
|
||||
int ms_nplans;
|
||||
int ms_nkeys;
|
||||
SortSupport ms_sortkeys; /* array of length ms_nkeys */
|
||||
SortSupport ms_sortkeys; /* array of length ms_nkeys */
|
||||
TupleTableSlot **ms_slots; /* array of length ms_nplans */
|
||||
int *ms_heap; /* array of length ms_nplans */
|
||||
int ms_heap_size; /* current active length of ms_heap[] */
|
||||
|
||||
@@ -706,7 +706,7 @@ typedef struct RangeTblEntry
|
||||
* Fields valid for a subquery RTE (else NULL):
|
||||
*/
|
||||
Query *subquery; /* the sub-query */
|
||||
bool security_barrier; /* subquery from security_barrier view */
|
||||
bool security_barrier; /* subquery from security_barrier view */
|
||||
|
||||
/*
|
||||
* Fields valid for a join RTE (else NULL/zero):
|
||||
@@ -1171,7 +1171,7 @@ typedef struct AlterTableStmt
|
||||
RangeVar *relation; /* table to work on */
|
||||
List *cmds; /* list of subcommands */
|
||||
ObjectType relkind; /* type of object */
|
||||
bool missing_ok; /* skip error if table missing */
|
||||
bool missing_ok; /* skip error if table missing */
|
||||
} AlterTableStmt;
|
||||
|
||||
typedef enum AlterTableType
|
||||
@@ -1193,14 +1193,14 @@ typedef enum AlterTableType
|
||||
AT_AddConstraint, /* add constraint */
|
||||
AT_AddConstraintRecurse, /* internal to commands/tablecmds.c */
|
||||
AT_ValidateConstraint, /* validate constraint */
|
||||
AT_ValidateConstraintRecurse, /* internal to commands/tablecmds.c */
|
||||
AT_ValidateConstraintRecurse, /* internal to commands/tablecmds.c */
|
||||
AT_ProcessedConstraint, /* pre-processed add constraint (local in
|
||||
* parser/parse_utilcmd.c) */
|
||||
AT_AddIndexConstraint, /* add constraint using existing index */
|
||||
AT_DropConstraint, /* drop constraint */
|
||||
AT_DropConstraintRecurse, /* internal to commands/tablecmds.c */
|
||||
AT_AlterColumnType, /* alter column type */
|
||||
AT_AlterColumnGenericOptions, /* alter column OPTIONS (...) */
|
||||
AT_AlterColumnGenericOptions, /* alter column OPTIONS (...) */
|
||||
AT_ChangeOwner, /* change owner */
|
||||
AT_ClusterOn, /* CLUSTER ON */
|
||||
AT_DropCluster, /* SET WITHOUT CLUSTER */
|
||||
@@ -1477,7 +1477,7 @@ typedef struct CreateStmt
|
||||
*
|
||||
* If skip_validation is true then we skip checking that the existing rows
|
||||
* in the table satisfy the constraint, and just install the catalog entries
|
||||
* for the constraint. A new FK constraint is marked as valid iff
|
||||
* for the constraint. A new FK constraint is marked as valid iff
|
||||
* initially_valid is true. (Usually skip_validation and initially_valid
|
||||
* are inverses, but we can set both true if the table is known empty.)
|
||||
*
|
||||
@@ -1967,7 +1967,7 @@ typedef struct SecLabelStmt
|
||||
#define CURSOR_OPT_HOLD 0x0010 /* WITH HOLD */
|
||||
/* these planner-control flags do not correspond to any SQL grammar: */
|
||||
#define CURSOR_OPT_FAST_PLAN 0x0020 /* prefer fast-start plan */
|
||||
#define CURSOR_OPT_GENERIC_PLAN 0x0040 /* force use of generic plan */
|
||||
#define CURSOR_OPT_GENERIC_PLAN 0x0040 /* force use of generic plan */
|
||||
#define CURSOR_OPT_CUSTOM_PLAN 0x0080 /* force use of custom plan */
|
||||
|
||||
typedef struct DeclareCursorStmt
|
||||
@@ -2122,7 +2122,7 @@ typedef struct RenameStmt
|
||||
* trigger, etc) */
|
||||
char *newname; /* the new name */
|
||||
DropBehavior behavior; /* RESTRICT or CASCADE behavior */
|
||||
bool missing_ok; /* skip error if missing? */
|
||||
bool missing_ok; /* skip error if missing? */
|
||||
} RenameStmt;
|
||||
|
||||
/* ----------------------
|
||||
@@ -2138,7 +2138,7 @@ typedef struct AlterObjectSchemaStmt
|
||||
List *objarg; /* argument types, if applicable */
|
||||
char *addname; /* additional name if needed */
|
||||
char *newschema; /* the new schema */
|
||||
bool missing_ok; /* skip error if missing? */
|
||||
bool missing_ok; /* skip error if missing? */
|
||||
} AlterObjectSchemaStmt;
|
||||
|
||||
/* ----------------------
|
||||
@@ -2413,7 +2413,7 @@ typedef struct CreateTableAsStmt
|
||||
NodeTag type;
|
||||
Node *query; /* the query (see comments above) */
|
||||
IntoClause *into; /* destination table */
|
||||
bool is_select_into; /* it was written as SELECT INTO */
|
||||
bool is_select_into; /* it was written as SELECT INTO */
|
||||
} CreateTableAsStmt;
|
||||
|
||||
/* ----------------------
|
||||
|
||||
@@ -125,9 +125,9 @@ typedef struct Expr
|
||||
* The code doesn't really need varnoold/varoattno, but they are very useful
|
||||
* for debugging and interpreting completed plans, so we keep them around.
|
||||
*/
|
||||
#define INNER_VAR 65000 /* reference to inner subplan */
|
||||
#define OUTER_VAR 65001 /* reference to outer subplan */
|
||||
#define INDEX_VAR 65002 /* reference to index column */
|
||||
#define INNER_VAR 65000 /* reference to inner subplan */
|
||||
#define OUTER_VAR 65001 /* reference to outer subplan */
|
||||
#define INDEX_VAR 65002 /* reference to index column */
|
||||
|
||||
#define IS_SPECIAL_VARNO(varno) ((varno) >= INNER_VAR)
|
||||
|
||||
@@ -847,13 +847,13 @@ typedef struct ArrayExpr
|
||||
* the same as the number of columns logically present in the rowtype.
|
||||
*
|
||||
* colnames provides field names in cases where the names can't easily be
|
||||
* obtained otherwise. Names *must* be provided if row_typeid is RECORDOID.
|
||||
* obtained otherwise. Names *must* be provided if row_typeid is RECORDOID.
|
||||
* If row_typeid identifies a known composite type, colnames can be NIL to
|
||||
* indicate the type's cataloged field names apply. Note that colnames can
|
||||
* be non-NIL even for a composite type, and typically is when the RowExpr
|
||||
* was created by expanding a whole-row Var. This is so that we can retain
|
||||
* the column alias names of the RTE that the Var referenced (which would
|
||||
* otherwise be very difficult to extract from the parsetree). Like the
|
||||
* otherwise be very difficult to extract from the parsetree). Like the
|
||||
* args list, colnames is one-for-one with physical fields of the rowtype.
|
||||
*/
|
||||
typedef struct RowExpr
|
||||
|
||||
@@ -147,8 +147,8 @@ typedef struct PlannerInfo
|
||||
|
||||
/*
|
||||
* all_baserels is a Relids set of all base relids (but not "other"
|
||||
* relids) in the query; that is, the Relids identifier of the final
|
||||
* join we need to form.
|
||||
* relids) in the query; that is, the Relids identifier of the final join
|
||||
* we need to form.
|
||||
*/
|
||||
Relids all_baserels;
|
||||
|
||||
@@ -423,7 +423,7 @@ typedef struct RelOptInfo
|
||||
struct Plan *subplan; /* if subquery */
|
||||
PlannerInfo *subroot; /* if subquery */
|
||||
/* use "struct FdwRoutine" to avoid including fdwapi.h here */
|
||||
struct FdwRoutine *fdwroutine; /* if foreign table */
|
||||
struct FdwRoutine *fdwroutine; /* if foreign table */
|
||||
void *fdw_private; /* if foreign table */
|
||||
|
||||
/* used by various scans and joins: */
|
||||
@@ -575,7 +575,7 @@ typedef struct EquivalenceClass
|
||||
*
|
||||
* em_is_child signifies that this element was built by transposing a member
|
||||
* for an appendrel parent relation to represent the corresponding expression
|
||||
* for an appendrel child. These members are used for determining the
|
||||
* for an appendrel child. These members are used for determining the
|
||||
* pathkeys of scans on the child relation and for explicitly sorting the
|
||||
* child when necessary to build a MergeAppend path for the whole appendrel
|
||||
* tree. An em_is_child member has no impact on the properties of the EC as a
|
||||
@@ -668,7 +668,7 @@ typedef struct ParamPathInfo
|
||||
* "param_info", if not NULL, links to a ParamPathInfo that identifies outer
|
||||
* relation(s) that provide parameter values to each scan of this path.
|
||||
* That means this path can only be joined to those rels by means of nestloop
|
||||
* joins with this path on the inside. Also note that a parameterized path
|
||||
* joins with this path on the inside. Also note that a parameterized path
|
||||
* is responsible for testing all "movable" joinclauses involving this rel
|
||||
* and the specified outer rel(s).
|
||||
*
|
||||
@@ -832,7 +832,7 @@ typedef struct TidPath
|
||||
/*
|
||||
* ForeignPath represents a potential scan of a foreign table
|
||||
*
|
||||
* fdw_private stores FDW private data about the scan. While fdw_private is
|
||||
* fdw_private stores FDW private data about the scan. While fdw_private is
|
||||
* not actually touched by the core code during normal operations, it's
|
||||
* generally a good idea to use a representation that can be dumped by
|
||||
* nodeToString(), so that you can examine the structure during debugging
|
||||
@@ -1483,7 +1483,7 @@ typedef struct MinMaxAggInfo
|
||||
* value in the Var will always be zero.
|
||||
*
|
||||
* A PlaceHolderVar: this works much like the Var case, except that the
|
||||
* entry is a PlaceHolderVar node with a contained expression. The PHV
|
||||
* entry is a PlaceHolderVar node with a contained expression. The PHV
|
||||
* will have phlevelsup = 0, and the contained expression is adjusted
|
||||
* to match in level.
|
||||
*
|
||||
|
||||
@@ -67,9 +67,9 @@ extern double clamp_row_est(double nrows);
|
||||
extern double index_pages_fetched(double tuples_fetched, BlockNumber pages,
|
||||
double index_pages, PlannerInfo *root);
|
||||
extern void cost_seqscan(Path *path, PlannerInfo *root, RelOptInfo *baserel,
|
||||
ParamPathInfo *param_info);
|
||||
ParamPathInfo *param_info);
|
||||
extern void cost_index(IndexPath *path, PlannerInfo *root,
|
||||
double loop_count);
|
||||
double loop_count);
|
||||
extern void cost_bitmap_heap_scan(Path *path, PlannerInfo *root, RelOptInfo *baserel,
|
||||
ParamPathInfo *param_info,
|
||||
Path *bitmapqual, double loop_count);
|
||||
@@ -79,7 +79,7 @@ extern void cost_bitmap_tree_node(Path *path, Cost *cost, Selectivity *selec);
|
||||
extern void cost_tidscan(Path *path, PlannerInfo *root,
|
||||
RelOptInfo *baserel, List *tidquals);
|
||||
extern void cost_subqueryscan(Path *path, PlannerInfo *root,
|
||||
RelOptInfo *baserel, ParamPathInfo *param_info);
|
||||
RelOptInfo *baserel, ParamPathInfo *param_info);
|
||||
extern void cost_functionscan(Path *path, PlannerInfo *root,
|
||||
RelOptInfo *baserel);
|
||||
extern void cost_valuesscan(Path *path, PlannerInfo *root,
|
||||
@@ -153,14 +153,14 @@ extern void compute_semi_anti_join_factors(PlannerInfo *root,
|
||||
SemiAntiJoinFactors *semifactors);
|
||||
extern void set_baserel_size_estimates(PlannerInfo *root, RelOptInfo *rel);
|
||||
extern double get_parameterized_baserel_size(PlannerInfo *root,
|
||||
RelOptInfo *rel,
|
||||
List *param_clauses);
|
||||
RelOptInfo *rel,
|
||||
List *param_clauses);
|
||||
extern double get_parameterized_joinrel_size(PlannerInfo *root,
|
||||
RelOptInfo *rel,
|
||||
double outer_rows,
|
||||
double inner_rows,
|
||||
SpecialJoinInfo *sjinfo,
|
||||
List *restrict_clauses);
|
||||
RelOptInfo *rel,
|
||||
double outer_rows,
|
||||
double inner_rows,
|
||||
SpecialJoinInfo *sjinfo,
|
||||
List *restrict_clauses);
|
||||
extern void set_joinrel_size_estimates(PlannerInfo *root, RelOptInfo *rel,
|
||||
RelOptInfo *outer_rel,
|
||||
RelOptInfo *inner_rel,
|
||||
|
||||
@@ -31,7 +31,7 @@ extern bool add_path_precheck(RelOptInfo *parent_rel,
|
||||
List *pathkeys, Relids required_outer);
|
||||
|
||||
extern Path *create_seqscan_path(PlannerInfo *root, RelOptInfo *rel,
|
||||
Relids required_outer);
|
||||
Relids required_outer);
|
||||
extern IndexPath *create_index_path(PlannerInfo *root,
|
||||
IndexOptInfo *index,
|
||||
List *indexclauses,
|
||||
@@ -57,7 +57,7 @@ extern BitmapOrPath *create_bitmap_or_path(PlannerInfo *root,
|
||||
extern TidPath *create_tidscan_path(PlannerInfo *root, RelOptInfo *rel,
|
||||
List *tidquals);
|
||||
extern AppendPath *create_append_path(RelOptInfo *rel, List *subpaths,
|
||||
Relids required_outer);
|
||||
Relids required_outer);
|
||||
extern MergeAppendPath *create_merge_append_path(PlannerInfo *root,
|
||||
RelOptInfo *rel,
|
||||
List *subpaths,
|
||||
@@ -68,7 +68,7 @@ extern MaterialPath *create_material_path(RelOptInfo *rel, Path *subpath);
|
||||
extern UniquePath *create_unique_path(PlannerInfo *root, RelOptInfo *rel,
|
||||
Path *subpath, SpecialJoinInfo *sjinfo);
|
||||
extern Path *create_subqueryscan_path(PlannerInfo *root, RelOptInfo *rel,
|
||||
List *pathkeys, Relids required_outer);
|
||||
List *pathkeys, Relids required_outer);
|
||||
extern Path *create_functionscan_path(PlannerInfo *root, RelOptInfo *rel);
|
||||
extern Path *create_valuesscan_path(PlannerInfo *root, RelOptInfo *rel);
|
||||
extern Path *create_ctescan_path(PlannerInfo *root, RelOptInfo *rel);
|
||||
@@ -139,18 +139,18 @@ extern RelOptInfo *build_join_rel(PlannerInfo *root,
|
||||
SpecialJoinInfo *sjinfo,
|
||||
List **restrictlist_ptr);
|
||||
extern AppendRelInfo *find_childrel_appendrelinfo(PlannerInfo *root,
|
||||
RelOptInfo *rel);
|
||||
RelOptInfo *rel);
|
||||
extern ParamPathInfo *get_baserel_parampathinfo(PlannerInfo *root,
|
||||
RelOptInfo *baserel,
|
||||
Relids required_outer);
|
||||
RelOptInfo *baserel,
|
||||
Relids required_outer);
|
||||
extern ParamPathInfo *get_joinrel_parampathinfo(PlannerInfo *root,
|
||||
RelOptInfo *joinrel,
|
||||
Path *outer_path,
|
||||
Path *inner_path,
|
||||
SpecialJoinInfo *sjinfo,
|
||||
Relids required_outer,
|
||||
List **restrict_clauses);
|
||||
RelOptInfo *joinrel,
|
||||
Path *outer_path,
|
||||
Path *inner_path,
|
||||
SpecialJoinInfo *sjinfo,
|
||||
Relids required_outer,
|
||||
List **restrict_clauses);
|
||||
extern ParamPathInfo *get_appendrel_parampathinfo(RelOptInfo *appendrel,
|
||||
Relids required_outer);
|
||||
Relids required_outer);
|
||||
|
||||
#endif /* PATHNODE_H */
|
||||
|
||||
@@ -50,8 +50,8 @@ extern bool relation_has_unique_index_for(PlannerInfo *root, RelOptInfo *rel,
|
||||
List *restrictlist,
|
||||
List *exprlist, List *oprlist);
|
||||
extern bool eclass_member_matches_indexcol(EquivalenceClass *ec,
|
||||
EquivalenceMember *em,
|
||||
IndexOptInfo *index, int indexcol);
|
||||
EquivalenceMember *em,
|
||||
IndexOptInfo *index, int indexcol);
|
||||
extern bool match_index_to_operand(Node *operand, int indexcol,
|
||||
IndexOptInfo *index);
|
||||
extern void expand_indexqual_conditions(IndexOptInfo *index,
|
||||
|
||||
@@ -53,6 +53,6 @@ extern Plan *plan_set_operations(PlannerInfo *root, double tuple_fraction,
|
||||
extern void expand_inherited_tables(PlannerInfo *root);
|
||||
|
||||
extern Node *adjust_appendrel_attrs(PlannerInfo *root, Node *node,
|
||||
AppendRelInfo *appinfo);
|
||||
AppendRelInfo *appinfo);
|
||||
|
||||
#endif /* PREP_H */
|
||||
|
||||
@@ -31,7 +31,7 @@ extern Param *SS_make_initplan_from_plan(PlannerInfo *root, Plan *plan,
|
||||
Oid resulttype, int32 resulttypmod, Oid resultcollation);
|
||||
extern Param *assign_nestloop_param_var(PlannerInfo *root, Var *var);
|
||||
extern Param *assign_nestloop_param_placeholdervar(PlannerInfo *root,
|
||||
PlaceHolderVar *phv);
|
||||
PlaceHolderVar *phv);
|
||||
extern int SS_assign_special_param(PlannerInfo *root);
|
||||
|
||||
#endif /* SUBSELECT_H */
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
|
||||
/* Hook for plugins to get control at end of parse analysis */
|
||||
typedef void (*post_parse_analyze_hook_type) (ParseState *pstate,
|
||||
Query *query);
|
||||
Query *query);
|
||||
extern PGDLLIMPORT post_parse_analyze_hook_type post_parse_analyze_hook;
|
||||
|
||||
|
||||
|
||||
@@ -182,7 +182,7 @@
|
||||
* which should be safe in nearly all cases. You might want to override
|
||||
* this if you are building 32-bit code for a known-recent PPC machine.
|
||||
*/
|
||||
#ifdef HAVE_PPC_LWARX_MUTEX_HINT /* must have assembler support in any case */
|
||||
#ifdef HAVE_PPC_LWARX_MUTEX_HINT /* must have assembler support in any case */
|
||||
#if defined(__ppc64__) || defined(__powerpc64__)
|
||||
#define USE_PPC_LWARX_MUTEX_HINT
|
||||
#endif
|
||||
@@ -190,7 +190,7 @@
|
||||
|
||||
/*
|
||||
* On PPC machines, decide whether to use LWSYNC instructions in place of
|
||||
* ISYNC and SYNC. This provides slightly better performance, but will
|
||||
* ISYNC and SYNC. This provides slightly better performance, but will
|
||||
* result in illegal-instruction failures on some pre-POWER4 machines.
|
||||
* By default we use LWSYNC when building for 64-bit PPC, which should be
|
||||
* safe in nearly all cases.
|
||||
|
||||
@@ -12,6 +12,6 @@
|
||||
#ifndef PG_TRACE_H
|
||||
#define PG_TRACE_H
|
||||
|
||||
#include "utils/probes.h" /* pgrminclude ignore */
|
||||
#include "utils/probes.h" /* pgrminclude ignore */
|
||||
|
||||
#endif /* PG_TRACE_H */
|
||||
|
||||
@@ -233,8 +233,8 @@ typedef struct PgStat_MsgTabstat
|
||||
int m_nentries;
|
||||
int m_xact_commit;
|
||||
int m_xact_rollback;
|
||||
PgStat_Counter m_block_read_time; /* times in microseconds */
|
||||
PgStat_Counter m_block_write_time;
|
||||
PgStat_Counter m_block_read_time; /* times in microseconds */
|
||||
PgStat_Counter m_block_write_time;
|
||||
PgStat_TableEntry m_entry[PGSTAT_NUM_TABENTRIES];
|
||||
} PgStat_MsgTabstat;
|
||||
|
||||
@@ -429,7 +429,7 @@ typedef struct PgStat_FunctionEntry
|
||||
{
|
||||
Oid f_id;
|
||||
PgStat_Counter f_numcalls;
|
||||
PgStat_Counter f_total_time; /* times in microseconds */
|
||||
PgStat_Counter f_total_time; /* times in microseconds */
|
||||
PgStat_Counter f_self_time;
|
||||
} PgStat_FunctionEntry;
|
||||
|
||||
@@ -540,7 +540,7 @@ typedef struct PgStat_StatDBEntry
|
||||
PgStat_Counter n_temp_files;
|
||||
PgStat_Counter n_temp_bytes;
|
||||
PgStat_Counter n_deadlocks;
|
||||
PgStat_Counter n_block_read_time; /* times in microseconds */
|
||||
PgStat_Counter n_block_read_time; /* times in microseconds */
|
||||
PgStat_Counter n_block_write_time;
|
||||
|
||||
TimestampTz stat_reset_timestamp;
|
||||
@@ -600,7 +600,7 @@ typedef struct PgStat_StatFuncEntry
|
||||
|
||||
PgStat_Counter f_numcalls;
|
||||
|
||||
PgStat_Counter f_total_time; /* times in microseconds */
|
||||
PgStat_Counter f_total_time; /* times in microseconds */
|
||||
PgStat_Counter f_self_time;
|
||||
} PgStat_StatFuncEntry;
|
||||
|
||||
@@ -629,7 +629,8 @@ typedef struct PgStat_GlobalStats
|
||||
* Backend states
|
||||
* ----------
|
||||
*/
|
||||
typedef enum BackendState {
|
||||
typedef enum BackendState
|
||||
{
|
||||
STATE_UNDEFINED,
|
||||
STATE_IDLE,
|
||||
STATE_RUNNING,
|
||||
@@ -674,7 +675,7 @@ typedef struct PgBackendStatus
|
||||
TimestampTz st_proc_start_timestamp;
|
||||
TimestampTz st_xact_start_timestamp;
|
||||
TimestampTz st_activity_start_timestamp;
|
||||
TimestampTz st_state_start_timestamp;
|
||||
TimestampTz st_state_start_timestamp;
|
||||
|
||||
/* Database OID, owning user's OID, connection client address */
|
||||
Oid st_databaseid;
|
||||
@@ -685,8 +686,8 @@ typedef struct PgBackendStatus
|
||||
/* Is backend currently waiting on an lmgr lock? */
|
||||
bool st_waiting;
|
||||
|
||||
/* current state */
|
||||
BackendState st_state;
|
||||
/* current state */
|
||||
BackendState st_state;
|
||||
|
||||
/* application name; MUST be null-terminated */
|
||||
char *st_appname;
|
||||
|
||||
@@ -244,7 +244,6 @@ __attribute__((format(PG_PRINTF_ATTRIBUTE, 1, 2)));
|
||||
extern char *pgwin32_setlocale(int category, const char *locale);
|
||||
|
||||
#define setlocale(a,b) pgwin32_setlocale(a,b)
|
||||
|
||||
#endif /* WIN32 */
|
||||
|
||||
/* Portable prompt handling */
|
||||
@@ -378,7 +377,7 @@ extern long pg_lrand48(void);
|
||||
extern void pg_srand48(long seed);
|
||||
|
||||
#ifndef HAVE_FLS
|
||||
extern int fls(int mask);
|
||||
extern int fls(int mask);
|
||||
#endif
|
||||
|
||||
#ifndef HAVE_FSEEKO
|
||||
|
||||
@@ -319,7 +319,7 @@ typedef int pid_t;
|
||||
#define ECONNREFUSED WSAECONNREFUSED
|
||||
#define EOPNOTSUPP WSAEOPNOTSUPP
|
||||
#pragma warning(default:4005)
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Extended locale functions with gratuitous underscore prefixes.
|
||||
|
||||
@@ -685,6 +685,6 @@ extern PGDLLIMPORT bool assert_enabled;
|
||||
|
||||
extern void ExceptionalCondition(const char *conditionName,
|
||||
const char *errorType,
|
||||
const char *fileName, int lineNumber) __attribute__((noreturn));
|
||||
const char *fileName, int lineNumber) __attribute__((noreturn));
|
||||
|
||||
#endif /* POSTGRES_H */
|
||||
|
||||
@@ -33,13 +33,15 @@ extern bool restart_after_crash;
|
||||
#ifdef WIN32
|
||||
extern HANDLE PostmasterHandle;
|
||||
#else
|
||||
extern int postmaster_alive_fds[2];
|
||||
extern int postmaster_alive_fds[2];
|
||||
|
||||
/*
|
||||
* Constants that represent which of postmaster_alive_fds is held by
|
||||
* postmaster, and which is used in children to check for postmaster death.
|
||||
*/
|
||||
#define POSTMASTER_FD_WATCH 0 /* used in children to check for postmaster death */
|
||||
#define POSTMASTER_FD_OWN 1 /* kept open by postmaster only */
|
||||
#define POSTMASTER_FD_WATCH 0 /* used in children to check for
|
||||
* postmaster death */
|
||||
#define POSTMASTER_FD_OWN 1 /* kept open by postmaster only */
|
||||
#endif
|
||||
|
||||
extern const char *progname;
|
||||
|
||||
@@ -186,12 +186,12 @@ union tree
|
||||
*
|
||||
* If "sub" is not NOSUB then it is the number of the color's current
|
||||
* subcolor, i.e. we are in process of dividing this color (character
|
||||
* equivalence class) into two colors. See src/backend/regex/README for
|
||||
* equivalence class) into two colors. See src/backend/regex/README for
|
||||
* discussion of subcolors.
|
||||
*
|
||||
* Currently-unused colors have the FREECOL bit set and are linked into a
|
||||
* freelist using their "sub" fields, but only if their color numbers are
|
||||
* less than colormap.max. Any array entries beyond "max" are just garbage.
|
||||
* less than colormap.max. Any array entries beyond "max" are just garbage.
|
||||
*/
|
||||
struct colordesc
|
||||
{
|
||||
|
||||
@@ -59,7 +59,7 @@ typedef struct
|
||||
*
|
||||
* Note that the data length is not specified here.
|
||||
*/
|
||||
typedef WalSndrMessage PrimaryKeepaliveMessage;
|
||||
typedef WalSndrMessage PrimaryKeepaliveMessage;
|
||||
|
||||
/*
|
||||
* Reply message from standby (message type 'r'). This is wrapped within
|
||||
|
||||
@@ -118,7 +118,7 @@ extern void ShutdownWalRcv(void);
|
||||
extern bool WalRcvInProgress(void);
|
||||
extern void RequestXLogStreaming(XLogRecPtr recptr, const char *conninfo);
|
||||
extern XLogRecPtr GetWalRcvWriteRecPtr(XLogRecPtr *latestChunkStart);
|
||||
extern int GetReplicationApplyDelay(void);
|
||||
extern int GetReplicationTransferLatency(void);
|
||||
extern int GetReplicationApplyDelay(void);
|
||||
extern int GetReplicationTransferLatency(void);
|
||||
|
||||
#endif /* _WALRECEIVER_H */
|
||||
|
||||
@@ -35,7 +35,8 @@ typedef struct WalSnd
|
||||
pid_t pid; /* this walsender's process id, or 0 */
|
||||
WalSndState state; /* this walsender's state */
|
||||
XLogRecPtr sentPtr; /* WAL has been sent up to this point */
|
||||
bool needreload; /* does currently-open file need to be reloaded? */
|
||||
bool needreload; /* does currently-open file need to be
|
||||
* reloaded? */
|
||||
|
||||
/*
|
||||
* The xlog locations that have been written, flushed, and applied by
|
||||
|
||||
@@ -23,7 +23,7 @@ extern void SetRelationRuleStatus(Oid relationId, bool relHasRules,
|
||||
bool relIsBecomingView);
|
||||
|
||||
extern Oid get_rewrite_oid(Oid relid, const char *rulename, bool missing_ok);
|
||||
extern Oid get_rewrite_oid_without_relid(const char *rulename,
|
||||
Oid *relid, bool missing_ok);
|
||||
extern Oid get_rewrite_oid_without_relid(const char *rulename,
|
||||
Oid *relid, bool missing_ok);
|
||||
|
||||
#endif /* REWRITESUPPORT_H */
|
||||
|
||||
@@ -33,7 +33,7 @@
|
||||
#endif
|
||||
|
||||
/* Now we can include the original Snowball header.h */
|
||||
#include "snowball/libstemmer/header.h" /* pgrminclude ignore */
|
||||
#include "snowball/libstemmer/header.h" /* pgrminclude ignore */
|
||||
|
||||
/*
|
||||
* Redefine standard memory allocation interface to pgsql's one.
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
#include "storage/s_lock.h"
|
||||
|
||||
extern slock_t dummy_spinlock;
|
||||
extern slock_t dummy_spinlock;
|
||||
|
||||
/*
|
||||
* A compiler barrier need not (and preferably should not) emit any actual
|
||||
@@ -30,10 +30,10 @@ extern slock_t dummy_spinlock;
|
||||
* loads and stores are totally ordered (which is not the case on most
|
||||
* architectures) this requires issuing some sort of memory fencing
|
||||
* instruction.
|
||||
*
|
||||
*
|
||||
* A read barrier must act as a compiler barrier, and in addition must
|
||||
* guarantee that any loads issued prior to the barrier are completed before
|
||||
* any loads issued after the barrier. Similarly, a write barrier acts
|
||||
* any loads issued after the barrier. Similarly, a write barrier acts
|
||||
* as a compiler barrier, and also orders stores. Read and write barriers
|
||||
* are thus weaker than a full memory barrier, but stronger than a compiler
|
||||
* barrier. In practice, on machines with strong memory ordering, read and
|
||||
@@ -48,7 +48,6 @@ extern slock_t dummy_spinlock;
|
||||
/*
|
||||
* Fall through to the spinlock-based implementation.
|
||||
*/
|
||||
|
||||
#elif defined(__INTEL_COMPILER)
|
||||
|
||||
/*
|
||||
@@ -56,7 +55,6 @@ extern slock_t dummy_spinlock;
|
||||
*/
|
||||
#define pg_memory_barrier() _mm_mfence()
|
||||
#define pg_compiler_barrier() __memory_barrier()
|
||||
|
||||
#elif defined(__GNUC__)
|
||||
|
||||
/* This works on any architecture, since it's only talking to GCC itself. */
|
||||
@@ -75,7 +73,6 @@ extern slock_t dummy_spinlock;
|
||||
__asm__ __volatile__ ("lock; addl $0,0(%%esp)" : : : "memory")
|
||||
#define pg_read_barrier() pg_compiler_barrier()
|
||||
#define pg_write_barrier() pg_compiler_barrier()
|
||||
|
||||
#elif defined(__x86_64__) /* 64 bit x86 */
|
||||
|
||||
/*
|
||||
@@ -90,7 +87,6 @@ extern slock_t dummy_spinlock;
|
||||
__asm__ __volatile__ ("lock; addl $0,0(%%rsp)" : : : "memory")
|
||||
#define pg_read_barrier() pg_compiler_barrier()
|
||||
#define pg_write_barrier() pg_compiler_barrier()
|
||||
|
||||
#elif defined(__ia64__) || defined(__ia64)
|
||||
|
||||
/*
|
||||
@@ -98,7 +94,6 @@ extern slock_t dummy_spinlock;
|
||||
* fence.
|
||||
*/
|
||||
#define pg_memory_barrier() __asm__ __volatile__ ("mf" : : : "memory")
|
||||
|
||||
#elif defined(__ppc__) || defined(__powerpc__) || defined(__ppc64__) || defined(__powerpc64__)
|
||||
|
||||
/*
|
||||
@@ -109,8 +104,7 @@ extern slock_t dummy_spinlock;
|
||||
#define pg_memory_barrier() __asm__ __volatile__ ("sync" : : : "memory")
|
||||
#define pg_read_barrier() __asm__ __volatile__ ("lwsync" : : : "memory")
|
||||
#define pg_write_barrier() __asm__ __volatile__ ("lwsync" : : : "memory")
|
||||
|
||||
#elif defined(__alpha) || defined(__alpha__) /* Alpha */
|
||||
#elif defined(__alpha) || defined(__alpha__) /* Alpha */
|
||||
|
||||
/*
|
||||
* Unlike all other known architectures, Alpha allows dependent reads to be
|
||||
@@ -120,7 +114,6 @@ extern slock_t dummy_spinlock;
|
||||
#define pg_memory_barrier() __asm__ __volatile__ ("mb" : : : "memory")
|
||||
#define pg_read_barrier() __asm__ __volatile__ ("rmb" : : : "memory")
|
||||
#define pg_write_barrier() __asm__ __volatile__ ("wmb" : : : "memory")
|
||||
|
||||
#elif __GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)
|
||||
|
||||
/*
|
||||
@@ -129,14 +122,11 @@ extern slock_t dummy_spinlock;
|
||||
* own definitions where possible, and use this only as a fallback.
|
||||
*/
|
||||
#define pg_memory_barrier() __sync_synchronize()
|
||||
|
||||
#endif
|
||||
|
||||
#elif defined(__ia64__) || defined(__ia64)
|
||||
|
||||
#define pg_compiler_barrier() _Asm_sched_fence()
|
||||
#define pg_memory_barrier() _Asm_mf()
|
||||
|
||||
#elif defined(WIN32_ONLY_COMPILER)
|
||||
|
||||
/* Should work on both MSVC and Borland. */
|
||||
@@ -144,7 +134,6 @@ extern slock_t dummy_spinlock;
|
||||
#pragma intrinsic(_ReadWriteBarrier)
|
||||
#define pg_compiler_barrier() _ReadWriteBarrier()
|
||||
#define pg_memory_barrier() MemoryBarrier()
|
||||
|
||||
#endif
|
||||
|
||||
/*
|
||||
|
||||
@@ -68,7 +68,7 @@
|
||||
* than an ad-hoc shared latch for signaling auxiliary processes. This is
|
||||
* because generic signal handlers will call SetLatch on the process latch
|
||||
* only, so using any latch other than the process latch effectively precludes
|
||||
* ever registering a generic handler. Since signals have the potential to
|
||||
* ever registering a generic handler. Since signals have the potential to
|
||||
* invalidate the latch timeout on some platforms, resulting in a
|
||||
* denial-of-service, it is important to verify that all signal handlers
|
||||
* within all WaitLatch-calling processes call SetLatch.
|
||||
@@ -102,10 +102,10 @@ typedef struct
|
||||
} Latch;
|
||||
|
||||
/* Bitmasks for events that may wake-up WaitLatch() clients */
|
||||
#define WL_LATCH_SET (1 << 0)
|
||||
#define WL_SOCKET_READABLE (1 << 1)
|
||||
#define WL_LATCH_SET (1 << 0)
|
||||
#define WL_SOCKET_READABLE (1 << 1)
|
||||
#define WL_SOCKET_WRITEABLE (1 << 2)
|
||||
#define WL_TIMEOUT (1 << 3)
|
||||
#define WL_TIMEOUT (1 << 3)
|
||||
#define WL_POSTMASTER_DEATH (1 << 4)
|
||||
|
||||
/*
|
||||
@@ -115,7 +115,7 @@ extern void InitLatch(volatile Latch *latch);
|
||||
extern void InitSharedLatch(volatile Latch *latch);
|
||||
extern void OwnLatch(volatile Latch *latch);
|
||||
extern void DisownLatch(volatile Latch *latch);
|
||||
extern int WaitLatch(volatile Latch *latch, int wakeEvents, long timeout);
|
||||
extern int WaitLatch(volatile Latch *latch, int wakeEvents, long timeout);
|
||||
extern int WaitLatchOrSocket(volatile Latch *latch, int wakeEvents,
|
||||
pgsocket sock, long timeout);
|
||||
extern void SetLatch(volatile Latch *latch);
|
||||
|
||||
@@ -428,7 +428,7 @@ typedef struct LockInstanceData
|
||||
LOCKMASK holdMask; /* locks held by this PGPROC */
|
||||
LOCKMODE waitLockMode; /* lock awaited by this PGPROC, if any */
|
||||
BackendId backend; /* backend ID of this PGPROC */
|
||||
LocalTransactionId lxid; /* local transaction ID of this PGPROC */
|
||||
LocalTransactionId lxid; /* local transaction ID of this PGPROC */
|
||||
int pid; /* pid of this PGPROC */
|
||||
bool fastpath; /* taken via fastpath? */
|
||||
} LockInstanceData;
|
||||
@@ -436,7 +436,7 @@ typedef struct LockInstanceData
|
||||
typedef struct LockData
|
||||
{
|
||||
int nelements; /* The length of the array */
|
||||
LockInstanceData *locks;
|
||||
LockInstanceData *locks;
|
||||
} LockData;
|
||||
|
||||
|
||||
|
||||
@@ -95,9 +95,9 @@ typedef enum LWLockMode
|
||||
{
|
||||
LW_EXCLUSIVE,
|
||||
LW_SHARED,
|
||||
LW_WAIT_UNTIL_FREE /* A special mode used in PGPROC->lwlockMode, when
|
||||
* waiting for lock to become free. Not to be used
|
||||
* as LWLockAcquire argument */
|
||||
LW_WAIT_UNTIL_FREE /* A special mode used in PGPROC->lwlockMode,
|
||||
* when waiting for lock to become free. Not
|
||||
* to be used as LWLockAcquire argument */
|
||||
} LWLockMode;
|
||||
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ extern bool PageIsPredicateLocked(Relation relation, BlockNumber blkno);
|
||||
/* predicate lock maintenance */
|
||||
extern Snapshot GetSerializableTransactionSnapshot(Snapshot snapshot);
|
||||
extern void SetSerializableTransactionSnapshot(Snapshot snapshot,
|
||||
TransactionId sourcexid);
|
||||
TransactionId sourcexid);
|
||||
extern void RegisterPredicateLockingXid(TransactionId xid);
|
||||
extern void PredicateLockRelation(Relation relation, Snapshot snapshot);
|
||||
extern void PredicateLockPage(Relation relation, BlockNumber blkno, Snapshot snapshot);
|
||||
|
||||
@@ -131,14 +131,15 @@ struct PGPROC
|
||||
|
||||
struct XidCache subxids; /* cache for subtransaction XIDs */
|
||||
|
||||
/* Per-backend LWLock. Protects fields below. */
|
||||
/* Per-backend LWLock. Protects fields below. */
|
||||
LWLockId backendLock; /* protects the fields below */
|
||||
|
||||
/* Lock manager data, recording fast-path locks taken by this backend. */
|
||||
uint64 fpLockBits; /* lock modes held for each fast-path slot */
|
||||
Oid fpRelId[FP_LOCK_SLOTS_PER_BACKEND]; /* slots for rel oids */
|
||||
Oid fpRelId[FP_LOCK_SLOTS_PER_BACKEND]; /* slots for rel oids */
|
||||
bool fpVXIDLock; /* are we holding a fast-path VXID lock? */
|
||||
LocalTransactionId fpLocalTransactionId; /* lxid for fast-path VXID lock */
|
||||
LocalTransactionId fpLocalTransactionId; /* lxid for fast-path VXID
|
||||
* lock */
|
||||
};
|
||||
|
||||
/* NOTE: "typedef struct PGPROC PGPROC" appears in storage/lock.h. */
|
||||
@@ -149,7 +150,7 @@ extern PGDLLIMPORT struct PGXACT *MyPgXact;
|
||||
|
||||
/*
|
||||
* Prior to PostgreSQL 9.2, the fields below were stored as part of the
|
||||
* PGPROC. However, benchmarking revealed that packing these particular
|
||||
* PGPROC. However, benchmarking revealed that packing these particular
|
||||
* members into a separate array as tightly as possible sped up GetSnapshotData
|
||||
* considerably on systems with many CPU cores, by reducing the number of
|
||||
* cache lines needing to be fetched. Thus, think very carefully before adding
|
||||
|
||||
@@ -43,7 +43,7 @@ extern int GetMaxSnapshotSubxidCount(void);
|
||||
extern Snapshot GetSnapshotData(Snapshot snapshot);
|
||||
|
||||
extern bool ProcArrayInstallImportedXmin(TransactionId xmin,
|
||||
TransactionId sourcexid);
|
||||
TransactionId sourcexid);
|
||||
|
||||
extern RunningTransactions GetRunningTransactionData(void);
|
||||
|
||||
|
||||
@@ -33,8 +33,8 @@
|
||||
* updates and deletions in system catalogs (see CacheInvalidateHeapTuple).
|
||||
* An update can generate two inval events, one for the old tuple and one for
|
||||
* the new, but this is reduced to one event if the tuple's hash key doesn't
|
||||
* change. Note that the inval events themselves don't actually say whether
|
||||
* the tuple is being inserted or deleted. Also, since we transmit only a
|
||||
* change. Note that the inval events themselves don't actually say whether
|
||||
* the tuple is being inserted or deleted. Also, since we transmit only a
|
||||
* hash key, there is a small risk of unnecessary invalidations due to chance
|
||||
* matches of hash keys.
|
||||
*
|
||||
|
||||
@@ -60,7 +60,7 @@ typedef struct SMgrRelationData
|
||||
* submodules. Do not touch them from elsewhere.
|
||||
*/
|
||||
int smgr_which; /* storage manager selector */
|
||||
bool smgr_transient; /* T if files are to be closed at EOXact */
|
||||
bool smgr_transient; /* T if files are to be closed at EOXact */
|
||||
|
||||
/* for md.c; NULL for forks that are not open */
|
||||
struct _MdfdVec *md_fd[MAX_FORKNUM + 1];
|
||||
|
||||
@@ -91,11 +91,11 @@ typedef struct
|
||||
* and ( fot, ball, klubb ). So, dictionary should return:
|
||||
*
|
||||
* nvariant lexeme
|
||||
* 1 fotball
|
||||
* 1 klubb
|
||||
* 2 fot
|
||||
* 2 ball
|
||||
* 2 klubb
|
||||
* 1 fotball
|
||||
* 1 klubb
|
||||
* 2 fot
|
||||
* 2 ball
|
||||
* 2 klubb
|
||||
*
|
||||
* In general, a TSLexeme will be considered to belong to the same split
|
||||
* variant as the previous one if they have the same nvariant value.
|
||||
|
||||
@@ -278,7 +278,7 @@ extern AclMode pg_foreign_data_wrapper_aclmask(Oid fdw_oid, Oid roleid,
|
||||
extern AclMode pg_foreign_server_aclmask(Oid srv_oid, Oid roleid,
|
||||
AclMode mask, AclMaskHow how);
|
||||
extern AclMode pg_type_aclmask(Oid type_oid, Oid roleid,
|
||||
AclMode mask, AclMaskHow how);
|
||||
AclMode mask, AclMaskHow how);
|
||||
|
||||
extern AclResult pg_attribute_aclcheck(Oid table_oid, AttrNumber attnum,
|
||||
Oid roleid, AclMode mode);
|
||||
|
||||
@@ -311,7 +311,7 @@ extern Datum btnamecmp(PG_FUNCTION_ARGS);
|
||||
extern Datum bttextcmp(PG_FUNCTION_ARGS);
|
||||
|
||||
/*
|
||||
* Per-opclass sort support functions for new btrees. Like the
|
||||
* Per-opclass sort support functions for new btrees. Like the
|
||||
* functions above, these are stored in pg_amproc; most are defined in
|
||||
* access/nbtree/nbtcompare.c
|
||||
*/
|
||||
|
||||
@@ -313,7 +313,7 @@ extern void ParseLongOption(const char *string, char **name, char **value);
|
||||
extern bool parse_int(const char *value, int *result, int flags,
|
||||
const char **hintmsg);
|
||||
extern bool parse_real(const char *value, double *result);
|
||||
extern int set_config_option(const char *name, const char *value,
|
||||
extern int set_config_option(const char *name, const char *value,
|
||||
GucContext context, GucSource source,
|
||||
GucAction action, bool changeVal, int elevel);
|
||||
extern char *GetConfigOptionByName(const char *name, const char **varname);
|
||||
|
||||
@@ -120,7 +120,7 @@ typedef struct guc_stack
|
||||
GucSource source; /* source of the prior value */
|
||||
/* masked value's source must be PGC_S_SESSION, so no need to store it */
|
||||
GucContext scontext; /* context that set the prior value */
|
||||
GucContext masked_scontext; /* context that set the masked value */
|
||||
GucContext masked_scontext; /* context that set the masked value */
|
||||
config_var_value prior; /* previous value of variable */
|
||||
config_var_value masked; /* SET value in a GUC_SET_LOCAL entry */
|
||||
} GucStack;
|
||||
@@ -152,7 +152,7 @@ struct config_generic
|
||||
GucSource source; /* source of the current actual value */
|
||||
GucSource reset_source; /* source of the reset_value */
|
||||
GucContext scontext; /* context that set the current value */
|
||||
GucContext reset_scontext; /* context that set the reset value */
|
||||
GucContext reset_scontext; /* context that set the reset value */
|
||||
GucStack *stack; /* stacked prior values */
|
||||
void *extra; /* "extra" pointer for current actual value */
|
||||
char *sourcefile; /* file current setting is from (NULL if not
|
||||
|
||||
@@ -25,6 +25,6 @@ extern Datum array_to_json(PG_FUNCTION_ARGS);
|
||||
extern Datum array_to_json_pretty(PG_FUNCTION_ARGS);
|
||||
extern Datum row_to_json(PG_FUNCTION_ARGS);
|
||||
extern Datum row_to_json_pretty(PG_FUNCTION_ARGS);
|
||||
extern void escape_json(StringInfo buf, const char *str);
|
||||
extern void escape_json(StringInfo buf, const char *str);
|
||||
|
||||
#endif /* JSON_H */
|
||||
|
||||
@@ -18,10 +18,10 @@
|
||||
/* Result list element for get_op_btree_interpretation */
|
||||
typedef struct OpBtreeInterpretation
|
||||
{
|
||||
Oid opfamily_id; /* btree opfamily containing operator */
|
||||
int strategy; /* its strategy number */
|
||||
Oid oplefttype; /* declared left input datatype */
|
||||
Oid oprighttype; /* declared right input datatype */
|
||||
Oid opfamily_id; /* btree opfamily containing operator */
|
||||
int strategy; /* its strategy number */
|
||||
Oid oplefttype; /* declared left input datatype */
|
||||
Oid oprighttype; /* declared right input datatype */
|
||||
} OpBtreeInterpretation;
|
||||
|
||||
/* I/O function selector for get_type_io_data */
|
||||
@@ -149,7 +149,7 @@ extern void free_attstatsslot(Oid atttype,
|
||||
Datum *values, int nvalues,
|
||||
float4 *numbers, int nnumbers);
|
||||
extern char *get_namespace_name(Oid nspid);
|
||||
extern Oid get_range_subtype(Oid rangeOid);
|
||||
extern Oid get_range_subtype(Oid rangeOid);
|
||||
|
||||
#define type_is_array(typid) (get_element_type(typid) != InvalidOid)
|
||||
/* type_is_array_domain accepts both plain arrays and domains over arrays */
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user