diff options
author | Bruce Momjian <bruce@momjian.us> | 1999-07-03 00:33:04 +0000 |
---|---|---|
committer | Bruce Momjian <bruce@momjian.us> | 1999-07-03 00:33:04 +0000 |
commit | 97dfff832cbc79a48ac2e053f2628c18027ee0a2 (patch) | |
tree | cd917280489ad0d84fb9fbb45fe775bbcc71c6e0 /src/backend/utils/adt/varchar.c | |
parent | 954e466c27ad6e6933b99217749e7cb078243fc1 (diff) | |
download | postgresql-97dfff832cbc79a48ac2e053f2628c18027ee0a2.tar.gz postgresql-97dfff832cbc79a48ac2e053f2628c18027ee0a2.zip |
Fix to prevent too large tuple from being created.
Diffstat (limited to 'src/backend/utils/adt/varchar.c')
-rw-r--r-- | src/backend/utils/adt/varchar.c | 23 |
1 files changed, 14 insertions, 9 deletions
diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c index cb0982a52d8..1f1b8d64975 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 <stdio.h> /* for sprintf() */ #include <string.h> #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; |