7
7
*
8
8
*
9
9
* IDENTIFICATION
10
- * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.20 1998/01/08 03:15:06 momjian Exp $
10
+ * $Header: /cvsroot/pgsql/src/backend/utils/adt/varchar.c,v 1.21 1998/01/08 04:19:16 momjian Exp $
11
11
*
12
12
*-------------------------------------------------------------------------
13
13
*/
@@ -144,7 +144,7 @@ varcharin(char *s, int dummy, int typlen)
144
144
145
145
result = (char * ) palloc (len );
146
146
VARSIZE (result ) = len ;
147
- memmove (VARDATA (result ), s , len - VARHDRSZ );
147
+ strncpy (VARDATA (result ), s , len - VARHDRSZ );
148
148
149
149
return (result );
150
150
}
@@ -333,11 +333,11 @@ bpcharcmp(char *arg1, char *arg2)
333
333
static int
334
334
vcTruelen (char * arg )
335
335
{
336
- char * s = arg + VARHDRSZ ;
336
+ char * s = VARDATA ( arg ) ;
337
337
int i ;
338
338
int len ;
339
339
340
- len = * ( int32 * ) arg - VARHDRSZ ;
340
+ len = VARSIZE ( arg ) - VARHDRSZ ;
341
341
for (i = 0 ; i < len ; i ++ )
342
342
{
343
343
if (* s ++ == '\0' )
@@ -363,8 +363,8 @@ varchareq(char *arg1, char *arg2)
363
363
364
364
if (arg1 == NULL || arg2 == NULL )
365
365
return ((bool ) 0 );
366
- len1 = VARSIZE (arg1 );
367
- len2 = VARSIZE (arg2 );
366
+ len1 = vcTruelen (arg1 );
367
+ len2 = vcTruelen (arg2 );
368
368
369
369
if (len1 != len2 )
370
370
return 0 ;
@@ -380,8 +380,8 @@ varcharne(char *arg1, char *arg2)
380
380
381
381
if (arg1 == NULL || arg2 == NULL )
382
382
return ((bool ) 0 );
383
- len1 = VARSIZE (arg1 );
384
- len2 = VARSIZE (arg2 );
383
+ len1 = vcTruelen (arg1 );
384
+ len2 = vcTruelen (arg2 );
385
385
386
386
if (len1 != len2 )
387
387
return 1 ;
@@ -398,8 +398,8 @@ varcharlt(char *arg1, char *arg2)
398
398
399
399
if (arg1 == NULL || arg2 == NULL )
400
400
return ((bool ) 0 );
401
- len1 = VARSIZE (arg1 );
402
- len2 = VARSIZE (arg2 );
401
+ len1 = vcTruelen (arg1 );
402
+ len2 = vcTruelen (arg2 );
403
403
404
404
cmp = strncmp (VARDATA (arg1 ), VARDATA (arg2 ), Min (len1 , len2 ));
405
405
if (cmp == 0 )
@@ -417,8 +417,8 @@ varcharle(char *arg1, char *arg2)
417
417
418
418
if (arg1 == NULL || arg2 == NULL )
419
419
return ((bool ) 0 );
420
- len1 = VARSIZE (arg1 );
421
- len2 = VARSIZE (arg2 );
420
+ len1 = vcTruelen (arg1 );
421
+ len2 = vcTruelen (arg2 );
422
422
423
423
cmp = strncmp (VARDATA (arg1 ), VARDATA (arg2 ), Min (len1 , len2 ));
424
424
if (0 == cmp )
@@ -436,8 +436,8 @@ varchargt(char *arg1, char *arg2)
436
436
437
437
if (arg1 == NULL || arg2 == NULL )
438
438
return ((bool ) 0 );
439
- len1 = VARSIZE (arg1 );
440
- len2 = VARSIZE (arg2 );
439
+ len1 = vcTruelen (arg1 );
440
+ len2 = vcTruelen (arg2 );
441
441
442
442
cmp = strncmp (VARDATA (arg1 ), VARDATA (arg2 ), Min (len1 , len2 ));
443
443
if (cmp == 0 )
@@ -455,8 +455,8 @@ varcharge(char *arg1, char *arg2)
455
455
456
456
if (arg1 == NULL || arg2 == NULL )
457
457
return ((bool ) 0 );
458
- len1 = VARSIZE (arg1 );
459
- len2 = VARSIZE (arg2 );
458
+ len1 = vcTruelen (arg1 );
459
+ len2 = vcTruelen (arg2 );
460
460
461
461
cmp = strncmp (VARDATA (arg1 ), VARDATA (arg2 ), Min (len1 , len2 ));
462
462
if (0 == cmp )
@@ -473,8 +473,8 @@ varcharcmp(char *arg1, char *arg2)
473
473
len2 ;
474
474
int cmp ;
475
475
476
- len1 = VARSIZE (arg1 );
477
- len2 = VARSIZE (arg2 );
476
+ len1 = vcTruelen (arg1 );
477
+ len2 = vcTruelen (arg2 );
478
478
cmp = (strncmp (VARDATA (arg1 ), VARDATA (arg2 ), Min (len1 , len2 )));
479
479
if ((0 == cmp ) && (len1 != len2 ))
480
480
return (int32 ) (len1 < len2 ? -1 : 1 );
@@ -539,7 +539,7 @@ hashvarchar(struct varlena * key)
539
539
int loop ;
540
540
541
541
keydata = VARDATA (key );
542
- keylen = VARSIZE ((char * ) key );
542
+ keylen = vcTruelen ((char * ) key );
543
543
544
544
#define HASHC n = *keydata++ + 65599 * n
545
545
0 commit comments