diff options
author | Bruce Momjian <bruce@momjian.us> | 1998-08-19 02:04:17 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 1998-08-19 02:04:17 +0000 |
commit | 7971539020a344dce3a8b3b9b93ff4f10e2f823a (patch) | |
tree | 8dca0af0d3ac8d431bff8c0dec793fe9733a1ee9 /src/backend/utils/adt/sets.c | |
parent | 31de2c9461dff3284ad61084c73eba093fa3f68e (diff) | |
download | postgresql-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.c | 30 |
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) { |