*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.20 1998/01/08 03:15:06 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.21 1998/01/08 04:19:16 momjian Exp $
*
*-------------------------------------------------------------------------
*/
result = (char *) palloc(len);
VARSIZE(result) = len;
- memmove(VARDATA(result), s, len - VARHDRSZ);
+ strncpy(VARDATA(result), s, len - VARHDRSZ);
return (result);
}
static int
vcTruelen(char *arg)
{
- char *s = arg + VARHDRSZ;
+ char *s = VARDATA(arg);
int i;
int len;
- len = *(int32 *) arg - VARHDRSZ;
+ len = VARSIZE(arg) - VARHDRSZ;
for (i = 0; i < len; i++)
{
if (*s++ == '\0')
if (arg1 == NULL || arg2 == NULL)
return ((bool) 0);
- len1 = VARSIZE(arg1);
- len2 = VARSIZE(arg2);
+ len1 = vcTruelen(arg1);
+ len2 = vcTruelen(arg2);
if (len1 != len2)
return 0;
if (arg1 == NULL || arg2 == NULL)
return ((bool) 0);
- len1 = VARSIZE(arg1);
- len2 = VARSIZE(arg2);
+ len1 = vcTruelen(arg1);
+ len2 = vcTruelen(arg2);
if (len1 != len2)
return 1;
if (arg1 == NULL || arg2 == NULL)
return ((bool) 0);
- len1 = VARSIZE(arg1);
- len2 = VARSIZE(arg2);
+ len1 = vcTruelen(arg1);
+ len2 = vcTruelen(arg2);
cmp = strncmp(VARDATA(arg1), VARDATA(arg2), Min(len1, len2));
if (cmp == 0)
if (arg1 == NULL || arg2 == NULL)
return ((bool) 0);
- len1 = VARSIZE(arg1);
- len2 = VARSIZE(arg2);
+ len1 = vcTruelen(arg1);
+ len2 = vcTruelen(arg2);
cmp = strncmp(VARDATA(arg1), VARDATA(arg2), Min(len1, len2));
if (0 == cmp)
if (arg1 == NULL || arg2 == NULL)
return ((bool) 0);
- len1 = VARSIZE(arg1);
- len2 = VARSIZE(arg2);
+ len1 = vcTruelen(arg1);
+ len2 = vcTruelen(arg2);
cmp = strncmp(VARDATA(arg1), VARDATA(arg2), Min(len1, len2));
if (cmp == 0)
if (arg1 == NULL || arg2 == NULL)
return ((bool) 0);
- len1 = VARSIZE(arg1);
- len2 = VARSIZE(arg2);
+ len1 = vcTruelen(arg1);
+ len2 = vcTruelen(arg2);
cmp = strncmp(VARDATA(arg1), VARDATA(arg2), Min(len1, len2));
if (0 == cmp)
len2;
int cmp;
- len1 = VARSIZE(arg1);
- len2 = VARSIZE(arg2);
+ len1 = vcTruelen(arg1);
+ len2 = vcTruelen(arg2);
cmp = (strncmp(VARDATA(arg1), VARDATA(arg2), Min(len1, len2)));
if ((0 == cmp) && (len1 != len2))
return (int32) (len1 < len2 ? -1 : 1);
int loop;
keydata = VARDATA(key);
- keylen = VARSIZE((char *) key);
+ keylen = vcTruelen((char *) key);
#define HASHC n = *keydata++ + 65599 * n