diff options
Diffstat (limited to 'src/backend/utils/adt/selfuncs.c')
-rw-r--r-- | src/backend/utils/adt/selfuncs.c | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c index b711d768c07..7ec3e4dc1b8 100644 --- a/src/backend/utils/adt/selfuncs.c +++ b/src/backend/utils/adt/selfuncs.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.47 2000/01/15 02:59:38 petere Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/selfuncs.c,v 1.48 2000/01/15 22:43:24 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -600,6 +600,7 @@ getattstatistics(Oid relid, AttrNumber attnum, Oid opid, Oid typid, HeapTuple tuple; HeapTuple typeTuple; FmgrInfo inputproc; + Oid typelem; rel = heap_openr(StatisticRelationName, AccessShareLock); @@ -630,6 +631,7 @@ getattstatistics(Oid relid, AttrNumber attnum, Oid opid, Oid typid, elog(ERROR, "getattstatistics: Cache lookup failed for type %u", typid); fmgr_info(((Form_pg_type) GETSTRUCT(typeTuple))->typinput, &inputproc); + typelem = ((Form_pg_type) GETSTRUCT(typeTuple))->typelem; /* Values are variable-length fields, so cannot access as struct fields. * Must do it the hard way with heap_getattr. @@ -649,7 +651,7 @@ getattstatistics(Oid relid, AttrNumber attnum, Oid opid, Oid typid, { char *strval = textout(val); *commonval = (Datum) - (*fmgr_faddr(&inputproc)) (strval, typid, typmod); + (*fmgr_faddr(&inputproc)) (strval, typelem, typmod); pfree(strval); } } @@ -669,7 +671,7 @@ getattstatistics(Oid relid, AttrNumber attnum, Oid opid, Oid typid, { char *strval = textout(val); *loval = (Datum) - (*fmgr_faddr(&inputproc)) (strval, typid, typmod); + (*fmgr_faddr(&inputproc)) (strval, typelem, typmod); pfree(strval); } } @@ -689,7 +691,7 @@ getattstatistics(Oid relid, AttrNumber attnum, Oid opid, Oid typid, { char *strval = textout(val); *hival = (Datum) - (*fmgr_faddr(&inputproc)) (strval, typid, typmod); + (*fmgr_faddr(&inputproc)) (strval, typelem, typmod); pfree(strval); } } |