aboutsummaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/varchar.c
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1999-07-03 00:33:04 +0000
committerBruce Momjian <bruce@momjian.us>1999-07-03 00:33:04 +0000
commit97dfff832cbc79a48ac2e053f2628c18027ee0a2 (patch)
treecd917280489ad0d84fb9fbb45fe775bbcc71c6e0 /src/backend/utils/adt/varchar.c
parent954e466c27ad6e6933b99217749e7cb078243fc1 (diff)
downloadpostgresql-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.c23
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;