Hi All, This is regarding the TODO item : "Add SPI_gettypmod() to return a field's typemod from a TupleDesc"
The related message is: http://archives.postgresql.org/pgsql-hackers/2005-11/msg00250.php This basically talks about having an SPI_gettypemod() which returns the typmod of a field of tupdesc Please refer the attached patch based on the suggested implementation. Regards, Chetan -- EnterpriseDB Corporation The Enterprise PostgreSQL Company Website: www.enterprisedb.com EnterpriseDB Blog : http://blogs.enterprisedb.com Follow us on Twitter : http://www.twitter.com/enterprisedb
diff --git a/src/backend/executor/spi.c b/src/backend/executor/spi.c index 81f284c..659122e 100644 --- a/src/backend/executor/spi.c +++ b/src/backend/executor/spi.c @@ -955,6 +955,24 @@ SPI_gettypeid(TupleDesc tupdesc, int fnumber) return (SystemAttributeDefinition(fnumber, true))->atttypid; } +int4 +SPI_gettypemod(TupleDesc tupdesc, int fnumber) +{ + SPI_result = 0; + + if (fnumber > tupdesc->natts || fnumber == 0 || + fnumber <= FirstLowInvalidHeapAttributeNumber) + { + SPI_result = SPI_ERROR_NOATTRIBUTE; + return -1; + } + + if (fnumber > 0) + return tupdesc->attrs[fnumber - 1]->atttypmod; + else + return (SystemAttributeDefinition(fnumber, true))->atttypmod; +} + char * SPI_getrelname(Relation rel) { diff --git a/src/include/executor/spi.h b/src/include/executor/spi.h index cfbaa14..a358710 100644 --- a/src/include/executor/spi.h +++ b/src/include/executor/spi.h @@ -113,6 +113,7 @@ extern char *SPI_getvalue(HeapTuple tuple, TupleDesc tupdesc, int fnumber); extern Datum SPI_getbinval(HeapTuple tuple, TupleDesc tupdesc, int fnumber, bool *isnull); extern char *SPI_gettype(TupleDesc tupdesc, int fnumber); extern Oid SPI_gettypeid(TupleDesc tupdesc, int fnumber); +extern int4 SPI_gettypemod(TupleDesc tupdesc, int fnumber); extern char *SPI_getrelname(Relation rel); extern char *SPI_getnspname(Relation rel); extern void *SPI_palloc(Size size);
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers