diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c index 2f9a94d01e5c40e2805fd5caf77099822ca5aa5a..f30b2cd93330d72e0a412d6517aec08c96cc753e 100644 --- a/src/backend/executor/spi.c +++ b/src/backend/executor/spi.c @@ -940,6 +940,12 @@ SPI_gettype(TupleDesc tupdesc, int fnumber) return result; } +/* + * Get the data type OID for a column. + * + * There's nothing similar for typmod and typcollation. The rare consumers + * thereof should inspect the TupleDesc directly. + */ Oid SPI_gettypeid(TupleDesc tupdesc, int fnumber) { diff --git a/src/pl/plpgsql/src/pl_exec.c b/src/pl/plpgsql/src/pl_exec.c index 57789fc365b140d4df67c1b39e8ce4fcd7bad4b6..5b142e3bee6ccf929f3d4ec8ef3bf6c46467dc90 100644 --- a/src/pl/plpgsql/src/pl_exec.c +++ b/src/pl/plpgsql/src/pl_exec.c @@ -4446,7 +4446,6 @@ exec_eval_datum(PLpgSQL_execstate *estate, errmsg("record \"%s\" has no field \"%s\"", rec->refname, recfield->fieldname))); *typeid = SPI_gettypeid(rec->tupdesc, fno); - /* XXX there's no SPI_gettypmod, for some reason */ if (fno > 0) *typetypmod = rec->tupdesc->attrs[fno - 1]->atttypmod; else @@ -4623,12 +4622,10 @@ exec_get_datum_type_info(PLpgSQL_execstate *estate, errmsg("record \"%s\" has no field \"%s\"", rec->refname, recfield->fieldname))); *typeid = SPI_gettypeid(rec->tupdesc, fno); - /* XXX there's no SPI_gettypmod, for some reason */ if (fno > 0) *typmod = rec->tupdesc->attrs[fno - 1]->atttypmod; else *typmod = -1; - /* XXX there's no SPI_getcollation either */ if (fno > 0) *collation = rec->tupdesc->attrs[fno - 1]->attcollation; else /* no system column types have collation */