git.postgresql.org Git - postgresql.git/commitdiff

git projects / postgresql.git / commitdiff
? search:
summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 93b2477)
Make record_out and record_send extract type information from the passed
2005年4月30日 20:04:33 +0000 (20:04 +0000)
2005年4月30日 20:04:33 +0000 (20:04 +0000)
record object itself, rather than relying on a second OID argument to be
correct. This patch just changes the function behavior and not the
catalogs, so it's OK to back-patch to 8.0. Will remove the now-redundant
second argument in pg_proc in a separate patch in HEAD only.


diff --git a/src/backend/utils/adt/rowtypes.c b/src/backend/utils/adt/rowtypes.c
index 79f04a124ee27242a8655f8b3ac9ceb1c8cb4ec7..090158d34a528f3c227025a75f47b863b5ec4f7c 100644 (file)
--- a/src/backend/utils/adt/rowtypes.c
+++ b/src/backend/utils/adt/rowtypes.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/rowtypes.c,v 1.9 2005年04月18日 17:11:05 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/rowtypes.c,v 1.10 2005年04月30日 20:04:33 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -268,7 +268,7 @@ Datum
record_out(PG_FUNCTION_ARGS)
{
HeapTupleHeader rec = PG_GETARG_HEAPTUPLEHEADER(0);
- Oid tupType = PG_GETARG_OID(1);
+ Oid tupType;
int32 tupTypmod;
TupleDesc tupdesc;
HeapTupleData tuple;
@@ -280,18 +280,9 @@ record_out(PG_FUNCTION_ARGS)
char *nulls;
StringInfoData buf;
- /*
- * Use the passed type unless it's RECORD; in that case, we'd better
- * get the type info out of the datum itself. Note that for RECORD,
- * what we'll probably actually get is RECORD's typelem, ie, zero.
- */
- if (tupType == InvalidOid || tupType == RECORDOID)
- {
- tupType = HeapTupleHeaderGetTypeId(rec);
- tupTypmod = HeapTupleHeaderGetTypMod(rec);
- }
- else
- tupTypmod = -1;
+ /* Extract type info from the tuple itself */
+ tupType = HeapTupleHeaderGetTypeId(rec);
+ tupTypmod = HeapTupleHeaderGetTypMod(rec);
tupdesc = lookup_rowtype_tupdesc(tupType, tupTypmod);
ncolumns = tupdesc->natts;
@@ -613,7 +604,7 @@ Datum
record_send(PG_FUNCTION_ARGS)
{
HeapTupleHeader rec = PG_GETARG_HEAPTUPLEHEADER(0);
- Oid tupType = PG_GETARG_OID(1);
+ Oid tupType;
int32 tupTypmod;
TupleDesc tupdesc;
HeapTupleData tuple;
@@ -625,18 +616,9 @@ record_send(PG_FUNCTION_ARGS)
char *nulls;
StringInfoData buf;
- /*
- * Use the passed type unless it's RECORD; in that case, we'd better
- * get the type info out of the datum itself. Note that for RECORD,
- * what we'll probably actually get is RECORD's typelem, ie, zero.
- */
- if (tupType == InvalidOid || tupType == RECORDOID)
- {
- tupType = HeapTupleHeaderGetTypeId(rec);
- tupTypmod = HeapTupleHeaderGetTypMod(rec);
- }
- else
- tupTypmod = -1;
+ /* Extract type info from the tuple itself */
+ tupType = HeapTupleHeaderGetTypeId(rec);
+ tupTypmod = HeapTupleHeaderGetTypMod(rec);
tupdesc = lookup_rowtype_tupdesc(tupType, tupTypmod);
ncolumns = tupdesc->natts;
This is the main PostgreSQL git repository.
RSS Atom

AltStyle によって変換されたページ (->オリジナル) /