58 #define IS_COMPARISON(X) \
59 ((X) == kEQ || (X) == kBW_EQ || (X) == kOVERLAPS || (X) == kNE || (X) == kLT || \
60 (X) == kGT || (X) == kLE || (X) == kGE)
61 #define IS_LOGIC(X) ((X) == kAND || (X) == kOR)
62 #define IS_ARITHMETIC(X) \
63 ((X) == kMINUS || (X) == kPLUS || (X) == kMULTIPLY || (X) == kDIVIDE || (X) == kMODULO)
64 #define COMMUTE_COMPARISON(X) \
65 ((X) == kLT ? kGT : (X) == kLE ? kGE : (X) == kGT ? kLT : (X) == kGE ? kLE : (X))
67 ((X) == kNOT || (X) == kUMINUS || (X) == kISNULL || (X) == kEXISTS || (X) == kCAST || \
69 #define IS_EQUIVALENCE(X) ((X) == kEQ || (X) == kBW_EQ || (X) == kOVERLAPS)
175 #if !(defined(__CUDACC__) || defined(NO_BOOST))
192 return "WINDOW_FUNCTION";
194 return "WINDOW_FUNCTION_FRAMING";
209 LOG(
FATAL) <<
"Invalid SQLQualifier: " << qualifier;
226 return "APPROX_COUNT_DISTINCT";
228 return "APPROX_PERCENTILE";
232 return "SINGLE_VALUE";
242 UNREACHABLE() <<
"Invalid aggregate kind: " << kind;
311 return "ENCODE_TEXT";
315 LOG(
FATAL) <<
"Invalid operation kind: " << op;
322 return os <<
"LOWER";
324 return os <<
"UPPER";
326 return os <<
"INITCAP";
328 return os <<
"REVERSE";
330 return os <<
"REPEAT";
332 return os <<
"CONCAT";
334 return os <<
"RCONCAT";
342 return os <<
"LTRIM";
344 return os <<
"RTRIM";
346 return os <<
"SUBSTRING";
348 return os <<
"OVERLAY";
350 return os <<
"REPLACE";
352 return os <<
"SPLIT_PART";
354 return os <<
"REGEXP_REPLACE";
356 return os <<
"REGEXP_SUBSTR";
358 return os <<
"JSON_VALUE";
360 return os <<
"BASE64_ENCODE";
362 return os <<
"BASE64_DECODE";
364 return os <<
"TRY_STRING_CAST";
366 return os <<
"POSITION";
368 return os <<
"INVALID";
370 LOG(
FATAL) <<
"Invalid string operation";
372 return os <<
"INVALID";
376 if (func_name ==
"LOWER") {
379 if (func_name ==
"UPPER") {
382 if (func_name ==
"INITCAP") {
385 if (func_name ==
"REVERSE") {
388 if (func_name ==
"REPEAT") {
391 if (func_name ==
"||") {
394 if (func_name ==
"LPAD") {
397 if (func_name ==
"RPAD") {
400 if (func_name ==
"TRIM") {
403 if (func_name ==
"LTRIM") {
406 if (func_name ==
"RTRIM") {
409 if (func_name ==
"SUBSTRING") {
412 if (func_name ==
"OVERLAY") {
415 if (func_name ==
"REPLACE") {
418 if (func_name ==
"SPLIT_PART") {
421 if (func_name ==
"REGEXP_REPLACE") {
424 if (func_name ==
"REGEXP_SUBSTR") {
427 if (func_name ==
"REGEXP_MATCH") {
430 if (func_name ==
"JSON_VALUE") {
433 if (func_name ==
"BASE64_ENCODE") {
436 if (func_name ==
"BASE64_DECODE") {
439 if (func_name ==
"TRY_CAST") {
442 if (func_name ==
"POSITION") {
445 LOG(
FATAL) <<
"Invalid string function " << func_name <<
".";
468 return "PERCENT_RANK";
478 return "FIRST_VALUE";
484 return "NTH_VALUE_IN_FRAME";
496 return "SUM_INTERNAL";
498 return "LEAD_IN_FRAME";
500 return "LAG_IN_FRAME";
508 LOG(
FATAL) <<
"Invalid window function kind.";
515 return "UNBOUNDED_PRECEDING";
517 return "EXPR_PRECEDING";
519 return "CURRENT_ROW";
521 return "EXPR_FOLLOWING";
523 return "UNBOUNDED_FOLLOWING";
527 LOG(
FATAL) <<
"Invalid window function bound type.";
531 #endif // #if !(defined(__CUDACC__) || defined(NO_BOOST))
SqlStringOpKind name_to_string_op_kind(const std::string &func_name)
std::ostream & operator<<(std::ostream &os, const SessionInfo &session_info)
std::string toString(const ExecutorDeviceType &device_type)
bool string_op_returns_string(const SqlStringOpKind kind)
SQLAgg get_non_conditional_agg_type(SQLAgg const agg_type)