summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/common/heaptuple.c6
-rw-r--r--src/backend/access/common/indextuple.c4
-rw-r--r--src/backend/access/common/reloptions.c16
-rw-r--r--src/backend/access/heap/tuptoaster.c73
-rw-r--r--src/backend/catalog/pg_conversion.c4
-rw-r--r--src/backend/executor/execQual.c6
-rw-r--r--src/backend/libpq/be-fsstubs.c4
-rw-r--r--src/backend/libpq/pqformat.c4
-rw-r--r--src/backend/storage/large_object/inv_api.c8
-rw-r--r--src/backend/utils/adt/acl.c9
-rw-r--r--src/backend/utils/adt/array_userfuncs.c4
-rw-r--r--src/backend/utils/adt/arrayfuncs.c20
-rw-r--r--src/backend/utils/adt/cash.c4
-rw-r--r--src/backend/utils/adt/char.c6
-rw-r--r--src/backend/utils/adt/date.c14
-rw-r--r--src/backend/utils/adt/datum.c4
-rw-r--r--src/backend/utils/adt/dbsize.c4
-rw-r--r--src/backend/utils/adt/encode.c6
-rw-r--r--src/backend/utils/adt/float.c6
-rw-r--r--src/backend/utils/adt/formatting.c10
-rw-r--r--src/backend/utils/adt/genfile.c6
-rw-r--r--src/backend/utils/adt/geo_ops.c20
-rw-r--r--src/backend/utils/adt/int.c10
-rw-r--r--src/backend/utils/adt/int8.c4
-rw-r--r--src/backend/utils/adt/like.c4
-rw-r--r--src/backend/utils/adt/like_match.c4
-rw-r--r--src/backend/utils/adt/mac.c6
-rw-r--r--src/backend/utils/adt/nabstime.c6
-rw-r--r--src/backend/utils/adt/network.c50
-rw-r--r--src/backend/utils/adt/numeric.c36
-rw-r--r--src/backend/utils/adt/oid.c8
-rw-r--r--src/backend/utils/adt/oracle_compat.c26
-rw-r--r--src/backend/utils/adt/pg_lzcompress.c10
-rw-r--r--src/backend/utils/adt/pgstatfuncs.c4
-rw-r--r--src/backend/utils/adt/quote.c6
-rw-r--r--src/backend/utils/adt/regexp.c4
-rw-r--r--src/backend/utils/adt/ruleutils.c4
-rw-r--r--src/backend/utils/adt/selfuncs.c4
-rw-r--r--src/backend/utils/adt/timestamp.c14
-rw-r--r--src/backend/utils/adt/varbit.c36
-rw-r--r--src/backend/utils/adt/varchar.c14
-rw-r--r--src/backend/utils/adt/varlena.c20
-rw-r--r--src/backend/utils/adt/version.c4
-rw-r--r--src/backend/utils/adt/xml.c14
-rw-r--r--src/backend/utils/cache/relcache.c6
-rw-r--r--src/backend/utils/mb/mbutils.c4
-rw-r--r--src/include/access/htup.h12
-rw-r--r--src/include/access/tupmacs.h4
-rw-r--r--src/include/c.h15
-rw-r--r--src/include/postgres.h28
-rw-r--r--src/include/utils/array.h12
-rw-r--r--src/include/utils/geo_decls.h6
-rw-r--r--src/include/utils/numeric.h6
-rw-r--r--src/include/utils/pg_lzcompress.h6
-rw-r--r--src/include/utils/rel.h4
-rw-r--r--src/include/utils/varbit.h5
-rw-r--r--src/tutorial/funcs.c6
-rw-r--r--src/tutorial/funcs_new.c6
58 files changed, 325 insertions, 321 deletions
diff --git a/src/backend/access/common/heaptuple.c b/src/backend/access/common/heaptuple.c
index 470f48777de..0c83262c3b8 100644
--- a/src/backend/access/common/heaptuple.c
+++ b/src/backend/access/common/heaptuple.c
@@ -16,7 +16,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/common/heaptuple.c,v 1.115 2007/02/09 03:35:33 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/common/heaptuple.c,v 1.116 2007/02/27 23:48:06 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -162,7 +162,7 @@ heap_fill_tuple(TupleDesc tupleDesc,
*infomask |= HEAP_HASEXTERNAL;
if (VARATT_IS_COMPRESSED(values[i]))
*infomask |= HEAP_HASCOMPRESSED;
- data_length = VARATT_SIZE(DatumGetPointer(values[i]));
+ data_length = VARSIZE(DatumGetPointer(values[i]));
memcpy(data, DatumGetPointer(values[i]), data_length);
}
else if (att[i]->attlen == -2)
@@ -261,7 +261,7 @@ DataFill(char *data,
*infomask |= HEAP_HASEXTERNAL;
if (VARATT_IS_COMPRESSED(values[i]))
*infomask |= HEAP_HASCOMPRESSED;
- data_length = VARATT_SIZE(DatumGetPointer(values[i]));
+ data_length = VARSIZE(DatumGetPointer(values[i]));
memcpy(data, DatumGetPointer(values[i]), data_length);
}
else if (att[i]->attlen == -2)
diff --git a/src/backend/access/common/indextuple.c b/src/backend/access/common/indextuple.c
index f2a14240ecb..c83e34834ca 100644
--- a/src/backend/access/common/indextuple.c
+++ b/src/backend/access/common/indextuple.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/common/indextuple.c,v 1.80 2007/01/05 22:19:21 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/common/indextuple.c,v 1.81 2007/02/27 23:48:06 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -84,7 +84,7 @@ index_form_tuple(TupleDesc tupleDescriptor,
* If value is above size target, and is of a compressible datatype,
* try to compress it in-line.
*/
- if (VARATT_SIZE(untoasted_values[i]) > TOAST_INDEX_TARGET &&
+ if (VARSIZE(untoasted_values[i]) > TOAST_INDEX_TARGET &&
!VARATT_IS_EXTENDED(untoasted_values[i]) &&
(att->attstorage == 'x' || att->attstorage == 'm'))
{
diff --git a/src/backend/access/common/reloptions.c b/src/backend/access/common/reloptions.c
index 98cbce6761b..4adf4666e77 100644
--- a/src/backend/access/common/reloptions.c
+++ b/src/backend/access/common/reloptions.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/common/reloptions.c,v 1.3 2007/01/05 22:19:21 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/access/common/reloptions.c,v 1.4 2007/02/27 23:48:06 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -72,8 +72,8 @@ transformRelOptions(Datum oldOptions, List *defList,
for (i = 0; i < noldoptions; i++)
{
text *oldoption = DatumGetTextP(oldoptions[i]);
- char *text_str = (char *) VARATT_DATA(oldoption);
- int text_len = VARATT_SIZE(oldoption) - VARHDRSZ;
+ char *text_str = VARDATA(oldoption);
+ int text_len = VARSIZE(oldoption) - VARHDRSZ;
/* Search for a match in defList */
foreach(cell, defList)
@@ -131,8 +131,8 @@ transformRelOptions(Datum oldOptions, List *defList,
len = VARHDRSZ + strlen(def->defname) + 1 + strlen(value);
/* +1 leaves room for sprintf's trailing null */
t = (text *) palloc(len + 1);
- VARATT_SIZEP(t) = len;
- sprintf((char *) VARATT_DATA(t), "%s=%s", def->defname, value);
+ SET_VARSIZE(t, len);
+ sprintf(VARDATA(t), "%s=%s", def->defname, value);
astate = accumArrayResult(astate, PointerGetDatum(t),
false, TEXTOID,
@@ -188,8 +188,8 @@ parseRelOptions(Datum options, int numkeywords, const char *const * keywords,
for (i = 0; i < noptions; i++)
{
text *optiontext = DatumGetTextP(optiondatums[i]);
- char *text_str = (char *) VARATT_DATA(optiontext);
- int text_len = VARATT_SIZE(optiontext) - VARHDRSZ;
+ char *text_str = VARDATA(optiontext);
+ int text_len = VARSIZE(optiontext) - VARHDRSZ;
int j;
/* Search for a match in keywords */
@@ -267,7 +267,7 @@ default_reloptions(Datum reloptions, bool validate,
}
result = (StdRdOptions *) palloc(sizeof(StdRdOptions));
- VARATT_SIZEP(result) = sizeof(StdRdOptions);
+ SET_VARSIZE(result, sizeof(StdRdOptions));
result->fillfactor = fillfactor;
diff --git a/src/backend/access/heap/tuptoaster.c b/src/backend/access/heap/tuptoaster.c
index 6fde18104a3..b1eb8aea4d3 100644
--- a/src/backend/access/heap/tuptoaster.c
+++ b/src/backend/access/heap/tuptoaster.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/access/heap/tuptoaster.c,v 1.70 2007/02/04 20:00:37 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/access/heap/tuptoaster.c,v 1.71 2007/02/27 23:48:07 tgl Exp $
*
*
* INTERFACE ROUTINES
@@ -104,8 +104,8 @@ heap_tuple_untoast_attr(varattrib *attr)
tmp = (PGLZ_Header *) toast_fetch_datum(attr);
result = (varattrib *) palloc(PGLZ_RAW_SIZE(tmp) + VARHDRSZ);
- VARATT_SIZEP(result) = PGLZ_RAW_SIZE(tmp) + VARHDRSZ;
- pglz_decompress(tmp, VARATT_DATA(result));
+ SET_VARSIZE(result, PGLZ_RAW_SIZE(tmp) + VARHDRSZ);
+ pglz_decompress(tmp, VARDATA(result));
pfree(tmp);
}
else
@@ -124,8 +124,8 @@ heap_tuple_untoast_attr(varattrib *attr)
PGLZ_Header *tmp = (PGLZ_Header *) attr;
result = (varattrib *) palloc(PGLZ_RAW_SIZE(tmp) + VARHDRSZ);
- VARATT_SIZEP(result) = PGLZ_RAW_SIZE(tmp) + VARHDRSZ;
- pglz_decompress(tmp, VARATT_DATA(result));
+ SET_VARSIZE(result, PGLZ_RAW_SIZE(tmp) + VARHDRSZ);
+ pglz_decompress(tmp, VARDATA(result));
}
else
@@ -162,8 +162,8 @@ heap_tuple_untoast_attr_slice(varattrib *attr, int32 sliceoffset, int32 slicelen
tmp = (PGLZ_Header *) attr; /* compressed in main tuple */
preslice = (varattrib *) palloc(PGLZ_RAW_SIZE(tmp) + VARHDRSZ);
- VARATT_SIZEP(preslice) = PGLZ_RAW_SIZE(tmp) + VARHDRSZ;
- pglz_decompress(tmp, VARATT_DATA(preslice));
+ SET_VARSIZE(preslice, PGLZ_RAW_SIZE(tmp) + VARHDRSZ);
+ pglz_decompress(tmp, VARDATA(preslice));
if (tmp != (PGLZ_Header *) attr)
pfree(tmp);
@@ -193,7 +193,7 @@ heap_tuple_untoast_attr_slice(varattrib *attr, int32 sliceoffset, int32 slicelen
slicelength = attrsize - sliceoffset;
result = (varattrib *) palloc(slicelength + VARHDRSZ);
- VARATT_SIZEP(result) = slicelength + VARHDRSZ;
+ SET_VARSIZE(result, slicelength + VARHDRSZ);
memcpy(VARDATA(result), VARDATA(preslice) + sliceoffset, slicelength);
@@ -435,7 +435,7 @@ toast_insert_or_update(Relation rel, HeapTuple newtup, HeapTuple oldtup, bool us
* tuple.
*/
toast_action[i] = 'p';
- toast_sizes[i] = VARATT_SIZE(toast_values[i]);
+ toast_sizes[i] = VARSIZE(toast_values[i]);
continue;
}
}
@@ -486,7 +486,7 @@ toast_insert_or_update(Relation rel, HeapTuple newtup, HeapTuple oldtup, bool us
/*
* Remember the size of this attribute
*/
- toast_sizes[i] = VARATT_SIZE(new_value);
+ toast_sizes[i] = VARSIZE(new_value);
}
else
{
@@ -564,7 +564,7 @@ toast_insert_or_update(Relation rel, HeapTuple newtup, HeapTuple oldtup, bool us
pfree(DatumGetPointer(old_value));
toast_values[i] = new_value;
toast_free[i] = true;
- toast_sizes[i] = VARATT_SIZE(toast_values[i]);
+ toast_sizes[i] = VARSIZE(toast_values[i]);
need_change = true;
need_free = true;
}
@@ -623,7 +623,7 @@ toast_insert_or_update(Relation rel, HeapTuple newtup, HeapTuple oldtup, bool us
pfree(DatumGetPointer(old_value));
toast_free[i] = true;
- toast_sizes[i] = VARATT_SIZE(toast_values[i]);
+ toast_sizes[i] = VARSIZE(toast_values[i]);
need_change = true;
need_free = true;
@@ -676,7 +676,7 @@ toast_insert_or_update(Relation rel, HeapTuple newtup, HeapTuple oldtup, bool us
pfree(DatumGetPointer(old_value));
toast_values[i] = new_value;
toast_free[i] = true;
- toast_sizes[i] = VARATT_SIZE(toast_values[i]);
+ toast_sizes[i] = VARSIZE(toast_values[i]);
need_change = true;
need_free = true;
}
@@ -734,7 +734,7 @@ toast_insert_or_update(Relation rel, HeapTuple newtup, HeapTuple oldtup, bool us
pfree(DatumGetPointer(old_value));
toast_free[i] = true;
- toast_sizes[i] = VARATT_SIZE(toast_values[i]);
+ toast_sizes[i] = VARSIZE(toast_values[i]);
need_change = true;
need_free = true;
@@ -949,15 +949,15 @@ Datum
toast_compress_datum(Datum value)
{
varattrib *tmp;
- int32 valsize = VARATT_SIZE(value) - VARHDRSZ;
+ int32 valsize = VARSIZE(value) - VARHDRSZ;
tmp = (varattrib *) palloc(PGLZ_MAX_OUTPUT(valsize));
- if (pglz_compress(VARATT_DATA(value), valsize,
+ if (pglz_compress(VARDATA(value), valsize,
(PGLZ_Header *) tmp, PGLZ_strategy_default) &&
- VARATT_SIZE(tmp) < VARATT_SIZE(value))
+ VARSIZE(tmp) < VARSIZE(value))
{
/* successful compression */
- VARATT_SIZEP(tmp) |= VARATT_FLAG_COMPRESSED;
+ VARATT_SIZEP_DEPRECATED(tmp) |= VARATT_FLAG_COMPRESSED;
return PointerGetDatum(tmp);
}
else
@@ -1010,18 +1010,19 @@ toast_save_datum(Relation rel, Datum value, bool use_wal)
*/
result = (varattrib *) palloc(sizeof(varattrib));
- result->va_header = sizeof(varattrib) | VARATT_FLAG_EXTERNAL;
+ SET_VARSIZE(result, sizeof(varattrib));
+ VARATT_SIZEP_DEPRECATED(result) |= VARATT_FLAG_EXTERNAL;
if (VARATT_IS_COMPRESSED(value))
{
- result->va_header |= VARATT_FLAG_COMPRESSED;
+ VARATT_SIZEP_DEPRECATED(result) |= VARATT_FLAG_COMPRESSED;
result->va_content.va_external.va_rawsize =
((varattrib *) value)->va_content.va_compressed.va_rawsize;
}
else
- result->va_content.va_external.va_rawsize = VARATT_SIZE(value);
+ result->va_content.va_external.va_rawsize = VARSIZE(value);
result->va_content.va_external.va_extsize =
- VARATT_SIZE(value) - VARHDRSZ;
+ VARSIZE(value) - VARHDRSZ;
result->va_content.va_external.va_valueid =
GetNewOidWithIndex(toastrel, toastidx);
result->va_content.va_external.va_toastrelid =
@@ -1039,8 +1040,8 @@ toast_save_datum(Relation rel, Datum value, bool use_wal)
/*
* Get the data to process
*/
- data_p = VARATT_DATA(value);
- data_todo = VARATT_SIZE(value) - VARHDRSZ;
+ data_p = VARDATA(value);
+ data_todo = VARSIZE(value) - VARHDRSZ;
/*
* Split up the item into chunks
@@ -1056,8 +1057,8 @@ toast_save_datum(Relation rel, Datum value, bool use_wal)
* Build a tuple and store it
*/
t_values[1] = Int32GetDatum(chunk_seq++);
- VARATT_SIZEP(&chunk_data) = chunk_size + VARHDRSZ;
- memcpy(VARATT_DATA(&chunk_data), data_p, chunk_size);
+ SET_VARSIZE(&chunk_data, chunk_size + VARHDRSZ);
+ memcpy(VARDATA(&chunk_data), data_p, chunk_size);
toasttup = heap_form_tuple(toasttupDesc, t_values, t_isnull);
if (!HeapTupleIsValid(toasttup))
elog(ERROR, "failed to build TOAST tuple");
@@ -1184,9 +1185,9 @@ toast_fetch_datum(varattrib *attr)
numchunks = ((ressize - 1) / TOAST_MAX_CHUNK_SIZE) + 1;
result = (varattrib *) palloc(ressize + VARHDRSZ);
- VARATT_SIZEP(result) = ressize + VARHDRSZ;
+ SET_VARSIZE(result, ressize + VARHDRSZ);
if (VARATT_IS_COMPRESSED(attr))
- VARATT_SIZEP(result) |= VARATT_FLAG_COMPRESSED;
+ VARATT_SIZEP_DEPRECATED(result) |= VARATT_FLAG_COMPRESSED;
/*
* Open the toast relation and its index
@@ -1224,7 +1225,7 @@ toast_fetch_datum(varattrib *attr)
Assert(!isnull);
chunk = DatumGetPointer(fastgetattr(ttup, 3, toasttupDesc, &isnull));
Assert(!isnull);
- chunksize = VARATT_SIZE(chunk) - VARHDRSZ;
+ chunksize = VARSIZE(chunk) - VARHDRSZ;
/*
* Some checks on the data we've found
@@ -1255,8 +1256,8 @@ toast_fetch_datum(varattrib *attr)
/*
* Copy the data into proper place in our result
*/
- memcpy(((char *) VARATT_DATA(result)) + residx * TOAST_MAX_CHUNK_SIZE,
- VARATT_DATA(chunk),
+ memcpy(VARDATA(result) + residx * TOAST_MAX_CHUNK_SIZE,
+ VARDATA(chunk),
chunksize);
nextidx++;
@@ -1326,10 +1327,10 @@ toast_fetch_datum_slice(varattrib *attr, int32 sliceoffset, int32 length)
length = attrsize - sliceoffset;
result = (varattrib *) palloc(length + VARHDRSZ);
- VARATT_SIZEP(result) = length + VARHDRSZ;
+ SET_VARSIZE(result, length + VARHDRSZ);
if (VARATT_IS_COMPRESSED(attr))
- VARATT_SIZEP(result) |= VARATT_FLAG_COMPRESSED;
+ VARATT_SIZEP_DEPRECATED(result) |= VARATT_FLAG_COMPRESSED;
if (length == 0)
return result; /* Can save a lot of work at this point! */
@@ -1399,7 +1400,7 @@ toast_fetch_datum_slice(varattrib *attr, int32 sliceoffset, int32 length)
Assert(!isnull);
chunk = DatumGetPointer(fastgetattr(ttup, 3, toasttupDesc, &isnull));
Assert(!isnull);
- chunksize = VARATT_SIZE(chunk) - VARHDRSZ;
+ chunksize = VARSIZE(chunk) - VARHDRSZ;
/*
* Some checks on the data we've found
@@ -1433,9 +1434,9 @@ toast_fetch_datum_slice(varattrib *attr, int32 sliceoffset, int32 length)
if (residx == endchunk)
chcpyend = endoffset;
- memcpy(((char *) VARATT_DATA(result)) +
+ memcpy(VARDATA(result) +
(residx * TOAST_MAX_CHUNK_SIZE - sliceoffset) + chcpystrt,
- VARATT_DATA(chunk) + chcpystrt,
+ VARDATA(chunk) + chcpystrt,
(chcpyend - chcpystrt) + 1);
nextidx++;
diff --git a/src/backend/catalog/pg_conversion.c b/src/backend/catalog/pg_conversion.c
index 63779452850..262d9f41fb7 100644
--- a/src/backend/catalog/pg_conversion.c
+++ b/src/backend/catalog/pg_conversion.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/catalog/pg_conversion.c,v 1.35 2007/02/14 01:58:56 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/catalog/pg_conversion.c,v 1.36 2007/02/27 23:48:07 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -338,7 +338,7 @@ pg_convert_using(PG_FUNCTION_ARGS)
*/
len = strlen(result) + VARHDRSZ;
retval = palloc(len);
- VARATT_SIZEP(retval) = len;
+ SET_VARSIZE(retval, len);
memcpy(VARDATA(retval), result, len - VARHDRSZ);
pfree(result);
diff --git a/src/backend/executor/execQual.c b/src/backend/executor/execQual.c
index 234441c0f6c..784bbac231f 100644
--- a/src/backend/executor/execQual.c
+++ b/src/backend/executor/execQual.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/executor/execQual.c,v 1.214 2007/02/27 01:11:25 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/executor/execQual.c,v 1.215 2007/02/27 23:48:07 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -2533,7 +2533,7 @@ ExecEvalArray(ArrayExprState *astate, ExprContext *econtext,
}
result = (ArrayType *) palloc(nbytes);
- result->size = nbytes;
+ SET_VARSIZE(result, nbytes);
result->ndim = ndims;
result->dataoffset = dataoffset;
result->elemtype = element_type;
@@ -2967,7 +2967,7 @@ ExecEvalXml(XmlExprState *xmlExpr, ExprContext *econtext,
int len = buf.len + VARHDRSZ;
result = palloc(len);
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
memcpy(VARDATA(result), buf.data, buf.len);
}
diff --git a/src/backend/libpq/be-fsstubs.c b/src/backend/libpq/be-fsstubs.c
index 1b43c42c96e..80eddc2821b 100644
--- a/src/backend/libpq/be-fsstubs.c
+++ b/src/backend/libpq/be-fsstubs.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/libpq/be-fsstubs.c,v 1.84 2007/01/05 22:19:29 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/libpq/be-fsstubs.c,v 1.85 2007/02/27 23:48:07 tgl Exp $
*
* NOTES
* This should be moved to a more appropriate place. It is here
@@ -304,7 +304,7 @@ loread(PG_FUNCTION_ARGS)
retval = (bytea *) palloc(VARHDRSZ + len);
totalread = lo_read(fd, VARDATA(retval), len);
- VARATT_SIZEP(retval) = totalread + VARHDRSZ;
+ SET_VARSIZE(retval, totalread + VARHDRSZ);
PG_RETURN_BYTEA_P(retval);
}
diff --git a/src/backend/libpq/pqformat.c b/src/backend/libpq/pqformat.c
index 6ecf0413d76..c81dfa5b227 100644
--- a/src/backend/libpq/pqformat.c
+++ b/src/backend/libpq/pqformat.c
@@ -24,7 +24,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/libpq/pqformat.c,v 1.43 2007/01/05 22:19:29 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/libpq/pqformat.c,v 1.44 2007/02/27 23:48:07 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -386,7 +386,7 @@ pq_endtypsend(StringInfo buf)
/* Insert correct length into bytea length word */
Assert(buf->len >= VARHDRSZ);
- VARATT_SIZEP(result) = buf->len;
+ SET_VARSIZE(result, buf->len);
return result;
}
diff --git a/src/backend/storage/large_object/inv_api.c b/src/backend/storage/large_object/inv_api.c
index b787c6a3caf..9e033c436c9 100644
--- a/src/backend/storage/large_object/inv_api.c
+++ b/src/backend/storage/large_object/inv_api.c
@@ -17,7 +17,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/storage/large_object/inv_api.c,v 1.121 2007/01/05 22:19:38 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/storage/large_object/inv_api.c,v 1.122 2007/02/27 23:48:07 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -507,7 +507,7 @@ inv_write(LargeObjectDesc *obj_desc, const char *buf, int nbytes)
bytea hdr;
char data[LOBLKSIZE];
} workbuf;
- char *workb = VARATT_DATA(&workbuf.hdr);
+ char *workb = VARDATA(&workbuf.hdr);
HeapTuple newtup;
Datum values[Natts_pg_largeobject];
char nulls[Natts_pg_largeobject];
@@ -607,7 +607,7 @@ inv_write(LargeObjectDesc *obj_desc, const char *buf, int nbytes)
off += n;
/* compute valid length of new page */
len = (len >= off) ? len : off;
- VARATT_SIZEP(&workbuf.hdr) = len + VARHDRSZ;
+ SET_VARSIZE(&workbuf.hdr, len + VARHDRSZ);
/*
* Form and insert updated tuple
@@ -651,7 +651,7 @@ inv_write(LargeObjectDesc *obj_desc, const char *buf, int nbytes)
obj_desc->offset += n;
/* compute valid length of new page */
len = off + n;
- VARATT_SIZEP(&workbuf.hdr) = len + VARHDRSZ;
+ SET_VARSIZE(&workbuf.hdr, len + VARHDRSZ);
/*
* Form and insert updated tuple
diff --git a/src/backend/utils/adt/acl.c b/src/backend/utils/adt/acl.c
index c9f9a07f230..0865c7f0d60 100644
--- a/src/backend/utils/adt/acl.c
+++ b/src/backend/utils/adt/acl.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/acl.c,v 1.137 2007/01/05 22:19:39 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/acl.c,v 1.138 2007/02/27 23:48:07 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -353,7 +353,7 @@ allocacl(int n)
elog(ERROR, "invalid size: %d", n);
size = ACL_N_SIZE(n);
new_acl = (Acl *) palloc0(size);
- new_acl->size = size;
+ SET_VARSIZE(new_acl, size);
new_acl->ndim = 1;
new_acl->dataoffset = 0; /* we never put in any nulls */
new_acl->elemtype = ACLITEMOID;
@@ -716,8 +716,9 @@ aclupdate(const Acl *old_acl, const AclItem *mod_aip,
memmove(new_aip + dst,
new_aip + dst + 1,
(num - dst - 1) * sizeof(AclItem));
+ /* Adjust array size to be 'num - 1' items */
ARR_DIMS(new_acl)[0] = num - 1;
- ARR_SIZE(new_acl) -= sizeof(AclItem);
+ SET_VARSIZE(new_acl, ACL_N_SIZE(num - 1));
}
/*
@@ -830,7 +831,7 @@ aclnewowner(const Acl *old_acl, Oid oldOwnerId, Oid newOwnerId)
}
/* Adjust array size to be 'dst' items */
ARR_DIMS(new_acl)[0] = dst;
- ARR_SIZE(new_acl) = ACL_N_SIZE(dst);
+ SET_VARSIZE(new_acl, ACL_N_SIZE(dst));
}
return new_acl;
diff --git a/src/backend/utils/adt/array_userfuncs.c b/src/backend/utils/adt/array_userfuncs.c
index 1dad5210156..0745f1e1d2a 100644
--- a/src/backend/utils/adt/array_userfuncs.c
+++ b/src/backend/utils/adt/array_userfuncs.c
@@ -6,7 +6,7 @@
* Copyright (c) 2003-2007, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/array_userfuncs.c,v 1.21 2007/01/05 22:19:39 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/array_userfuncs.c,v 1.22 2007/02/27 23:48:07 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -376,7 +376,7 @@ array_cat(PG_FUNCTION_ARGS)
nbytes = ndatabytes + ARR_OVERHEAD_NONULLS(ndims);
}
result = (ArrayType *) palloc(nbytes);
- result->size = nbytes;
+ SET_VARSIZE(result, nbytes);
result->ndim = ndims;
result->dataoffset = dataoffset;
result->elemtype = element_type;
diff --git a/src/backend/utils/adt/arrayfuncs.c b/src/backend/utils/adt/arrayfuncs.c
index 525d94e1ecd..43acdffcaf0 100644
--- a/src/backend/utils/adt/arrayfuncs.c
+++ b/src/backend/utils/adt/arrayfuncs.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.136 2007/01/05 22:19:39 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.137 2007/02/27 23:48:07 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -324,7 +324,7 @@ array_in(PG_FUNCTION_ARGS)
nbytes += ARR_OVERHEAD_NONULLS(ndim);
}
retval = (ArrayType *) palloc(nbytes);
- retval->size = nbytes;
+ SET_VARSIZE(retval, nbytes);
retval->ndim = ndim;
retval->dataoffset = dataoffset;
retval->elemtype = element_type;
@@ -1279,7 +1279,7 @@ array_recv(PG_FUNCTION_ARGS)
nbytes += ARR_OVERHEAD_NONULLS(ndim);
}
retval = (ArrayType *) palloc(nbytes);
- retval->size = nbytes;
+ SET_VARSIZE(retval, nbytes);
retval->ndim = ndim;
retval->dataoffset = dataoffset;
retval->elemtype = element_type;
@@ -1573,7 +1573,7 @@ array_dims(PG_FUNCTION_ARGS)
sprintf(p, "[%d:%d]", lb[i], dimv[i] + lb[i] - 1);
p += strlen(p);
}
- VARATT_SIZEP(result) = strlen(VARDATA(result)) + VARHDRSZ;
+ SET_VARSIZE(result, strlen(VARDATA(result)) + VARHDRSZ);
PG_RETURN_TEXT_P(result);
}
@@ -1879,7 +1879,7 @@ array_get_slice(ArrayType *array,
}
newarray = (ArrayType *) palloc(bytes);
- newarray->size = bytes;
+ SET_VARSIZE(newarray, bytes);
newarray->ndim = ndim;
newarray->dataoffset = dataoffset;
newarray->elemtype = elemtype;
@@ -2132,7 +2132,7 @@ array_set(ArrayType *array,
* OK, create the new array and fill in header/dimensions
*/
newarray = (ArrayType *) palloc(newsize);
- newarray->size = newsize;
+ SET_VARSIZE(newarray, newsize);
newarray->ndim = ndim;
newarray->dataoffset = newhasnulls ? overheadlen : 0;
newarray->elemtype = ARR_ELEMTYPE(array);
@@ -2458,7 +2458,7 @@ array_set_slice(ArrayType *array,
newsize = overheadlen + olddatasize - olditemsize + newitemsize;
newarray = (ArrayType *) palloc(newsize);
- newarray->size = newsize;
+ SET_VARSIZE(newarray, newsize);
newarray->ndim = ndim;
newarray->dataoffset = newhasnulls ? overheadlen : 0;
newarray->elemtype = ARR_ELEMTYPE(array);
@@ -2717,7 +2717,7 @@ array_map(FunctionCallInfo fcinfo, Oid inpType, Oid retType,
nbytes += ARR_OVERHEAD_NONULLS(ndim);
}
result = (ArrayType *) palloc(nbytes);
- result->size = nbytes;
+ SET_VARSIZE(result, nbytes);
result->ndim = ndim;
result->dataoffset = dataoffset;
result->elemtype = retType;
@@ -2853,7 +2853,7 @@ construct_md_array(Datum *elems,
nbytes += ARR_OVERHEAD_NONULLS(ndims);
}
result = (ArrayType *) palloc(nbytes);
- result->size = nbytes;
+ SET_VARSIZE(result, nbytes);
result->ndim = ndims;
result->dataoffset = dataoffset;
result->elemtype = elmtype;
@@ -2877,7 +2877,7 @@ construct_empty_array(Oid elmtype)
ArrayType *result;
result = (ArrayType *) palloc(sizeof(ArrayType));
- result->size = sizeof(ArrayType);
+ SET_VARSIZE(result, sizeof(ArrayType));
result->ndim = 0;
result->dataoffset = 0;
result->elemtype = elmtype;
diff --git a/src/backend/utils/adt/cash.c b/src/backend/utils/adt/cash.c
index d04f3d38c22..06dc4fec8c0 100644
--- a/src/backend/utils/adt/cash.c
+++ b/src/backend/utils/adt/cash.c
@@ -13,7 +13,7 @@
* this version handles 64 bit numbers and so can hold values up to
* $92,233,720,368,547,758.07.
*
- * $PostgreSQL: pgsql/src/backend/utils/adt/cash.c,v 1.69 2007/01/03 01:19:50 darcy Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/cash.c,v 1.70 2007/02/27 23:48:07 tgl Exp $
*/
#include "postgres.h"
@@ -860,7 +860,7 @@ cash_words(PG_FUNCTION_ARGS)
/* make a text type for output */
result = (text *) palloc(strlen(buf) + VARHDRSZ);
- VARATT_SIZEP(result) = strlen(buf) + VARHDRSZ;
+ SET_VARSIZE(result, strlen(buf) + VARHDRSZ);
memcpy(VARDATA(result), buf, strlen(buf));
PG_RETURN_TEXT_P(result);
diff --git a/src/backend/utils/adt/char.c b/src/backend/utils/adt/char.c
index 2ed8172c4ee..489c4673a4e 100644
--- a/src/backend/utils/adt/char.c
+++ b/src/backend/utils/adt/char.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/char.c,v 1.46 2007/01/05 22:19:40 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/char.c,v 1.47 2007/02/27 23:48:07 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -203,11 +203,11 @@ char_text(PG_FUNCTION_ARGS)
*/
if (arg1 != '\0')
{
- VARATT_SIZEP(result) = VARHDRSZ + 1;
+ SET_VARSIZE(result, VARHDRSZ + 1);
*(VARDATA(result)) = arg1;
}
else
- VARATT_SIZEP(result) = VARHDRSZ;
+ SET_VARSIZE(result, VARHDRSZ);
PG_RETURN_TEXT_P(result);
}
diff --git a/src/backend/utils/adt/date.c b/src/backend/utils/adt/date.c
index c3a6415634b..bdda749bed0 100644
--- a/src/backend/utils/adt/date.c
+++ b/src/backend/utils/adt/date.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/date.c,v 1.128 2007/02/16 03:39:44 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/date.c,v 1.129 2007/02/27 23:48:07 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -891,8 +891,8 @@ date_text(PG_FUNCTION_ARGS)
result = palloc(len);
- VARATT_SIZEP(result) = len;
- memmove(VARDATA(result), str, (len - VARHDRSZ));
+ SET_VARSIZE(result, len);
+ memcpy(VARDATA(result), str, (len - VARHDRSZ));
pfree(str);
@@ -1634,8 +1634,8 @@ time_text(PG_FUNCTION_ARGS)
result = palloc(len);
- VARATT_SIZEP(result) = len;
- memmove(VARDATA(result), str, (len - VARHDRSZ));
+ SET_VARSIZE(result, len);
+ memcpy(VARDATA(result), str, (len - VARHDRSZ));
pfree(str);
@@ -2420,8 +2420,8 @@ timetz_text(PG_FUNCTION_ARGS)
result = palloc(len);
- VARATT_SIZEP(result) = len;
- memmove(VARDATA(result), str, (len - VARHDRSZ));
+ SET_VARSIZE(result, len);
+ memcpy(VARDATA(result), str, (len - VARHDRSZ));
pfree(str);
diff --git a/src/backend/utils/adt/datum.c b/src/backend/utils/adt/datum.c
index 40963bc2b99..21e7cc55412 100644
--- a/src/backend/utils/adt/datum.c
+++ b/src/backend/utils/adt/datum.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/datum.c,v 1.33 2007/01/05 22:19:40 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/datum.c,v 1.34 2007/02/27 23:48:07 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -79,7 +79,7 @@ datumGetSize(Datum value, bool typByVal, int typLen)
(errcode(ERRCODE_DATA_EXCEPTION),
errmsg("invalid Datum pointer")));
- size = (Size) VARATT_SIZE(s);
+ size = (Size) VARSIZE(s);
}
else if (typLen == -2)
{
diff --git a/src/backend/utils/adt/dbsize.c b/src/backend/utils/adt/dbsize.c
index dcb84a7d249..6df746c38eb 100644
--- a/src/backend/utils/adt/dbsize.c
+++ b/src/backend/utils/adt/dbsize.c
@@ -5,7 +5,7 @@
* Copyright (c) 2002-2007, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/dbsize.c,v 1.10 2007/01/05 22:19:40 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/dbsize.c,v 1.11 2007/02/27 23:48:07 tgl Exp $
*
*/
@@ -396,7 +396,7 @@ pg_size_pretty(PG_FUNCTION_ARGS)
}
}
- VARATT_SIZEP(result) = strlen(VARDATA(result)) + VARHDRSZ;
+ SET_VARSIZE(result, strlen(VARDATA(result)) + VARHDRSZ);
PG_RETURN_TEXT_P(result);
}
diff --git a/src/backend/utils/adt/encode.c b/src/backend/utils/adt/encode.c
index c092e7ec3a3..3d753e9a6cf 100644
--- a/src/backend/utils/adt/encode.c
+++ b/src/backend/utils/adt/encode.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/encode.c,v 1.18 2007/01/05 22:19:40 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/encode.c,v 1.19 2007/02/27 23:48:08 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -63,7 +63,7 @@ binary_encode(PG_FUNCTION_ARGS)
if (res > resultlen)
elog(FATAL, "overflow - encode estimate too small");
- VARATT_SIZEP(result) = VARHDRSZ + res;
+ SET_VARSIZE(result, VARHDRSZ + res);
PG_RETURN_TEXT_P(result);
}
@@ -99,7 +99,7 @@ binary_decode(PG_FUNCTION_ARGS)
if (res > resultlen)
elog(FATAL, "overflow - decode estimate too small");
- VARATT_SIZEP(result) = VARHDRSZ + res;
+ SET_VARSIZE(result, VARHDRSZ + res);
PG_RETURN_BYTEA_P(result);
}
diff --git a/src/backend/utils/adt/float.c b/src/backend/utils/adt/float.c
index a123d106fac..f2c22937564 100644
--- a/src/backend/utils/adt/float.c
+++ b/src/backend/utils/adt/float.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.148 2007/01/20 21:47:10 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/float.c,v 1.149 2007/02/27 23:48:08 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1214,7 +1214,7 @@ float8_text(PG_FUNCTION_ARGS)
result = (text *) palloc(len);
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
memcpy(VARDATA(result), str, (len - VARHDRSZ));
pfree(str);
@@ -1265,7 +1265,7 @@ float4_text(PG_FUNCTION_ARGS)
result = (text *) palloc(len);
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
memcpy(VARDATA(result), str, (len - VARHDRSZ));
pfree(str);
diff --git a/src/backend/utils/adt/formatting.c b/src/backend/utils/adt/formatting.c
index 344bf7db087..6095a1f4fdc 100644
--- a/src/backend/utils/adt/formatting.c
+++ b/src/backend/utils/adt/formatting.c
@@ -1,7 +1,7 @@
/* -----------------------------------------------------------------------
* formatting.c
*
- * $PostgreSQL: pgsql/src/backend/utils/adt/formatting.c,v 1.128 2007/02/17 03:11:32 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/formatting.c,v 1.129 2007/02/27 23:48:08 tgl Exp $
*
*
* Portions Copyright (c) 1999-2007, PostgreSQL Global Development Group
@@ -2991,7 +2991,7 @@ datetime_to_char_body(TmToChar *tmtc, text *fmt, bool is_interval)
reslen = strlen(result);
res = (text *) palloc(reslen + VARHDRSZ);
memcpy(VARDATA(res), result, reslen);
- VARATT_SIZEP(res) = reslen + VARHDRSZ;
+ SET_VARSIZE(res, reslen + VARHDRSZ);
pfree(result);
return res;
@@ -4829,10 +4829,10 @@ do { \
} \
\
result_tmp = result; \
- result = (text *) palloc( len + 1 + VARHDRSZ); \
+ result = (text *) palloc(len + VARHDRSZ); \
\
- strcpy( VARDATA(result), VARDATA(result_tmp)); \
- VARATT_SIZEP(result) = len + VARHDRSZ; \
+ memcpy(VARDATA(result), VARDATA(result_tmp), len); \
+ SET_VARSIZE(result, len + VARHDRSZ); \
pfree(result_tmp); \
} while(0)
diff --git a/src/backend/utils/adt/genfile.c b/src/backend/utils/adt/genfile.c
index af277875c56..e95c04876ca 100644
--- a/src/backend/utils/adt/genfile.c
+++ b/src/backend/utils/adt/genfile.c
@@ -9,7 +9,7 @@
* Author: Andreas Pflug <[email protected]>
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/genfile.c,v 1.15 2007/02/01 19:10:28 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/genfile.c,v 1.16 2007/02/27 23:48:08 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -135,7 +135,7 @@ pg_read_file(PG_FUNCTION_ARGS)
(errcode_for_file_access(),
errmsg("could not read file \"%s\": %m", filename)));
- VARATT_SIZEP(buf) = nbytes + VARHDRSZ;
+ SET_VARSIZE(buf, nbytes + VARHDRSZ);
FreeFile(file);
pfree(filename);
@@ -261,7 +261,7 @@ pg_ls_dir(PG_FUNCTION_ARGS)
continue;
result = palloc(len + VARHDRSZ);
- VARATT_SIZEP(result) = len + VARHDRSZ;
+ SET_VARSIZE(result, len + VARHDRSZ);
memcpy(VARDATA(result), de->d_name, len);
SRF_RETURN_NEXT(funcctx, PointerGetDatum(result));
diff --git a/src/backend/utils/adt/geo_ops.c b/src/backend/utils/adt/geo_ops.c
index 61217fc94c1..3360c07afc1 100644
--- a/src/backend/utils/adt/geo_ops.c
+++ b/src/backend/utils/adt/geo_ops.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/geo_ops.c,v 1.94 2007/01/05 22:19:40 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/geo_ops.c,v 1.95 2007/02/27 23:48:08 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1415,7 +1415,7 @@ path_in(PG_FUNCTION_ARGS)
size = offsetof(PATH, p[0]) +sizeof(path->p[0]) * npts;
path = (PATH *) palloc(size);
- path->size = size;
+ SET_VARSIZE(path, size);
path->npts = npts;
if ((!path_decode(TRUE, npts, s, &isopen, &s, &(path->p[0])))
@@ -1464,7 +1464,7 @@ path_recv(PG_FUNCTION_ARGS)
size = offsetof(PATH, p[0]) +sizeof(path->p[0]) * npts;
path = (PATH *) palloc(size);
- path->size = size;
+ SET_VARSIZE(path, size);
path->npts = npts;
path->closed = (closed ? 1 : 0);
@@ -3440,7 +3440,7 @@ poly_in(PG_FUNCTION_ARGS)
size = offsetof(POLYGON, p[0]) +sizeof(poly->p[0]) * npts;
poly = (POLYGON *) palloc0(size); /* zero any holes */
- poly->size = size;
+ SET_VARSIZE(poly, size);
poly->npts = npts;
if ((!path_decode(FALSE, npts, str, &isopen, &s, &(poly->p[0])))
@@ -3492,7 +3492,7 @@ poly_recv(PG_FUNCTION_ARGS)
size = offsetof(POLYGON, p[0]) +sizeof(poly->p[0]) * npts;
poly = (POLYGON *) palloc0(size); /* zero any holes */
- poly->size = size;
+ SET_VARSIZE(poly, size);
poly->npts = npts;
for (i = 0; i < npts; i++)
@@ -4079,7 +4079,7 @@ path_add(PG_FUNCTION_ARGS)
result = (PATH *) palloc(size);
- result->size = size;
+ SET_VARSIZE(result, size);
result->npts = (p1->npts + p2->npts);
result->closed = p1->closed;
@@ -4207,7 +4207,7 @@ path_poly(PG_FUNCTION_ARGS)
size = offsetof(POLYGON, p[0]) +sizeof(poly->p[0]) * path->npts;
poly = (POLYGON *) palloc(size);
- poly->size = size;
+ SET_VARSIZE(poly, size);
poly->npts = path->npts;
for (i = 0; i < path->npts; i++)
@@ -4282,7 +4282,7 @@ box_poly(PG_FUNCTION_ARGS)
size = offsetof(POLYGON, p[0]) +sizeof(poly->p[0]) * 4;
poly = (POLYGON *) palloc(size);
- poly->size = size;
+ SET_VARSIZE(poly, size);
poly->npts = 4;
poly->p[0].x = box->low.x;
@@ -4312,7 +4312,7 @@ poly_path(PG_FUNCTION_ARGS)
size = offsetof(PATH, p[0]) +sizeof(path->p[0]) * poly->npts;
path = (PATH *) palloc(size);
- path->size = size;
+ SET_VARSIZE(path, size);
path->npts = poly->npts;
path->closed = TRUE;
@@ -4995,7 +4995,7 @@ circle_poly(PG_FUNCTION_ARGS)
errmsg("too many points requested")));
poly = (POLYGON *) palloc0(size); /* zero any holes */
- poly->size = size;
+ SET_VARSIZE(poly, size);
poly->npts = npts;
anglestep = (2.0 * M_PI) / npts;
diff --git a/src/backend/utils/adt/int.c b/src/backend/utils/adt/int.c
index fce3bb89fba..d6d59022077 100644
--- a/src/backend/utils/adt/int.c
+++ b/src/backend/utils/adt/int.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/int.c,v 1.78 2007/02/01 19:10:28 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/int.c,v 1.79 2007/02/27 23:48:08 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -124,7 +124,7 @@ buildint2vector(const int2 *int2s, int n)
* Attach standard array header. For historical reasons, we set the index
* lower bound to 0 not 1.
*/
- result->size = Int2VectorSize(n);
+ SET_VARSIZE(result, Int2VectorSize(n));
result->ndim = 1;
result->dataoffset = 0; /* never any nulls */
result->elemtype = INT2OID;
@@ -162,7 +162,7 @@ int2vectorin(PG_FUNCTION_ARGS)
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
errmsg("int2vector has too many elements")));
- result->size = Int2VectorSize(n);
+ SET_VARSIZE(result, Int2VectorSize(n));
result->ndim = 1;
result->dataoffset = 0; /* never any nulls */
result->elemtype = INT2OID;
@@ -350,7 +350,7 @@ int2_text(PG_FUNCTION_ARGS)
text *result = (text *) palloc(7 + VARHDRSZ); /* sign,5 digits, '\0' */
pg_itoa(arg1, VARDATA(result));
- VARATT_SIZEP(result) = strlen(VARDATA(result)) + VARHDRSZ;
+ SET_VARSIZE(result, strlen(VARDATA(result)) + VARHDRSZ);
PG_RETURN_TEXT_P(result);
}
@@ -381,7 +381,7 @@ int4_text(PG_FUNCTION_ARGS)
text *result = (text *) palloc(12 + VARHDRSZ); /* sign,10 digits,'\0' */
pg_ltoa(arg1, VARDATA(result));
- VARATT_SIZEP(result) = strlen(VARDATA(result)) + VARHDRSZ;
+ SET_VARSIZE(result, strlen(VARDATA(result)) + VARHDRSZ);
PG_RETURN_TEXT_P(result);
}
diff --git a/src/backend/utils/adt/int8.c b/src/backend/utils/adt/int8.c
index 7f0d1df93cc..25672b680fc 100644
--- a/src/backend/utils/adt/int8.c
+++ b/src/backend/utils/adt/int8.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/int8.c,v 1.64 2007/02/01 19:10:28 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/int8.c,v 1.65 2007/02/27 23:48:08 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1171,7 +1171,7 @@ int8_text(PG_FUNCTION_ARGS)
result = (text *) palloc(VARHDRSZ + len);
- VARATT_SIZEP(result) = len + VARHDRSZ;
+ SET_VARSIZE(result, VARHDRSZ + len);
memcpy(VARDATA(result), s, len);
pfree(s);
diff --git a/src/backend/utils/adt/like.c b/src/backend/utils/adt/like.c
index 3455432220f..46f223b38ff 100644
--- a/src/backend/utils/adt/like.c
+++ b/src/backend/utils/adt/like.c
@@ -11,7 +11,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/like.c,v 1.67 2007/01/05 22:19:41 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/like.c,v 1.68 2007/02/27 23:48:08 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -532,7 +532,7 @@ like_escape_bytea(PG_FUNCTION_ARGS)
}
}
- VARATT_SIZEP(result) = r - ((char *) result);
+ SET_VARSIZE(result, r - ((char *) result));
PG_RETURN_BYTEA_P(result);
}
diff --git a/src/backend/utils/adt/like_match.c b/src/backend/utils/adt/like_match.c
index 69f73c1dc36..22e2705fb36 100644
--- a/src/backend/utils/adt/like_match.c
+++ b/src/backend/utils/adt/like_match.c
@@ -19,7 +19,7 @@
* Copyright (c) 1996-2007, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/like_match.c,v 1.14 2007/01/05 22:19:41 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/like_match.c,v 1.15 2007/02/27 23:48:08 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -332,7 +332,7 @@ do_like_escape(text *pat, text *esc)
}
}
- VARATT_SIZEP(result) = r - ((char *) result);
+ SET_VARSIZE(result, r - ((char *) result));
return result;
}
diff --git a/src/backend/utils/adt/mac.c b/src/backend/utils/adt/mac.c
index 0c9bff2b8fe..fa13abe4618 100644
--- a/src/backend/utils/adt/mac.c
+++ b/src/backend/utils/adt/mac.c
@@ -1,7 +1,7 @@
/*
* PostgreSQL type definitions for MAC addresses.
*
- * $PostgreSQL: pgsql/src/backend/utils/adt/mac.c,v 1.36 2006/01/11 08:43:12 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/mac.c,v 1.37 2007/02/27 23:48:08 tgl Exp $
*/
#include "postgres.h"
@@ -163,8 +163,8 @@ macaddr_text(PG_FUNCTION_ARGS)
result = palloc(len);
- VARATT_SIZEP(result) = len;
- memmove(VARDATA(result), str, (len - VARHDRSZ));
+ SET_VARSIZE(result, len);
+ memcpy(VARDATA(result), str, (len - VARHDRSZ));
pfree(str);
diff --git a/src/backend/utils/adt/nabstime.c b/src/backend/utils/adt/nabstime.c
index dfab102fa76..3ec098a39f3 100644
--- a/src/backend/utils/adt/nabstime.c
+++ b/src/backend/utils/adt/nabstime.c
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/nabstime.c,v 1.149 2007/01/05 22:19:41 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/nabstime.c,v 1.150 2007/02/27 23:48:08 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -1596,7 +1596,7 @@ timeofday(PG_FUNCTION_ARGS)
len = VARHDRSZ + strlen(buf);
result = (text *) palloc(len);
- VARATT_SIZEP(result) = len;
- memcpy(VARDATA(result), buf, strlen(buf));
+ SET_VARSIZE(result, len);
+ memcpy(VARDATA(result), buf, len - VARHDRSZ);
PG_RETURN_TEXT_P(result);
}
diff --git a/src/backend/utils/adt/network.c b/src/backend/utils/adt/network.c
index 29ba260b45a..88fa427450f 100644
--- a/src/backend/utils/adt/network.c
+++ b/src/backend/utils/adt/network.c
@@ -1,7 +1,7 @@
/*
* PostgreSQL type definitions for the INET and CIDR types.
*
- * $PostgreSQL: pgsql/src/backend/utils/adt/network.c,v 1.67 2007/01/02 22:21:08 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/network.c,v 1.68 2007/02/27 23:48:08 tgl Exp $
*
* Jon Postel RIP 16 Oct 1998
*/
@@ -105,9 +105,9 @@ network_in(char *src, bool is_cidr)
errdetail("Value has bits set to right of mask.")));
}
- VARATT_SIZEP(dst) = VARHDRSZ +
+ SET_VARSIZE(dst, VARHDRSZ +
((char *) ip_addr(dst) - (char *) VARDATA(dst)) +
- ip_addrsize(dst);
+ ip_addrsize(dst));
ip_bits(dst) = bits;
return dst;
@@ -220,9 +220,9 @@ network_recv(StringInfo buf, bool is_cidr)
/* translator: %s is inet or cidr */
errmsg("invalid length in external \"%s\" value",
is_cidr ? "cidr" : "inet")));
- VARATT_SIZEP(addr) = VARHDRSZ +
+ SET_VARSIZE(addr, VARHDRSZ +
((char *) ip_addr(addr) - (char *) VARDATA(addr)) +
- ip_addrsize(addr);
+ ip_addrsize(addr));
addrptr = (char *) ip_addr(addr);
for (i = 0; i < nb; i++)
@@ -638,7 +638,7 @@ network_host(PG_FUNCTION_ARGS)
/* Return string as a text datum */
len = strlen(tmp);
ret = (text *) palloc(len + VARHDRSZ);
- VARATT_SIZEP(ret) = len + VARHDRSZ;
+ SET_VARSIZE(ret, len + VARHDRSZ);
memcpy(VARDATA(ret), tmp, len);
PG_RETURN_TEXT_P(ret);
}
@@ -667,7 +667,7 @@ network_show(PG_FUNCTION_ARGS)
/* Return string as a text datum */
len = strlen(tmp);
ret = (text *) palloc(len + VARHDRSZ);
- VARATT_SIZEP(ret) = len + VARHDRSZ;
+ SET_VARSIZE(ret, len + VARHDRSZ);
memcpy(VARDATA(ret), tmp, len);
PG_RETURN_TEXT_P(ret);
}
@@ -692,7 +692,7 @@ inet_abbrev(PG_FUNCTION_ARGS)
/* Return string as a text datum */
len = strlen(tmp);
ret = (text *) palloc(len + VARHDRSZ);
- VARATT_SIZEP(ret) = len + VARHDRSZ;
+ SET_VARSIZE(ret, len + VARHDRSZ);
memcpy(VARDATA(ret), tmp, len);
PG_RETURN_TEXT_P(ret);
}
@@ -717,7 +717,7 @@ cidr_abbrev(PG_FUNCTION_ARGS)
/* Return string as a text datum */
len = strlen(tmp);
ret = (text *) palloc(len + VARHDRSZ);
- VARATT_SIZEP(ret) = len + VARHDRSZ;
+ SET_VARSIZE(ret, len + VARHDRSZ);
memcpy(VARDATA(ret), tmp, len);
PG_RETURN_TEXT_P(ret);
}
@@ -793,9 +793,9 @@ network_broadcast(PG_FUNCTION_ARGS)
ip_family(dst) = ip_family(ip);
ip_bits(dst) = ip_bits(ip);
- VARATT_SIZEP(dst) = VARHDRSZ +
+ SET_VARSIZE(dst, VARHDRSZ +
((char *) ip_addr(dst) - (char *) VARDATA(dst)) +
- ip_addrsize(dst);
+ ip_addrsize(dst));
PG_RETURN_INET_P(dst);
}
@@ -838,9 +838,9 @@ network_network(PG_FUNCTION_ARGS)
ip_family(dst) = ip_family(ip);
ip_bits(dst) = ip_bits(ip);
- VARATT_SIZEP(dst) = VARHDRSZ +
+ SET_VARSIZE(dst, VARHDRSZ +
((char *) ip_addr(dst) - (char *) VARDATA(dst)) +
- ip_addrsize(dst);
+ ip_addrsize(dst));
PG_RETURN_INET_P(dst);
}
@@ -881,9 +881,9 @@ network_netmask(PG_FUNCTION_ARGS)
ip_family(dst) = ip_family(ip);
ip_bits(dst) = ip_maxbits(ip);
- VARATT_SIZEP(dst) = VARHDRSZ +
+ SET_VARSIZE(dst, VARHDRSZ +
((char *) ip_addr(dst) - (char *) VARDATA(dst)) +
- ip_addrsize(dst);
+ ip_addrsize(dst));
PG_RETURN_INET_P(dst);
}
@@ -930,9 +930,9 @@ network_hostmask(PG_FUNCTION_ARGS)
ip_family(dst) = ip_family(ip);
ip_bits(dst) = ip_maxbits(ip);
- VARATT_SIZEP(dst) = VARHDRSZ +
+ SET_VARSIZE(dst, VARHDRSZ +
((char *) ip_addr(dst) - (char *) VARDATA(dst)) +
- ip_addrsize(dst);
+ ip_addrsize(dst));
PG_RETURN_INET_P(dst);
}
@@ -1272,9 +1272,9 @@ inetnot(PG_FUNCTION_ARGS)
ip_bits(dst) = ip_bits(ip);
ip_family(dst) = ip_family(ip);
- VARATT_SIZEP(dst) = VARHDRSZ +
+ SET_VARSIZE(dst, VARHDRSZ +
((char *) ip_addr(dst) - (char *) VARDATA(dst)) +
- ip_addrsize(dst);
+ ip_addrsize(dst));
PG_RETURN_INET_P(dst);
}
@@ -1306,9 +1306,9 @@ inetand(PG_FUNCTION_ARGS)
ip_bits(dst) = Max(ip_bits(ip), ip_bits(ip2));
ip_family(dst) = ip_family(ip);
- VARATT_SIZEP(dst) = VARHDRSZ +
+ SET_VARSIZE(dst, VARHDRSZ +
((char *) ip_addr(dst) - (char *) VARDATA(dst)) +
- ip_addrsize(dst);
+ ip_addrsize(dst));
PG_RETURN_INET_P(dst);
}
@@ -1340,9 +1340,9 @@ inetor(PG_FUNCTION_ARGS)
ip_bits(dst) = Max(ip_bits(ip), ip_bits(ip2));
ip_family(dst) = ip_family(ip);
- VARATT_SIZEP(dst) = VARHDRSZ +
+ SET_VARSIZE(dst, VARHDRSZ +
((char *) ip_addr(dst) - (char *) VARDATA(dst)) +
- ip_addrsize(dst);
+ ip_addrsize(dst));
PG_RETURN_INET_P(dst);
}
@@ -1394,9 +1394,9 @@ internal_inetpl(inet *ip, int64 addend)
ip_bits(dst) = ip_bits(ip);
ip_family(dst) = ip_family(ip);
- VARATT_SIZEP(dst) = VARHDRSZ +
+ SET_VARSIZE(dst, VARHDRSZ +
((char *) ip_addr(dst) - (char *) VARDATA(dst)) +
- ip_addrsize(dst);
+ ip_addrsize(dst));
return dst;
}
diff --git a/src/backend/utils/adt/numeric.c b/src/backend/utils/adt/numeric.c
index 19fc4d45055..f173f30211c 100644
--- a/src/backend/utils/adt/numeric.c
+++ b/src/backend/utils/adt/numeric.c
@@ -14,7 +14,7 @@
* Copyright (c) 1998-2007, PostgreSQL Global Development Group
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/numeric.c,v 1.100 2007/02/17 00:55:57 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/numeric.c,v 1.101 2007/02/27 23:48:08 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -230,7 +230,7 @@ static void dump_var(const char *str, NumericVar *var);
#define NUMERIC_DIGITS(num) ((NumericDigit *)(num)->n_data)
#define NUMERIC_NDIGITS(num) \
- (((num)->varlen - NUMERIC_HDRSZ) / sizeof(NumericDigit))
+ ((VARSIZE(num) - NUMERIC_HDRSZ) / sizeof(NumericDigit))
static void alloc_var(NumericVar *var, int ndigits);
static void free_var(NumericVar *var);
@@ -494,8 +494,8 @@ numeric(PG_FUNCTION_ARGS)
*/
if (typmod < (int32) (VARHDRSZ))
{
- new = (Numeric) palloc(num->varlen);
- memcpy(new, num, num->varlen);
+ new = (Numeric) palloc(VARSIZE(num));
+ memcpy(new, num, VARSIZE(num));
PG_RETURN_NUMERIC(new);
}
@@ -515,8 +515,8 @@ numeric(PG_FUNCTION_ARGS)
ddigits = (num->n_weight + 1) * DEC_DIGITS;
if (ddigits <= maxdigits && scale >= NUMERIC_DSCALE(num))
{
- new = (Numeric) palloc(num->varlen);
- memcpy(new, num, num->varlen);
+ new = (Numeric) palloc(VARSIZE(num));
+ memcpy(new, num, VARSIZE(num));
new->n_sign_dscale = NUMERIC_SIGN(new) |
((uint16) scale & NUMERIC_DSCALE_MASK);
PG_RETURN_NUMERIC(new);
@@ -621,8 +621,8 @@ numeric_abs(PG_FUNCTION_ARGS)
/*
* Do it the easy way directly on the packed format
*/
- res = (Numeric) palloc(num->varlen);
- memcpy(res, num, num->varlen);
+ res = (Numeric) palloc(VARSIZE(num));
+ memcpy(res, num, VARSIZE(num));
res->n_sign_dscale = NUMERIC_POS | NUMERIC_DSCALE(num);
@@ -645,15 +645,15 @@ numeric_uminus(PG_FUNCTION_ARGS)
/*
* Do it the easy way directly on the packed format
*/
- res = (Numeric) palloc(num->varlen);
- memcpy(res, num, num->varlen);
+ res = (Numeric) palloc(VARSIZE(num));
+ memcpy(res, num, VARSIZE(num));
/*
* The packed format is known to be totally zero digit trimmed always. So
* we can identify a ZERO by the fact that there are no digits at all. Do
* nothing to a zero.
*/
- if (num->varlen != NUMERIC_HDRSZ)
+ if (VARSIZE(num) != NUMERIC_HDRSZ)
{
/* Else, flip the sign */
if (NUMERIC_SIGN(num) == NUMERIC_POS)
@@ -672,8 +672,8 @@ numeric_uplus(PG_FUNCTION_ARGS)
Numeric num = PG_GETARG_NUMERIC(0);
Numeric res;
- res = (Numeric) palloc(num->varlen);
- memcpy(res, num, num->varlen);
+ res = (Numeric) palloc(VARSIZE(num));
+ memcpy(res, num, VARSIZE(num));
PG_RETURN_NUMERIC(res);
}
@@ -703,7 +703,7 @@ numeric_sign(PG_FUNCTION_ARGS)
* The packed format is known to be totally zero digit trimmed always. So
* we can identify a ZERO by the fact that there are no digits at all.
*/
- if (num->varlen == NUMERIC_HDRSZ)
+ if (VARSIZE(num) == NUMERIC_HDRSZ)
set_var_from_var(&const_zero, &result);
else
{
@@ -2105,7 +2105,7 @@ numeric_text(PG_FUNCTION_ARGS)
result = (text *) palloc(VARHDRSZ + len);
- VARATT_SIZEP(result) = len + VARHDRSZ;
+ SET_VARSIZE(result, VARHDRSZ + len);
memcpy(VARDATA(result), s, len);
pfree(s);
@@ -2301,7 +2301,7 @@ numeric_avg(PG_FUNCTION_ARGS)
/* SQL92 defines AVG of no values to be NULL */
/* N is zero iff no digits (cf. numeric_uminus) */
- if (N->varlen == NUMERIC_HDRSZ)
+ if (VARSIZE(N) == NUMERIC_HDRSZ)
PG_RETURN_NULL();
PG_RETURN_DATUM(DirectFunctionCall2(numeric_div,
@@ -3232,7 +3232,7 @@ make_result(NumericVar *var)
{
result = (Numeric) palloc(NUMERIC_HDRSZ);
- result->varlen = NUMERIC_HDRSZ;
+ SET_VARSIZE(result, NUMERIC_HDRSZ);
result->n_weight = 0;
result->n_sign_dscale = NUMERIC_NAN;
@@ -3263,7 +3263,7 @@ make_result(NumericVar *var)
/* Build the result */
len = NUMERIC_HDRSZ + n * sizeof(NumericDigit);
result = (Numeric) palloc(len);
- result->varlen = len;
+ SET_VARSIZE(result, len);
result->n_weight = weight;
result->n_sign_dscale = sign | (var->dscale & NUMERIC_DSCALE_MASK);
diff --git a/src/backend/utils/adt/oid.c b/src/backend/utils/adt/oid.c
index 42a44eed758..8a9f971a227 100644
--- a/src/backend/utils/adt/oid.c
+++ b/src/backend/utils/adt/oid.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/oid.c,v 1.70 2007/01/05 22:19:41 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/oid.c,v 1.71 2007/02/27 23:48:08 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -174,7 +174,7 @@ buildoidvector(const Oid *oids, int n)
* Attach standard array header. For historical reasons, we set the index
* lower bound to 0 not 1.
*/
- result->size = OidVectorSize(n);
+ SET_VARSIZE(result, OidVectorSize(n));
result->ndim = 1;
result->dataoffset = 0; /* never any nulls */
result->elemtype = OIDOID;
@@ -211,7 +211,7 @@ oidvectorin(PG_FUNCTION_ARGS)
(errcode(ERRCODE_INVALID_PARAMETER_VALUE),
errmsg("oidvector has too many elements")));
- result->size = OidVectorSize(n);
+ SET_VARSIZE(result, OidVectorSize(n));
result->ndim = 1;
result->dataoffset = 0; /* never any nulls */
result->elemtype = OIDOID;
@@ -434,7 +434,7 @@ oid_text(PG_FUNCTION_ARGS)
result = (text *) palloc(len);
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
memcpy(VARDATA(result), str, (len - VARHDRSZ));
pfree(str);
diff --git a/src/backend/utils/adt/oracle_compat.c b/src/backend/utils/adt/oracle_compat.c
index 6da6b30cca3..9fcd5ae747a 100644
--- a/src/backend/utils/adt/oracle_compat.c
+++ b/src/backend/utils/adt/oracle_compat.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/oracle_compat.c,v 1.69 2007/02/08 18:19:33 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/oracle_compat.c,v 1.70 2007/02/27 23:48:08 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -144,7 +144,7 @@ wcstotext(const wchar_t *str, int ncodes)
Assert(nbytes <= (size_t) (ncodes * MB_CUR_MAX));
- VARATT_SIZEP(result) = nbytes + VARHDRSZ;
+ SET_VARSIZE(result, nbytes + VARHDRSZ);
return result;
}
@@ -229,7 +229,7 @@ win32_utf8_wcstotext(const wchar_t *str)
errmsg("UTF-16 to UTF-8 translation failed: %lu",
GetLastError())));
- VARATT_SIZEP(result) = nbytes + VARHDRSZ - 1; /* -1 to ignore null */
+ SET_VARSIZE(result, nbytes + VARHDRSZ - 1); /* -1 to ignore null */
return result;
}
@@ -278,7 +278,7 @@ wstring_upper(char *str)
in_text = palloc(nbytes + VARHDRSZ);
memcpy(VARDATA(in_text), str, nbytes);
- VARATT_SIZEP(in_text) = nbytes + VARHDRSZ;
+ SET_VARSIZE(in_text, nbytes + VARHDRSZ);
workspace = texttowcs(in_text);
@@ -312,7 +312,7 @@ wstring_lower(char *str)
in_text = palloc(nbytes + VARHDRSZ);
memcpy(VARDATA(in_text), str, nbytes);
- VARATT_SIZEP(in_text) = nbytes + VARHDRSZ;
+ SET_VARSIZE(in_text, nbytes + VARHDRSZ);
workspace = texttowcs(in_text);
@@ -639,7 +639,7 @@ lpad(PG_FUNCTION_ARGS)
ptr1 += mlen;
}
- VARATT_SIZEP(ret) = ptr_ret - (char *) ret;
+ SET_VARSIZE(ret, ptr_ret - (char *) ret);
PG_RETURN_TEXT_P(ret);
}
@@ -735,7 +735,7 @@ rpad(PG_FUNCTION_ARGS)
ptr2 = VARDATA(string2);
}
- VARATT_SIZEP(ret) = ptr_ret - (char *) ret;
+ SET_VARSIZE(ret, ptr_ret - (char *) ret);
PG_RETURN_TEXT_P(ret);
}
@@ -944,7 +944,7 @@ dotrim(const char *string, int stringlen,
/* Return selected portion of string */
result = (text *) palloc(VARHDRSZ + stringlen);
- VARATT_SIZEP(result) = VARHDRSZ + stringlen;
+ SET_VARSIZE(result, VARHDRSZ + stringlen);
memcpy(VARDATA(result), string, stringlen);
return result;
@@ -1017,7 +1017,7 @@ byteatrim(PG_FUNCTION_ARGS)
}
ret = (bytea *) palloc(VARHDRSZ + m);
- VARATT_SIZEP(ret) = VARHDRSZ + m;
+ SET_VARSIZE(ret, VARHDRSZ + m);
memcpy(VARDATA(ret), ptr, m);
PG_RETURN_BYTEA_P(ret);
@@ -1223,7 +1223,7 @@ translate(PG_FUNCTION_ARGS)
m -= source_len;
}
- VARATT_SIZEP(result) = retlen + VARHDRSZ;
+ SET_VARSIZE(result, retlen + VARHDRSZ);
/*
* There may be some wasted space in the result if deletions occurred, but
@@ -1275,13 +1275,13 @@ ascii(PG_FUNCTION_ARGS)
********************************************************************/
Datum
-chr (PG_FUNCTION_ARGS)
+chr(PG_FUNCTION_ARGS)
{
int32 cvalue = PG_GETARG_INT32(0);
text *result;
result = (text *) palloc(VARHDRSZ + 1);
- VARATT_SIZEP(result) = VARHDRSZ + 1;
+ SET_VARSIZE(result, VARHDRSZ + 1);
*VARDATA(result) = (char) cvalue;
PG_RETURN_TEXT_P(result);
@@ -1332,7 +1332,7 @@ repeat(PG_FUNCTION_ARGS)
result = (text *) palloc(tlen);
- VARATT_SIZEP(result) = tlen;
+ SET_VARSIZE(result, tlen);
cp = VARDATA(result);
for (i = 0; i < count; i++)
{
diff --git a/src/backend/utils/adt/pg_lzcompress.c b/src/backend/utils/adt/pg_lzcompress.c
index 918f7bad7ff..c756e5707a5 100644
--- a/src/backend/utils/adt/pg_lzcompress.c
+++ b/src/backend/utils/adt/pg_lzcompress.c
@@ -45,7 +45,7 @@
* PGLZ_Header is defined as
*
* typedef struct PGLZ_Header {
- * int32 varsize;
+ * int32 vl_len_;
* int32 rawsize;
* }
*
@@ -54,7 +54,7 @@
* The data representation is easiest explained by describing
* the process of decompression.
*
- * If varsize == rawsize + sizeof(PGLZ_Header), then the data
+ * If VARSIZE(x) == rawsize + sizeof(PGLZ_Header), then the data
* is stored uncompressed as plain bytes. Thus, the decompressor
* simply copies rawsize bytes from the location after the
* header to the destination.
@@ -166,7 +166,7 @@
*
* Copyright (c) 1999-2007, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/backend/utils/adt/pg_lzcompress.c,v 1.24 2007/01/20 01:08:42 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/pg_lzcompress.c,v 1.25 2007/02/27 23:48:08 tgl Exp $
* ----------
*/
#include "postgres.h"
@@ -618,7 +618,7 @@ pglz_compress(const char *source, int32 slen, PGLZ_Header *dest,
/*
* Success - need only fill in the actual length of the compressed datum.
*/
- dest->varsize = result_size + sizeof(PGLZ_Header);
+ SET_VARSIZE(dest, result_size + sizeof(PGLZ_Header));
return true;
}
@@ -643,7 +643,7 @@ pglz_decompress(const PGLZ_Header *source, char *dest)
int32 destsize;
dp = ((const unsigned char *) source) + sizeof(PGLZ_Header);
- dend = ((const unsigned char *) source) + VARATT_SIZE(source);
+ dend = ((const unsigned char *) source) + VARSIZE(source);
bp = (unsigned char *) dest;
while (dp < dend)
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index d011fff76f8..50624d6e728 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/pgstatfuncs.c,v 1.38 2007/02/07 23:11:29 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/pgstatfuncs.c,v 1.39 2007/02/27 23:48:08 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -398,7 +398,7 @@ pg_stat_get_backend_activity(PG_FUNCTION_ARGS)
len = strlen(activity);
result = palloc(VARHDRSZ + len);
- VARATT_SIZEP(result) = VARHDRSZ + len;
+ SET_VARSIZE(result, VARHDRSZ + len);
memcpy(VARDATA(result), activity, len);
PG_RETURN_TEXT_P(result);
diff --git a/src/backend/utils/adt/quote.c b/src/backend/utils/adt/quote.c
index 3cc7f03007a..31fbf57aaf8 100644
--- a/src/backend/utils/adt/quote.c
+++ b/src/backend/utils/adt/quote.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/quote.c,v 1.21 2007/01/05 22:19:41 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/quote.c,v 1.22 2007/02/27 23:48:08 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -39,7 +39,7 @@ quote_ident(PG_FUNCTION_ARGS)
len = strlen(qstr);
result = (text *) palloc(len + VARHDRSZ);
- VARATT_SIZEP(result) = len + VARHDRSZ;
+ SET_VARSIZE(result, len + VARHDRSZ);
memcpy(VARDATA(result), qstr, len);
PG_RETURN_TEXT_P(result);
@@ -92,7 +92,7 @@ quote_literal(PG_FUNCTION_ARGS)
}
*cp2++ = '\'';
- VARATT_SIZEP(result) = cp2 - ((char *) result);
+ SET_VARSIZE(result, cp2 - ((char *) result));
PG_RETURN_TEXT_P(result);
}
diff --git a/src/backend/utils/adt/regexp.c b/src/backend/utils/adt/regexp.c
index 48a70820a30..6a7a5fcc13b 100644
--- a/src/backend/utils/adt/regexp.c
+++ b/src/backend/utils/adt/regexp.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/regexp.c,v 1.68 2007/01/05 22:19:41 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/regexp.c,v 1.69 2007/02/27 23:48:08 tgl Exp $
*
* Alistair Crooks added the code for the regex caching
* agc - cached the regular expressions used - there's a good chance
@@ -620,7 +620,7 @@ similar_escape(PG_FUNCTION_ARGS)
*r++ = ')';
*r++ = '$';
- VARATT_SIZEP(result) = r - ((char *) result);
+ SET_VARSIZE(result, r - ((char *) result));
PG_RETURN_TEXT_P(result);
}
diff --git a/src/backend/utils/adt/ruleutils.c b/src/backend/utils/adt/ruleutils.c
index 765b3c65c30..f17061738a4 100644
--- a/src/backend/utils/adt/ruleutils.c
+++ b/src/backend/utils/adt/ruleutils.c
@@ -9,7 +9,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.251 2007/02/23 21:59:44 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/ruleutils.c,v 1.252 2007/02/27 23:48:08 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -5298,7 +5298,7 @@ string_to_text(char *str)
tlen = slen + VARHDRSZ;
result = (text *) palloc(tlen);
- VARATT_SIZEP(result) = tlen;
+ SET_VARSIZE(result, tlen);
memcpy(VARDATA(result), str, slen);
pfree(str);
diff --git a/src/backend/utils/adt/selfuncs.c b/src/backend/utils/adt/selfuncs.c
index f25a8d8f70d..1588ac405a2 100644
--- a/src/backend/utils/adt/selfuncs.c
+++ b/src/backend/utils/adt/selfuncs.c
@@ -15,7 +15,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/selfuncs.c,v 1.227 2007/02/22 22:00:25 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/selfuncs.c,v 1.228 2007/02/27 23:48:09 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -4731,7 +4731,7 @@ string_to_bytea_const(const char *str, size_t str_len)
Datum conval;
memcpy(VARDATA(bstr), str, str_len);
- VARATT_SIZEP(bstr) = VARHDRSZ + str_len;
+ SET_VARSIZE(bstr, VARHDRSZ + str_len);
conval = PointerGetDatum(bstr);
return makeConst(BYTEAOID, -1, conval, false, false);
diff --git a/src/backend/utils/adt/timestamp.c b/src/backend/utils/adt/timestamp.c
index a842c1b02cf..e9d1efe3ed1 100644
--- a/src/backend/utils/adt/timestamp.c
+++ b/src/backend/utils/adt/timestamp.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/timestamp.c,v 1.173 2007/02/19 17:41:39 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/timestamp.c,v 1.174 2007/02/27 23:48:09 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -3199,8 +3199,8 @@ timestamp_text(PG_FUNCTION_ARGS)
result = palloc(len);
- VARATT_SIZEP(result) = len;
- memmove(VARDATA(result), str, len - VARHDRSZ);
+ SET_VARSIZE(result, len);
+ memcpy(VARDATA(result), str, len - VARHDRSZ);
pfree(str);
@@ -3260,8 +3260,8 @@ timestamptz_text(PG_FUNCTION_ARGS)
result = palloc(len);
- VARATT_SIZEP(result) = len;
- memmove(VARDATA(result), str, len - VARHDRSZ);
+ SET_VARSIZE(result, len);
+ memcpy(VARDATA(result), str, len - VARHDRSZ);
pfree(str);
@@ -3320,8 +3320,8 @@ interval_text(PG_FUNCTION_ARGS)
result = palloc(len);
- VARATT_SIZEP(result) = len;
- memmove(VARDATA(result), str, len - VARHDRSZ);
+ SET_VARSIZE(result, len);
+ memcpy(VARDATA(result), str, len - VARHDRSZ);
pfree(str);
diff --git a/src/backend/utils/adt/varbit.c b/src/backend/utils/adt/varbit.c
index 5b5c4aa5a57..a9eef1e0e7d 100644
--- a/src/backend/utils/adt/varbit.c
+++ b/src/backend/utils/adt/varbit.c
@@ -9,7 +9,7 @@
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/varbit.c,v 1.52 2007/01/05 22:19:42 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/varbit.c,v 1.53 2007/02/27 23:48:09 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -160,7 +160,7 @@ bit_in(PG_FUNCTION_ARGS)
len = VARBITTOTALLEN(atttypmod);
/* set to 0 so that *r is always initialised and string is zero-padded */
result = (VarBit *) palloc0(len);
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
VARBITLEN(result) = atttypmod;
r = VARBITS(result);
@@ -299,7 +299,7 @@ bit_recv(PG_FUNCTION_ARGS)
len = VARBITTOTALLEN(bitlen);
result = (VarBit *) palloc(len);
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
VARBITLEN(result) = bitlen;
pq_copymsgbytes(buf, (char *) VARBITS(result), VARBITBYTES(result));
@@ -356,7 +356,7 @@ bit(PG_FUNCTION_ARGS)
rlen = VARBITTOTALLEN(len);
/* set to 0 so that string is zero-padded */
result = (VarBit *) palloc0(rlen);
- VARATT_SIZEP(result) = rlen;
+ SET_VARSIZE(result, rlen);
VARBITLEN(result) = len;
memcpy(VARBITS(result), VARBITS(arg),
@@ -458,7 +458,7 @@ varbit_in(PG_FUNCTION_ARGS)
len = VARBITTOTALLEN(bitlen);
/* set to 0 so that *r is always initialised and string is zero-padded */
result = (VarBit *) palloc0(len);
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
VARBITLEN(result) = Min(bitlen, atttypmod);
r = VARBITS(result);
@@ -595,7 +595,7 @@ varbit_recv(PG_FUNCTION_ARGS)
len = VARBITTOTALLEN(bitlen);
result = (VarBit *) palloc(len);
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
VARBITLEN(result) = bitlen;
pq_copymsgbytes(buf, (char *) VARBITS(result), VARBITBYTES(result));
@@ -656,7 +656,7 @@ varbit(PG_FUNCTION_ARGS)
rlen = VARBITTOTALLEN(len);
result = (VarBit *) palloc(rlen);
- VARATT_SIZEP(result) = rlen;
+ SET_VARSIZE(result, rlen);
VARBITLEN(result) = len;
memcpy(VARBITS(result), VARBITS(arg), VARBITBYTES(result));
@@ -884,7 +884,7 @@ bitcat(PG_FUNCTION_ARGS)
bytelen = VARBITTOTALLEN(bitlen1 + bitlen2);
result = (VarBit *) palloc(bytelen);
- VARATT_SIZEP(result) = bytelen;
+ SET_VARSIZE(result, bytelen);
VARBITLEN(result) = bitlen1 + bitlen2;
/* Copy the first bitstring in */
@@ -951,7 +951,7 @@ bitsubstr(PG_FUNCTION_ARGS)
/* Need to return a zero-length bitstring */
len = VARBITTOTALLEN(0);
result = (VarBit *) palloc(len);
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
VARBITLEN(result) = 0;
}
else
@@ -963,7 +963,7 @@ bitsubstr(PG_FUNCTION_ARGS)
rbitlen = e1 - s1;
len = VARBITTOTALLEN(rbitlen);
result = (VarBit *) palloc(len);
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
VARBITLEN(result) = rbitlen;
len -= VARHDRSZ + VARBITHDRSZ;
/* Are we copying from a byte boundary? */
@@ -1044,7 +1044,7 @@ bitand(PG_FUNCTION_ARGS)
len = VARSIZE(arg1);
result = (VarBit *) palloc(len);
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
VARBITLEN(result) = bitlen1;
p1 = VARBITS(arg1);
@@ -1084,7 +1084,7 @@ bitor(PG_FUNCTION_ARGS)
errmsg("cannot OR bit strings of different sizes")));
len = VARSIZE(arg1);
result = (VarBit *) palloc(len);
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
VARBITLEN(result) = bitlen1;
p1 = VARBITS(arg1);
@@ -1131,7 +1131,7 @@ bitxor(PG_FUNCTION_ARGS)
len = VARSIZE(arg1);
result = (VarBit *) palloc(len);
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
VARBITLEN(result) = bitlen1;
p1 = VARBITS(arg1);
@@ -1164,7 +1164,7 @@ bitnot(PG_FUNCTION_ARGS)
bits8 mask;
result = (VarBit *) palloc(VARSIZE(arg));
- VARATT_SIZEP(result) = VARSIZE(arg);
+ SET_VARSIZE(result, VARSIZE(arg));
VARBITLEN(result) = VARBITLEN(arg);
p = VARBITS(arg);
@@ -1205,7 +1205,7 @@ bitshiftleft(PG_FUNCTION_ARGS)
Int32GetDatum(-shft)));
result = (VarBit *) palloc(VARSIZE(arg));
- VARATT_SIZEP(result) = VARSIZE(arg);
+ SET_VARSIZE(result, VARSIZE(arg));
VARBITLEN(result) = VARBITLEN(arg);
r = VARBITS(result);
@@ -1264,7 +1264,7 @@ bitshiftright(PG_FUNCTION_ARGS)
Int32GetDatum(-shft)));
result = (VarBit *) palloc(VARSIZE(arg));
- VARATT_SIZEP(result) = VARSIZE(arg);
+ SET_VARSIZE(result, VARSIZE(arg));
VARBITLEN(result) = VARBITLEN(arg);
r = VARBITS(result);
@@ -1324,7 +1324,7 @@ bitfromint4(PG_FUNCTION_ARGS)
rlen = VARBITTOTALLEN(typmod);
result = (VarBit *) palloc(rlen);
- VARATT_SIZEP(result) = rlen;
+ SET_VARSIZE(result, rlen);
VARBITLEN(result) = typmod;
r = VARBITS(result);
@@ -1399,7 +1399,7 @@ bitfromint8(PG_FUNCTION_ARGS)
rlen = VARBITTOTALLEN(typmod);
result = (VarBit *) palloc(rlen);
- VARATT_SIZEP(result) = rlen;
+ SET_VARSIZE(result, rlen);
VARBITLEN(result) = typmod;
r = VARBITS(result);
diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c
index 8bc6ed5e6a1..371a8a605d6 100644
--- a/src/backend/utils/adt/varchar.c
+++ b/src/backend/utils/adt/varchar.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/varchar.c,v 1.121 2007/01/05 22:19:42 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/varchar.c,v 1.122 2007/02/27 23:48:09 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -169,7 +169,7 @@ bpchar_input(const char *s, size_t len, int32 atttypmod)
}
result = (BpChar *) palloc(maxlen + VARHDRSZ);
- VARATT_SIZEP(result) = maxlen + VARHDRSZ;
+ SET_VARSIZE(result, maxlen + VARHDRSZ);
r = VARDATA(result);
memcpy(r, s, len);
@@ -328,7 +328,7 @@ bpchar(PG_FUNCTION_ARGS)
s = VARDATA(source);
result = palloc(maxlen);
- VARATT_SIZEP(result) = maxlen;
+ SET_VARSIZE(result, maxlen);
r = VARDATA(result);
memcpy(r, s, len - VARHDRSZ);
@@ -352,7 +352,7 @@ char_bpchar(PG_FUNCTION_ARGS)
result = (BpChar *) palloc(VARHDRSZ + 1);
- VARATT_SIZEP(result) = VARHDRSZ + 1;
+ SET_VARSIZE(result, VARHDRSZ + 1);
*(VARDATA(result)) = c;
PG_RETURN_BPCHAR_P(result);
@@ -409,7 +409,7 @@ name_bpchar(PG_FUNCTION_ARGS)
len = strlen(NameStr(*s));
result = (BpChar *) palloc(VARHDRSZ + len);
memcpy(VARDATA(result), NameStr(*s), len);
- VARATT_SIZEP(result) = len + VARHDRSZ;
+ SET_VARSIZE(result, VARHDRSZ + len);
PG_RETURN_BPCHAR_P(result);
}
@@ -477,7 +477,7 @@ varchar_input(const char *s, size_t len, int32 atttypmod)
}
result = (VarChar *) palloc(len + VARHDRSZ);
- VARATT_SIZEP(result) = len + VARHDRSZ;
+ SET_VARSIZE(result, len + VARHDRSZ);
memcpy(VARDATA(result), s, len);
return result;
@@ -601,7 +601,7 @@ varchar(PG_FUNCTION_ARGS)
len = maxmblen + VARHDRSZ;
result = palloc(len);
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
memcpy(VARDATA(result), VARDATA(source), len - VARHDRSZ);
PG_RETURN_VARCHAR_P(result);
diff --git a/src/backend/utils/adt/varlena.c b/src/backend/utils/adt/varlena.c
index 1992db9bdfa..51130efd79b 100644
--- a/src/backend/utils/adt/varlena.c
+++ b/src/backend/utils/adt/varlena.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/adt/varlena.c,v 1.154 2007/01/05 22:19:42 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/varlena.c,v 1.155 2007/02/27 23:48:09 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -124,7 +124,7 @@ byteain(PG_FUNCTION_ARGS)
byte += VARHDRSZ;
result = (bytea *) palloc(byte);
- VARATT_SIZEP(result) = byte; /* set varlena length */
+ SET_VARSIZE(result, byte);
tp = inputText;
rp = VARDATA(result);
@@ -233,7 +233,7 @@ bytearecv(PG_FUNCTION_ARGS)
nbytes = buf->len - buf->cursor;
result = (bytea *) palloc(nbytes + VARHDRSZ);
- VARATT_SIZEP(result) = nbytes + VARHDRSZ;
+ SET_VARSIZE(result, nbytes + VARHDRSZ);
pq_copymsgbytes(buf, VARDATA(result), nbytes);
PG_RETURN_BYTEA_P(result);
}
@@ -264,7 +264,7 @@ textin(PG_FUNCTION_ARGS)
len = strlen(inputText);
result = (text *) palloc(len + VARHDRSZ);
- VARATT_SIZEP(result) = len + VARHDRSZ;
+ SET_VARSIZE(result, len + VARHDRSZ);
memcpy(VARDATA(result), inputText, len);
@@ -303,7 +303,7 @@ textrecv(PG_FUNCTION_ARGS)
str = pq_getmsgtext(buf, buf->len - buf->cursor, &nbytes);
result = (text *) palloc(nbytes + VARHDRSZ);
- VARATT_SIZEP(result) = nbytes + VARHDRSZ;
+ SET_VARSIZE(result, nbytes + VARHDRSZ);
memcpy(VARDATA(result), str, nbytes);
pfree(str);
PG_RETURN_TEXT_P(result);
@@ -466,7 +466,7 @@ textcat(PG_FUNCTION_ARGS)
result = (text *) palloc(len);
/* Set size of result string... */
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
/* Fill data field of result string... */
ptr = VARDATA(result);
@@ -737,7 +737,7 @@ text_substring(Datum str, int32 start, int32 length, bool length_not_specified)
p += pg_mblen(p);
ret = (text *) palloc(VARHDRSZ + (p - s));
- VARATT_SIZEP(ret) = VARHDRSZ + (p - s);
+ SET_VARSIZE(ret, VARHDRSZ + (p - s));
memcpy(VARDATA(ret), s, (p - s));
if (slice != (text *) DatumGetPointer(str))
@@ -1409,7 +1409,7 @@ byteacat(PG_FUNCTION_ARGS)
result = (bytea *) palloc(len);
/* Set size of result string... */
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
/* Fill data field of result string... */
ptr = VARDATA(result);
@@ -1761,7 +1761,7 @@ name_text(PG_FUNCTION_ARGS)
#endif
result = palloc(VARHDRSZ + len);
- VARATT_SIZEP(result) = VARHDRSZ + len;
+ SET_VARSIZE(result, VARHDRSZ + len);
memcpy(VARDATA(result), NameStr(*s), len);
PG_RETURN_TEXT_P(result);
@@ -2593,7 +2593,7 @@ text_to_array(PG_FUNCTION_ARGS)
/* must build a temp text datum to pass to accumArrayResult */
result_text = (text *) palloc(VARHDRSZ + chunk_len);
- VARATT_SIZEP(result_text) = VARHDRSZ + chunk_len;
+ SET_VARSIZE(result_text, VARHDRSZ + chunk_len);
memcpy(VARDATA(result_text), start_ptr, chunk_len);
/* stash away this field */
diff --git a/src/backend/utils/adt/version.c b/src/backend/utils/adt/version.c
index 19d75db513e..7afbcd43581 100644
--- a/src/backend/utils/adt/version.c
+++ b/src/backend/utils/adt/version.c
@@ -7,7 +7,7 @@
*
* IDENTIFICATION
*
- * $PostgreSQL: pgsql/src/backend/utils/adt/version.c,v 1.14 2007/01/20 01:08:42 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/version.c,v 1.15 2007/02/27 23:48:09 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -23,7 +23,7 @@ pgsql_version(PG_FUNCTION_ARGS)
int n = strlen(PG_VERSION_STR);
text *ret = (text *) palloc(n + VARHDRSZ);
- VARATT_SIZEP(ret) = n + VARHDRSZ;
+ SET_VARSIZE(ret, n + VARHDRSZ);
memcpy(VARDATA(ret), PG_VERSION_STR, n);
PG_RETURN_TEXT_P(ret);
diff --git a/src/backend/utils/adt/xml.c b/src/backend/utils/adt/xml.c
index f814d7f543e..c12522cfe45 100644
--- a/src/backend/utils/adt/xml.c
+++ b/src/backend/utils/adt/xml.c
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/backend/utils/adt/xml.c,v 1.31 2007/02/16 18:37:43 petere Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/adt/xml.c,v 1.32 2007/02/27 23:48:09 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -128,7 +128,7 @@ xml_in(PG_FUNCTION_ARGS)
len = strlen(s);
vardata = palloc(len + VARHDRSZ);
- VARATT_SIZEP(vardata) = len + VARHDRSZ;
+ SET_VARSIZE(vardata, len + VARHDRSZ);
memcpy(VARDATA(vardata), s, len);
/*
@@ -225,7 +225,7 @@ xml_recv(PG_FUNCTION_ARGS)
str = pq_getmsgtext(buf, buf->len - buf->cursor, &nbytes);
result = palloc(nbytes + VARHDRSZ);
- VARATT_SIZEP(result) = nbytes + VARHDRSZ;
+ SET_VARSIZE(result, nbytes + VARHDRSZ);
memcpy(VARDATA(result), str, nbytes);
parse_xml_decl((xmlChar *) str, NULL, NULL, &encoding, NULL);
@@ -251,7 +251,7 @@ xml_recv(PG_FUNCTION_ARGS)
nbytes = strlen(newstr);
result = palloc(nbytes + VARHDRSZ);
- VARATT_SIZEP(result) = nbytes + VARHDRSZ;
+ SET_VARSIZE(result, nbytes + VARHDRSZ);
memcpy(VARDATA(result), newstr, nbytes);
}
@@ -293,7 +293,7 @@ stringinfo_to_xmltype(StringInfo buf)
len = buf->len + VARHDRSZ;
result = palloc(len);
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
memcpy(VARDATA(result), buf->data, buf->len);
return result;
@@ -308,7 +308,7 @@ cstring_to_xmltype(const char *string)
len = strlen(string) + VARHDRSZ;
result = palloc(len);
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
memcpy(VARDATA(result), string, len - VARHDRSZ);
return result;
@@ -324,7 +324,7 @@ xmlBuffer_to_xmltype(xmlBufferPtr buf)
len = xmlBufferLength(buf) + VARHDRSZ;
result = palloc(len);
- VARATT_SIZEP(result) = len;
+ SET_VARSIZE(result, len);
memcpy(VARDATA(result), xmlBufferContent(buf), len - VARHDRSZ);
return result;
diff --git a/src/backend/utils/cache/relcache.c b/src/backend/utils/cache/relcache.c
index da1f9fd9240..ae41b169c3d 100644
--- a/src/backend/utils/cache/relcache.c
+++ b/src/backend/utils/cache/relcache.c
@@ -8,7 +8,7 @@
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.255 2007/01/25 02:17:26 momjian Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/cache/relcache.c,v 1.256 2007/02/27 23:48:09 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -3244,7 +3244,7 @@ load_relcache_init_file(void)
rel->rd_options = palloc(len);
if ((nread = fread(rel->rd_options, 1, len, fp)) != len)
goto read_failed;
- if (len != VARATT_SIZE(rel->rd_options))
+ if (len != VARSIZE(rel->rd_options))
goto read_failed; /* sanity check */
}
else
@@ -3540,7 +3540,7 @@ write_relcache_init_file(void)
/* next, do the access method specific field */
write_item(rel->rd_options,
- (rel->rd_options ? VARATT_SIZE(rel->rd_options) : 0),
+ (rel->rd_options ? VARSIZE(rel->rd_options) : 0),
fp);
/* If it's an index, there's more to do */
diff --git a/src/backend/utils/mb/mbutils.c b/src/backend/utils/mb/mbutils.c
index f462ba44b95..cee6807d66c 100644
--- a/src/backend/utils/mb/mbutils.c
+++ b/src/backend/utils/mb/mbutils.c
@@ -4,7 +4,7 @@
* (currently mule internal code (mic) is used)
* Tatsuo Ishii
*
- * $PostgreSQL: pgsql/src/backend/utils/mb/mbutils.c,v 1.61 2006/12/24 00:57:48 tgl Exp $
+ * $PostgreSQL: pgsql/src/backend/utils/mb/mbutils.c,v 1.62 2007/02/27 23:48:09 tgl Exp $
*/
#include "postgres.h"
@@ -339,7 +339,7 @@ pg_convert2(PG_FUNCTION_ARGS)
*/
len = strlen((char *) result) + VARHDRSZ;
retval = palloc(len);
- VARATT_SIZEP(retval) = len;
+ SET_VARSIZE(retval, len);
memcpy(VARDATA(retval), result, len - VARHDRSZ);
if (result != str)
diff --git a/src/include/access/htup.h b/src/include/access/htup.h
index 31de835d290..c37501d9109 100644
--- a/src/include/access/htup.h
+++ b/src/include/access/htup.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/access/htup.h,v 1.91 2007/02/09 03:35:34 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/access/htup.h,v 1.92 2007/02/27 23:48:09 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -115,7 +115,7 @@ typedef struct HeapTupleFields
typedef struct DatumTupleFields
{
- int32 datum_len; /* required to be a varlena type */
+ int32 datum_len_; /* varlena header (do not touch directly!) */
int32 datum_typmod; /* -1, or identifier of a record type */
@@ -260,14 +260,10 @@ do { \
} while (0)
#define HeapTupleHeaderGetDatumLength(tup) \
-( \
- (tup)->t_choice.t_datum.datum_len \
-)
+ VARSIZE(tup)
#define HeapTupleHeaderSetDatumLength(tup, len) \
-( \
- (tup)->t_choice.t_datum.datum_len = (len) \
-)
+ SET_VARSIZE(tup, len)
#define HeapTupleHeaderGetTypeId(tup) \
( \
diff --git a/src/include/access/tupmacs.h b/src/include/access/tupmacs.h
index 0b65cbd2bc6..80c2d436f04 100644
--- a/src/include/access/tupmacs.h
+++ b/src/include/access/tupmacs.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/access/tupmacs.h,v 1.31 2007/01/05 22:19:51 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/access/tupmacs.h,v 1.32 2007/02/27 23:48:09 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -118,7 +118,7 @@
) \
: (((attlen) == -1) ? \
( \
- (cur_offset) + VARATT_SIZE(DatumGetPointer(attval)) \
+ (cur_offset) + VARSIZE(DatumGetPointer(attval)) \
) \
: \
( \
diff --git a/src/include/c.h b/src/include/c.h
index 0774ec7cc1e..73b72a816ad 100644
--- a/src/include/c.h
+++ b/src/include/c.h
@@ -12,7 +12,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/c.h,v 1.218 2007/02/05 04:22:18 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/c.h,v 1.219 2007/02/27 23:48:09 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -399,13 +399,16 @@ typedef struct
* NOTE: for TOASTable types, this is an oversimplification, since the value
* may be compressed or moved out-of-line. However datatype-specific routines
* are mostly content to deal with de-TOASTed values only, and of course
- * client-side routines should never see a TOASTed value. See postgres.h for
- * details of the TOASTed form.
+ * client-side routines should never see a TOASTed value. But even in a
+ * de-TOASTed value, beware of touching vl_len_ directly, as its representation
+ * is no longer convenient. It's recommended that code always use the VARDATA,
+ * VARSIZE, and SET_VARSIZE macros instead of relying on direct mentions of
+ * the struct fields. See postgres.h for details of the TOASTed form.
* ----------------
*/
struct varlena
{
- int32 vl_len;
+ int32 vl_len_; /* Do not touch this field directly! */
char vl_dat[1];
};
@@ -433,7 +436,7 @@ typedef struct varlena VarChar; /* var-length char, ie SQL varchar(n) */
*/
typedef struct
{
- int32 size; /* these fields must match ArrayType! */
+ int32 vl_len_; /* these fields must match ArrayType! */
int ndim; /* always 1 for int2vector */
int32 dataoffset; /* always 0 for int2vector */
Oid elemtype;
@@ -444,7 +447,7 @@ typedef struct
typedef struct
{
- int32 size; /* these fields must match ArrayType! */
+ int32 vl_len_; /* these fields must match ArrayType! */
int ndim; /* always 1 for oidvector */
int32 dataoffset; /* always 0 for oidvector */
Oid elemtype;
diff --git a/src/include/postgres.h b/src/include/postgres.h
index 03ffd89f5d7..c06333573e2 100644
--- a/src/include/postgres.h
+++ b/src/include/postgres.h
@@ -10,7 +10,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1995, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/postgres.h,v 1.76 2007/01/05 22:19:50 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/postgres.h,v 1.77 2007/02/27 23:48:09 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -56,12 +56,13 @@
/* ----------------
* struct varattrib is the header of a varlena object that may have been
- * TOASTed.
+ * TOASTed. Generally, only the code closely associated with TOAST logic
+ * should mess directly with struct varattrib or use the VARATT_FOO macros.
* ----------------
*/
typedef struct varattrib
{
- int32 va_header; /* External/compressed storage */
+ int32 va_header_; /* External/compressed storage */
/* flags and item size */
union
{
@@ -88,20 +89,21 @@ typedef struct varattrib
#define VARATT_MASK_FLAGS 0xc0000000
#define VARATT_MASK_SIZE 0x3fffffff
-#define VARATT_SIZEP(_PTR) (((varattrib *)(_PTR))->va_header)
-#define VARATT_SIZE(PTR) (VARATT_SIZEP(PTR) & VARATT_MASK_SIZE)
-#define VARATT_DATA(PTR) (((varattrib *)(PTR))->va_content.va_data)
-#define VARATT_CDATA(PTR) (((varattrib *)(PTR))->va_content.va_compressed.va_data)
-
-#define VARSIZE(__PTR) VARATT_SIZE(__PTR)
-#define VARDATA(__PTR) VARATT_DATA(__PTR)
+#define VARATT_SIZEP_DEPRECATED(PTR) (((varattrib *) (PTR))->va_header_)
#define VARATT_IS_EXTENDED(PTR) \
- ((VARATT_SIZEP(PTR) & VARATT_MASK_FLAGS) != 0)
+ ((VARATT_SIZEP_DEPRECATED(PTR) & VARATT_MASK_FLAGS) != 0)
#define VARATT_IS_EXTERNAL(PTR) \
- ((VARATT_SIZEP(PTR) & VARATT_FLAG_EXTERNAL) != 0)
+ ((VARATT_SIZEP_DEPRECATED(PTR) & VARATT_FLAG_EXTERNAL) != 0)
#define VARATT_IS_COMPRESSED(PTR) \
- ((VARATT_SIZEP(PTR) & VARATT_FLAG_COMPRESSED) != 0)
+ ((VARATT_SIZEP_DEPRECATED(PTR) & VARATT_FLAG_COMPRESSED) != 0)
+
+/* These macros are the ones for non-TOAST code to use */
+
+#define VARSIZE(PTR) (VARATT_SIZEP_DEPRECATED(PTR) & VARATT_MASK_SIZE)
+#define VARDATA(PTR) (((varattrib *) (PTR))->va_content.va_data)
+
+#define SET_VARSIZE(PTR,SIZE) (VARATT_SIZEP_DEPRECATED(PTR) = (SIZE))
/* ----------------------------------------------------------------
diff --git a/src/include/utils/array.h b/src/include/utils/array.h
index 77d5e04c895..9176a8b288d 100644
--- a/src/include/utils/array.h
+++ b/src/include/utils/array.h
@@ -4,7 +4,7 @@
* Declarations for Postgres arrays.
*
* A standard varlena array has the following internal structure:
- * <size> - total number of bytes (also, TOAST info flags)
+ * <vl_len_> - standard varlena header word
* <ndim> - number of dimensions of the array
* <dataoffset> - offset to stored data, or 0 if no nulls bitmap
* <elemtype> - element type OID
@@ -49,7 +49,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/array.h,v 1.62 2007/01/05 22:19:58 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/utils/array.h,v 1.63 2007/02/27 23:48:10 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -61,18 +61,22 @@
/*
* Arrays are varlena objects, so must meet the varlena convention that
* the first int32 of the object contains the total object size in bytes.
+ * Be sure to use VARSIZE() and SET_VARSIZE() to access it, though!
*
* CAUTION: if you change the header for ordinary arrays you will also
* need to change the headers for oidvector and int2vector!
*/
typedef struct
{
- int32 size; /* total array size (varlena requirement) */
+ int32 vl_len_; /* varlena header (do not touch directly!) */
int ndim; /* # of dimensions */
int32 dataoffset; /* offset to data, or 0 if no bitmap */
Oid elemtype; /* element type OID */
} ArrayType;
+/*
+ * working state for accumArrayResult() and friends
+ */
typedef struct ArrayBuildState
{
MemoryContext mcontext; /* where all the temp stuff is kept */
@@ -132,7 +136,7 @@ typedef struct ArrayMapState
*
* Unlike C, the default lower bound is 1.
*/
-#define ARR_SIZE(a) ((a)->size)
+#define ARR_SIZE(a) VARSIZE(a)
#define ARR_NDIM(a) ((a)->ndim)
#define ARR_HASNULL(a) ((a)->dataoffset != 0)
#define ARR_ELEMTYPE(a) ((a)->elemtype)
diff --git a/src/include/utils/geo_decls.h b/src/include/utils/geo_decls.h
index 49e7aead3c8..09aefb752b8 100644
--- a/src/include/utils/geo_decls.h
+++ b/src/include/utils/geo_decls.h
@@ -6,7 +6,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/geo_decls.h,v 1.52 2007/01/05 22:19:59 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/utils/geo_decls.h,v 1.53 2007/02/27 23:48:10 tgl Exp $
*
* NOTE
* These routines do *not* use the float types from adt/.
@@ -78,7 +78,7 @@ typedef struct
*-------------------------------------------------------------------*/
typedef struct
{
- int32 size; /* XXX varlena */
+ int32 vl_len_; /* varlena header (do not touch directly!) */
int32 npts;
int32 closed; /* is this a closed polygon? */
int32 dummy; /* padding to make it double align */
@@ -121,7 +121,7 @@ typedef struct
*-------------------------------------------------------------------*/
typedef struct
{
- int32 size; /* XXX varlena */
+ int32 vl_len_; /* varlena header (do not touch directly!) */
int32 npts;
BOX boundbox;
Point p[1]; /* variable length array of POINTs */
diff --git a/src/include/utils/numeric.h b/src/include/utils/numeric.h
index c4d9d69debe..cffba1e1641 100644
--- a/src/include/utils/numeric.h
+++ b/src/include/utils/numeric.h
@@ -7,7 +7,7 @@
*
* Copyright (c) 1998-2007, PostgreSQL Global Development Group
*
- * $PostgreSQL: pgsql/src/include/utils/numeric.h,v 1.23 2007/01/05 22:19:59 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/utils/numeric.h,v 1.24 2007/02/27 23:48:10 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -62,7 +62,7 @@
*/
typedef struct NumericData
{
- int32 varlen; /* Variable size (std varlena header) */
+ int32 vl_len_; /* varlena header (do not touch directly!) */
int16 n_weight; /* Weight of 1st digit */
uint16 n_sign_dscale; /* Sign + display scale */
char n_data[1]; /* Digits (really array of NumericDigit) */
@@ -70,7 +70,7 @@ typedef struct NumericData
typedef NumericData *Numeric;
-#define NUMERIC_HDRSZ (sizeof(int32) + sizeof(int16) + sizeof(uint16))
+#define NUMERIC_HDRSZ (VARHDRSZ + sizeof(int16) + sizeof(uint16))
/*
diff --git a/src/include/utils/pg_lzcompress.h b/src/include/utils/pg_lzcompress.h
index e6609dc8db3..bed75d9af17 100644
--- a/src/include/utils/pg_lzcompress.h
+++ b/src/include/utils/pg_lzcompress.h
@@ -3,7 +3,7 @@
*
* Definitions for the builtin LZ compressor
*
- * $PostgreSQL: pgsql/src/include/utils/pg_lzcompress.h,v 1.13 2006/10/05 23:33:33 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/pg_lzcompress.h,v 1.14 2007/02/27 23:48:10 tgl Exp $
* ----------
*/
@@ -15,13 +15,11 @@
* PGLZ_Header -
*
* The information at the top of the compressed data.
- * The varsize must be kept the same data type as the value
- * in front of all variable size data types in PostgreSQL.
* ----------
*/
typedef struct PGLZ_Header
{
- int32 varsize;
+ int32 vl_len_; /* varlena header (do not touch directly!) */
int32 rawsize;
} PGLZ_Header;
diff --git a/src/include/utils/rel.h b/src/include/utils/rel.h
index 3ac44b11cdc..4065eced821 100644
--- a/src/include/utils/rel.h
+++ b/src/include/utils/rel.h
@@ -7,7 +7,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/rel.h,v 1.97 2007/02/14 01:58:58 tgl Exp $
+ * $PostgreSQL: pgsql/src/include/utils/rel.h,v 1.98 2007/02/27 23:48:10 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -222,7 +222,7 @@ typedef Relation *RelationPtr;
*/
typedef struct StdRdOptions
{
- int32 vl_len; /* required to be a bytea */
+ int32 vl_len_; /* varlena header (do not touch directly!) */
int fillfactor; /* page fill factor in percent (0..100) */
} StdRdOptions;
diff --git a/src/include/utils/varbit.h b/src/include/utils/varbit.h
index 6909da77374..6c9504d6a08 100644
--- a/src/include/utils/varbit.h
+++ b/src/include/utils/varbit.h
@@ -8,7 +8,7 @@
* Portions Copyright (c) 1996-2007, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/utils/varbit.h,v 1.25 2007/01/05 22:20:00 momjian Exp $
+ * $PostgreSQL: pgsql/src/include/utils/varbit.h,v 1.26 2007/02/27 23:48:10 tgl Exp $
*
*-------------------------------------------------------------------------
*/
@@ -22,8 +22,7 @@
*/
typedef struct
{
- int32 vl_len; /* standard varlena header (total size in
- * bytes) */
+ int32 vl_len_; /* varlena header (do not touch directly!) */
int32 bit_len; /* number of valid bits */
bits8 bit_dat[1]; /* bit string, most sig. byte first */
} VarBit;
diff --git a/src/tutorial/funcs.c b/src/tutorial/funcs.c
index 18f8467dddb..f9f28a5c5eb 100644
--- a/src/tutorial/funcs.c
+++ b/src/tutorial/funcs.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/tutorial/funcs.c,v 1.16 2006/09/27 16:19:42 tgl Exp $ */
+/* $PostgreSQL: pgsql/src/tutorial/funcs.c,v 1.17 2007/02/27 23:48:10 tgl Exp $ */
/******************************************************************************
These are user-defined functions that can be bound to a Postgres backend
@@ -71,7 +71,7 @@ copytext(text *t)
*/
text *new_t = (text *) palloc(VARSIZE(t));
- VARATT_SIZEP(new_t) = VARSIZE(t);
+ SET_VARSIZE(new_t, VARSIZE(t));
/*
* VARDATA is a pointer to the data region of the struct.
@@ -90,7 +90,7 @@ concat_text(text *arg1, text *arg2)
int32 new_text_size = arg1_size + arg2_size + VARHDRSZ;
text *new_text = (text *) palloc(new_text_size);
- VARATT_SIZEP(new_text) = new_text_size;
+ SET_VARSIZE(new_text, new_text_size);
memcpy(VARDATA(new_text), VARDATA(arg1), arg1_size);
memcpy(VARDATA(new_text) + arg1_size, VARDATA(arg2), arg2_size);
return new_text;
diff --git a/src/tutorial/funcs_new.c b/src/tutorial/funcs_new.c
index 88fff266c4e..9811f5421b5 100644
--- a/src/tutorial/funcs_new.c
+++ b/src/tutorial/funcs_new.c
@@ -1,4 +1,4 @@
-/* $PostgreSQL: pgsql/src/tutorial/funcs_new.c,v 1.12 2006/09/27 16:19:42 tgl Exp $ */
+/* $PostgreSQL: pgsql/src/tutorial/funcs_new.c,v 1.13 2007/02/27 23:48:10 tgl Exp $ */
/******************************************************************************
These are user-defined functions that can be bound to a Postgres backend
@@ -83,7 +83,7 @@ copytext(PG_FUNCTION_ARGS)
*/
text *new_t = (text *) palloc(VARSIZE(t));
- VARATT_SIZEP(new_t) = VARSIZE(t);
+ SET_VARSIZE(new_t, VARSIZE(t));
/*
* VARDATA is a pointer to the data region of the struct.
@@ -106,7 +106,7 @@ concat_text(PG_FUNCTION_ARGS)
int32 new_text_size = arg1_size + arg2_size + VARHDRSZ;
text *new_text = (text *) palloc(new_text_size);
- VARATT_SIZEP(new_text) = new_text_size;
+ SET_VARSIZE(new_text, new_text_size);
memcpy(VARDATA(new_text), VARDATA(arg1), arg1_size);
memcpy(VARDATA(new_text) + arg1_size, VARDATA(arg2), arg2_size);
PG_RETURN_TEXT_P(new_text);