16 #ifndef IMPALA_EXPRS_LIKE_PREDICATE_H_
17 #define IMPALA_EXPRS_LIKE_PREDICATE_H_
19 #include <boost/scoped_ptr.hpp>
24 #include "gen-cpp/Exprs_types.h"
137 bool is_like_pattern);
147 #endif // IMPALA_EXPRS_LIKE_PREDICATE_H_
std::string search_string_
Holds the string the StringValue points to and is set any time StringValue is used.
static impala_udf::BooleanVal ConstantStartsWithFn(impala_udf::FunctionContext *context, const impala_udf::StringVal &val, const impala_udf::StringVal &pattern)
Handling of like predicates that can be implemented using strncmp.
static void LikePrepare(impala_udf::FunctionContext *context, impala_udf::FunctionContext::FunctionStateScope scope)
LikePredicate(const TExprNode &node)
static impala_udf::BooleanVal ConstantEndsWithFn(impala_udf::FunctionContext *context, const impala_udf::StringVal &val, const impala_udf::StringVal &pattern)
Handling of like predicates that can be implemented using strncmp.
This class handles the Like, Regexp, and Rlike predicates and uses the udf interface.
static impala_udf::BooleanVal ConstantSubstringFn(impala_udf::FunctionContext *context, const impala_udf::StringVal &val, const impala_udf::StringVal &pattern)
Handling of like predicates that map to strstr.
static void RegexClose(impala_udf::FunctionContext *, impala_udf::FunctionContext::FunctionStateScope scope)
static impala_udf::BooleanVal ConstantRegexFn(impala_udf::FunctionContext *context, const impala_udf::StringVal &val, const impala_udf::StringVal &pattern)
boost::scoped_ptr< re2::RE2 > regex_
Used for RLIKE and REGEXP predicates if the pattern is a constant aruement.
static impala_udf::BooleanVal Like(impala_udf::FunctionContext *context, const impala_udf::StringVal &val, const impala_udf::StringVal &pattern)
static impala_udf::BooleanVal ConstantEqualsFn(impala_udf::FunctionContext *context, const impala_udf::StringVal &val, const impala_udf::StringVal &pattern)
Handling of like predicates that can be implemented using strcmp.
static void RegexPrepare(impala_udf::FunctionContext *context, impala_udf::FunctionContext::FunctionStateScope scope)
LikePredicateFunction function_
static impala_udf::BooleanVal RegexMatch(impala_udf::FunctionContext *context, const impala_udf::StringVal &val, const impala_udf::StringVal &pattern, bool is_like_pattern)
static void ConvertLikePattern(impala_udf::FunctionContext *context, const impala_udf::StringVal &pattern, std::string *re_pattern)
static impala_udf::BooleanVal Regex(impala_udf::FunctionContext *context, const impala_udf::StringVal &val, const impala_udf::StringVal &pattern)
This is the superclass of all expr evaluation nodes.
StringSearch substring_pattern_
friend class OpcodeRegistry
StringValue search_string_sv_
static impala_udf::BooleanVal ConstantRegexFnPartial(impala_udf::FunctionContext *context, const impala_udf::StringVal &val, const impala_udf::StringVal &pattern)
impala_udf::BooleanVal(* LikePredicateFunction)(impala_udf::FunctionContext *, const impala_udf::StringVal &, const impala_udf::StringVal &)
void SetSearchString(const std::string &search_string)
static impala_udf::BooleanVal LikeFn(impala_udf::FunctionContext *context, const impala_udf::StringVal &val, const impala_udf::StringVal &pattern)
static void LikeClose(impala_udf::FunctionContext *context, impala_udf::FunctionContext::FunctionStateScope scope)
static impala_udf::BooleanVal RegexFn(impala_udf::FunctionContext *context, const impala_udf::StringVal &val, const impala_udf::StringVal &pattern)