Github user DaveBirdsall commented on a diff in the pull request:
https://github.com/apache/trafodion/pull/1699#discussion_r211423746
--- Diff: core/sql/exp/exp_like.cpp ---
@@ -513,11 +512,16 @@ ex_expr::exp_return_type
ExRegexpClauseChar::eval(char *op_data[],
str_cpy_all(pattern, op_data[2], len2);
str_cpy_all(srcStr, op_data[1], len1);
-
- z = regcomp(®, pattern, cflags);
+ if(rpattern_ != pattern)
--- End diff --
This is a pointer comparison rather than a content comparison. Since
rpattern_ is a data member and pattern is a stack variable, I expect this
comparison will always mismatch, so (rpattern_ != pattern) will always be true.
I am guessing that you intended to compare the content instead?
---