in modules/sql-engine/src/main/java/org/apache/ignite/internal/sql/engine/sql/fun/IgniteSqlOperatorTable.java [482:755]
private void init0() {
ImmutableList.Builder<SqlOperator> definedOperatorsBuilder =
ImmutableList.builder();
// Set operators.
definedOperatorsBuilder.add(SqlStdOperatorTable.UNION);
definedOperatorsBuilder.add(SqlStdOperatorTable.UNION_ALL);
definedOperatorsBuilder.add(SqlStdOperatorTable.EXCEPT);
definedOperatorsBuilder.add(SqlStdOperatorTable.EXCEPT_ALL);
definedOperatorsBuilder.add(SqlStdOperatorTable.INTERSECT);
definedOperatorsBuilder.add(SqlStdOperatorTable.INTERSECT_ALL);
// Logical.
definedOperatorsBuilder.add(SqlStdOperatorTable.AND);
definedOperatorsBuilder.add(SqlStdOperatorTable.OR);
definedOperatorsBuilder.add(SqlStdOperatorTable.NOT);
// Comparisons.
definedOperatorsBuilder.add(LESS_THAN);
definedOperatorsBuilder.add(LESS_THAN_OR_EQUAL);
definedOperatorsBuilder.add(GREATER_THAN);
definedOperatorsBuilder.add(GREATER_THAN_OR_EQUAL);
definedOperatorsBuilder.add(EQUALS);
definedOperatorsBuilder.add(NOT_EQUALS);
definedOperatorsBuilder.add(SqlStdOperatorTable.BETWEEN);
definedOperatorsBuilder.add(SqlStdOperatorTable.NOT_BETWEEN);
// Arithmetic.
definedOperatorsBuilder.add(PLUS);
definedOperatorsBuilder.add(MINUS);
definedOperatorsBuilder.add(MULTIPLY);
definedOperatorsBuilder.add(DIVIDE);
definedOperatorsBuilder.add(SqlStdOperatorTable.DIVIDE_INTEGER); // Used internally.
definedOperatorsBuilder.add(PERCENT_REMAINDER);
definedOperatorsBuilder.add(SqlStdOperatorTable.UNARY_MINUS);
definedOperatorsBuilder.add(SqlStdOperatorTable.UNARY_PLUS);
// Aggregates.
definedOperatorsBuilder.add(SqlStdOperatorTable.COUNT);
definedOperatorsBuilder.add(SqlStdOperatorTable.SUM);
definedOperatorsBuilder.add(SqlStdOperatorTable.SUM0);
definedOperatorsBuilder.add(SqlStdOperatorTable.AVG);
definedOperatorsBuilder.add(DECIMAL_DIVIDE);
definedOperatorsBuilder.add(SqlStdOperatorTable.MIN);
definedOperatorsBuilder.add(SqlStdOperatorTable.MAX);
definedOperatorsBuilder.add(SqlStdOperatorTable.ANY_VALUE);
definedOperatorsBuilder.add(SqlStdOperatorTable.SINGLE_VALUE);
definedOperatorsBuilder.add(SqlStdOperatorTable.FILTER);
definedOperatorsBuilder.add(EVERY);
definedOperatorsBuilder.add(SOME);
// IS ... operator.
definedOperatorsBuilder.add(SqlStdOperatorTable.IS_NULL);
definedOperatorsBuilder.add(SqlStdOperatorTable.IS_NOT_NULL);
definedOperatorsBuilder.add(SqlStdOperatorTable.IS_TRUE);
definedOperatorsBuilder.add(SqlStdOperatorTable.IS_NOT_TRUE);
definedOperatorsBuilder.add(SqlStdOperatorTable.IS_FALSE);
definedOperatorsBuilder.add(SqlStdOperatorTable.IS_NOT_FALSE);
definedOperatorsBuilder.add(IS_DISTINCT_FROM);
definedOperatorsBuilder.add(IS_NOT_DISTINCT_FROM);
// LIKE and SIMILAR.
definedOperatorsBuilder.add(SqlStdOperatorTable.LIKE);
definedOperatorsBuilder.add(SqlStdOperatorTable.NOT_LIKE);
definedOperatorsBuilder.add(SqlStdOperatorTable.SIMILAR_TO);
definedOperatorsBuilder.add(SqlStdOperatorTable.NOT_SIMILAR_TO);
// NULLS ordering.
definedOperatorsBuilder.add(SqlStdOperatorTable.NULLS_FIRST);
definedOperatorsBuilder.add(SqlStdOperatorTable.NULLS_LAST);
definedOperatorsBuilder.add(SqlStdOperatorTable.DESC);
// Exists.
definedOperatorsBuilder.add(SqlStdOperatorTable.EXISTS);
// String functions.
definedOperatorsBuilder.add(SqlStdOperatorTable.UPPER);
definedOperatorsBuilder.add(SqlStdOperatorTable.LOWER);
definedOperatorsBuilder.add(SqlStdOperatorTable.INITCAP);
definedOperatorsBuilder.add(SqlLibraryOperators.TO_BASE64);
definedOperatorsBuilder.add(SqlLibraryOperators.FROM_BASE64);
definedOperatorsBuilder.add(SqlLibraryOperators.MD5);
definedOperatorsBuilder.add(SqlLibraryOperators.SHA1);
definedOperatorsBuilder.add(SqlStdOperatorTable.SUBSTRING);
definedOperatorsBuilder.add(SqlLibraryOperators.LEFT);
definedOperatorsBuilder.add(SqlLibraryOperators.RIGHT);
definedOperatorsBuilder.add(SqlStdOperatorTable.REPLACE);
definedOperatorsBuilder.add(SqlLibraryOperators.TRANSLATE3);
definedOperatorsBuilder.add(SqlLibraryOperators.CHR);
definedOperatorsBuilder.add(SqlStdOperatorTable.CHAR_LENGTH);
definedOperatorsBuilder.add(SqlStdOperatorTable.CHARACTER_LENGTH);
definedOperatorsBuilder.add(SqlStdOperatorTable.CONCAT);
definedOperatorsBuilder.add(SqlLibraryOperators.CONCAT_FUNCTION);
definedOperatorsBuilder.add(SqlStdOperatorTable.OVERLAY);
definedOperatorsBuilder.add(SqlStdOperatorTable.POSITION);
definedOperatorsBuilder.add(SqlStdOperatorTable.ASCII);
definedOperatorsBuilder.add(SqlLibraryOperators.REPEAT);
definedOperatorsBuilder.add(SqlLibraryOperators.SPACE);
definedOperatorsBuilder.add(SqlLibraryOperators.STRCMP);
definedOperatorsBuilder.add(SqlLibraryOperators.SOUNDEX);
definedOperatorsBuilder.add(SqlLibraryOperators.DIFFERENCE);
definedOperatorsBuilder.add(SqlLibraryOperators.REVERSE);
definedOperatorsBuilder.add(SqlStdOperatorTable.TRIM);
definedOperatorsBuilder.add(SqlLibraryOperators.LTRIM);
definedOperatorsBuilder.add(SqlLibraryOperators.RTRIM);
definedOperatorsBuilder.add(SUBSTR);
// Math functions.
definedOperatorsBuilder.add(SqlStdOperatorTable.MOD); // Arithmetic remainder.
definedOperatorsBuilder.add(SqlStdOperatorTable.EXP); // Euler's number e raised to the power of a value.
definedOperatorsBuilder.add(SqlStdOperatorTable.POWER);
definedOperatorsBuilder.add(SqlStdOperatorTable.LN); // Natural logarithm.
definedOperatorsBuilder.add(SqlStdOperatorTable.LOG10); // The base 10 logarithm.
definedOperatorsBuilder.add(SqlStdOperatorTable.ABS); // Absolute value.
definedOperatorsBuilder.add(SqlStdOperatorTable.RAND); // Random.
definedOperatorsBuilder.add(SqlStdOperatorTable.RAND_INTEGER); // Integer random.
definedOperatorsBuilder.add(SqlStdOperatorTable.ACOS); // Arc cosine.
definedOperatorsBuilder.add(SqlStdOperatorTable.ASIN); // Arc sine.
definedOperatorsBuilder.add(SqlStdOperatorTable.ATAN); // Arc tangent.
definedOperatorsBuilder.add(SqlStdOperatorTable.ATAN2); // Angle from coordinates.
definedOperatorsBuilder.add(SqlStdOperatorTable.SQRT); // Square root.
definedOperatorsBuilder.add(SqlStdOperatorTable.CBRT); // Cube root.
definedOperatorsBuilder.add(SqlStdOperatorTable.COS); // Cosine
definedOperatorsBuilder.add(SqlLibraryOperators.COSH); // Hyperbolic cosine.
definedOperatorsBuilder.add(SqlStdOperatorTable.COT); // Cotangent.
definedOperatorsBuilder.add(SqlStdOperatorTable.DEGREES); // Radians to degrees.
definedOperatorsBuilder.add(SqlStdOperatorTable.RADIANS); // Degrees to radians.
definedOperatorsBuilder.add(ROUND); // Fixes return type scale.
definedOperatorsBuilder.add(SqlStdOperatorTable.SIGN);
definedOperatorsBuilder.add(SqlStdOperatorTable.SIN); // Sine.
definedOperatorsBuilder.add(SqlLibraryOperators.SINH); // Hyperbolic sine.
definedOperatorsBuilder.add(SqlStdOperatorTable.TAN); // Tangent.
definedOperatorsBuilder.add(SqlLibraryOperators.TANH); // Hyperbolic tangent.
definedOperatorsBuilder.add(TRUNCATE); // Fixes return type scale.
definedOperatorsBuilder.add(SqlStdOperatorTable.PI);
// Date and time.
definedOperatorsBuilder.add(SqlStdOperatorTable.DATETIME_PLUS);
definedOperatorsBuilder.add(SqlStdOperatorTable.MINUS_DATE);
definedOperatorsBuilder.add(SqlStdOperatorTable.EXTRACT);
definedOperatorsBuilder.add(SqlStdOperatorTable.FLOOR);
definedOperatorsBuilder.add(SqlStdOperatorTable.CEIL);
definedOperatorsBuilder.add(SqlStdOperatorTable.TIMESTAMP_ADD);
definedOperatorsBuilder.add(SqlStdOperatorTable.TIMESTAMP_DIFF);
definedOperatorsBuilder.add(SqlStdOperatorTable.LAST_DAY);
definedOperatorsBuilder.add(SqlLibraryOperators.DAYNAME);
definedOperatorsBuilder.add(SqlLibraryOperators.MONTHNAME);
definedOperatorsBuilder.add(SqlStdOperatorTable.DAYOFMONTH);
definedOperatorsBuilder.add(SqlStdOperatorTable.DAYOFWEEK);
definedOperatorsBuilder.add(SqlStdOperatorTable.DAYOFYEAR);
definedOperatorsBuilder.add(SqlStdOperatorTable.YEAR);
definedOperatorsBuilder.add(SqlStdOperatorTable.QUARTER);
definedOperatorsBuilder.add(SqlStdOperatorTable.MONTH);
definedOperatorsBuilder.add(SqlStdOperatorTable.WEEK);
definedOperatorsBuilder.add(SqlStdOperatorTable.HOUR);
definedOperatorsBuilder.add(SqlStdOperatorTable.MINUTE);
definedOperatorsBuilder.add(SqlStdOperatorTable.SECOND);
definedOperatorsBuilder.add(SqlLibraryOperators.TIMESTAMP_SECONDS); // Seconds since 1970-01-01 to timestamp.
definedOperatorsBuilder.add(SqlLibraryOperators.TIMESTAMP_MILLIS); // Milliseconds since 1970-01-01 to timestamp.
definedOperatorsBuilder.add(SqlLibraryOperators.TIMESTAMP_MICROS); // Microseconds since 1970-01-01 to timestamp.
definedOperatorsBuilder.add(SqlLibraryOperators.UNIX_SECONDS); // Timestamp to seconds since 1970-01-01.
definedOperatorsBuilder.add(SqlLibraryOperators.UNIX_MILLIS); // Timestamp to milliseconds since 1970-01-01.
definedOperatorsBuilder.add(SqlLibraryOperators.UNIX_MICROS); // Timestamp to microseconds since 1970-01-01.
definedOperatorsBuilder.add(SqlLibraryOperators.UNIX_DATE); // Date to days since 1970-01-01.
definedOperatorsBuilder.add(SqlLibraryOperators.DATE_FROM_UNIX_DATE); // Days since 1970-01-01 to date.
definedOperatorsBuilder.add(SqlLibraryOperators.DATE); // String to date.
// POSIX REGEX.
definedOperatorsBuilder.add(SqlStdOperatorTable.POSIX_REGEX_CASE_INSENSITIVE);
definedOperatorsBuilder.add(SqlStdOperatorTable.POSIX_REGEX_CASE_SENSITIVE);
definedOperatorsBuilder.add(SqlStdOperatorTable.NEGATED_POSIX_REGEX_CASE_INSENSITIVE);
definedOperatorsBuilder.add(SqlStdOperatorTable.NEGATED_POSIX_REGEX_CASE_SENSITIVE);
definedOperatorsBuilder.add(SqlLibraryOperators.REGEXP_REPLACE_2);
definedOperatorsBuilder.add(SqlLibraryOperators.REGEXP_REPLACE_3);
definedOperatorsBuilder.add(SqlLibraryOperators.REGEXP_REPLACE_4);
definedOperatorsBuilder.add(SqlLibraryOperators.REGEXP_REPLACE_5);
definedOperatorsBuilder.add(SqlLibraryOperators.REGEXP_REPLACE_6);
// Collections.
definedOperatorsBuilder.add(SqlStdOperatorTable.MAP_VALUE_CONSTRUCTOR);
definedOperatorsBuilder.add(SqlStdOperatorTable.ARRAY_VALUE_CONSTRUCTOR);
definedOperatorsBuilder.add(SqlStdOperatorTable.ITEM);
definedOperatorsBuilder.add(SqlStdOperatorTable.CARDINALITY);
definedOperatorsBuilder.add(SqlStdOperatorTable.IS_EMPTY);
definedOperatorsBuilder.add(SqlStdOperatorTable.IS_NOT_EMPTY);
// TODO https://issues.apache.org/jira/browse/IGNITE-19332
// definedOperatorsBuilder.add(SqlStdOperatorTable.MAP_QUERY);
// definedOperatorsBuilder.add(SqlStdOperatorTable.ARRAY_QUERY);
// Multiset.
// TODO https://issues.apache.org/jira/browse/IGNITE-15551
// definedOperatorsBuilder.add(SqlStdOperatorTable.MULTISET_VALUE);
// definedOperatorsBuilder.add(SqlStdOperatorTable.MULTISET_QUERY);
// definedOperatorsBuilder.add(SqlStdOperatorTable.SLICE);
// definedOperatorsBuilder.add(SqlStdOperatorTable.ELEMENT);
// definedOperatorsBuilder.add(SqlStdOperatorTable.STRUCT_ACCESS);
// definedOperatorsBuilder.add(SqlStdOperatorTable.MEMBER_OF);
// definedOperatorsBuilder.add(SqlStdOperatorTable.IS_A_SET);
// definedOperatorsBuilder.add(SqlStdOperatorTable.IS_NOT_A_SET);
// definedOperatorsBuilder.add(SqlStdOperatorTable.MULTISET_INTERSECT_DISTINCT);
// definedOperatorsBuilder.add(SqlStdOperatorTable.MULTISET_INTERSECT);
// definedOperatorsBuilder.add(SqlStdOperatorTable.MULTISET_EXCEPT_DISTINCT);
// definedOperatorsBuilder.add(SqlStdOperatorTable.MULTISET_EXCEPT);
// definedOperatorsBuilder.add(SqlStdOperatorTable.MULTISET_UNION_DISTINCT);
// definedOperatorsBuilder.add(SqlStdOperatorTable.MULTISET_UNION);
// definedOperatorsBuilder.add(SqlStdOperatorTable.SUBMULTISET_OF);
// definedOperatorsBuilder.add(SqlStdOperatorTable.NOT_SUBMULTISET_OF);
// Other functions and operators.
definedOperatorsBuilder.add(SqlStdOperatorTable.ROW);
definedOperatorsBuilder.add(SqlStdOperatorTable.CAST);
definedOperatorsBuilder.add(SqlLibraryOperators.INFIX_CAST);
definedOperatorsBuilder.add(SqlStdOperatorTable.COALESCE);
definedOperatorsBuilder.add(SqlLibraryOperators.NVL);
definedOperatorsBuilder.add(SqlStdOperatorTable.NULLIF);
definedOperatorsBuilder.add(SqlStdOperatorTable.CASE);
definedOperatorsBuilder.add(SqlLibraryOperators.DECODE);
definedOperatorsBuilder.add(SqlLibraryOperators.LEAST);
definedOperatorsBuilder.add(SqlLibraryOperators.GREATEST);
definedOperatorsBuilder.add(SqlLibraryOperators.COMPRESS);
definedOperatorsBuilder.add(OCTET_LENGTH);
definedOperatorsBuilder.add(SqlStdOperatorTable.DEFAULT);
definedOperatorsBuilder.add(SqlStdOperatorTable.REINTERPRET);
// XML Operators.
definedOperatorsBuilder.add(SqlLibraryOperators.EXTRACT_VALUE);
definedOperatorsBuilder.add(SqlLibraryOperators.XML_TRANSFORM);
definedOperatorsBuilder.add(SqlLibraryOperators.EXTRACT_XML);
definedOperatorsBuilder.add(SqlLibraryOperators.EXISTS_NODE);
// JSON Operators
definedOperatorsBuilder.add(SqlStdOperatorTable.JSON_TYPE_OPERATOR);
definedOperatorsBuilder.add(SqlStdOperatorTable.JSON_VALUE_EXPRESSION);
definedOperatorsBuilder.add(SqlStdOperatorTable.JSON_VALUE);
definedOperatorsBuilder.add(SqlStdOperatorTable.JSON_QUERY);
definedOperatorsBuilder.add(SqlLibraryOperators.JSON_TYPE);
definedOperatorsBuilder.add(SqlStdOperatorTable.JSON_EXISTS);
definedOperatorsBuilder.add(SqlLibraryOperators.JSON_DEPTH);
definedOperatorsBuilder.add(SqlLibraryOperators.JSON_KEYS);
definedOperatorsBuilder.add(SqlLibraryOperators.JSON_PRETTY);
definedOperatorsBuilder.add(SqlLibraryOperators.JSON_LENGTH);
definedOperatorsBuilder.add(SqlLibraryOperators.JSON_REMOVE);
definedOperatorsBuilder.add(SqlLibraryOperators.JSON_STORAGE_SIZE);
definedOperatorsBuilder.add(SqlStdOperatorTable.JSON_OBJECT);
definedOperatorsBuilder.add(SqlStdOperatorTable.JSON_ARRAY);
definedOperatorsBuilder.add(SqlStdOperatorTable.IS_JSON_VALUE);
definedOperatorsBuilder.add(SqlStdOperatorTable.IS_JSON_OBJECT);
definedOperatorsBuilder.add(SqlStdOperatorTable.IS_JSON_ARRAY);
definedOperatorsBuilder.add(SqlStdOperatorTable.IS_JSON_SCALAR);
definedOperatorsBuilder.add(SqlStdOperatorTable.IS_NOT_JSON_VALUE);
definedOperatorsBuilder.add(SqlStdOperatorTable.IS_NOT_JSON_OBJECT);
definedOperatorsBuilder.add(SqlStdOperatorTable.IS_NOT_JSON_ARRAY);
definedOperatorsBuilder.add(SqlStdOperatorTable.IS_NOT_JSON_SCALAR);
// Aggregate functions.
definedOperatorsBuilder.add(SqlInternalOperators.LITERAL_AGG);
// Current time functions.
definedOperatorsBuilder.add(CURRENT_TIMESTAMP);
definedOperatorsBuilder.add(SqlStdOperatorTable.CURRENT_DATE);
definedOperatorsBuilder.add(SqlStdOperatorTable.LOCALTIME);
definedOperatorsBuilder.add(SqlStdOperatorTable.LOCALTIMESTAMP);
// Ignite specific operators
definedOperatorsBuilder.add(LENGTH);
definedOperatorsBuilder.add(SYSTEM_RANGE);
definedOperatorsBuilder.add(TYPEOF);
definedOperatorsBuilder.add(LEAST2);
definedOperatorsBuilder.add(GREATEST2);
definedOperatorsBuilder.add(RAND_UUID);
setOperators(buildIndex(definedOperatorsBuilder.build()));
}