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
* $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)
return ((char *) NULL);
len = strlen(s) + VARHDRSZ;
if (typlen != -1 && len > typlen)
if (typelen == -1) /* we will remove this soon to make compact storage */
/* 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 */
if (len > 4096)
@ -194,7 +197,7 @@ bpcharlen(char *arg)
elog(ERROR, "Bad (null) char() external representation", NULL);
return(bcTruelen(arg));
} /* bpcharlen() */
}
bool
bpchareq(char *arg1, char *arg2)
@ -327,13 +330,29 @@ bpcharcmp(char *arg1, char *arg2)
* 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
varcharlen(char *arg)
{
if (!PointerIsValid(arg))
elog(ERROR, "Bad (null) varchar() external representation", NULL);
return VARSIZE(arg) - VARHDRSZ;
return(vcTruelen(arg));
}
bool