mirror of
https://github.com/postgres/postgres.git
synced 2025-05-09 18:21:05 +03:00
Completion of varchar rollback.
This commit is contained in:
parent
35be73027e
commit
5fe090c559
@ -7,7 +7,7 @@
|
||||
*
|
||||
*
|
||||
* 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)
|
||||
|
||||
result = (char *) palloc(len);
|
||||
VARSIZE(result) = len;
|
||||
memmove(VARDATA(result), s, len - VARHDRSZ);
|
||||
strncpy(VARDATA(result), s, len - VARHDRSZ);
|
||||
|
||||
return (result);
|
||||
}
|
||||
@ -333,11 +333,11 @@ bpcharcmp(char *arg1, char *arg2)
|
||||
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')
|
||||
@ -363,8 +363,8 @@ varchareq(char *arg1, char *arg2)
|
||||
|
||||
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;
|
||||
@ -380,8 +380,8 @@ varcharne(char *arg1, char *arg2)
|
||||
|
||||
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;
|
||||
@ -398,8 +398,8 @@ varcharlt(char *arg1, char *arg2)
|
||||
|
||||
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)
|
||||
@ -417,8 +417,8 @@ varcharle(char *arg1, char *arg2)
|
||||
|
||||
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)
|
||||
@ -436,8 +436,8 @@ varchargt(char *arg1, char *arg2)
|
||||
|
||||
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)
|
||||
@ -455,8 +455,8 @@ varcharge(char *arg1, char *arg2)
|
||||
|
||||
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)
|
||||
@ -473,8 +473,8 @@ varcharcmp(char *arg1, char *arg2)
|
||||
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);
|
||||
@ -539,7 +539,7 @@ hashvarchar(struct varlena * key)
|
||||
int loop;
|
||||
|
||||
keydata = VARDATA(key);
|
||||
keylen = VARSIZE((char *) key);
|
||||
keylen = vcTruelen((char *) key);
|
||||
|
||||
#define HASHC n = *keydata++ + 65599 * n
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user