mirror of
https://github.com/postgres/postgres.git
synced 2025-11-12 05:01:15 +03:00
TOAST
WARNING: This is actually broken - we have self-deadlocks due to concurrent changes in buffer management. Vadim and me are working on it. Jan
This commit is contained in:
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.59 2000/06/14 18:17:42 petere Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/arrayfuncs.c,v 1.60 2000/07/03 23:09:50 wieck Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -813,7 +813,7 @@ array_dims(PG_FUNCTION_ARGS)
|
||||
sprintf(p, "[%d:%d]", lb[i], dimv[i] + lb[i] - 1);
|
||||
p += strlen(p);
|
||||
}
|
||||
VARSIZE(result) = strlen(VARDATA(result)) + VARHDRSZ;
|
||||
VARATT_SIZEP(result) = strlen(VARDATA(result)) + VARHDRSZ;
|
||||
|
||||
PG_RETURN_TEXT_P(result);
|
||||
}
|
||||
@@ -1151,7 +1151,7 @@ array_set(ArrayType *array,
|
||||
Int32GetDatum(SEEK_SET))) < 0)
|
||||
return array;
|
||||
v = (struct varlena *) palloc(elmlen + VARHDRSZ);
|
||||
VARSIZE(v) = elmlen + VARHDRSZ;
|
||||
VARATT_SIZEP(v) = elmlen + VARHDRSZ;
|
||||
ArrayCastAndSet(dataValue, elmbyval, elmlen, VARDATA(v));
|
||||
#ifdef LOARRAY
|
||||
if (DatumGetInt32(DirectFunctionCall2(lowrite,
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
* workings can be found in the book "Software Solutions in C" by
|
||||
* Dale Schumacher, Academic Press, ISBN: 0-12-632360-7.
|
||||
*
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/cash.c,v 1.40 2000/06/15 03:32:28 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/cash.c,v 1.41 2000/07/03 23:09:50 wieck Exp $
|
||||
*/
|
||||
|
||||
#include <limits.h>
|
||||
@@ -730,7 +730,7 @@ cash_words_out(Cash *value)
|
||||
|
||||
/* make a text type for output */
|
||||
result = (text *) palloc(strlen(buf) + VARHDRSZ);
|
||||
VARSIZE(result) = strlen(buf) + VARHDRSZ;
|
||||
VARATT_SIZEP(result) = strlen(buf) + VARHDRSZ;
|
||||
memcpy(VARDATA(result), buf, strlen(buf));
|
||||
|
||||
return result;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/char.c,v 1.28 2000/06/05 07:28:51 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/char.c,v 1.29 2000/07/03 23:09:50 wieck Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -162,7 +162,7 @@ char_text(PG_FUNCTION_ARGS)
|
||||
char arg1 = PG_GETARG_CHAR(0);
|
||||
text *result = palloc(VARHDRSZ + 1);
|
||||
|
||||
VARSIZE(result) = VARHDRSZ + 1;
|
||||
VARATT_SIZEP(result) = VARHDRSZ + 1;
|
||||
*(VARDATA(result)) = arg1;
|
||||
|
||||
PG_RETURN_TEXT_P(result);
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.61 2000/06/14 18:17:42 petere Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/float.c,v 1.62 2000/07/03 23:09:50 wieck Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -953,7 +953,7 @@ float8_text(float64 num)
|
||||
|
||||
result = palloc(len);
|
||||
|
||||
VARSIZE(result) = len;
|
||||
VARATT_SIZEP(result) = len;
|
||||
memmove(VARDATA(result), str, (len - VARHDRSZ));
|
||||
|
||||
pfree(str);
|
||||
@@ -998,7 +998,7 @@ float4_text(float32 num)
|
||||
|
||||
result = palloc(len);
|
||||
|
||||
VARSIZE(result) = len;
|
||||
VARATT_SIZEP(result) = len;
|
||||
memmove(VARDATA(result), str, (len - VARHDRSZ));
|
||||
|
||||
pfree(str);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* -----------------------------------------------------------------------
|
||||
* formatting.c
|
||||
*
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/formatting.c,v 1.17 2000/07/03 16:01:30 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/formatting.c,v 1.18 2000/07/03 23:09:50 wieck Exp $
|
||||
*
|
||||
*
|
||||
* Portions Copyright (c) 1999-2000, PostgreSQL, Inc
|
||||
@@ -2526,7 +2526,7 @@ timestamp_to_char(PG_FUNCTION_ARGS)
|
||||
result = (text *) palloc(len + 1 + VARHDRSZ);
|
||||
|
||||
strcpy(VARDATA(result), VARDATA(result_tmp));
|
||||
VARSIZE(result) = len + VARHDRSZ;
|
||||
VARATT_SIZEP(result) = len + VARHDRSZ;
|
||||
pfree(result_tmp);
|
||||
|
||||
PG_RETURN_TEXT_P(result);
|
||||
@@ -3987,7 +3987,7 @@ do { \
|
||||
result = (text *) palloc( len + 1 + VARHDRSZ); \
|
||||
\
|
||||
strcpy( VARDATA(result), VARDATA(result_tmp)); \
|
||||
VARSIZE(result) = len + VARHDRSZ; \
|
||||
VARATT_SIZEP(result) = len + VARHDRSZ; \
|
||||
pfree(result_tmp); \
|
||||
} while(0)
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/int.c,v 1.38 2000/06/14 18:17:44 petere Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/int.c,v 1.39 2000/07/03 23:09:52 wieck Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -263,7 +263,7 @@ int2_text(PG_FUNCTION_ARGS)
|
||||
text *result = (text *) palloc(7+VARHDRSZ); /* sign,5 digits, '\0' */
|
||||
|
||||
itoa((int) arg1, VARDATA(result));
|
||||
VARSIZE(result) = strlen(VARDATA(result)) + VARHDRSZ;
|
||||
VARATT_SIZEP(result) = strlen(VARDATA(result)) + VARHDRSZ;
|
||||
PG_RETURN_TEXT_P(result);
|
||||
}
|
||||
|
||||
@@ -294,7 +294,7 @@ int4_text(PG_FUNCTION_ARGS)
|
||||
text *result = (text *) palloc(12+VARHDRSZ); /* sign,10 digits,'\0' */
|
||||
|
||||
ltoa(arg1, VARDATA(result));
|
||||
VARSIZE(result) = strlen(VARDATA(result)) + VARHDRSZ;
|
||||
VARATT_SIZEP(result) = strlen(VARDATA(result)) + VARHDRSZ;
|
||||
PG_RETURN_TEXT_P(result);
|
||||
}
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
* Portions Copyright (c) 1994, Regents of the University of California
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/int8.c,v 1.21 2000/06/14 18:17:44 petere Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/int8.c,v 1.22 2000/07/03 23:09:52 wieck Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -581,7 +581,7 @@ int8_text(PG_FUNCTION_ARGS)
|
||||
|
||||
result = (text *) palloc(VARHDRSZ + len);
|
||||
|
||||
VARSIZE(result) = len + VARHDRSZ;
|
||||
VARATT_SIZEP(result) = len + VARHDRSZ;
|
||||
memcpy(VARDATA(result), s, len);
|
||||
|
||||
pfree(s);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* ----------
|
||||
* lztext.c -
|
||||
*
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/lztext.c,v 1.7 2000/05/30 00:49:53 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/Attic/lztext.c,v 1.8 2000/07/03 23:09:52 wieck Exp $
|
||||
*
|
||||
* Text type with internal LZ compressed representation. Uses the
|
||||
* standard PostgreSQL compression method.
|
||||
@@ -34,8 +34,6 @@ lztextin(char *str)
|
||||
{
|
||||
lztext *result;
|
||||
int32 rawsize;
|
||||
lztext *tmp;
|
||||
int tmp_size;
|
||||
|
||||
/* ----------
|
||||
* Handle NULL
|
||||
@@ -44,35 +42,11 @@ lztextin(char *str)
|
||||
if (str == NULL)
|
||||
return NULL;
|
||||
|
||||
/* ----------
|
||||
* Determine input size and maximum output Datum size
|
||||
* ----------
|
||||
*/
|
||||
rawsize = strlen(str);
|
||||
tmp_size = PGLZ_MAX_OUTPUT(rawsize);
|
||||
result = (lztext *)palloc(VARHDRSZ + rawsize);
|
||||
|
||||
/* ----------
|
||||
* Allocate a temporary result and compress into it
|
||||
* ----------
|
||||
*/
|
||||
tmp = (lztext *) palloc(tmp_size);
|
||||
pglz_compress(str, rawsize, tmp, NULL);
|
||||
|
||||
/* ----------
|
||||
* If we miss less than 25% bytes at the end of the temp value,
|
||||
* so be it. Therefore we save a palloc()/memcpy()/pfree()
|
||||
* sequence.
|
||||
* ----------
|
||||
*/
|
||||
if (tmp_size - tmp->varsize < 256 ||
|
||||
tmp_size - tmp->varsize < tmp_size / 4)
|
||||
result = tmp;
|
||||
else
|
||||
{
|
||||
result = (lztext *) palloc(tmp->varsize);
|
||||
memcpy(result, tmp, tmp->varsize);
|
||||
pfree(tmp);
|
||||
}
|
||||
VARATT_SIZEP(result) = VARHDRSZ + rawsize;
|
||||
memcpy(VARATT_DATA(result), str, rawsize);
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -88,6 +62,8 @@ char *
|
||||
lztextout(lztext *lz)
|
||||
{
|
||||
char *result;
|
||||
void *tmp;
|
||||
int32 rawsize;
|
||||
|
||||
/* ----------
|
||||
* Handle NULL
|
||||
@@ -101,25 +77,15 @@ lztextout(lztext *lz)
|
||||
return result;
|
||||
}
|
||||
|
||||
/* ----------
|
||||
* Allocate the result string - the required size is remembered
|
||||
* in the lztext header so we don't need a temporary buffer or
|
||||
* have to diddle with realloc's.
|
||||
* ----------
|
||||
*/
|
||||
result = (char *) palloc(PGLZ_RAW_SIZE(lz) + 1);
|
||||
VARATT_GETPLAIN(lz, tmp);
|
||||
|
||||
/* ----------
|
||||
* Decompress and add terminating ZERO
|
||||
* ----------
|
||||
*/
|
||||
pglz_decompress(lz, result);
|
||||
result[lz->rawsize] = '\0';
|
||||
rawsize = VARATT_SIZE(tmp) - VARHDRSZ;
|
||||
result = (char *)palloc(rawsize + 1);
|
||||
memcpy(result, VARATT_DATA(tmp), rawsize);
|
||||
result[rawsize] = '\0';
|
||||
|
||||
VARATT_FREE(lz, tmp);
|
||||
|
||||
/* ----------
|
||||
* Return the result
|
||||
* ----------
|
||||
*/
|
||||
return result;
|
||||
}
|
||||
|
||||
@@ -167,7 +133,13 @@ lztextlen(lztext *lz)
|
||||
* without multibyte support, it's the remembered rawsize
|
||||
* ----------
|
||||
*/
|
||||
return PGLZ_RAW_SIZE(lz);
|
||||
if (!VARATT_IS_EXTENDED(lz))
|
||||
return VARATT_SIZE(lz) - VARHDRSZ;
|
||||
|
||||
if (VARATT_IS_EXTERNAL(lz))
|
||||
return lz->va_content.va_external.va_rawsize;
|
||||
|
||||
return lz->va_content.va_compressed.va_rawsize;
|
||||
#endif
|
||||
}
|
||||
|
||||
@@ -189,11 +161,10 @@ lztextoctetlen(lztext *lz)
|
||||
if (lz == NULL)
|
||||
return 0;
|
||||
|
||||
/* ----------
|
||||
* Return the varsize minus the VARSIZE field itself.
|
||||
* ----------
|
||||
*/
|
||||
return VARSIZE(lz) - VARHDRSZ;
|
||||
if (!VARATT_IS_EXTERNAL(lz))
|
||||
return VARATT_SIZE(lz) - VARHDRSZ;
|
||||
|
||||
return lz->va_content.va_external.va_extsize;
|
||||
}
|
||||
|
||||
|
||||
@@ -208,9 +179,6 @@ text_lztext(text *txt)
|
||||
{
|
||||
lztext *result;
|
||||
int32 rawsize;
|
||||
lztext *tmp;
|
||||
int tmp_size;
|
||||
char *str;
|
||||
|
||||
/* ----------
|
||||
* Handle NULL
|
||||
@@ -220,35 +188,13 @@ text_lztext(text *txt)
|
||||
return NULL;
|
||||
|
||||
/* ----------
|
||||
* Determine input size and eventually tuple size
|
||||
* Copy the entire attribute
|
||||
* ----------
|
||||
*/
|
||||
rawsize = VARSIZE(txt) - VARHDRSZ;
|
||||
str = VARDATA(txt);
|
||||
tmp_size = PGLZ_MAX_OUTPUT(rawsize);
|
||||
|
||||
/* ----------
|
||||
* Allocate a temporary result and compress into it
|
||||
* ----------
|
||||
*/
|
||||
tmp = (lztext *) palloc(tmp_size);
|
||||
pglz_compress(str, rawsize, tmp, NULL);
|
||||
|
||||
/* ----------
|
||||
* If we miss less than 25% bytes at the end of the temp value,
|
||||
* so be it. Therefore we save a palloc()/memcpy()/pfree()
|
||||
* sequence.
|
||||
* ----------
|
||||
*/
|
||||
if (tmp_size - tmp->varsize < 256 ||
|
||||
tmp_size - tmp->varsize < tmp_size / 4)
|
||||
result = tmp;
|
||||
else
|
||||
{
|
||||
result = (lztext *) palloc(tmp->varsize);
|
||||
memcpy(result, tmp, tmp->varsize);
|
||||
pfree(tmp);
|
||||
}
|
||||
result = (lztext *)palloc(rawsize + VARHDRSZ);
|
||||
VARATT_SIZEP(result) = rawsize + VARHDRSZ;
|
||||
memcpy(VARATT_DATA(result), VARATT_DATA(txt), rawsize);
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -264,6 +210,8 @@ text *
|
||||
lztext_text(lztext *lz)
|
||||
{
|
||||
text *result;
|
||||
lztext *tmp;
|
||||
int32 rawsize;
|
||||
|
||||
/* ----------
|
||||
* Handle NULL
|
||||
@@ -272,19 +220,14 @@ lztext_text(lztext *lz)
|
||||
if (lz == NULL)
|
||||
return NULL;
|
||||
|
||||
/* ----------
|
||||
* Allocate and initialize the text result
|
||||
* ----------
|
||||
*/
|
||||
result = (text *) palloc(PGLZ_RAW_SIZE(lz) + VARHDRSZ + 1);
|
||||
VARSIZE(result) = lz->rawsize + VARHDRSZ;
|
||||
VARATT_GETPLAIN(lz, tmp);
|
||||
|
||||
rawsize = VARATT_SIZE(tmp) - VARHDRSZ;
|
||||
result = (text *)palloc(rawsize + VARHDRSZ);
|
||||
VARATT_SIZEP(result) = rawsize + VARHDRSZ;
|
||||
memcpy(VARATT_DATA(result), VARATT_DATA(tmp), rawsize);
|
||||
|
||||
/* ----------
|
||||
* Decompress directly into the text data area.
|
||||
* ----------
|
||||
*/
|
||||
VARDATA(result)[lz->rawsize] = 0;
|
||||
pglz_decompress(lz, VARDATA(result));
|
||||
VARATT_FREE(lz, tmp);
|
||||
|
||||
return result;
|
||||
}
|
||||
@@ -322,43 +265,32 @@ lztext_cmp(lztext *lz1, lztext *lz2)
|
||||
|
||||
#else /* !USE_LOCALE */
|
||||
|
||||
PGLZ_DecompState ds1;
|
||||
PGLZ_DecompState ds2;
|
||||
int c1;
|
||||
int c2;
|
||||
int32 result = (int32) 0;
|
||||
int result;
|
||||
char *p1 = NULL;
|
||||
char *p2 = NULL;
|
||||
int size1;
|
||||
int size2;
|
||||
|
||||
if (lz1 == NULL || lz2 == NULL)
|
||||
return (int32) 0;
|
||||
return 0;
|
||||
|
||||
pglz_decomp_init(&ds1, lz1);
|
||||
pglz_decomp_init(&ds2, lz2);
|
||||
VARATT_GETPLAIN(lz1, p1);
|
||||
VARATT_GETPLAIN(lz2, p2);
|
||||
|
||||
for (;;)
|
||||
{
|
||||
c1 = pglz_decomp_getchar(&ds1);
|
||||
c2 = pglz_decomp_getchar(&ds2);
|
||||
size1 = VARATT_SIZE(p1) - VARHDRSZ;
|
||||
size2 = VARATT_SIZE(p2) - VARHDRSZ;
|
||||
result = memcmp(VARATT_DATA(p1), VARATT_DATA(p2),
|
||||
(size1 < size2) ? size1 : size2);
|
||||
if (result == 0)
|
||||
{
|
||||
if (size1 > size2)
|
||||
result = 1;
|
||||
else if (size1 < size2)
|
||||
result = -1;
|
||||
}
|
||||
|
||||
if (c1 == EOF)
|
||||
{
|
||||
if (c2 != EOF)
|
||||
result = (int32) -1;
|
||||
break;
|
||||
}
|
||||
else
|
||||
{
|
||||
if (c2 == EOF)
|
||||
result = (int32) 1;
|
||||
}
|
||||
if (c1 != c2)
|
||||
{
|
||||
result = (int32) (c1 - c2);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
pglz_decomp_end(&ds1);
|
||||
pglz_decomp_end(&ds2);
|
||||
VARATT_FREE(lz2, p2);
|
||||
VARATT_FREE(lz1, p1);
|
||||
|
||||
return result;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* PostgreSQL type definitions for MAC addresses.
|
||||
*
|
||||
* $Id: mac.c,v 1.14 1999/12/16 01:30:49 momjian Exp $
|
||||
* $Id: mac.c,v 1.15 2000/07/03 23:09:52 wieck Exp $
|
||||
*/
|
||||
|
||||
|
||||
@@ -314,14 +314,14 @@ macaddr_manuf(macaddr *addr)
|
||||
{
|
||||
result = palloc(VARHDRSZ + 1);
|
||||
memset(result, 0, VARHDRSZ + 1);
|
||||
VARSIZE(result) = VARHDRSZ + 1;
|
||||
VARATT_SIZEP(result) = VARHDRSZ + 1;
|
||||
}
|
||||
else
|
||||
{
|
||||
length = strlen(manuf->name) + 1;
|
||||
result = palloc(length + VARHDRSZ);
|
||||
memset(result, 0, length + VARHDRSZ);
|
||||
VARSIZE(result) = length + VARHDRSZ;
|
||||
VARATT_SIZEP(result) = length + VARHDRSZ;
|
||||
memcpy(VARDATA(result), manuf->name, length);
|
||||
}
|
||||
return result;
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.70 2000/06/27 18:08:49 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/nabstime.c,v 1.71 2000/07/03 23:09:52 wieck Exp $
|
||||
*
|
||||
* NOTES
|
||||
*
|
||||
@@ -1945,7 +1945,7 @@ timeofday(PG_FUNCTION_ARGS)
|
||||
|
||||
len = VARHDRSZ + strlen(buf);
|
||||
result = (text *) palloc(len);
|
||||
VARSIZE(result) = len;
|
||||
VARATT_SIZEP(result) = len;
|
||||
memcpy(VARDATA(result), buf, strlen(buf));
|
||||
PG_RETURN_TEXT_P(result);
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* is for IP V4 CIDR notation, but prepared for V6: just
|
||||
* add the necessary bits where the comments indicate.
|
||||
*
|
||||
* $Id: network.c,v 1.21 2000/04/12 17:15:50 momjian Exp $
|
||||
* $Id: network.c,v 1.22 2000/07/03 23:09:52 wieck Exp $
|
||||
* Jon Postel RIP 16 Oct 1998
|
||||
*/
|
||||
|
||||
@@ -61,7 +61,7 @@ network_in(char *src, int type)
|
||||
/* Go for an IPV6 address here, before faulting out: */
|
||||
elog(ERROR, "could not parse \"%s\"", src);
|
||||
|
||||
VARSIZE(dst) = VARHDRSZ
|
||||
VARATT_SIZEP(dst) = VARHDRSZ
|
||||
+ ((char *) &ip_v4addr(dst) - (char *) VARDATA(dst))
|
||||
+ ip_addrsize(dst);
|
||||
ip_bits(dst) = bits;
|
||||
@@ -346,7 +346,7 @@ network_host(inet *ip)
|
||||
if (ret == NULL)
|
||||
elog(ERROR, "unable to allocate memory in network_host()");
|
||||
|
||||
VARSIZE(ret) = len;
|
||||
VARATT_SIZEP(ret) = len;
|
||||
strcpy(VARDATA(ret), tmp);
|
||||
return (ret);
|
||||
}
|
||||
@@ -396,7 +396,7 @@ network_broadcast(inet *ip)
|
||||
if (ret == NULL)
|
||||
elog(ERROR, "unable to allocate memory in network_broadcast()");
|
||||
|
||||
VARSIZE(ret) = len;
|
||||
VARATT_SIZEP(ret) = len;
|
||||
strcpy(VARDATA(ret), tmp);
|
||||
return (ret);
|
||||
}
|
||||
@@ -429,7 +429,7 @@ network_network(inet *ip)
|
||||
if (ret == NULL)
|
||||
elog(ERROR, "unable to allocate memory in network_network()");
|
||||
|
||||
VARSIZE(ret) = len;
|
||||
VARATT_SIZEP(ret) = len;
|
||||
strcpy(VARDATA(ret), tmp);
|
||||
return (ret);
|
||||
}
|
||||
@@ -466,7 +466,7 @@ network_netmask(inet *ip)
|
||||
if (ret == NULL)
|
||||
elog(ERROR, "unable to allocate memory in network_netmask()");
|
||||
|
||||
VARSIZE(ret) = len;
|
||||
VARATT_SIZEP(ret) = len;
|
||||
strcpy(VARDATA(ret), tmp);
|
||||
return (ret);
|
||||
}
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/oid.c,v 1.36 2000/06/14 18:17:45 petere Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/oid.c,v 1.37 2000/07/03 23:09:52 wieck Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -231,7 +231,7 @@ oid_text(PG_FUNCTION_ARGS)
|
||||
|
||||
result = (text *) palloc(len);
|
||||
|
||||
VARSIZE(result) = len;
|
||||
VARATT_SIZEP(result) = len;
|
||||
memcpy(VARDATA(result), str, (len - VARHDRSZ));
|
||||
pfree(str);
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Edmund Mergl <E.Mergl@bawue.de>
|
||||
*
|
||||
* $Id: oracle_compat.c,v 1.25 2000/06/13 07:35:07 tgl Exp $
|
||||
* $Id: oracle_compat.c,v 1.26 2000/07/03 23:09:52 wieck Exp $
|
||||
*
|
||||
*/
|
||||
|
||||
@@ -37,7 +37,7 @@ lower(text *string)
|
||||
return string;
|
||||
|
||||
ret = (text *) palloc(VARSIZE(string));
|
||||
VARSIZE(ret) = VARSIZE(string);
|
||||
VARATT_SIZEP(ret) = VARSIZE(string);
|
||||
|
||||
ptr = VARDATA(string);
|
||||
ptr_ret = VARDATA(ret);
|
||||
@@ -75,7 +75,7 @@ upper(text *string)
|
||||
return string;
|
||||
|
||||
ret = (text *) palloc(VARSIZE(string));
|
||||
VARSIZE(ret) = VARSIZE(string);
|
||||
VARATT_SIZEP(ret) = VARSIZE(string);
|
||||
|
||||
ptr = VARDATA(string);
|
||||
ptr_ret = VARDATA(ret);
|
||||
@@ -115,7 +115,7 @@ initcap(text *string)
|
||||
return string;
|
||||
|
||||
ret = (text *) palloc(VARSIZE(string));
|
||||
VARSIZE(ret) = VARSIZE(string);
|
||||
VARATT_SIZEP(ret) = VARSIZE(string);
|
||||
|
||||
ptr = VARDATA(string);
|
||||
ptr_ret = VARDATA(ret);
|
||||
@@ -169,7 +169,7 @@ lpad(PG_FUNCTION_ARGS)
|
||||
PG_RETURN_TEXT_P(string1);
|
||||
|
||||
ret = (text *) palloc(VARHDRSZ + len);
|
||||
VARSIZE(ret) = VARHDRSZ + len;
|
||||
VARATT_SIZEP(ret) = VARHDRSZ + len;
|
||||
|
||||
ptr2 = VARDATA(string2);
|
||||
ptr_ret = VARDATA(ret);
|
||||
@@ -224,7 +224,7 @@ rpad(PG_FUNCTION_ARGS)
|
||||
PG_RETURN_TEXT_P(string1);
|
||||
|
||||
ret = (text *) palloc(VARHDRSZ + len);
|
||||
VARSIZE(ret) = VARHDRSZ + len;
|
||||
VARATT_SIZEP(ret) = VARHDRSZ + len;
|
||||
|
||||
n = VARSIZE(string1) - VARHDRSZ;
|
||||
ptr1 = VARDATA(string1);
|
||||
@@ -316,7 +316,7 @@ btrim(text *string, text *set)
|
||||
++m;
|
||||
|
||||
ret = (text *) palloc(VARHDRSZ + m);
|
||||
VARSIZE(ret) = VARHDRSZ + m;
|
||||
VARATT_SIZEP(ret) = VARHDRSZ + m;
|
||||
memcpy(VARDATA(ret), ptr, m);
|
||||
|
||||
return ret;
|
||||
@@ -374,7 +374,7 @@ ltrim(text *string, text *set)
|
||||
++m;
|
||||
|
||||
ret = (text *) palloc(VARHDRSZ + m);
|
||||
VARSIZE(ret) = VARHDRSZ + m;
|
||||
VARATT_SIZEP(ret) = VARHDRSZ + m;
|
||||
|
||||
memcpy(VARDATA(ret), ptr, m);
|
||||
|
||||
@@ -434,7 +434,7 @@ rtrim(text *string, text *set)
|
||||
++m;
|
||||
|
||||
ret = (text *) palloc(VARHDRSZ + m);
|
||||
VARSIZE(ret) = VARHDRSZ + m;
|
||||
VARATT_SIZEP(ret) = VARHDRSZ + m;
|
||||
#ifdef NOT_USED
|
||||
memcpy(VARDATA(ret), ptr - VARSIZE(ret) + m, m);
|
||||
#endif
|
||||
@@ -528,7 +528,7 @@ translate(text *string, text *from, text *to)
|
||||
}
|
||||
}
|
||||
|
||||
VARSIZE(result) = retlen + VARHDRSZ;
|
||||
VARATT_SIZEP(result) = retlen + VARHDRSZ;
|
||||
|
||||
/*
|
||||
* There may be some wasted space in the result if deletions occurred,
|
||||
@@ -560,7 +560,7 @@ ichar(PG_FUNCTION_ARGS)
|
||||
text *result;
|
||||
|
||||
result = (text *) palloc(VARHDRSZ + 1);
|
||||
VARSIZE(result) = VARHDRSZ + 1;
|
||||
VARATT_SIZEP(result) = VARHDRSZ + 1;
|
||||
*VARDATA(result) = (char) cvalue;
|
||||
|
||||
PG_RETURN_TEXT_P(result);
|
||||
@@ -586,7 +586,7 @@ repeat(PG_FUNCTION_ARGS)
|
||||
|
||||
result = (text *) palloc(tlen);
|
||||
|
||||
VARSIZE(result) = tlen;
|
||||
VARATT_SIZEP(result) = tlen;
|
||||
cp = VARDATA(result);
|
||||
for (i = 0; i < count; i++)
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/* ----------
|
||||
* pg_lzcompress.c -
|
||||
*
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/pg_lzcompress.c,v 1.5 2000/05/30 00:49:53 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/pg_lzcompress.c,v 1.6 2000/07/03 23:09:52 wieck Exp $
|
||||
*
|
||||
* This is an implementation of LZ compression for PostgreSQL.
|
||||
* It uses a simple history table and generates 2-3 byte tags
|
||||
@@ -582,11 +582,15 @@ pglz_compress(char *source, int slen, PGLZ_Header *dest, PGLZ_Strategy *strategy
|
||||
* ----------
|
||||
*/
|
||||
if (do_compress)
|
||||
return (dest->varsize = result_size + sizeof(PGLZ_Header));
|
||||
{
|
||||
dest->varsize = result_size + sizeof(PGLZ_Header);
|
||||
return VARATT_SIZE(dest);
|
||||
}
|
||||
else
|
||||
{
|
||||
memcpy(((char *) dest) + sizeof(PGLZ_Header), source, slen);
|
||||
return (dest->varsize = slen + sizeof(PGLZ_Header));
|
||||
dest->varsize = slen + sizeof(PGLZ_Header);
|
||||
return VARATT_SIZE(dest);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -609,10 +613,10 @@ pglz_decompress(PGLZ_Header *source, char *dest)
|
||||
int32 off;
|
||||
|
||||
dp = ((unsigned char *) source) + sizeof(PGLZ_Header);
|
||||
dend = ((unsigned char *) source) + source->varsize;
|
||||
dend = ((unsigned char *) source) + VARATT_SIZE(source);
|
||||
bp = (unsigned char *) dest;
|
||||
|
||||
if (source->varsize == source->rawsize + sizeof(PGLZ_Header))
|
||||
if (VARATT_SIZE(source) == source->rawsize + sizeof(PGLZ_Header))
|
||||
{
|
||||
memcpy(dest, dp, source->rawsize);
|
||||
return source->rawsize;
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/regproc.c,v 1.56 2000/06/05 07:28:52 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/regproc.c,v 1.57 2000/07/03 23:09:52 wieck Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -282,7 +282,7 @@ oidvectortypes(PG_FUNCTION_ARGS)
|
||||
else
|
||||
strcat(VARDATA(result), "- ");
|
||||
}
|
||||
VARSIZE(result) = strlen(VARDATA(result)) + VARHDRSZ;
|
||||
VARATT_SIZEP(result) = strlen(VARDATA(result)) + VARHDRSZ;
|
||||
PG_RETURN_TEXT_P(result);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
* out of its tuple
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.54 2000/06/13 07:35:08 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/ruleutils.c,v 1.55 2000/07/03 23:09:52 wieck Exp $
|
||||
*
|
||||
* This software is copyrighted by Jan Wieck - Hamburg.
|
||||
*
|
||||
@@ -181,7 +181,7 @@ pg_get_ruledef(NameData *rname)
|
||||
if (SPI_finish() != SPI_OK_FINISH)
|
||||
elog(ERROR, "get_ruledef: SPI_finish() failed");
|
||||
ruledef = SPI_palloc(VARHDRSZ + 1);
|
||||
VARSIZE(ruledef) = VARHDRSZ + 1;
|
||||
VARATT_SIZEP(ruledef) = VARHDRSZ + 1;
|
||||
VARDATA(ruledef)[0] = '-';
|
||||
return ruledef;
|
||||
}
|
||||
@@ -197,7 +197,7 @@ pg_get_ruledef(NameData *rname)
|
||||
make_ruledef(&buf, ruletup, rulettc);
|
||||
len = buf.len + VARHDRSZ;
|
||||
ruledef = SPI_palloc(len);
|
||||
VARSIZE(ruledef) = len;
|
||||
VARATT_SIZEP(ruledef) = len;
|
||||
memcpy(VARDATA(ruledef), buf.data, buf.len);
|
||||
pfree(buf.data);
|
||||
|
||||
@@ -296,7 +296,7 @@ pg_get_viewdef(NameData *rname)
|
||||
}
|
||||
len = buf.len + VARHDRSZ;
|
||||
ruledef = SPI_palloc(len);
|
||||
VARSIZE(ruledef) = len;
|
||||
VARATT_SIZEP(ruledef) = len;
|
||||
memcpy(VARDATA(ruledef), buf.data, buf.len);
|
||||
pfree(buf.data);
|
||||
|
||||
@@ -530,7 +530,7 @@ pg_get_indexdef(PG_FUNCTION_ARGS)
|
||||
*/
|
||||
len = buf.len + VARHDRSZ;
|
||||
indexdef = SPI_palloc(len);
|
||||
VARSIZE(indexdef) = len;
|
||||
VARATT_SIZEP(indexdef) = len;
|
||||
memcpy(VARDATA(indexdef), buf.data, buf.len);
|
||||
pfree(buf.data);
|
||||
pfree(keybuf.data);
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/timestamp.c,v 1.30 2000/06/19 03:54:27 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/timestamp.c,v 1.31 2000/07/03 23:09:53 wieck Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -1375,7 +1375,7 @@ timestamp_text(PG_FUNCTION_ARGS)
|
||||
|
||||
result = palloc(len);
|
||||
|
||||
VARSIZE(result) = len;
|
||||
VARATT_SIZEP(result) = len;
|
||||
memmove(VARDATA(result), str, (len - VARHDRSZ));
|
||||
|
||||
pfree(str);
|
||||
@@ -1430,7 +1430,7 @@ interval_text(PG_FUNCTION_ARGS)
|
||||
|
||||
result = palloc(len);
|
||||
|
||||
VARSIZE(result) = len;
|
||||
VARATT_SIZEP(result) = len;
|
||||
memmove(VARDATA(result), str, (len - VARHDRSZ));
|
||||
|
||||
pfree(str);
|
||||
@@ -2101,7 +2101,7 @@ timestamp_zone(PG_FUNCTION_ARGS)
|
||||
|
||||
result = palloc(len);
|
||||
|
||||
VARSIZE(result) = len;
|
||||
VARATT_SIZEP(result) = len;
|
||||
memmove(VARDATA(result), buf, (len - VARHDRSZ));
|
||||
}
|
||||
else
|
||||
|
||||
@@ -4,7 +4,7 @@
|
||||
* Functions for the built-in type bit() and varying bit().
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varbit.c,v 1.3 2000/06/15 03:32:29 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varbit.c,v 1.4 2000/07/03 23:09:53 wieck Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -122,7 +122,7 @@ zpbit_in(char *s, int dummy, int32 atttypmod)
|
||||
result = (bits8 *) palloc(len);
|
||||
/* set to 0 so that *r is always initialised and strin is zero-padded */
|
||||
memset(result, 0, len);
|
||||
VARSIZE(result) = len;
|
||||
VARATT_SIZEP(result) = len;
|
||||
VARBITLEN(result) = atttypmod;
|
||||
|
||||
/*
|
||||
@@ -353,7 +353,7 @@ varbit_in(char *s, int dummy, int32 atttypmod)
|
||||
result = (bits8 *) palloc(len);
|
||||
/* set to 0 so that *r is always initialised and strin is zero-padded */
|
||||
memset(result, 0, len);
|
||||
VARSIZE(result) = len;
|
||||
VARATT_SIZEP(result) = len;
|
||||
VARBITLEN(result) = bitlen;
|
||||
|
||||
/*
|
||||
@@ -561,7 +561,7 @@ bitcat(bits8 *arg1, bits8 *arg2)
|
||||
bytelen = VARBITDATALEN(bitlen1 + bitlen2);
|
||||
|
||||
result = (bits8 *) palloc(bytelen * sizeof(bits8));
|
||||
VARSIZE(result) = bytelen;
|
||||
VARATT_SIZEP(result) = bytelen;
|
||||
VARBITLEN(result) = bitlen1 + bitlen2;
|
||||
/* Copy the first bitstring in */
|
||||
memcpy(VARBITS(result), VARBITS(arg1), VARBITBYTES(arg1));
|
||||
@@ -625,7 +625,7 @@ bitsubstr(bits8 *arg, int32 s, int32 l)
|
||||
len = VARBITDATALEN(0);
|
||||
result = (bits8 *) palloc(len);
|
||||
VARBITLEN(result) = 0;
|
||||
VARSIZE(result) = len;
|
||||
VARATT_SIZEP(result) = len;
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -638,7 +638,7 @@ bitsubstr(bits8 *arg, int32 s, int32 l)
|
||||
len = VARBITDATALEN(rbitlen);
|
||||
result = (bits8 *) palloc(len);
|
||||
VARBITLEN(result) = rbitlen;
|
||||
VARSIZE(result) = len;
|
||||
VARATT_SIZEP(result) = len;
|
||||
len -= VARHDRSZ + VARBITHDRSZ;
|
||||
/* Are we copying from a byte boundary? */
|
||||
if ((s1 - 1) % BITSPERBYTE == 0)
|
||||
@@ -691,7 +691,7 @@ bitand(bits8 *arg1, bits8 *arg2)
|
||||
|
||||
len = Min(VARSIZE(arg1), VARSIZE(arg2));
|
||||
result = (bits8 *) palloc(len);
|
||||
VARSIZE(result) = len;
|
||||
VARATT_SIZEP(result) = len;
|
||||
VARBITLEN(result) = Min(VARBITLEN(arg1), VARBITLEN(arg2));
|
||||
|
||||
p1 = (bits8 *) VARBITS(arg1);
|
||||
@@ -725,7 +725,7 @@ bitor(bits8 *arg1, bits8 *arg2)
|
||||
|
||||
len = Min(VARSIZE(arg1), VARSIZE(arg2));
|
||||
result = (bits8 *) palloc(len);
|
||||
VARSIZE(result) = len;
|
||||
VARATT_SIZEP(result) = len;
|
||||
VARBITLEN(result) = Min(VARBITLEN(arg1), VARBITLEN(arg2));
|
||||
|
||||
p1 = (bits8 *) VARBITS(arg1);
|
||||
@@ -761,7 +761,7 @@ bitxor(bits8 *arg1, bits8 *arg2)
|
||||
|
||||
len = Min(VARSIZE(arg1), VARSIZE(arg2));
|
||||
result = (bits8 *) palloc(len);
|
||||
VARSIZE(result) = len;
|
||||
VARATT_SIZEP(result) = len;
|
||||
VARBITLEN(result) = Min(VARBITLEN(arg1), VARBITLEN(arg2));
|
||||
|
||||
p1 = (bits8 *) VARBITS(arg1);
|
||||
@@ -792,7 +792,7 @@ bitnot(bits8 *arg)
|
||||
return (bool) 0;
|
||||
|
||||
result = (bits8 *) palloc(VARSIZE(arg));
|
||||
VARSIZE(result) = VARSIZE(arg);
|
||||
VARATT_SIZEP(result) = VARSIZE(arg);
|
||||
VARBITLEN(result) = VARBITLEN(arg);
|
||||
|
||||
p = (bits8 *) VARBITS(arg);
|
||||
@@ -828,7 +828,7 @@ bitshiftleft(bits8 *arg, int shft)
|
||||
return bitshiftright(arg, -shft);
|
||||
|
||||
result = (bits8 *) palloc(VARSIZE(arg));
|
||||
VARSIZE(result) = VARSIZE(arg);
|
||||
VARATT_SIZEP(result) = VARSIZE(arg);
|
||||
VARBITLEN(result) = VARBITLEN(arg);
|
||||
r = (bits8 *) VARBITS(result);
|
||||
|
||||
@@ -879,7 +879,7 @@ bitshiftright(bits8 *arg, int shft)
|
||||
return bitshiftleft(arg, -shft);
|
||||
|
||||
result = (bits8 *) palloc(VARSIZE(arg));
|
||||
VARSIZE(result) = VARSIZE(arg);
|
||||
VARATT_SIZEP(result) = VARSIZE(arg);
|
||||
VARBITLEN(result) = VARBITLEN(arg);
|
||||
r = (bits8 *) VARBITS(result);
|
||||
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.66 2000/06/19 03:54:28 tgl Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.67 2000/07/03 23:09:53 wieck Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -88,7 +88,7 @@ bpcharin(PG_FUNCTION_ARGS)
|
||||
len = atttypmod - VARHDRSZ;
|
||||
|
||||
result = (BpChar *) palloc(atttypmod);
|
||||
VARSIZE(result) = atttypmod;
|
||||
VARATT_SIZEP(result) = atttypmod;
|
||||
r = VARDATA(result);
|
||||
for (i = 0; i < len; i++, r++, s++)
|
||||
{
|
||||
@@ -154,7 +154,7 @@ bpchar(PG_FUNCTION_ARGS)
|
||||
#endif
|
||||
|
||||
result = (BpChar *) palloc(len);
|
||||
VARSIZE(result) = len;
|
||||
VARATT_SIZEP(result) = len;
|
||||
r = VARDATA(result);
|
||||
|
||||
#ifdef MULTIBYTE
|
||||
@@ -248,7 +248,7 @@ char_bpchar(PG_FUNCTION_ARGS)
|
||||
|
||||
result = (BpChar *) palloc(VARHDRSZ + 1);
|
||||
|
||||
VARSIZE(result) = VARHDRSZ + 1;
|
||||
VARATT_SIZEP(result) = VARHDRSZ + 1;
|
||||
*(VARDATA(result)) = c;
|
||||
|
||||
PG_RETURN_BPCHAR_P(result);
|
||||
@@ -317,7 +317,7 @@ name_bpchar(NameData *s)
|
||||
|
||||
result = (char *) palloc(VARHDRSZ + len);
|
||||
strncpy(VARDATA(result), NameStr(*s), len);
|
||||
VARSIZE(result) = len + VARHDRSZ;
|
||||
VARATT_SIZEP(result) = len + VARHDRSZ;
|
||||
|
||||
return result;
|
||||
} /* name_bpchar() */
|
||||
@@ -348,7 +348,7 @@ varcharin(PG_FUNCTION_ARGS)
|
||||
len = atttypmod; /* clip the string at max length */
|
||||
|
||||
result = (VarChar *) palloc(len);
|
||||
VARSIZE(result) = len;
|
||||
VARATT_SIZEP(result) = len;
|
||||
memcpy(VARDATA(result), s, len - VARHDRSZ);
|
||||
|
||||
#ifdef CYR_RECODE
|
||||
@@ -407,7 +407,7 @@ varchar(PG_FUNCTION_ARGS)
|
||||
#endif
|
||||
|
||||
result = (VarChar *) palloc(slen);
|
||||
VARSIZE(result) = slen;
|
||||
VARATT_SIZEP(result) = slen;
|
||||
memcpy(VARDATA(result), VARDATA(s), len);
|
||||
|
||||
PG_RETURN_VARCHAR_P(result);
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.60 2000/06/14 18:17:45 petere Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varlena.c,v 1.61 2000/07/03 23:09:54 wieck Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -157,7 +157,7 @@ textin(char *inputText)
|
||||
|
||||
len = strlen(inputText) + VARHDRSZ;
|
||||
result = (text *) palloc(len);
|
||||
VARSIZE(result) = len;
|
||||
VARATT_SIZEP(result) = len;
|
||||
|
||||
memmove(VARDATA(result), inputText, len - VARHDRSZ);
|
||||
|
||||
@@ -288,7 +288,7 @@ textcat(text *t1, text *t2)
|
||||
result = palloc(len);
|
||||
|
||||
/* Set size of result string... */
|
||||
VARSIZE(result) = len;
|
||||
VARATT_SIZEP(result) = len;
|
||||
|
||||
/* Fill data field of result string... */
|
||||
ptr = VARDATA(result);
|
||||
@@ -374,7 +374,7 @@ text_substr(PG_FUNCTION_ARGS)
|
||||
#endif
|
||||
|
||||
ret = (text *) palloc(VARHDRSZ + n);
|
||||
VARSIZE(ret) = VARHDRSZ + n;
|
||||
VARATT_SIZEP(ret) = VARHDRSZ + n;
|
||||
|
||||
memcpy(VARDATA(ret), VARDATA(string) + m, n);
|
||||
|
||||
@@ -842,7 +842,7 @@ name_text(NameData *s)
|
||||
|
||||
result = palloc(VARHDRSZ + len);
|
||||
strncpy(VARDATA(result), NameStr(*s), len);
|
||||
VARSIZE(result) = len + VARHDRSZ;
|
||||
VARATT_SIZEP(result) = len + VARHDRSZ;
|
||||
|
||||
return result;
|
||||
} /* name_text() */
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
*
|
||||
* IDENTIFICATION
|
||||
*
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/version.c,v 1.10 2000/07/02 15:20:51 petere Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/version.c,v 1.11 2000/07/03 23:09:54 wieck Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@@ -22,7 +22,7 @@ version(void)
|
||||
int n = strlen(PG_VERSION_STR) + VARHDRSZ;
|
||||
text *ret = (text *) palloc(n);
|
||||
|
||||
VARSIZE(ret) = n;
|
||||
VARATT_SIZEP(ret) = n;
|
||||
memcpy(VARDATA(ret), PG_VERSION_STR, strlen(PG_VERSION_STR));
|
||||
|
||||
return ret;
|
||||
|
||||
Reference in New Issue
Block a user