aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>1999-05-19 17:53:12 +0000
committerBruce Momjian <bruce@momjian.us>1999-05-19 17:53:12 +0000
commit6d08b6a7b864eefd8614d6e7d7f6865515955986 (patch)
tree2db80af0112df9584d7aa1cf56caacea03edcde8
parent0a8fb5a8f959ad0f7d449b6eaba51f71e1c21338 (diff)
downloadpostgresql-6d08b6a7b864eefd8614d6e7d7f6865515955986.tar.gz
postgresql-6d08b6a7b864eefd8614d6e7d7f6865515955986.zip
Remove 4096 string limited key on block size
-rw-r--r--src/backend/parser/gram.y11
-rw-r--r--src/backend/utils/adt/varchar.c18
-rw-r--r--src/interfaces/ecpg/preproc/preproc.y5
3 files changed, 14 insertions, 20 deletions
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 32d1e22beb7..e6bdd6f3678 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -10,7 +10,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.77 1999/05/17 01:01:06 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/parser/gram.y,v 2.78 1999/05/19 17:53:10 momjian Exp $
*
* HISTORY
* AUTHOR DATE MAJOR EVENT
@@ -3403,13 +3403,8 @@ Character: character '(' Iconst ')'
if ($3 < 1)
elog(ERROR,"length for '%s' type must be at least 1",$1);
- else if ($3 > 4096)
- /* we can store a char() of length up to the size
- * of a page (8KB) - page headers and friends but
- * just to be safe here... - ay 6/95
- * XXX note this hardcoded limit - thomas 1997-07-13
- */
- elog(ERROR,"length for type '%s' cannot exceed 4096",$1);
+ else if ($3 > BLCKSZ - 128)
+ elog(ERROR,"length for type '%s' cannot exceed %d",$1, BLCKSZ-128);
/* we actually implement this sort of like a varlen, so
* the first 4 bytes is the length. (the difference
diff --git a/src/backend/utils/adt/varchar.c b/src/backend/utils/adt/varchar.c
index 0aa8133b131..1233955c4fd 100644
--- a/src/backend/utils/adt/varchar.c
+++ b/src/backend/utils/adt/varchar.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.44 1999/05/03 19:10:02 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.45 1999/05/19 17:53:11 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -81,8 +81,8 @@ bpcharin(char *s, int dummy, int32 atttypmod)
else
len = atttypmod - VARHDRSZ;
- if (len > 4096)
- elog(ERROR, "bpcharin: length of char() must be less than 4096");
+ if (len > BLCKSZ - 128)
+ elog(ERROR, "bpcharin: length of char() must be less than %d",BLCKSZ-128);
result = (char *) palloc(atttypmod);
VARSIZE(result) = atttypmod;
@@ -151,8 +151,8 @@ bpchar(char *s, int32 len)
rlen = len - VARHDRSZ;
- if (rlen > 4096)
- elog(ERROR, "bpchar: length of char() must be less than 4096");
+ if (rlen > BLCKSZ - 128)
+ elog(ERROR, "bpchar: length of char() must be less than %d",BLCKSZ-128);
#ifdef STRINGDEBUG
printf("bpchar- convert string length %d (%d) ->%d (%d)\n",
@@ -330,8 +330,8 @@ varcharin(char *s, int dummy, int32 atttypmod)
if (atttypmod != -1 && len > atttypmod)
len = atttypmod; /* clip the string at max length */
- if (len > 4096)
- elog(ERROR, "varcharin: length of char() must be less than 4096");
+ if (len > BLCKSZ - 128)
+ elog(ERROR, "varcharin: length of char() must be less than %d",BLCKSZ-128);
result = (char *) palloc(len);
VARSIZE(result) = len;
@@ -398,8 +398,8 @@ varchar(char *s, int32 slen)
len = slen - VARHDRSZ;
#endif
- if (len > 4096)
- elog(ERROR, "varchar: length of varchar() must be less than 4096");
+ if (len > BLCKSZ-128)
+ elog(ERROR, "varchar: length of varchar() must be less than BLCKSZ-128");
result = (char *) palloc(slen);
VARSIZE(result) = slen;
diff --git a/src/interfaces/ecpg/preproc/preproc.y b/src/interfaces/ecpg/preproc/preproc.y
index c96a9447cca..277f42eb17c 100644
--- a/src/interfaces/ecpg/preproc/preproc.y
+++ b/src/interfaces/ecpg/preproc/preproc.y
@@ -3355,13 +3355,12 @@ Character: character '(' Iconst ')'
sprintf(errortext, "length for '%s' type must be at least 1",$1);
yyerror(errortext);
}
- else if (atol($3) > 4096) {
+ else if (atol($3) > BLCKSZ - 128) {
/* we can store a char() of length up to the size
* of a page (8KB) - page headers and friends but
* just to be safe here... - ay 6/95
- * XXX note this hardcoded limit - thomas 1997-07-13
*/
- sprintf(errortext, "length for type '%s' cannot exceed 4096",$1);
+ sprintf(errortext, "length for type '%s' cannot exceed %d",BLCKSZ-128);
yyerror(errortext);
}