58 #define IS_COMPARISON(X) \
59 ((X) == kEQ || (X) == kBW_EQ || (X) == kBBOX_INTERSECT || (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) == kBBOX_INTERSECT)
184 #if !(defined(__CUDACC__) || defined(NO_BOOST))
201 return "WINDOW_FUNCTION";
203 return "WINDOW_FUNCTION_FRAMING";
218 LOG(
FATAL) <<
"Invalid SQLQualifier: " << qualifier;
235 return "APPROX_COUNT_DISTINCT";
237 return "APPROX_PERCENTILE";
241 return "SINGLE_VALUE";
251 UNREACHABLE() <<
"Invalid aggregate kind: " << kind;
318 return "BOUNDING_BOX_INTERSECT";
320 return "ENCODE_TEXT";
324 LOG(
FATAL) <<
"Invalid operation kind: " << op;
331 return os <<
"LOWER";
333 return os <<
"UPPER";
335 return os <<
"INITCAP";
337 return os <<
"REVERSE";
339 return os <<
"REPEAT";
341 return os <<
"CONCAT";
343 return os <<
"RCONCAT";
351 return os <<
"LTRIM";
353 return os <<
"RTRIM";
355 return os <<
"SUBSTRING";
357 return os <<
"OVERLAY";
359 return os <<
"REPLACE";
361 return os <<
"SPLIT_PART";
363 return os <<
"REGEXP_REPLACE";
365 return os <<
"REGEXP_SUBSTR";
367 return os <<
"JSON_VALUE";
369 return os <<
"BASE64_ENCODE";
371 return os <<
"BASE64_DECODE";
373 return os <<
"TRY_STRING_CAST";
375 return os <<
"POSITION";
377 return os <<
"JAROWINKLER_SIMILARITY";
379 return os <<
"LEVENSHTEIN_DISTANCE";
381 return os <<
"INVALID";
383 LOG(
FATAL) <<
"Invalid string operation";
385 return os <<
"INVALID";
389 if (func_name ==
"LOWER") {
392 if (func_name ==
"UPPER") {
395 if (func_name ==
"INITCAP") {
398 if (func_name ==
"REVERSE") {
401 if (func_name ==
"REPEAT") {
404 if (func_name ==
"||") {
407 if (func_name ==
"LPAD") {
410 if (func_name ==
"RPAD") {
413 if (func_name ==
"TRIM") {
416 if (func_name ==
"LTRIM") {
419 if (func_name ==
"RTRIM") {
422 if (func_name ==
"SUBSTRING") {
425 if (func_name ==
"OVERLAY") {
428 if (func_name ==
"REPLACE") {
431 if (func_name ==
"SPLIT_PART") {
434 if (func_name ==
"REGEXP_REPLACE") {
437 if (func_name ==
"REGEXP_SUBSTR") {
440 if (func_name ==
"REGEXP_MATCH") {
443 if (func_name ==
"JSON_VALUE") {
446 if (func_name ==
"BASE64_ENCODE") {
449 if (func_name ==
"BASE64_DECODE") {
452 if (func_name ==
"TRY_CAST") {
455 if (func_name ==
"POSITION") {
458 if (func_name ==
"JAROWINKLER_SIMILARITY") {
461 if (func_name ==
"LEVENSHTEIN_DISTANCE") {
464 LOG(
FATAL) <<
"Invalid string function " << func_name <<
".";
487 return "PERCENT_RANK";
497 return "FIRST_VALUE";
499 return "FIRST_VALUE_IN_FRAME";
503 return "LAST_VALUE_IN_FRAME";
507 return "NTH_VALUE_IN_FRAME";
519 return "SUM_INTERNAL";
521 return "LEAD_IN_FRAME";
523 return "LAG_IN_FRAME";
529 return "FORWARD_FILL";
531 return "BACKWARD_FILL";
533 return "CONDITIONAL_CHANGE_EVENT";
537 LOG(
FATAL) <<
"Invalid window function kind.";
544 return "UNBOUNDED_PRECEDING";
546 return "EXPR_PRECEDING";
548 return "CURRENT_ROW";
550 return "EXPR_FOLLOWING";
552 return "UNBOUNDED_FOLLOWING";
556 LOG(
FATAL) <<
"Invalid window function bound type.";
560 #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 QueryDescriptionType &type)
bool string_op_returns_string(const SqlStringOpKind kind)
SQLAgg get_non_conditional_agg_type(SQLAgg const agg_type)