mirror of
https://github.com/postgres/postgres.git
synced 2025-07-18 17:42:25 +03:00
Add VARHDRSZ where needed. Many places just used 4.
This commit is contained in:
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* IDENTIFICATION
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.11 1997/10/25 01:10:50 momjian Exp $
|
||||
* $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.12 1997/12/06 22:57:14 momjian Exp $
|
||||
*
|
||||
*-------------------------------------------------------------------------
|
||||
*/
|
||||
@ -46,7 +46,7 @@
|
||||
/*
|
||||
* bpcharin -
|
||||
* converts a string of char() type to the internal representation.
|
||||
* len is the length specified in () plus 4 bytes. (XXX dummy is here
|
||||
* len is the length specified in () plus VARHDRSZ bytes. (XXX dummy is here
|
||||
* because we pass typelem as the second argument for array_in.)
|
||||
*/
|
||||
char *
|
||||
@ -54,7 +54,7 @@ bpcharin(char *s, int dummy, int typlen)
|
||||
{
|
||||
char *result,
|
||||
*r;
|
||||
int len = typlen - 4;
|
||||
int len = typlen - VARHDRSZ;
|
||||
int i;
|
||||
|
||||
if (s == NULL)
|
||||
@ -67,7 +67,7 @@ bpcharin(char *s, int dummy, int typlen)
|
||||
* this is here because some functions can't supply the typlen
|
||||
*/
|
||||
len = strlen(s);
|
||||
typlen = len + 4;
|
||||
typlen = len + VARHDRSZ;
|
||||
}
|
||||
|
||||
if (len > 4096)
|
||||
@ -75,7 +75,7 @@ bpcharin(char *s, int dummy, int typlen)
|
||||
|
||||
result = (char *) palloc(typlen);
|
||||
*(int32 *) result = typlen;
|
||||
r = result + 4;
|
||||
r = result + VARHDRSZ;
|
||||
for (i = 0; i < len; i++, r++, s++)
|
||||
{
|
||||
*r = *s;
|
||||
@ -104,9 +104,9 @@ bpcharout(char *s)
|
||||
}
|
||||
else
|
||||
{
|
||||
len = *(int32 *) s - 4;
|
||||
len = *(int32 *) s - VARHDRSZ;
|
||||
result = (char *) palloc(len + 1);
|
||||
StrNCpy(result, s + 4, len+1); /* these are blank-padded */
|
||||
StrNCpy(result, s + VARHDRSZ, len+1); /* these are blank-padded */
|
||||
}
|
||||
return (result);
|
||||
}
|
||||
@ -118,14 +118,14 @@ bpcharout(char *s)
|
||||
/*
|
||||
* vcharin -
|
||||
* converts a string of varchar() type to the internal representation.
|
||||
* len is the length specified in () plus 4 bytes. (XXX dummy is here
|
||||
* len is the length specified in () plus VARHDRSZ bytes. (XXX dummy is here
|
||||
* because we pass typelem as the second argument for array_in.)
|
||||
*/
|
||||
char *
|
||||
varcharin(char *s, int dummy, int typlen)
|
||||
{
|
||||
char *result;
|
||||
int len = typlen - 4;
|
||||
int len = typlen - VARHDRSZ;
|
||||
|
||||
if (s == NULL)
|
||||
return ((char *) NULL);
|
||||
@ -137,7 +137,7 @@ varcharin(char *s, int dummy, int typlen)
|
||||
* this is here because some functions can't supply the typlen
|
||||
*/
|
||||
len = strlen(s);
|
||||
typlen = len + 4;
|
||||
typlen = len + VARHDRSZ;
|
||||
}
|
||||
|
||||
if (len > 4096)
|
||||
@ -145,7 +145,7 @@ varcharin(char *s, int dummy, int typlen)
|
||||
|
||||
result = (char *) palloc(typlen);
|
||||
*(int32 *) result = typlen;
|
||||
strncpy(result + 4, s, len+1);
|
||||
strncpy(result + VARHDRSZ, s, len+1);
|
||||
|
||||
return (result);
|
||||
}
|
||||
@ -164,9 +164,9 @@ varcharout(char *s)
|
||||
}
|
||||
else
|
||||
{
|
||||
len = *(int32 *) s - 4;
|
||||
len = *(int32 *) s - VARHDRSZ;
|
||||
result = (char *) palloc(len + 1);
|
||||
StrNCpy(result, s + 4, len+1);
|
||||
StrNCpy(result, s + VARHDRSZ, len+1);
|
||||
}
|
||||
return (result);
|
||||
}
|
||||
@ -178,11 +178,11 @@ varcharout(char *s)
|
||||
static int
|
||||
bcTruelen(char *arg)
|
||||
{
|
||||
char *s = arg + 4;
|
||||
char *s = arg + VARHDRSZ;
|
||||
int i;
|
||||
int len;
|
||||
|
||||
len = *(int32 *) arg - 4;
|
||||
len = *(int32 *) arg - VARHDRSZ;
|
||||
for (i = len - 1; i >= 0; i--)
|
||||
{
|
||||
if (s[i] != ' ')
|
||||
@ -205,7 +205,7 @@ bpchareq(char *arg1, char *arg2)
|
||||
if (len1 != len2)
|
||||
return 0;
|
||||
|
||||
return (strncmp(arg1 + 4, arg2 + 4, len1) == 0);
|
||||
return (strncmp(arg1 + VARHDRSZ, arg2 + VARHDRSZ, len1) == 0);
|
||||
}
|
||||
|
||||
bool
|
||||
@ -222,7 +222,7 @@ bpcharne(char *arg1, char *arg2)
|
||||
if (len1 != len2)
|
||||
return 1;
|
||||
|
||||
return (strncmp(arg1 + 4, arg2 + 4, len1) != 0);
|
||||
return (strncmp(arg1 + VARHDRSZ, arg2 + VARHDRSZ, len1) != 0);
|
||||
}
|
||||
|
||||
bool
|
||||
@ -237,7 +237,7 @@ bpcharlt(char *arg1, char *arg2)
|
||||
len1 = bcTruelen(arg1);
|
||||
len2 = bcTruelen(arg2);
|
||||
|
||||
cmp = strncmp(arg1 + 4, arg2 + 4, Min(len1, len2));
|
||||
cmp = strncmp(arg1 + VARHDRSZ, arg2 + VARHDRSZ, Min(len1, len2));
|
||||
if (cmp == 0)
|
||||
return (len1 < len2);
|
||||
else
|
||||
@ -256,7 +256,7 @@ bpcharle(char *arg1, char *arg2)
|
||||
len1 = bcTruelen(arg1);
|
||||
len2 = bcTruelen(arg2);
|
||||
|
||||
cmp = strncmp(arg1 + 4, arg2 + 4, Min(len1, len2));
|
||||
cmp = strncmp(arg1 + VARHDRSZ, arg2 + VARHDRSZ, Min(len1, len2));
|
||||
if (0 == cmp)
|
||||
return (bool) (len1 <= len2 ? 1 : 0);
|
||||
else
|
||||
@ -275,7 +275,7 @@ bpchargt(char *arg1, char *arg2)
|
||||
len1 = bcTruelen(arg1);
|
||||
len2 = bcTruelen(arg2);
|
||||
|
||||
cmp = strncmp(arg1 + 4, arg2 + 4, Min(len1, len2));
|
||||
cmp = strncmp(arg1 + VARHDRSZ, arg2 + VARHDRSZ, Min(len1, len2));
|
||||
if (cmp == 0)
|
||||
return (len1 > len2);
|
||||
else
|
||||
@ -294,7 +294,7 @@ bpcharge(char *arg1, char *arg2)
|
||||
len1 = bcTruelen(arg1);
|
||||
len2 = bcTruelen(arg2);
|
||||
|
||||
cmp = strncmp(arg1 + 4, arg2 + 4, Min(len1, len2));
|
||||
cmp = strncmp(arg1 + VARHDRSZ, arg2 + VARHDRSZ, Min(len1, len2));
|
||||
if (0 == cmp)
|
||||
return (bool) (len1 >= len2 ? 1 : 0);
|
||||
else
|
||||
@ -311,7 +311,7 @@ bpcharcmp(char *arg1, char *arg2)
|
||||
len1 = bcTruelen(arg1);
|
||||
len2 = bcTruelen(arg2);
|
||||
|
||||
cmp = strncmp(arg1 + 4, arg2 + 4, Min(len1, len2));
|
||||
cmp = strncmp(arg1 + VARHDRSZ, arg2 + VARHDRSZ, Min(len1, len2));
|
||||
if ((0 == cmp) && (len1 != len2))
|
||||
return (int32) (len1 < len2 ? -1 : 1);
|
||||
else
|
||||
@ -325,11 +325,11 @@ bpcharcmp(char *arg1, char *arg2)
|
||||
static int
|
||||
vcTruelen(char *arg)
|
||||
{
|
||||
char *s = arg + 4;
|
||||
char *s = arg + VARHDRSZ;
|
||||
int i;
|
||||
int len;
|
||||
|
||||
len = *(int32 *) arg - 4;
|
||||
len = *(int32 *) arg - VARHDRSZ;
|
||||
for (i = 0; i < len; i++)
|
||||
{
|
||||
if (*s++ == '\0')
|
||||
@ -352,7 +352,7 @@ varchareq(char *arg1, char *arg2)
|
||||
if (len1 != len2)
|
||||
return 0;
|
||||
|
||||
return (strncmp(arg1 + 4, arg2 + 4, len1) == 0);
|
||||
return (strncmp(arg1 + VARHDRSZ, arg2 + VARHDRSZ, len1) == 0);
|
||||
}
|
||||
|
||||
bool
|
||||
@ -369,7 +369,7 @@ varcharne(char *arg1, char *arg2)
|
||||
if (len1 != len2)
|
||||
return 1;
|
||||
|
||||
return (strncmp(arg1 + 4, arg2 + 4, len1) != 0);
|
||||
return (strncmp(arg1 + VARHDRSZ, arg2 + VARHDRSZ, len1) != 0);
|
||||
}
|
||||
|
||||
bool
|
||||
@ -384,7 +384,7 @@ varcharlt(char *arg1, char *arg2)
|
||||
len1 = vcTruelen(arg1);
|
||||
len2 = vcTruelen(arg2);
|
||||
|
||||
cmp = strncmp(arg1 + 4, arg2 + 4, Min(len1, len2));
|
||||
cmp = strncmp(arg1 + VARHDRSZ, arg2 + VARHDRSZ, Min(len1, len2));
|
||||
if (cmp == 0)
|
||||
return (len1 < len2);
|
||||
else
|
||||
@ -403,7 +403,7 @@ varcharle(char *arg1, char *arg2)
|
||||
len1 = vcTruelen(arg1);
|
||||
len2 = vcTruelen(arg2);
|
||||
|
||||
cmp = strncmp(arg1 + 4, arg2 + 4, Min(len1, len2));
|
||||
cmp = strncmp(arg1 + VARHDRSZ, arg2 + VARHDRSZ, Min(len1, len2));
|
||||
if (0 == cmp)
|
||||
return (bool) (len1 <= len2 ? 1 : 0);
|
||||
else
|
||||
@ -422,7 +422,7 @@ varchargt(char *arg1, char *arg2)
|
||||
len1 = vcTruelen(arg1);
|
||||
len2 = vcTruelen(arg2);
|
||||
|
||||
cmp = strncmp(arg1 + 4, arg2 + 4, Min(len1, len2));
|
||||
cmp = strncmp(arg1 + VARHDRSZ, arg2 + VARHDRSZ, Min(len1, len2));
|
||||
if (cmp == 0)
|
||||
return (len1 > len2);
|
||||
else
|
||||
@ -441,7 +441,7 @@ varcharge(char *arg1, char *arg2)
|
||||
len1 = vcTruelen(arg1);
|
||||
len2 = vcTruelen(arg2);
|
||||
|
||||
cmp = strncmp(arg1 + 4, arg2 + 4, Min(len1, len2));
|
||||
cmp = strncmp(arg1 + VARHDRSZ, arg2 + VARHDRSZ, Min(len1, len2));
|
||||
if (0 == cmp)
|
||||
return (bool) (len1 >= len2 ? 1 : 0);
|
||||
else
|
||||
@ -458,7 +458,7 @@ varcharcmp(char *arg1, char *arg2)
|
||||
|
||||
len1 = vcTruelen(arg1);
|
||||
len2 = vcTruelen(arg2);
|
||||
cmp = (strncmp(arg1 + 4, arg2 + 4, Min(len1, len2)));
|
||||
cmp = (strncmp(arg1 + VARHDRSZ, arg2 + VARHDRSZ, Min(len1, len2)));
|
||||
if ((0 == cmp) && (len1 != len2))
|
||||
return (int32) (len1 < len2 ? -1 : 1);
|
||||
else
|
||||
|
Reference in New Issue
Block a user