Rollback varchar size change.

This commit is contained in:
Bruce Momjian 1998-01-08 03:05:01 +00:00
parent 1c9fcfb683
commit c098f309e3
1 changed files with 24 additions and 5 deletions

View File

@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * IDENTIFICATION
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.18 1998/01/07 22:08:23 momjian Exp $ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.19 1998/01/08 03:05:01 momjian Exp $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
@ -132,8 +132,11 @@ varcharin(char *s, int dummy, int typlen)
if (s == NULL) if (s == NULL)
return ((char *) NULL); return ((char *) NULL);
len = strlen(s) + VARHDRSZ; if (typelen == -1) /* we will remove this soon to make compact storage */
if (typlen != -1 && len > typlen) /* change varcharlen at the same time to use VARSIZE */
len = strlen(s) + VARHDRSZ;
/* if (typlen != -1 && len > typlen) */
else
len = typlen; /* clip the string at max length */ len = typlen; /* clip the string at max length */
if (len > 4096) if (len > 4096)
@ -194,7 +197,7 @@ bpcharlen(char *arg)
elog(ERROR, "Bad (null) char() external representation", NULL); elog(ERROR, "Bad (null) char() external representation", NULL);
return(bcTruelen(arg)); return(bcTruelen(arg));
} /* bpcharlen() */ }
bool bool
bpchareq(char *arg1, char *arg2) bpchareq(char *arg1, char *arg2)
@ -327,13 +330,29 @@ bpcharcmp(char *arg1, char *arg2)
* Comparison Functions used for varchar * Comparison Functions used for varchar
*****************************************************************************/ *****************************************************************************/
static int
vcTruelen(char *arg)
{
char *s = arg + VARHDRSZ;
int i;
int len;
len = *(int32 *) arg - VARHDRSZ;
for (i = 0; i < len; i++)
{
if (*s++ == '\0')
break;
}
return i;
}
int32 int32
varcharlen(char *arg) varcharlen(char *arg)
{ {
if (!PointerIsValid(arg)) if (!PointerIsValid(arg))
elog(ERROR, "Bad (null) varchar() external representation", NULL); elog(ERROR, "Bad (null) varchar() external representation", NULL);
return VARSIZE(arg) - VARHDRSZ; return(vcTruelen(arg));
} }
bool bool