aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/sets.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1998-08-19 02:04:17 +0000
committerBruce Momjian <bruce@momjian.us>1998-08-19 02:04:17 +0000
commit7971539020a344dce3a8b3b9b93ff4f10e2f823a (patch)
tree8dca0af0d3ac8d431bff8c0dec793fe9733a1ee9 /src/backend/utils/adt/sets.c
parent31de2c9461dff3284ad61084c73eba093fa3f68e (diff)
downloadpostgresql-7971539020a344dce3a8b3b9b93ff4f10e2f823a.tar.gz
postgresql-7971539020a344dce3a8b3b9b93ff4f10e2f823a.zip
heap_fetch requires buffer pointer, must be released; heap_getnext
no longer returns buffer pointer, can be gotten from scan; descriptor; bootstrap can create multi-key indexes; pg_procname index now is multi-key index; oidint2, oidint4, oidname are gone (must be removed from regression tests); use System Cache rather than sequential scan in many places; heap_modifytuple no longer takes buffer parameter; remove unused buffer parameter in a few other functions; oid8 is not index-able; remove some use of single-character variable names; cleanup Buffer variables usage and scan descriptor looping; cleaned up allocation and freeing of tuples; 18k lines of diff;
Diffstat (limited to 'src/backend/utils/adt/sets.c')
-rw-r--r--src/backend/utils/adt/sets.c30
1 files changed, 6 insertions, 24 deletions
diff --git a/src/backend/utils/adt/sets.c b/src/backend/utils/adt/sets.c
index 2822756786c..1d150805ce9 100644
--- a/src/backend/utils/adt/sets.c
+++ b/src/backend/utils/adt/sets.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.15 1998/07/27 19:38:21 vadim Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/sets.c,v 1.16 1998/08/19 02:03:06 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -56,13 +56,6 @@ SetDefine(char *querystr, char *typename)
Datum replValue[Natts_pg_proc];
char replNull[Natts_pg_proc];
char repl[Natts_pg_proc];
- HeapScanDesc pg_proc_scan;
- Buffer buffer;
- ItemPointerData ipdata;
-
- static ScanKeyData oidKey[1] = {
- {0, ObjectIdAttributeNumber, F_OIDEQ}};
-
setoid = ProcedureCreate(procname, /* changed below, after oid known */
true, /* returnsSet */
@@ -117,37 +110,26 @@ SetDefine(char *querystr, char *typename)
/* change the pg_proc tuple */
procrel = heap_openr(ProcedureRelationName);
RelationSetLockForWrite(procrel);
- fmgr_info(F_OIDEQ,
- &oidKey[0].sk_func);
- oidKey[0].sk_nargs = oidKey[0].sk_func.fn_nargs;
- oidKey[0].sk_argument = ObjectIdGetDatum(setoid);
- pg_proc_scan = heap_beginscan(procrel,
- 0,
- SnapshotSelf,
- 1,
- oidKey);
- tup = heap_getnext(pg_proc_scan, 0, &buffer);
+
+ tup = SearchSysCacheTuple(PROOID,
+ ObjectIdGetDatum(setoid),
+ 0, 0, 0);
if (HeapTupleIsValid(tup))
{
newtup = heap_modifytuple(tup,
- buffer,
procrel,
replValue,
replNull,
repl);
- /* XXX may not be necessary */
- ItemPointerCopy(&tup->t_ctid, &ipdata);
-
setheapoverride(true);
- heap_replace(procrel, &ipdata, newtup);
+ heap_replace(procrel, &tup->t_ctid, newtup);
setheapoverride(false);
setoid = newtup->t_oid;
}
else
elog(ERROR, "setin: could not find new set oid tuple");
- heap_endscan(pg_proc_scan);
if (RelationGetRelationTupleForm(procrel)->relhasindex)
{