Changeset: 1e79e713dc19 for MonetDB
URL: https://dev.monetdb.org/hg/MonetDB/rev/1e79e713dc19
Modified Files:
        monetdb5/modules/mal/pcre.c
Branch: Jun2023
Log Message:

Use strNil to check if strings are the sql null value


diffs (102 lines):

diff --git a/monetdb5/modules/mal/pcre.c b/monetdb5/modules/mal/pcre.c
--- a/monetdb5/modules/mal/pcre.c
+++ b/monetdb5/modules/mal/pcre.c
@@ -1027,7 +1027,7 @@ sql2pcre(str *r, const char *pat, const 
        int escaped = 0;
        int hasWildcard = 0;
        char *ppat;
-       int esc = esc_str[0] == '\200' ? 0 : esc_str[0]; /* should change to 
utf8_convert() */
+       int esc = strNil(esc_str) ? 0 : esc_str[0]; /* should change to 
utf8_convert() */
        int specials;
        int c;
 
@@ -1389,11 +1389,11 @@ re_like_build(struct RE **re, uint32_t *
 }
 
 #define proj_scanloop(TEST)    \
-       do {    \
-               if (*s == '\200') \
+       do {                                    \
+               if (strNil(s))          \
                        return bit_nil; \
-               else \
-                       return TEST; \
+               else                            \
+                       return TEST;    \
        } while (0)
 
 static inline bit
@@ -1490,7 +1490,7 @@ pcre_like_build(regex_t *res, void *ex, 
 #define PCRE_LIKE_BODY(LOOP_BODY, RES1, RES2) \
        do { \
                LOOP_BODY  \
-               if (*s == '\200') \
+               if (strNil(s))          \
                        *ret = bit_nil; \
                else if (pos >= 0) \
                        *ret = RES1; \
@@ -1736,7 +1736,7 @@ BATPCREnotlike(Client cntxt, MalBlkPtr m
                                GDK_CHECK_TIMEOUT(timeoffset, counter,          
                        \
                                                                  
GOTO_LABEL_TIMEOUT_HANDLER(bailout)); \
                                const char *restrict v = BUNtvar(bi, p - off);  
                \
-                               if ((TEST) || ((KEEP_NULLS) && *v == '\200'))   
                \
+                               if ((TEST) || ((KEEP_NULLS) && strNil(v)))      
                        \
                                        vals[cnt++] = p;                        
                                                \
                        }                                                       
                                                                \
                } else {                                                        
                                                        \
@@ -1745,7 +1745,7 @@ BATPCREnotlike(Client cntxt, MalBlkPtr m
                                                                  
GOTO_LABEL_TIMEOUT_HANDLER(bailout)); \
                                oid o = canditer_next(ci);                      
                                        \
                                const char *restrict v = BUNtvar(bi, o - off);  
                \
-                               if ((TEST) || ((KEEP_NULLS) && *v == '\200'))   
                \
+                               if ((TEST) || ((KEEP_NULLS) && strNil(v)))      
                        \
                                        vals[cnt++] = o;                        
                                                \
                        }                                                       
                                                                \
                }                                                               
                                                                \
@@ -1783,9 +1783,9 @@ pcre_likeselect(BAT *bn, BAT *b, BAT *s,
                goto bailout;
 
        if (anti)
-               pcrescanloop(v && *v != '\200' && !PCRE_LIKESELECT_BODY, 
keep_nulls);
+               pcrescanloop(!strNil(v) && !PCRE_LIKESELECT_BODY, keep_nulls);
        else
-               pcrescanloop(v && *v != '\200' && PCRE_LIKESELECT_BODY, 
keep_nulls);
+               pcrescanloop(!strNil(v) && PCRE_LIKESELECT_BODY, keep_nulls);
 
 bailout:
        bat_iterator_end(&bi);
@@ -1816,26 +1816,26 @@ re_likeselect(BAT *bn, BAT *b, BAT *s, s
        if (use_strcmp) {
                if (caseignore) {
                        if (anti)
-                               pcrescanloop(v && *v != '\200' && 
mywstrcasecmp(v, wpat) != 0, keep_nulls);
+                               pcrescanloop(!strNil(v) && mywstrcasecmp(v, 
wpat) != 0, keep_nulls);
                        else
-                               pcrescanloop(v && *v != '\200' && 
mywstrcasecmp(v, wpat) == 0, keep_nulls);
+                               pcrescanloop(!strNil(v) && mywstrcasecmp(v, 
wpat) == 0, keep_nulls);
                } else {
                        if (anti)
-                               pcrescanloop(v && *v != '\200' && strcmp(v, 
pat) != 0, keep_nulls);
+                               pcrescanloop(!strNil(v) && strcmp(v, pat) != 0, 
keep_nulls);
                        else
-                               pcrescanloop(v && *v != '\200' && strcmp(v, 
pat) == 0, keep_nulls);
+                               pcrescanloop(!strNil(v) && strcmp(v, pat) == 0, 
keep_nulls);
                }
        } else {
                if (caseignore) {
                        if (anti)
-                               pcrescanloop(v && *v != '\200' && 
!re_match_ignore(v, re), keep_nulls);
+                               pcrescanloop(!strNil(v) && !re_match_ignore(v, 
re), keep_nulls);
                        else
-                               pcrescanloop(v && *v != '\200' && 
re_match_ignore(v, re), keep_nulls);
+                               pcrescanloop(!strNil(v) && re_match_ignore(v, 
re), keep_nulls);
                } else {
                        if (anti)
-                               pcrescanloop(v && *v != '\200' && 
!re_match_no_ignore(v, re), keep_nulls);
+                               pcrescanloop(!strNil(v) && 
!re_match_no_ignore(v, re), keep_nulls);
                        else
-                               pcrescanloop(v && *v != '\200' && 
re_match_no_ignore(v, re), keep_nulls);
+                               pcrescanloop(!strNil(v) && 
re_match_no_ignore(v, re), keep_nulls);
                }
        }
 
_______________________________________________
checkin-list mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to