Commit 5fe090c5 authored by Bruce Momjian's avatar Bruce Momjian

Completion of varchar rollback.

parent 35be7302
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
* *
* *
* IDENTIFICATION * 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 $
* *
*------------------------------------------------------------------------- *-------------------------------------------------------------------------
*/ */
...@@ -144,7 +144,7 @@ varcharin(char *s, int dummy, int typlen) ...@@ -144,7 +144,7 @@ varcharin(char *s, int dummy, int typlen)
result = (char *) palloc(len); result = (char *) palloc(len);
VARSIZE(result) = len; VARSIZE(result) = len;
memmove(VARDATA(result), s, len - VARHDRSZ); strncpy(VARDATA(result), s, len - VARHDRSZ);
return (result); return (result);
} }
...@@ -333,11 +333,11 @@ bpcharcmp(char *arg1, char *arg2) ...@@ -333,11 +333,11 @@ bpcharcmp(char *arg1, char *arg2)
static int static int
vcTruelen(char *arg) vcTruelen(char *arg)
{ {
char *s = arg + VARHDRSZ; char *s = VARDATA(arg);
int i; int i;
int len; int len;
len = *(int32 *) arg - VARHDRSZ; len = VARSIZE(arg) - VARHDRSZ;
for (i = 0; i < len; i++) for (i = 0; i < len; i++)
{ {
if (*s++ == '\0') if (*s++ == '\0')
...@@ -363,8 +363,8 @@ varchareq(char *arg1, char *arg2) ...@@ -363,8 +363,8 @@ varchareq(char *arg1, char *arg2)
if (arg1 == NULL || arg2 == NULL) if (arg1 == NULL || arg2 == NULL)
return ((bool) 0); return ((bool) 0);
len1 = VARSIZE(arg1); len1 = vcTruelen(arg1);
len2 = VARSIZE(arg2); len2 = vcTruelen(arg2);
if (len1 != len2) if (len1 != len2)
return 0; return 0;
...@@ -380,8 +380,8 @@ varcharne(char *arg1, char *arg2) ...@@ -380,8 +380,8 @@ varcharne(char *arg1, char *arg2)
if (arg1 == NULL || arg2 == NULL) if (arg1 == NULL || arg2 == NULL)
return ((bool) 0); return ((bool) 0);
len1 = VARSIZE(arg1); len1 = vcTruelen(arg1);
len2 = VARSIZE(arg2); len2 = vcTruelen(arg2);
if (len1 != len2) if (len1 != len2)
return 1; return 1;
...@@ -398,8 +398,8 @@ varcharlt(char *arg1, char *arg2) ...@@ -398,8 +398,8 @@ varcharlt(char *arg1, char *arg2)
if (arg1 == NULL || arg2 == NULL) if (arg1 == NULL || arg2 == NULL)
return ((bool) 0); return ((bool) 0);
len1 = VARSIZE(arg1); len1 = vcTruelen(arg1);
len2 = VARSIZE(arg2); len2 = vcTruelen(arg2);
cmp = strncmp(VARDATA(arg1), VARDATA(arg2), Min(len1, len2)); cmp = strncmp(VARDATA(arg1), VARDATA(arg2), Min(len1, len2));
if (cmp == 0) if (cmp == 0)
...@@ -417,8 +417,8 @@ varcharle(char *arg1, char *arg2) ...@@ -417,8 +417,8 @@ varcharle(char *arg1, char *arg2)
if (arg1 == NULL || arg2 == NULL) if (arg1 == NULL || arg2 == NULL)
return ((bool) 0); return ((bool) 0);
len1 = VARSIZE(arg1); len1 = vcTruelen(arg1);
len2 = VARSIZE(arg2); len2 = vcTruelen(arg2);
cmp = strncmp(VARDATA(arg1), VARDATA(arg2), Min(len1, len2)); cmp = strncmp(VARDATA(arg1), VARDATA(arg2), Min(len1, len2));
if (0 == cmp) if (0 == cmp)
...@@ -436,8 +436,8 @@ varchargt(char *arg1, char *arg2) ...@@ -436,8 +436,8 @@ varchargt(char *arg1, char *arg2)
if (arg1 == NULL || arg2 == NULL) if (arg1 == NULL || arg2 == NULL)
return ((bool) 0); return ((bool) 0);
len1 = VARSIZE(arg1); len1 = vcTruelen(arg1);
len2 = VARSIZE(arg2); len2 = vcTruelen(arg2);
cmp = strncmp(VARDATA(arg1), VARDATA(arg2), Min(len1, len2)); cmp = strncmp(VARDATA(arg1), VARDATA(arg2), Min(len1, len2));
if (cmp == 0) if (cmp == 0)
...@@ -455,8 +455,8 @@ varcharge(char *arg1, char *arg2) ...@@ -455,8 +455,8 @@ varcharge(char *arg1, char *arg2)
if (arg1 == NULL || arg2 == NULL) if (arg1 == NULL || arg2 == NULL)
return ((bool) 0); return ((bool) 0);
len1 = VARSIZE(arg1); len1 = vcTruelen(arg1);
len2 = VARSIZE(arg2); len2 = vcTruelen(arg2);
cmp = strncmp(VARDATA(arg1), VARDATA(arg2), Min(len1, len2)); cmp = strncmp(VARDATA(arg1), VARDATA(arg2), Min(len1, len2));
if (0 == cmp) if (0 == cmp)
...@@ -473,8 +473,8 @@ varcharcmp(char *arg1, char *arg2) ...@@ -473,8 +473,8 @@ varcharcmp(char *arg1, char *arg2)
len2; len2;
int cmp; int cmp;
len1 = VARSIZE(arg1); len1 = vcTruelen(arg1);
len2 = VARSIZE(arg2); len2 = vcTruelen(arg2);
cmp = (strncmp(VARDATA(arg1), VARDATA(arg2), Min(len1, len2))); cmp = (strncmp(VARDATA(arg1), VARDATA(arg2), Min(len1, len2)));
if ((0 == cmp) && (len1 != len2)) if ((0 == cmp) && (len1 != len2))
return (int32) (len1 < len2 ? -1 : 1); return (int32) (len1 < len2 ? -1 : 1);
...@@ -539,7 +539,7 @@ hashvarchar(struct varlena * key) ...@@ -539,7 +539,7 @@ hashvarchar(struct varlena * key)
int loop; int loop;
keydata = VARDATA(key); keydata = VARDATA(key);
keylen = VARSIZE((char *) key); keylen = vcTruelen((char *) key);
#define HASHC n = *keydata++ + 65599 * n #define HASHC n = *keydata++ + 65599 * n
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment