From 97dfff832cbc79a48ac2e053f2628c18027ee0a2 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Sat, 3 Jul 1999 00:33:04 +0000 Subject: Fix to prevent too large tuple from being created. --- src/backend/utils/adt/varchar.c | 23 ++++++++++++++--------- 1 file changed, 14 insertions(+), 9 deletions(-) (limited to 'src/backend/utils/adt/varchar.c') diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c index cb0982a52d..1f1b8d6497 100644 --- a/src/backend/utils/adt/varchar.c +++ b/src/backend/utils/adt/varchar.c @@ -7,13 +7,14 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.46 1999/05/25 16:12:21 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.47 1999/07/03 00:32:50 momjian Exp $ * *------------------------------------------------------------------------- */ #include /* for sprintf() */ #include #include "postgres.h" +#include "access/htup.h" #include "utils/array.h" #include "utils/builtins.h" #include "catalog/pg_type.h" @@ -81,8 +82,9 @@ bpcharin(char *s, int dummy, int32 atttypmod) else len = atttypmod - VARHDRSZ; - if (len > BLCKSZ - 128) - elog(ERROR, "bpcharin: length of char() must be less than %d", BLCKSZ - 128); + if (len > MaxTupleSize) + elog(ERROR, "bpcharin: length of char() must be less than %d", + MaxTupleSize); result = (char *) palloc(atttypmod); VARSIZE(result) = atttypmod; @@ -151,8 +153,9 @@ bpchar(char *s, int32 len) rlen = len - VARHDRSZ; - if (rlen > BLCKSZ - 128) - elog(ERROR, "bpchar: length of char() must be less than %d", BLCKSZ - 128); + if (rlen > MaxTupleSize) + elog(ERROR, "bpchar: length of char() must be less than %d", + MaxTupleSize); #ifdef STRINGDEBUG printf("bpchar- convert string length %d (%d) ->%d (%d)\n", @@ -332,8 +335,9 @@ varcharin(char *s, int dummy, int32 atttypmod) if (atttypmod != -1 && len > atttypmod) len = atttypmod; /* clip the string at max length */ - if (len > BLCKSZ - 128) - elog(ERROR, "varcharin: length of char() must be less than %d", BLCKSZ - 128); + if (len > MaxTupleSize) + elog(ERROR, "varcharin: length of char() must be less than %d", + MaxTupleSize); result = (char *) palloc(len); VARSIZE(result) = len; @@ -403,8 +407,9 @@ varchar(char *s, int32 slen) len = slen - VARHDRSZ; #endif - if (len > BLCKSZ - 128) - elog(ERROR, "varchar: length of varchar() must be less than BLCKSZ-128"); + if (len > MaxTupleSize) + elog(ERROR, "varchar: length of varchar() must be less than %d", + MaxTupleSize); result = (char *) palloc(slen); VARSIZE(result) = slen; -- cgit v1.2.1