summaryrefslogtreecommitdiff
path: root/src/backend/utils/cache/relcache.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/utils/cache/relcache.c')
-rw-r--r--src/backend/utils/cache/relcache.c45
1 files changed, 20 insertions, 25 deletions
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c
index ba4acc9fa23..492eba6f659 100644
--- a/src/backend/utils/cache/relcache.c
+++ b/src/backend/utils/cache/relcache.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.50 1998/09/01 04:33:02 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/cache/relcache.c,v 1.51 1998/11/27 19:52:28 vadim Exp $
*
*-------------------------------------------------------------------------
*/
@@ -383,10 +383,7 @@ scan_pg_rel_seq(RelationBuildDescInfo buildinfo)
* this bug is discovered and killed by wei on 9/27/91.
* -------------------
*/
- return_tuple = (HeapTuple) palloc((Size) pg_class_tuple->t_len);
- memmove((char *) return_tuple,
- (char *) pg_class_tuple,
- (int) pg_class_tuple->t_len);
+ return_tuple = heap_copytuple(pg_class_tuple);
}
/* all done */
@@ -718,7 +715,7 @@ RelationBuildRuleLock(Relation relation)
rule = (RewriteRule *) palloc(sizeof(RewriteRule));
- rule->ruleId = pg_rewrite_tuple->t_oid;
+ rule->ruleId = pg_rewrite_tuple->t_data->t_oid;
rule->event =
(int) heap_getattr(pg_rewrite_tuple,
@@ -838,7 +835,7 @@ RelationBuildDesc(RelationBuildDescInfo buildinfo)
* get information from the pg_class_tuple
* ----------------
*/
- relid = pg_class_tuple->t_oid;
+ relid = pg_class_tuple->t_data->t_oid;
relp = (Form_pg_class) GETSTRUCT(pg_class_tuple);
natts = relp->relnatts;
@@ -1661,11 +1658,10 @@ AttrDefaultFetch(Relation relation)
Relation adrel;
Relation irel;
ScanKeyData skey;
- HeapTuple tuple;
+ HeapTupleData tuple;
Form_pg_attrdef adform;
IndexScanDesc sd;
RetrieveIndexResult indexRes;
- ItemPointer iptr;
struct varlena *val;
bool isnull;
int found;
@@ -1680,7 +1676,7 @@ AttrDefaultFetch(Relation relation)
adrel = heap_openr(AttrDefaultRelationName);
irel = index_openr(AttrDefaultIndex);
sd = index_beginscan(irel, false, 1, &skey);
- tuple = (HeapTuple) NULL;
+ tuple.t_data = NULL;
for (found = 0;;)
{
@@ -1690,13 +1686,13 @@ AttrDefaultFetch(Relation relation)
if (!indexRes)
break;
- iptr = &indexRes->heap_iptr;
- tuple = heap_fetch(adrel, SnapshotNow, iptr, &buffer);
+ tuple.t_self = indexRes->heap_iptr;
+ heap_fetch(adrel, SnapshotNow, &tuple, &buffer);
pfree(indexRes);
- if (!HeapTupleIsValid(tuple))
+ if (tuple.t_data == NULL)
continue;
found++;
- adform = (Form_pg_attrdef) GETSTRUCT(tuple);
+ adform = (Form_pg_attrdef) GETSTRUCT(&tuple);
for (i = 0; i < ndef; i++)
{
if (adform->adnum != attrdef[i].adnum)
@@ -1706,7 +1702,7 @@ AttrDefaultFetch(Relation relation)
relation->rd_att->attrs[adform->adnum - 1]->attname.data,
relation->rd_rel->relname.data);
- val = (struct varlena *) fastgetattr(tuple,
+ val = (struct varlena *) fastgetattr(&tuple,
Anum_pg_attrdef_adbin,
adrel->rd_att, &isnull);
if (isnull)
@@ -1714,7 +1710,7 @@ AttrDefaultFetch(Relation relation)
relation->rd_att->attrs[adform->adnum - 1]->attname.data,
relation->rd_rel->relname.data);
attrdef[i].adbin = textout(val);
- val = (struct varlena *) fastgetattr(tuple,
+ val = (struct varlena *) fastgetattr(&tuple,
Anum_pg_attrdef_adsrc,
adrel->rd_att, &isnull);
if (isnull)
@@ -1750,10 +1746,9 @@ RelCheckFetch(Relation relation)
Relation rcrel;
Relation irel;
ScanKeyData skey;
- HeapTuple tuple;
+ HeapTupleData tuple;
IndexScanDesc sd;
RetrieveIndexResult indexRes;
- ItemPointer iptr;
Name rcname;
struct varlena *val;
bool isnull;
@@ -1768,7 +1763,7 @@ RelCheckFetch(Relation relation)
rcrel = heap_openr(RelCheckRelationName);
irel = index_openr(RelCheckIndex);
sd = index_beginscan(irel, false, 1, &skey);
- tuple = (HeapTuple) NULL;
+ tuple.t_data = NULL;
for (found = 0;;)
{
@@ -1778,30 +1773,30 @@ RelCheckFetch(Relation relation)
if (!indexRes)
break;
- iptr = &indexRes->heap_iptr;
- tuple = heap_fetch(rcrel, SnapshotNow, iptr, &buffer);
+ tuple.t_self = indexRes->heap_iptr;
+ heap_fetch(rcrel, SnapshotNow, &tuple, &buffer);
pfree(indexRes);
- if (!HeapTupleIsValid(tuple))
+ if (tuple.t_data == NULL)
continue;
if (found == ncheck)
elog(ERROR, "RelCheckFetch: unexpected record found for rel %s",
relation->rd_rel->relname.data);
- rcname = (Name) fastgetattr(tuple,
+ rcname = (Name) fastgetattr(&tuple,
Anum_pg_relcheck_rcname,
rcrel->rd_att, &isnull);
if (isnull)
elog(ERROR, "RelCheckFetch: rcname IS NULL for rel %s",
relation->rd_rel->relname.data);
check[found].ccname = nameout(rcname);
- val = (struct varlena *) fastgetattr(tuple,
+ val = (struct varlena *) fastgetattr(&tuple,
Anum_pg_relcheck_rcbin,
rcrel->rd_att, &isnull);
if (isnull)
elog(ERROR, "RelCheckFetch: rcbin IS NULL for rel %s",
relation->rd_rel->relname.data);
check[found].ccbin = textout(val);
- val = (struct varlena *) fastgetattr(tuple,
+ val = (struct varlena *) fastgetattr(&tuple,
Anum_pg_relcheck_rcsrc,
rcrel->rd_att, &isnull);
if (isnull)