diff options
| author | Tom Lane <tgl@sss.pgh.pa.us> | 2000-07-06 05:48:31 +0000 |
|---|---|---|
| committer | Tom Lane <tgl@sss.pgh.pa.us> | 2000-07-06 05:48:31 +0000 |
| commit | 8ecac94bb21570ee45245f440171b5ffb4efe68c (patch) | |
| tree | f121b3c7378fbe82722c05f610fcd61edbe6197f /src/backend/utils/fmgr/fmgr.c | |
| parent | 40f64064ff56c3118d156ba83df72b1779415a8a (diff) | |
| download | postgresql-8ecac94bb21570ee45245f440171b5ffb4efe68c.tar.gz | |
Functions on 'text' type updated to new fmgr style. 'text' is
now TOAST-able.
Diffstat (limited to 'src/backend/utils/fmgr/fmgr.c')
| -rw-r--r-- | src/backend/utils/fmgr/fmgr.c | 32 |
1 files changed, 31 insertions, 1 deletions
diff --git a/src/backend/utils/fmgr/fmgr.c b/src/backend/utils/fmgr/fmgr.c index fd732c8f94..7b8aca3feb 100644 --- a/src/backend/utils/fmgr/fmgr.c +++ b/src/backend/utils/fmgr/fmgr.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.44 2000/07/05 23:11:40 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/fmgr/fmgr.c,v 1.45 2000/07/06 05:48:13 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -1284,3 +1284,33 @@ Float8GetDatum(float8 X) *retval = X; return PointerGetDatum(retval); } + +/*------------------------------------------------------------------------- + * Support routines for toastable datatypes + *------------------------------------------------------------------------- + */ + +struct varlena * +pg_detoast_datum(struct varlena * datum) +{ + if (VARATT_IS_EXTENDED(datum)) + return (struct varlena *) heap_tuple_untoast_attr((varattrib *) datum); + else + return datum; +} + +struct varlena * +pg_detoast_datum_copy(struct varlena * datum) +{ + if (VARATT_IS_EXTENDED(datum)) + return (struct varlena *) heap_tuple_untoast_attr((varattrib *) datum); + else + { + /* Make a modifiable copy of the varlena object */ + Size len = VARSIZE(datum); + struct varlena *result = (struct varlena *) palloc(len); + + memcpy(result, datum, len); + return result; + } +} |
