From 6d08b6a7b864eefd8614d6e7d7f6865515955986 Mon Sep 17 00:00:00 2001 From: Bruce Momjian Date: Wed, 19 May 1999 17:53:12 +0000 Subject: [PATCH] Remove 4096 string limited key on block size --- src/backend/parser/gram.y | 11 +++-------- src/backend/utils/adt/varchar.c | 18 +++++++++--------- src/interfaces/ecpg/preproc/preproc.y | 5 ++--- 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 32d1e22beb..e6bdd6f367 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 0aa8133b13..1233955c4f 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 c96a9447cc..277f42eb17 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); } -- 2.11.0