Remove 4096 string limited key on block size
authorBruce Momjian
Wed, 19 May 1999 17:53:12 +0000 (17:53 +0000)
committerBruce Momjian
Wed, 19 May 1999 17:53:12 +0000 (17:53 +0000)
src/backend/parser/gram.y
src/backend/utils/adt/varchar.c
src/interfaces/ecpg/preproc/preproc.y

index 32d1e22beb78288ac6decef66e137714662cd0cf..e6bdd6f36782cd3f286c5c95e71a59ca301cd134 100644 (file)
@@ -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
index 0aa8133b1319a85a01fc9ad775a343010c1bc438..1233955c4fdec07299a977f4e1dcc500edfdf113 100644 (file)
@@ -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;
index c96a9447ccabdcadbf04b7d8c4cdd086ca8631c7..277f42eb17c8b481bf333b6819d096d24b911fa3 100644 (file)
@@ -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);
                    }