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]