From: Bruce Momjian Date: Tue, 31 Mar 1998 15:53:51 +0000 (+0000) Subject: Fix macro read violation for Maurice. X-Git-Tag: REL6_3_2~79 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=9fbdda039dc4d6e2d0e852fe87fb7ee4a96a2298;p=postgresql Fix macro read violation for Maurice. --- diff --git a/src/include/c.h b/src/include/c.h index c703a2fc4b..ae330d2405 100644 --- a/src/include/c.h +++ b/src/include/c.h @@ -7,7 +7,7 @@ * * Copyright (c) 1994, Regents of the University of California * - * $Id: c.h,v 1.37 1998/03/20 04:17:34 momjian Exp $ + * $Id: c.h,v 1.38 1998/03/31 15:53:39 momjian Exp $ * *------------------------------------------------------------------------- */ @@ -703,7 +703,15 @@ typedef struct Exception */ /* we do this so if the macro is used in an if action, it will work */ #define StrNCpy(dst,src,len) \ - (strncpy((dst),(src),(len)),(len > 0) ? *((dst)+(len)-1)='\0' : (dummyret)NULL,(void)(dst)) +( \ + ((len) > 0) ? \ + ( \ + strncpy((dst),(src),(len)-1), \ + *((dst)+(len)-1)='\0' \ + ) \ + : \ + (dummyret)NULL,(void)(dst) \ +) /* Get a bit mask of the bits set in non-int32 aligned addresses */ #define INT_ALIGN_MASK (sizeof(int32) - 1) diff --git a/src/test/regress/expected/name.out b/src/test/regress/expected/name.out new file mode 100644 index 0000000000..9d3cdd4658 --- /dev/null +++ b/src/test/regress/expected/name.out @@ -0,0 +1,116 @@ +QUERY: SELECT 'name string'::name = 'name string'::name AS "True"; +True +---- +t +(1 row) + +QUERY: SELECT 'name string'::name = 'name string '::name AS "False"; +False +----- +f +(1 row) + +QUERY: CREATE TABLE NAME_TBL(f1 name); +QUERY: INSERT INTO NAME_TBL(f1) VALUES ('ABCDEFGHIJKLMNOP'); +QUERY: INSERT INTO NAME_TBL(f1) VALUES ('abcdefghijklmnop'); +QUERY: INSERT INTO NAME_TBL(f1) VALUES ('asdfghjkl;'); +QUERY: INSERT INTO NAME_TBL(f1) VALUES ('343f%2a'); +QUERY: INSERT INTO NAME_TBL(f1) VALUES ('d34aaasdf'); +QUERY: INSERT INTO NAME_TBL(f1) VALUES (''); +QUERY: INSERT INTO NAME_TBL(f1) VALUES ('1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ'); +QUERY: SELECT '' AS seven, NAME_TBL.*; +seven|f1 +-----+------------------------------- + |ABCDEFGHIJKLMNOP + |abcdefghijklmnop + |asdfghjkl; + |343f%2a + |d34aaasdf + | + |1234567890ABCDEFGHIJKLMNOPQRSTU +(7 rows) + +QUERY: SELECT '' AS six, c.f1 FROM NAME_TBL c WHERE c.f1 <> 'ABCDEFGHIJKLMNOP'; +six|f1 +---+------------------------------- + |abcdefghijklmnop + |asdfghjkl; + |343f%2a + |d34aaasdf + | + |1234567890ABCDEFGHIJKLMNOPQRSTU +(6 rows) + +QUERY: SELECT '' AS one, c.f1 FROM NAME_TBL c WHERE c.f1 = 'ABCDEFGHIJKLMNOP'; +one|f1 +---+---------------- + |ABCDEFGHIJKLMNOP +(1 row) + +QUERY: SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 < 'ABCDEFGHIJKLMNOP'; +three|f1 +-----+------------------------------- + |343f%2a + | + |1234567890ABCDEFGHIJKLMNOPQRSTU +(3 rows) + +QUERY: SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 <= 'ABCDEFGHIJKLMNOP'; +four|f1 +----+------------------------------- + |ABCDEFGHIJKLMNOP + |343f%2a + | + |1234567890ABCDEFGHIJKLMNOPQRSTU +(4 rows) + +QUERY: SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 > 'ABCDEFGHIJKLMNOP'; +three|f1 +-----+---------------- + |abcdefghijklmnop + |asdfghjkl; + |d34aaasdf +(3 rows) + +QUERY: SELECT '' AS four, c.f1 FROM NAME_TBL c WHERE c.f1 >= 'ABCDEFGHIJKLMNOP'; +four|f1 +----+---------------- + |ABCDEFGHIJKLMNOP + |abcdefghijklmnop + |asdfghjkl; + |d34aaasdf +(4 rows) + +QUERY: SELECT '' AS seven, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*'; +seven|f1 +-----+------------------------------- + |ABCDEFGHIJKLMNOP + |abcdefghijklmnop + |asdfghjkl; + |343f%2a + |d34aaasdf + | + |1234567890ABCDEFGHIJKLMNOPQRSTU +(7 rows) + +QUERY: SELECT '' AS zero, c.f1 FROM NAME_TBL c WHERE c.f1 !~ '.*'; +zero|f1 +----+-- +(0 rows) + +QUERY: SELECT '' AS three, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '[0-9]'; +three|f1 +-----+------------------------------- + |343f%2a + |d34aaasdf + |1234567890ABCDEFGHIJKLMNOPQRSTU +(3 rows) + +QUERY: SELECT '' AS two, c.f1 FROM NAME_TBL c WHERE c.f1 ~ '.*asdf.*'; +two|f1 +---+---------- + |asdfghjkl; + |d34aaasdf +(2 rows) + +QUERY: DROP TABLE NAME_TBL;