Add pg_statistic index, add missing Hiroshi file.
This commit is contained in:
parent
61a93ed2da
commit
74f418eb9a
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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
|
* NOTES
|
||||||
* See acl.h.
|
* See acl.h.
|
||||||
@ -350,7 +350,7 @@ pg_aclcheck(char *relname, char *usename, AclMode mode)
|
|||||||
int32 result;
|
int32 result;
|
||||||
Relation relation;
|
Relation relation;
|
||||||
|
|
||||||
tuple = SearchSysCacheTuple(USERNAME,
|
tuple = SearchSysCacheTuple(SHADOWNAME,
|
||||||
PointerGetDatum(usename),
|
PointerGetDatum(usename),
|
||||||
0, 0, 0);
|
0, 0, 0);
|
||||||
if (!HeapTupleIsValid(tuple))
|
if (!HeapTupleIsValid(tuple))
|
||||||
@ -469,7 +469,7 @@ pg_ownercheck(char *usename,
|
|||||||
AclId user_id,
|
AclId user_id,
|
||||||
owner_id = 0;
|
owner_id = 0;
|
||||||
|
|
||||||
tuple = SearchSysCacheTuple(USERNAME,
|
tuple = SearchSysCacheTuple(SHADOWNAME,
|
||||||
PointerGetDatum(usename),
|
PointerGetDatum(usename),
|
||||||
0, 0, 0);
|
0, 0, 0);
|
||||||
if (!HeapTupleIsValid(tuple))
|
if (!HeapTupleIsValid(tuple))
|
||||||
@ -535,7 +535,7 @@ pg_func_ownercheck(char *usename,
|
|||||||
AclId user_id,
|
AclId user_id,
|
||||||
owner_id;
|
owner_id;
|
||||||
|
|
||||||
tuple = SearchSysCacheTuple(USERNAME,
|
tuple = SearchSysCacheTuple(SHADOWNAME,
|
||||||
PointerGetDatum(usename),
|
PointerGetDatum(usename),
|
||||||
0, 0, 0);
|
0, 0, 0);
|
||||||
if (!HeapTupleIsValid(tuple))
|
if (!HeapTupleIsValid(tuple))
|
||||||
@ -577,7 +577,7 @@ pg_aggr_ownercheck(char *usename,
|
|||||||
AclId user_id,
|
AclId user_id,
|
||||||
owner_id;
|
owner_id;
|
||||||
|
|
||||||
tuple = SearchSysCacheTuple(USERNAME,
|
tuple = SearchSysCacheTuple(SHADOWNAME,
|
||||||
PointerGetDatum(usename),
|
PointerGetDatum(usename),
|
||||||
0, 0, 0);
|
0, 0, 0);
|
||||||
if (!HeapTupleIsValid(tuple))
|
if (!HeapTupleIsValid(tuple))
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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
|
HeapTuple
|
||||||
TypeNameIndexScan(Relation heapRelation, char *typeName)
|
TypeNameIndexScan(Relation heapRelation, char *typeName)
|
||||||
{
|
{
|
||||||
@ -923,46 +1002,3 @@ TypeOidIndexScan(Relation heapRelation, Oid typeId)
|
|||||||
return tuple;
|
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 ***/
|
/*** Now, fetch user information ***/
|
||||||
|
|
||||||
username = GetPgUserName();
|
username = GetPgUserName();
|
||||||
usertuple = SearchSysCacheTuple(USERNAME, PointerGetDatum(username),
|
usertuple = SearchSysCacheTuple(SHADOWNAME, PointerGetDatum(username),
|
||||||
0, 0, 0);
|
0, 0, 0);
|
||||||
if (!HeapTupleIsValid(usertuple)) {
|
if (!HeapTupleIsValid(usertuple)) {
|
||||||
elog(ERROR, "current user '%s' does not exist", username);
|
elog(ERROR, "current user '%s' does not exist", username);
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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];
|
char path[MAXPGPATH];
|
||||||
|
|
||||||
userName = GetPgUserName();
|
userName = GetPgUserName();
|
||||||
utup = SearchSysCacheTuple(USERNAME,
|
utup = SearchSysCacheTuple(SHADOWNAME,
|
||||||
PointerGetDatum(userName),
|
PointerGetDatum(userName),
|
||||||
0, 0, 0);
|
0, 0, 0);
|
||||||
Assert(utup);
|
Assert(utup);
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
* 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_rel = heap_openr(ShadowRelationName, AccessExclusiveLock);
|
||||||
pg_shadow_dsc = RelationGetDescr(pg_shadow_rel);
|
pg_shadow_dsc = RelationGetDescr(pg_shadow_rel);
|
||||||
|
|
||||||
tuple = SearchSysCacheTuple(USERNAME,
|
tuple = SearchSysCacheTuple(SHADOWNAME,
|
||||||
PointerGetDatum(stmt->user),
|
PointerGetDatum(stmt->user),
|
||||||
0, 0, 0);
|
0, 0, 0);
|
||||||
if (!HeapTupleIsValid(tuple))
|
if (!HeapTupleIsValid(tuple))
|
||||||
@ -374,7 +374,7 @@ RemoveUser(char *user, CommandDest dest)
|
|||||||
pg_shadow_rel = heap_openr(ShadowRelationName, AccessExclusiveLock);
|
pg_shadow_rel = heap_openr(ShadowRelationName, AccessExclusiveLock);
|
||||||
pg_dsc = RelationGetDescr(pg_shadow_rel);
|
pg_dsc = RelationGetDescr(pg_shadow_rel);
|
||||||
|
|
||||||
tuple = SearchSysCacheTuple(USERNAME,
|
tuple = SearchSysCacheTuple(SHADOWNAME,
|
||||||
PointerGetDatum(user),
|
PointerGetDatum(user),
|
||||||
0, 0, 0);
|
0, 0, 0);
|
||||||
if (!HeapTupleIsValid(tuple))
|
if (!HeapTupleIsValid(tuple))
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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);
|
rte = (RangeTblEntry *) nth(rt_index - 1, parsetree->rtable);
|
||||||
ev_rel = heap_openr(rte->relname, AccessShareLock);
|
ev_rel = heap_openr(rte->relname, AccessShareLock);
|
||||||
usertup = SearchSysCacheTuple(USERSYSID,
|
usertup = SearchSysCacheTuple(SHADOWSYSID,
|
||||||
ObjectIdGetDatum(ev_rel->rd_rel->relowner),
|
ObjectIdGetDatum(ev_rel->rd_rel->relowner),
|
||||||
0, 0, 0);
|
0, 0, 0);
|
||||||
if (!HeapTupleIsValid(usertup))
|
if (!HeapTupleIsValid(usertup))
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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)
|
switch (aip->ai_idtype)
|
||||||
{
|
{
|
||||||
case ACL_IDTYPE_UID:
|
case ACL_IDTYPE_UID:
|
||||||
htup = SearchSysCacheTuple(USERNAME,
|
htup = SearchSysCacheTuple(SHADOWNAME,
|
||||||
PointerGetDatum(name),
|
PointerGetDatum(name),
|
||||||
0, 0, 0);
|
0, 0, 0);
|
||||||
if (!HeapTupleIsValid(htup))
|
if (!HeapTupleIsValid(htup))
|
||||||
@ -281,7 +281,7 @@ aclitemout(AclItem *aip)
|
|||||||
switch (aip->ai_idtype)
|
switch (aip->ai_idtype)
|
||||||
{
|
{
|
||||||
case ACL_IDTYPE_UID:
|
case ACL_IDTYPE_UID:
|
||||||
htup = SearchSysCacheTuple(USERSYSID,
|
htup = SearchSysCacheTuple(SHADOWSYSID,
|
||||||
ObjectIdGetDatum(aip->ai_id),
|
ObjectIdGetDatum(aip->ai_id),
|
||||||
0, 0, 0);
|
0, 0, 0);
|
||||||
if (!HeapTupleIsValid(htup))
|
if (!HeapTupleIsValid(htup))
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
* out of it's tuple
|
* out of it's tuple
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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.
|
* 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
|
* Get the pg_shadow entry and print the result
|
||||||
* ----------
|
* ----------
|
||||||
*/
|
*/
|
||||||
usertup = SearchSysCacheTuple(USERSYSID,
|
usertup = SearchSysCacheTuple(SHADOWSYSID,
|
||||||
ObjectIdGetDatum(uid), 0, 0, 0);
|
ObjectIdGetDatum(uid), 0, 0, 0);
|
||||||
if (HeapTupleIsValid(usertup))
|
if (HeapTupleIsValid(usertup))
|
||||||
{
|
{
|
||||||
|
66
src/backend/utils/cache/syscache.c
vendored
66
src/backend/utils/cache/syscache.c
vendored
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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
|
* NOTES
|
||||||
* These routines allow the parser/planner/executor to perform
|
* 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.
|
lookups return only one row, so the index should be unique.
|
||||||
|
|
||||||
In backend/catalog/indexing.c, initialize the relation array with
|
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
|
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.
|
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),
|
offsetof(FormData_pg_rewrite, ev_qual),
|
||||||
RewriteOidIndex,
|
RewriteOidIndex,
|
||||||
RewriteOidIndexScan},
|
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 */
|
{TypeRelationName, /* TYPENAME */
|
||||||
1,
|
1,
|
||||||
{
|
{
|
||||||
@ -354,31 +390,7 @@ static struct cachedesc cacheinfo[] = {
|
|||||||
},
|
},
|
||||||
offsetof(FormData_pg_type, typalign) +sizeof(char),
|
offsetof(FormData_pg_type, typalign) +sizeof(char),
|
||||||
TypeOidIndex,
|
TypeOidIndex,
|
||||||
TypeOidIndexScan},
|
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*/}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct catcache *SysCache[lengthof(cacheinfo)];
|
static struct catcache *SysCache[lengthof(cacheinfo)];
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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();
|
userName = GetPgUserName();
|
||||||
userTup = SearchSysCacheTuple(USERNAME,
|
userTup = SearchSysCacheTuple(SHADOWNAME,
|
||||||
PointerGetDatum(userName),
|
PointerGetDatum(userName),
|
||||||
0, 0, 0);
|
0, 0, 0);
|
||||||
if (!HeapTupleIsValid(userTup))
|
if (!HeapTupleIsValid(userTup))
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* 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
|
* DESCRIPTION
|
||||||
* See superuser().
|
* See superuser().
|
||||||
@ -30,7 +30,7 @@ superuser(void)
|
|||||||
|
|
||||||
HeapTuple utup;
|
HeapTuple utup;
|
||||||
|
|
||||||
utup = SearchSysCacheTuple(USERNAME,
|
utup = SearchSysCacheTuple(SHADOWNAME,
|
||||||
PointerGetDatum(UserName),
|
PointerGetDatum(UserName),
|
||||||
0, 0, 0);
|
0, 0, 0);
|
||||||
Assert(utup != NULL);
|
Assert(utup != NULL);
|
||||||
|
@ -36,7 +36,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
* 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...)
|
* catalog changes on the same day...)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define CATALOG_VERSION_NO 199911221
|
#define CATALOG_VERSION_NO 199911241
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
* Copyright (c) 1994, Regents of the University of California
|
* 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_relcheck_indices 1
|
||||||
#define Num_pg_rewrite_indices 2
|
#define Num_pg_rewrite_indices 2
|
||||||
#define Num_pg_shadow_indices 2
|
#define Num_pg_shadow_indices 2
|
||||||
|
#define Num_pg_statistic_indices 1
|
||||||
#define Num_pg_trigger_indices 3
|
#define Num_pg_trigger_indices 3
|
||||||
#define Num_pg_type_indices 2
|
#define Num_pg_type_indices 2
|
||||||
|
|
||||||
@ -72,6 +73,7 @@
|
|||||||
#define RewriteRulenameIndex "pg_rewrite_rulename_index"
|
#define RewriteRulenameIndex "pg_rewrite_rulename_index"
|
||||||
#define ShadowNameIndex "pg_shadow_name_index"
|
#define ShadowNameIndex "pg_shadow_name_index"
|
||||||
#define ShadowSysidIndex "pg_shadow_sysid_index"
|
#define ShadowSysidIndex "pg_shadow_sysid_index"
|
||||||
|
#define StatisticRelidAttnumOpIndex "pg_statistic_relid_att_op_index"
|
||||||
#define TriggerConstrNameIndex "pg_trigger_tgconstrname_index"
|
#define TriggerConstrNameIndex "pg_trigger_tgconstrname_index"
|
||||||
#define TriggerConstrRelidIndex "pg_trigger_tgconstrrelid_index"
|
#define TriggerConstrRelidIndex "pg_trigger_tgconstrrelid_index"
|
||||||
#define TriggerRelidIndex "pg_trigger_tgrelid_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_relcheck_indices[];
|
||||||
extern char *Name_pg_rewrite_indices[];
|
extern char *Name_pg_rewrite_indices[];
|
||||||
extern char *Name_pg_shadow_indices[];
|
extern char *Name_pg_shadow_indices[];
|
||||||
|
extern char *Name_pg_statistic_indices[];
|
||||||
extern char *Name_pg_trigger_indices[];
|
extern char *Name_pg_trigger_indices[];
|
||||||
extern char *Name_pg_type_indices[];
|
extern char *Name_pg_type_indices[];
|
||||||
|
|
||||||
@ -150,6 +153,8 @@ extern HeapTuple RewriteRulenameIndexScan(Relation heapRelation,
|
|||||||
char *ruleName);
|
char *ruleName);
|
||||||
extern HeapTuple ShadowNameIndexScan(Relation heapRelation, char *useName);
|
extern HeapTuple ShadowNameIndexScan(Relation heapRelation, char *useName);
|
||||||
extern HeapTuple ShadowSysidIndexScan(Relation heapRelation, int4 sysId);
|
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 TypeNameIndexScan(Relation heapRelation, char *typeName);
|
||||||
extern HeapTuple TypeOidIndexScan(Relation heapRelation, Oid typeId);
|
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_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));
|
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_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_tgconstrrelid_index on pg_trigger using btree(tgconstrrelid oid_ops));
|
||||||
DECLARE_INDEX(pg_trigger_tgrelid_index on pg_trigger using btree(tgrelid 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
|
* 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 RELOID 20
|
||||||
#define RULENAME 21
|
#define RULENAME 21
|
||||||
#define RULEOID 22
|
#define RULEOID 22
|
||||||
#define TYPENAME 23
|
#define SHADOWNAME 23
|
||||||
#define TYPEOID 24
|
#define SHADOWSYSID 24
|
||||||
#define USERNAME 25
|
#define STATRELID 25
|
||||||
#define USERSYSID 26
|
#define TYPENAME 26
|
||||||
|
#define TYPEOID 27
|
||||||
|
|
||||||
/* ----------------
|
/* ----------------
|
||||||
* struct cachedesc: information needed for a call to InitSysCache()
|
* struct cachedesc: information needed for a call to InitSysCache()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user