Add pg_statistic index, add missing Hiroshi file.
This commit is contained in:
parent
61a93ed2da
commit
74f418eb9a
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/catalog/aclchk.c,v 1.31 1999/11/24 00:44:28 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/catalog/aclchk.c,v 1.32 1999/11/24 16:52:31 momjian Exp $
|
||||
*
|
||||
* NOTES
|
||||
* See acl.h.
|
||||
@ -350,7 +350,7 @@ pg_aclcheck(char *relname, char *usename, AclMode mode)
|
||||
int32 result;
|
||||
Relation relation;
|
||||
|
||||
tuple = SearchSysCacheTuple(USERNAME,
|
||||
tuple = SearchSysCacheTuple(SHADOWNAME,
|
||||
PointerGetDatum(usename),
|
||||
0, 0, 0);
|
||||
if (!HeapTupleIsValid(tuple))
|
||||
@ -469,7 +469,7 @@ pg_ownercheck(char *usename,
|
||||
AclId user_id,
|
||||
owner_id = 0;
|
||||
|
||||
tuple = SearchSysCacheTuple(USERNAME,
|
||||
tuple = SearchSysCacheTuple(SHADOWNAME,
|
||||
PointerGetDatum(usename),
|
||||
0, 0, 0);
|
||||
if (!HeapTupleIsValid(tuple))
|
||||
@ -535,7 +535,7 @@ pg_func_ownercheck(char *usename,
|
||||
AclId user_id,
|
||||
owner_id;
|
||||
|
||||
tuple = SearchSysCacheTuple(USERNAME,
|
||||
tuple = SearchSysCacheTuple(SHADOWNAME,
|
||||
PointerGetDatum(usename),
|
||||
0, 0, 0);
|
||||
if (!HeapTupleIsValid(tuple))
|
||||
@ -577,7 +577,7 @@ pg_aggr_ownercheck(char *usename,
|
||||
AclId user_id,
|
||||
owner_id;
|
||||
|
||||
tuple = SearchSysCacheTuple(USERNAME,
|
||||
tuple = SearchSysCacheTuple(SHADOWNAME,
|
||||
PointerGetDatum(usename),
|
||||
0, 0, 0);
|
||||
if (!HeapTupleIsValid(tuple))
|
||||
|
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.51 1999/11/22 17:55:57 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/catalog/indexing.c,v 1.52 1999/11/24 16:52:31 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -880,6 +880,85 @@ RewriteOidIndexScan(Relation heapRelation, Oid rewriteId)
|
||||
}
|
||||
|
||||
|
||||
HeapTuple
|
||||
ShadowNameIndexScan(Relation heapRelation, char *useName)
|
||||
{
|
||||
Relation idesc;
|
||||
ScanKeyData skey[1];
|
||||
HeapTuple tuple;
|
||||
|
||||
ScanKeyEntryInitialize(&skey[0],
|
||||
(bits16) 0x0,
|
||||
(AttrNumber) 1,
|
||||
(RegProcedure) F_NAMEEQ,
|
||||
PointerGetDatum(useName));
|
||||
|
||||
idesc = index_openr(ShadowNameIndex);
|
||||
tuple = CatalogIndexFetchTuple(heapRelation, idesc, skey, 1);
|
||||
|
||||
index_close(idesc);
|
||||
return tuple;
|
||||
}
|
||||
|
||||
|
||||
HeapTuple
|
||||
ShadowSysidIndexScan(Relation heapRelation, int4 sysId)
|
||||
{
|
||||
Relation idesc;
|
||||
ScanKeyData skey[1];
|
||||
HeapTuple tuple;
|
||||
|
||||
ScanKeyEntryInitialize(&skey[0],
|
||||
(bits16) 0x0,
|
||||
(AttrNumber) 1,
|
||||
(RegProcedure) F_INT4EQ,
|
||||
Int32GetDatum(sysId));
|
||||
|
||||
idesc = index_openr(ShadowSysidIndex);
|
||||
tuple = CatalogIndexFetchTuple(heapRelation, idesc, skey, 1);
|
||||
|
||||
index_close(idesc);
|
||||
return tuple;
|
||||
}
|
||||
|
||||
|
||||
HeapTuple
|
||||
StatisticRelidAttnumOpIndexScan(Relation heapRelation,
|
||||
Oid relId,
|
||||
AttrNumber attNum,
|
||||
Oid op)
|
||||
{
|
||||
Relation idesc;
|
||||
ScanKeyData skey[3];
|
||||
HeapTuple tuple;
|
||||
|
||||
ScanKeyEntryInitialize(&skey[0],
|
||||
(bits16) 0x0,
|
||||
(AttrNumber) 1,
|
||||
(RegProcedure) F_OIDEQ,
|
||||
ObjectIdGetDatum(relId));
|
||||
|
||||
ScanKeyEntryInitialize(&skey[1],
|
||||
(bits16) 0x0,
|
||||
(AttrNumber) 2,
|
||||
(RegProcedure) F_INT2EQ,
|
||||
Int16GetDatum(attNum));
|
||||
|
||||
ScanKeyEntryInitialize(&skey[2],
|
||||
(bits16) 0x0,
|
||||
(AttrNumber) 3,
|
||||
(RegProcedure) F_OIDEQ,
|
||||
ObjectIdGetDatum(op));
|
||||
|
||||
idesc = index_openr(StatisticRelidAttnumOpIndex);
|
||||
tuple = CatalogIndexFetchTuple(heapRelation, idesc, skey, 3);
|
||||
|
||||
index_close(idesc);
|
||||
|
||||
return tuple;
|
||||
}
|
||||
|
||||
|
||||
HeapTuple
|
||||
TypeNameIndexScan(Relation heapRelation, char *typeName)
|
||||
{
|
||||
@ -923,46 +1002,3 @@ TypeOidIndexScan(Relation heapRelation, Oid typeId)
|
||||
return tuple;
|
||||
}
|
||||
|
||||
|
||||
HeapTuple
|
||||
ShadowNameIndexScan(Relation heapRelation, char *useName)
|
||||
{
|
||||
Relation idesc;
|
||||
ScanKeyData skey[1];
|
||||
HeapTuple tuple;
|
||||
|
||||
ScanKeyEntryInitialize(&skey[0],
|
||||
(bits16) 0x0,
|
||||
(AttrNumber) 1,
|
||||
(RegProcedure) F_NAMEEQ,
|
||||
PointerGetDatum(useName));
|
||||
|
||||
idesc = index_openr(ShadowNameIndex);
|
||||
tuple = CatalogIndexFetchTuple(heapRelation, idesc, skey, 1);
|
||||
|
||||
index_close(idesc);
|
||||
return tuple;
|
||||
}
|
||||
|
||||
|
||||
HeapTuple
|
||||
ShadowSysidIndexScan(Relation heapRelation, int4 sysId)
|
||||
{
|
||||
Relation idesc;
|
||||
ScanKeyData skey[1];
|
||||
HeapTuple tuple;
|
||||
|
||||
ScanKeyEntryInitialize(&skey[0],
|
||||
(bits16) 0x0,
|
||||
(AttrNumber) 1,
|
||||
(RegProcedure) F_INT4EQ,
|
||||
Int32GetDatum(sysId));
|
||||
|
||||
idesc = index_openr(ShadowSysidIndex);
|
||||
tuple = CatalogIndexFetchTuple(heapRelation, idesc, skey, 1);
|
||||
|
||||
index_close(idesc);
|
||||
return tuple;
|
||||
}
|
||||
|
||||
|
||||
|
@ -395,7 +395,7 @@ void CommentDatabase(char *database, char *comment) {
|
||||
/*** Now, fetch user information ***/
|
||||
|
||||
username = GetPgUserName();
|
||||
usertuple = SearchSysCacheTuple(USERNAME, PointerGetDatum(username),
|
||||
usertuple = SearchSysCacheTuple(SHADOWNAME, PointerGetDatum(username),
|
||||
0, 0, 0);
|
||||
if (!HeapTupleIsValid(usertuple)) {
|
||||
elog(ERROR, "current user '%s' does not exist", username);
|
||||
|
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.44 1999/11/22 17:56:01 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/commands/dbcommands.c,v 1.45 1999/11/24 16:52:32 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -241,7 +241,7 @@ check_permissions(char *command,
|
||||
char path[MAXPGPATH];
|
||||
|
||||
userName = GetPgUserName();
|
||||
utup = SearchSysCacheTuple(USERNAME,
|
||||
utup = SearchSysCacheTuple(SHADOWNAME,
|
||||
PointerGetDatum(userName),
|
||||
0, 0, 0);
|
||||
Assert(utup);
|
||||
|
@ -5,7 +5,7 @@
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: user.c,v 1.37 1999/11/22 17:56:02 momjian Exp $
|
||||
* $Id: user.c,v 1.38 1999/11/24 16:52:32 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -261,7 +261,7 @@ AlterUser(AlterUserStmt *stmt, CommandDest dest)
|
||||
pg_shadow_rel = heap_openr(ShadowRelationName, AccessExclusiveLock);
|
||||
pg_shadow_dsc = RelationGetDescr(pg_shadow_rel);
|
||||
|
||||
tuple = SearchSysCacheTuple(USERNAME,
|
||||
tuple = SearchSysCacheTuple(SHADOWNAME,
|
||||
PointerGetDatum(stmt->user),
|
||||
0, 0, 0);
|
||||
if (!HeapTupleIsValid(tuple))
|
||||
@ -374,7 +374,7 @@ RemoveUser(char *user, CommandDest dest)
|
||||
pg_shadow_rel = heap_openr(ShadowRelationName, AccessExclusiveLock);
|
||||
pg_dsc = RelationGetDescr(pg_shadow_rel);
|
||||
|
||||
tuple = SearchSysCacheTuple(USERNAME,
|
||||
tuple = SearchSysCacheTuple(SHADOWNAME,
|
||||
PointerGetDatum(user),
|
||||
0, 0, 0);
|
||||
if (!HeapTupleIsValid(tuple))
|
||||
|
@ -6,7 +6,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/rewrite/Attic/locks.c,v 1.25 1999/11/22 17:56:23 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/rewrite/Attic/locks.c,v 1.26 1999/11/24 16:52:33 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -170,7 +170,7 @@ checkLockPerms(List *locks, Query *parsetree, int rt_index)
|
||||
*/
|
||||
rte = (RangeTblEntry *) nth(rt_index - 1, parsetree->rtable);
|
||||
ev_rel = heap_openr(rte->relname, AccessShareLock);
|
||||
usertup = SearchSysCacheTuple(USERSYSID,
|
||||
usertup = SearchSysCacheTuple(SHADOWSYSID,
|
||||
ObjectIdGetDatum(ev_rel->rd_rel->relowner),
|
||||
0, 0, 0);
|
||||
if (!HeapTupleIsValid(usertup))
|
||||
|
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.42 1999/11/22 17:56:28 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/acl.c,v 1.43 1999/11/24 16:52:37 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -170,7 +170,7 @@ aclparse(char *s, AclItem *aip, unsigned *modechg)
|
||||
switch (aip->ai_idtype)
|
||||
{
|
||||
case ACL_IDTYPE_UID:
|
||||
htup = SearchSysCacheTuple(USERNAME,
|
||||
htup = SearchSysCacheTuple(SHADOWNAME,
|
||||
PointerGetDatum(name),
|
||||
0, 0, 0);
|
||||
if (!HeapTupleIsValid(htup))
|
||||
@ -281,7 +281,7 @@ aclitemout(AclItem *aip)
|
||||
switch (aip->ai_idtype)
|
||||
{
|
||||
case ACL_IDTYPE_UID:
|
||||
htup = SearchSysCacheTuple(USERSYSID,
|
||||
htup = SearchSysCacheTuple(SHADOWSYSID,
|
||||
ObjectIdGetDatum(aip->ai_id),
|
||||
0, 0, 0);
|
||||
if (!HeapTupleIsValid(htup))
|
||||
|
@ -3,7 +3,7 @@
|
||||
* out of it's tuple
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.32 1999/11/22 17:56:30 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.33 1999/11/24 16:52:37 momjian Exp $
|
||||
*
|
||||
* This software is copyrighted by Jan Wieck - Hamburg.
|
||||
*
|
||||
@ -567,7 +567,7 @@ pg_get_userbyid(int32 uid)
|
||||
* Get the pg_shadow entry and print the result
|
||||
* ----------
|
||||
*/
|
||||
usertup = SearchSysCacheTuple(USERSYSID,
|
||||
usertup = SearchSysCacheTuple(SHADOWSYSID,
|
||||
ObjectIdGetDatum(uid), 0, 0, 0);
|
||||
if (HeapTupleIsValid(usertup))
|
||||
{
|
||||
|
66
src/backend/utils/cache/syscache.c
vendored
66
src/backend/utils/cache/syscache.c
vendored
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/cache/syscache.c,v 1.42 1999/11/24 00:58:48 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/cache/syscache.c,v 1.43 1999/11/24 16:52:38 momjian Exp $
|
||||
*
|
||||
* NOTES
|
||||
* These routines allow the parser/planner/executor to perform
|
||||
@ -66,7 +66,8 @@ typedef HeapTuple (*ScanFunc) ();
|
||||
lookups return only one row, so the index should be unique.
|
||||
|
||||
In backend/catalog/indexing.c, initialize the relation array with
|
||||
the index names for the relation, and create the index lookup function.
|
||||
the index names for the relation, fixed size of relation (or marking
|
||||
first non-fixed length field), and create the index lookup function.
|
||||
Pick one that takes similar arguments and use that one, but keep the
|
||||
function names in the same order as the cache list for clarity.
|
||||
|
||||
@ -333,6 +334,41 @@ static struct cachedesc cacheinfo[] = {
|
||||
offsetof(FormData_pg_rewrite, ev_qual),
|
||||
RewriteOidIndex,
|
||||
RewriteOidIndexScan},
|
||||
{ShadowRelationName, /* SHADOWNAME */
|
||||
1,
|
||||
{
|
||||
Anum_pg_shadow_usename,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
},
|
||||
sizeof(FormData_pg_shadow),
|
||||
NULL,NULL
|
||||
/* ShadowNameIndex,
|
||||
ShadowNameIndexScan*/},
|
||||
{ShadowRelationName, /* SHADOWSYSID */
|
||||
1,
|
||||
{
|
||||
Anum_pg_shadow_usesysid,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
},
|
||||
sizeof(FormData_pg_shadow),
|
||||
NULL,NULL
|
||||
/* ShadowSysidIndex,
|
||||
ShadowSysidIndexScan*/},
|
||||
{StatisticRelationName, /* STATRELID */
|
||||
3,
|
||||
{
|
||||
Anum_pg_statistic_starelid,
|
||||
Anum_pg_statistic_staattnum,
|
||||
Anum_pg_statistic_staop,
|
||||
0
|
||||
},
|
||||
offsetof(FormData_pg_statistic, stacommonval),
|
||||
StatisticRelidAttnumOpIndex,
|
||||
StatisticRelidAttnumOpIndexScan},
|
||||
{TypeRelationName, /* TYPENAME */
|
||||
1,
|
||||
{
|
||||
@ -354,31 +390,7 @@ static struct cachedesc cacheinfo[] = {
|
||||
},
|
||||
offsetof(FormData_pg_type, typalign) +sizeof(char),
|
||||
TypeOidIndex,
|
||||
TypeOidIndexScan},
|
||||
{ShadowRelationName, /* USERNAME */
|
||||
1,
|
||||
{
|
||||
Anum_pg_shadow_usename,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
},
|
||||
sizeof(FormData_pg_shadow),
|
||||
NULL,NULL
|
||||
/* ShadowNameIndex,
|
||||
ShadowNameIndexScan*/},
|
||||
{ShadowRelationName, /* USERSYSID */
|
||||
1,
|
||||
{
|
||||
Anum_pg_shadow_usesysid,
|
||||
0,
|
||||
0,
|
||||
0
|
||||
},
|
||||
sizeof(FormData_pg_shadow),
|
||||
NULL,NULL
|
||||
/* ShadowSysidIndex,
|
||||
ShadowSysidIndexScan*/}
|
||||
TypeOidIndexScan}
|
||||
};
|
||||
|
||||
static struct catcache *SysCache[lengthof(cacheinfo)];
|
||||
|
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.36 1999/11/22 17:56:34 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/init/miscinit.c,v 1.37 1999/11/24 16:52:42 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -453,7 +453,7 @@ SetUserId()
|
||||
}
|
||||
|
||||
userName = GetPgUserName();
|
||||
userTup = SearchSysCacheTuple(USERNAME,
|
||||
userTup = SearchSysCacheTuple(SHADOWNAME,
|
||||
PointerGetDatum(userName),
|
||||
0, 0, 0);
|
||||
if (!HeapTupleIsValid(userTup))
|
||||
|
@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/misc/superuser.c,v 1.11 1999/11/22 17:56:35 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/misc/superuser.c,v 1.12 1999/11/24 16:52:45 momjian Exp $
|
||||
*
|
||||
* DESCRIPTION
|
||||
* See superuser().
|
||||
@ -30,7 +30,7 @@ superuser(void)
|
||||
|
||||
HeapTuple utup;
|
||||
|
||||
utup = SearchSysCacheTuple(USERNAME,
|
||||
utup = SearchSysCacheTuple(SHADOWNAME,
|
||||
PointerGetDatum(UserName),
|
||||
0, 0, 0);
|
||||
Assert(utup != NULL);
|
||||
|
@ -36,7 +36,7 @@
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: catversion.h,v 1.3 1999/11/22 17:56:37 momjian Exp $
|
||||
* $Id: catversion.h,v 1.4 1999/11/24 16:52:48 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -51,6 +51,6 @@
|
||||
* catalog changes on the same day...)
|
||||
*/
|
||||
|
||||
#define CATALOG_VERSION_NO 199911221
|
||||
#define CATALOG_VERSION_NO 199911241
|
||||
|
||||
#endif
|
||||
|
@ -7,7 +7,7 @@
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: indexing.h,v 1.30 1999/11/23 04:47:39 momjian Exp $
|
||||
* $Id: indexing.h,v 1.31 1999/11/24 16:52:48 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -37,6 +37,7 @@
|
||||
#define Num_pg_relcheck_indices 1
|
||||
#define Num_pg_rewrite_indices 2
|
||||
#define Num_pg_shadow_indices 2
|
||||
#define Num_pg_statistic_indices 1
|
||||
#define Num_pg_trigger_indices 3
|
||||
#define Num_pg_type_indices 2
|
||||
|
||||
@ -72,6 +73,7 @@
|
||||
#define RewriteRulenameIndex "pg_rewrite_rulename_index"
|
||||
#define ShadowNameIndex "pg_shadow_name_index"
|
||||
#define ShadowSysidIndex "pg_shadow_sysid_index"
|
||||
#define StatisticRelidAttnumOpIndex "pg_statistic_relid_att_op_index"
|
||||
#define TriggerConstrNameIndex "pg_trigger_tgconstrname_index"
|
||||
#define TriggerConstrRelidIndex "pg_trigger_tgconstrrelid_index"
|
||||
#define TriggerRelidIndex "pg_trigger_tgrelid_index"
|
||||
@ -96,6 +98,7 @@ extern char *Name_pg_proc_indices[];
|
||||
extern char *Name_pg_relcheck_indices[];
|
||||
extern char *Name_pg_rewrite_indices[];
|
||||
extern char *Name_pg_shadow_indices[];
|
||||
extern char *Name_pg_statistic_indices[];
|
||||
extern char *Name_pg_trigger_indices[];
|
||||
extern char *Name_pg_type_indices[];
|
||||
|
||||
@ -150,6 +153,8 @@ extern HeapTuple RewriteRulenameIndexScan(Relation heapRelation,
|
||||
char *ruleName);
|
||||
extern HeapTuple ShadowNameIndexScan(Relation heapRelation, char *useName);
|
||||
extern HeapTuple ShadowSysidIndexScan(Relation heapRelation, int4 sysId);
|
||||
extern HeapTuple StatisticRelidAttnumOpIndexScan(Relation heapRelation,
|
||||
Oid relId, AttrNumber attNum, Oid op);
|
||||
extern HeapTuple TypeNameIndexScan(Relation heapRelation, char *typeName);
|
||||
extern HeapTuple TypeOidIndexScan(Relation heapRelation, Oid typeId);
|
||||
|
||||
@ -197,6 +202,7 @@ DECLARE_UNIQUE_INDEX(pg_rewrite_rulename_index on pg_rewrite using btree(rulenam
|
||||
xDECLARE_UNIQUE_INDEX(pg_shadow_name_index on pg_shadow using btree(usename name_ops));
|
||||
xDECLARE_UNIQUE_INDEX(pg_shadow_sysid_index on pg_shadow using btree(usesysid int4_ops));
|
||||
*/
|
||||
DECLARE_INDEX(pg_statistic_relid_att_op_index on pg_shadow using btree(starelid oid_ops, staattnum int2_ops, staop oid_ops));
|
||||
DECLARE_INDEX(pg_trigger_tgconstrname_index on pg_trigger using btree(tgconstrname name_ops));
|
||||
DECLARE_INDEX(pg_trigger_tgconstrrelid_index on pg_trigger using btree(tgconstrrelid oid_ops));
|
||||
DECLARE_INDEX(pg_trigger_tgrelid_index on pg_trigger using btree(tgrelid oid_ops));
|
||||
|
27
src/include/executor/nodeTidscan.h
Normal file
27
src/include/executor/nodeTidscan.h
Normal file
@ -0,0 +1,27 @@
|
||||
/*-------------------------------------------------------------------------
|
||||
*
|
||||
* nodeTidscan.h
|
||||
*
|
||||
*
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: nodeTidscan.h,v 1.1 1999/11/24 16:52:49 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
#ifndef NODETIDSCAN_H
|
||||
#define NODETIDSCAN_H
|
||||
|
||||
#include "nodes/plannodes.h"
|
||||
|
||||
extern TupleTableSlot *ExecTidScan(TidScan *node);
|
||||
extern void ExecTidReScan(TidScan *node, ExprContext *exprCtxt, Plan *parent);
|
||||
extern void ExecEndTidScan(TidScan *node);
|
||||
extern void ExecTidMarkPos(TidScan *node);
|
||||
extern void ExecTidRestrPos(TidScan *node);
|
||||
extern bool ExecInitTidScan(TidScan *node, EState *estate, Plan *parent);
|
||||
extern int ExecCountSlotsTidScan(TidScan *node);
|
||||
extern void ExecTidReScan(TidScan *node, ExprContext *exprCtxt, Plan *parent);
|
||||
|
||||
#endif /* NODETIDSCAN_H */
|
@ -8,7 +8,7 @@
|
||||
*
|
||||
* Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* $Id: syscache.h,v 1.21 1999/11/22 17:56:38 momjian Exp $
|
||||
* $Id: syscache.h,v 1.22 1999/11/24 16:52:50 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -53,10 +53,11 @@
|
||||
#define RELOID 20
|
||||
#define RULENAME 21
|
||||
#define RULEOID 22
|
||||
#define TYPENAME 23
|
||||
#define TYPEOID 24
|
||||
#define USERNAME 25
|
||||
#define USERSYSID 26
|
||||
#define SHADOWNAME 23
|
||||
#define SHADOWSYSID 24
|
||||
#define STATRELID 25
|
||||
#define TYPENAME 26
|
||||
#define TYPEOID 27
|
||||
|
||||
/* ----------------
|
||||
* struct cachedesc: information needed for a call to InitSysCache()
|
||||
|
Loading…
x
Reference in New Issue
Block a user