Class SqlStdOperatorTable

    • Field Detail

      • MULTISET_UNION_DISTINCT

        public static final SqlMultisetSetOperator MULTISET_UNION_DISTINCT
        The MULTISET UNION DISTINCT operator.
      • MULTISET_UNION

        public static final SqlMultisetSetOperator MULTISET_UNION
        The MULTISET UNION [ALL] operator.
      • MULTISET_EXCEPT_DISTINCT

        public static final SqlMultisetSetOperator MULTISET_EXCEPT_DISTINCT
        The MULTISET EXCEPT DISTINCT operator.
      • MULTISET_EXCEPT

        public static final SqlMultisetSetOperator MULTISET_EXCEPT
        The MULTISET EXCEPT [ALL] operator.
      • MULTISET_INTERSECT_DISTINCT

        public static final SqlMultisetSetOperator MULTISET_INTERSECT_DISTINCT
        The MULTISET INTERSECT DISTINCT operator.
      • MULTISET_INTERSECT

        public static final SqlMultisetSetOperator MULTISET_INTERSECT
        The MULTISET INTERSECT [ALL] operator.
      • AS

        public static final SqlAsOperator AS
        AS operator associates an expression in the SELECT clause with an alias.
      • ARGUMENT_ASSIGNMENT

        public static final SqlSpecialOperator ARGUMENT_ASSIGNMENT
        ARGUMENT_ASSIGNMENT operator (=<) assigns an argument to a function call to a particular named parameter.
      • DEFAULT

        public static final SqlSpecialOperator DEFAULT
        DEFAULT operator indicates that an argument to a function call is to take its default value..
      • FILTER

        public static final SqlFilterOperator FILTER
        FILTER operator filters which rows are included in an aggregate function.
      • WITHIN_GROUP

        public static final SqlWithinGroupOperator WITHIN_GROUP
        WITHIN_GROUP operator performs aggregations on ordered data input.
      • CUBE

        public static final SqlInternalOperator CUBE
        CUBE operator, occurs within GROUP BY clause or nested within a GROUPING SETS.
      • ROLLUP

        public static final SqlInternalOperator ROLLUP
        ROLLUP operator, occurs within GROUP BY clause or nested within a GROUPING SETS.
      • GROUPING_SETS

        public static final SqlInternalOperator GROUPING_SETS
        GROUPING SETS operator, occurs within GROUP BY clause or nested within a GROUPING SETS.
      • GROUPING

        public static final SqlGroupingFunction GROUPING
        GROUPING(c1 [, c2, ...]) function.

        Occurs in similar places to an aggregate function (SELECT, HAVING clause, etc. of an aggregate query), but not technically an aggregate function.

      • GROUP_ID

        public static final SqlGroupIdFunction GROUP_ID
        GROUP_ID() function. (Oracle-specific.)
      • GROUPING_ID

        public static final SqlGroupingFunction GROUPING_ID
        GROUPING_ID function is a synonym for GROUPING.

        Some history. The GROUPING function is in the SQL standard, and originally supported only one argument. GROUPING_ID is not standard (though supported in Oracle and SQL Server) and supports one or more arguments.

        The SQL standard has changed to allow GROUPING to have multiple arguments. It is now equivalent to GROUPING_ID, so we made GROUPING_ID a synonym for GROUPING.

      • CONCAT

        public static final SqlBinaryOperator CONCAT
        String concatenation operator, '||'.
      • DIVIDE

        public static final SqlBinaryOperator DIVIDE
        Arithmetic division operator, '/'.
      • RAND_INTEGER

        public static final SqlRandIntegerFunction RAND_INTEGER
        The RAND_INTEGER([seed, ] bound) function, which yields a random integer, optionally with seed.
      • RAND

        public static final SqlRandFunction RAND
        The RAND([seed]) function, which yields a random double, optionally with seed.
      • DIVIDE_INTEGER

        public static final SqlBinaryOperator DIVIDE_INTEGER
        Internal integer arithmetic division operator, '/INT'. This is only used to adjust scale for numerics. We distinguish it from user-requested division since some personalities want a floating-point computation, whereas for the internal scaling use of division, we always want integer division.
      • DOT

        public static final SqlOperator DOT
        Dot operator, '.', used for referencing fields of records.
      • GREATER_THAN

        public static final SqlBinaryOperator GREATER_THAN
        Logical greater-than operator, '>'.
      • IS_DISTINCT_FROM

        public static final SqlBinaryOperator IS_DISTINCT_FROM
        IS DISTINCT FROM operator.
      • IS_NOT_DISTINCT_FROM

        public static final SqlBinaryOperator IS_NOT_DISTINCT_FROM
        IS NOT DISTINCT FROM operator. Is equivalent to NOT(x IS DISTINCT FROM y)
      • IS_DIFFERENT_FROM

        public static final SqlBinaryOperator IS_DIFFERENT_FROM
        The internal $IS_DIFFERENT_FROM operator is the same as the user-level IS_DISTINCT_FROM in all respects except that the test for equality on character datatypes treats trailing spaces as significant.
      • GREATER_THAN_OR_EQUAL

        public static final SqlBinaryOperator GREATER_THAN_OR_EQUAL
        Logical greater-than-or-equal operator, '>='.
      • IN

        public static final SqlBinaryOperator IN
        IN operator tests for a value's membership in a sub-query or a list of values.
      • NOT_IN

        public static final SqlBinaryOperator NOT_IN
        NOT IN operator tests for a value's membership in a sub-query or a list of values.
      • SOME_LT

        public static final SqlQuantifyOperator SOME_LT
        The < SOME operator (synonymous with < ANY).
      • LESS_THAN

        public static final SqlBinaryOperator LESS_THAN
        Logical less-than operator, '<'.
      • LESS_THAN_OR_EQUAL

        public static final SqlBinaryOperator LESS_THAN_OR_EQUAL
        Logical less-than-or-equal operator, '<='.
      • MINUS

        public static final SqlBinaryOperator MINUS
        Infix arithmetic minus operator, '-'.

        Its precedence is less than the prefix + and - operators.

      • MULTIPLY

        public static final SqlBinaryOperator MULTIPLY
        Arithmetic multiplication operator, '*'.
      • NOT_EQUALS

        public static final SqlBinaryOperator NOT_EQUALS
        Logical not-equals operator, '<>'.
      • PLUS

        public static final SqlBinaryOperator PLUS
        Infix arithmetic plus operator, '+'.
      • DATETIME_PLUS

        public static final SqlSpecialOperator DATETIME_PLUS
        Infix datetime plus operator, 'DATETIME + INTERVAL'.
      • MEMBER_OF

        public static final SqlBinaryOperator MEMBER_OF
        Multiset MEMBER OF, which returns whether a element belongs to a multiset.

        For example, the following returns false:

        'green' MEMBER OF MULTISET ['red','almost green','blue']
      • SUBMULTISET_OF

        public static final SqlBinaryOperator SUBMULTISET_OF
        Submultiset. Checks to see if an multiset is a sub-set of another multiset.

        For example, the following returns false:

        MULTISET ['green'] SUBMULTISET OF MULTISET['red', 'almost green', 'blue']

        The following returns true, in part because multisets are order-independent:

        MULTISET ['blue', 'red'] SUBMULTISET OF MULTISET ['red', 'almost green', 'blue']
      • UNARY_MINUS

        public static final SqlPrefixOperator UNARY_MINUS
        Prefix arithmetic minus operator, '-'.

        Its precedence is greater than the infix '+' and '-' operators.

      • UNARY_PLUS

        public static final SqlPrefixOperator UNARY_PLUS
        Prefix arithmetic plus operator, '+'.

        Its precedence is greater than the infix '+' and '-' operators.

      • EXPLICIT_TABLE

        public static final SqlPrefixOperator EXPLICIT_TABLE
        Keyword which allows an identifier to be explicitly flagged as a table. For example, select * from (TABLE t) or TABLE t. See also COLLECTION_TABLE.
      • FINAL

        public static final SqlPrefixOperator FINAL
        FINAL function to be used within MATCH_RECOGNIZE.
      • RUNNING

        public static final SqlPrefixOperator RUNNING
        RUNNING function to be used within MATCH_RECOGNIZE.
      • COUNT

        public static final SqlAggFunction COUNT
        COUNT aggregate function.
      • APPROX_COUNT_DISTINCT

        public static final SqlAggFunction APPROX_COUNT_DISTINCT
        APPROX_COUNT_DISTINCT aggregate function.
      • LAST_VALUE

        public static final SqlAggFunction LAST_VALUE
        LAST_VALUE aggregate function.
      • ANY_VALUE

        public static final SqlAggFunction ANY_VALUE
        ANY_VALUE aggregate function.
      • FIRST_VALUE

        public static final SqlAggFunction FIRST_VALUE
        FIRST_VALUE aggregate function.
      • NTH_VALUE

        public static final SqlAggFunction NTH_VALUE
        NTH_VALUE aggregate function.
      • LEAD

        public static final SqlAggFunction LEAD
        LEAD aggregate function.
      • NTILE

        public static final SqlAggFunction NTILE
        NTILE aggregate function.
      • SINGLE_VALUE

        public static final SqlAggFunction SINGLE_VALUE
        SINGLE_VALUE aggregate function.
      • STDDEV_POP

        public static final SqlAggFunction STDDEV_POP
        STDDEV_POP aggregate function.
      • REGR_COUNT

        public static final SqlAggFunction REGR_COUNT
        REGR_COUNT aggregate function.
      • REGR_SXX

        public static final SqlAggFunction REGR_SXX
        REGR_SXX aggregate function.
      • REGR_SYY

        public static final SqlAggFunction REGR_SYY
        REGR_SYY aggregate function.
      • COVAR_POP

        public static final SqlAggFunction COVAR_POP
        COVAR_POP aggregate function.
      • COVAR_SAMP

        public static final SqlAggFunction COVAR_SAMP
        COVAR_SAMP aggregate function.
      • STDDEV_SAMP

        public static final SqlAggFunction STDDEV_SAMP
        STDDEV_SAMP aggregate function.
      • STDDEV

        public static final SqlAggFunction STDDEV
        STDDEV aggregate function.
      • VAR_POP

        public static final SqlAggFunction VAR_POP
        VAR_POP aggregate function.
      • VAR_SAMP

        public static final SqlAggFunction VAR_SAMP
        VAR_SAMP aggregate function.
      • VARIANCE

        public static final SqlAggFunction VARIANCE
        VARIANCE aggregate function.
      • BIT_AND

        public static final SqlAggFunction BIT_AND
        BIT_AND aggregate function.
      • BIT_OR

        public static final SqlAggFunction BIT_OR
        BIT_OR aggregate function.
      • HISTOGRAM_AGG

        public static final SqlAggFunction HISTOGRAM_AGG
        HISTOGRAM aggregate function support. Used by window aggregate versions of MIN/MAX
      • HISTOGRAM_MIN

        public static final SqlFunction HISTOGRAM_MIN
        HISTOGRAM_MIN window aggregate function.
      • HISTOGRAM_MAX

        public static final SqlFunction HISTOGRAM_MAX
        HISTOGRAM_MAX window aggregate function.
      • HISTOGRAM_FIRST_VALUE

        public static final SqlFunction HISTOGRAM_FIRST_VALUE
        HISTOGRAM_FIRST_VALUE window aggregate function.
      • HISTOGRAM_LAST_VALUE

        public static final SqlFunction HISTOGRAM_LAST_VALUE
        HISTOGRAM_LAST_VALUE window aggregate function.
      • SUM0

        public static final SqlAggFunction SUM0
        SUM0 aggregate function.
      • CUME_DIST

        public static final SqlRankFunction CUME_DIST
        CUME_DIST window function.
      • DENSE_RANK

        public static final SqlRankFunction DENSE_RANK
        DENSE_RANK window function.
      • PERCENT_RANK

        public static final SqlRankFunction PERCENT_RANK
        PERCENT_RANK window function.
      • ROW_NUMBER

        public static final SqlRankFunction ROW_NUMBER
        ROW_NUMBER window function.
      • MINUS_DATE

        public static final SqlDatetimeSubtractionOperator MINUS_DATE
        A special operator for the subtraction of two DATETIMEs. The format of DATETIME subtraction is:
        "(" <datetime> "-" <datetime> ")" <interval qualifier>

        This operator is special since it needs to hold the additional interval qualifier specification.

      • MULTISET_VALUE

        public static final SqlMultisetValueConstructor MULTISET_VALUE
        The MULTISET Value Constructor. e.g. "MULTISET[1,2,3]".
      • MULTISET_QUERY

        public static final SqlMultisetQueryConstructor MULTISET_QUERY
        The MULTISET Query Constructor. e.g. "SELECT dname, MULTISET(SELECT FROM emp WHERE deptno = dept.deptno) FROM dept".
      • ARRAY_QUERY

        public static final SqlMultisetQueryConstructor ARRAY_QUERY
        The ARRAY Query Constructor. e.g. "SELECT dname, ARRAY(SELECT FROM emp WHERE deptno = dept.deptno) FROM dept".
      • MAP_QUERY

        public static final SqlMultisetQueryConstructor MAP_QUERY
        The MAP Query Constructor. e.g. "MAP(SELECT empno, deptno FROM emp)".
      • CURSOR

        public static final SqlCursorConstructor CURSOR
        The CURSOR constructor. e.g. "SELECT * FROM TABLE(DEDUP(CURSOR(SELECT * FROM EMPS), 'name'))".
      • COLUMN_LIST

        public static final SqlColumnListConstructor COLUMN_LIST
        The COLUMN_LIST constructor. e.g. the ROW() call in "SELECT * FROM TABLE(DEDUP(CURSOR(SELECT * FROM EMPS), ROW(name, empno)))".
      • UNNEST_WITH_ORDINALITY

        public static final SqlUnnestOperator UNNEST_WITH_ORDINALITY
        The UNNEST WITH ORDINALITY operator.
      • COLLECTION_TABLE

        public static final SqlSpecialOperator COLLECTION_TABLE
        The "table function derived table" operator, which a table-valued function into a relation, e.g. "SELECT * FROM TABLE(ramp(5))".

        This operator has function syntax (with one argument), whereas EXPLICIT_TABLE is a prefix operator.

      • JSON_EXISTS

        public static final SqlFunction JSON_EXISTS
      • JSON_VALUE

        public static final SqlFunction JSON_VALUE
      • JSON_VALUE_ANY

        public static final SqlFunction JSON_VALUE_ANY
      • JSON_QUERY

        public static final SqlFunction JSON_QUERY
      • JSON_OBJECT

        public static final SqlFunction JSON_OBJECT
      • JSON_ARRAY

        public static final SqlFunction JSON_ARRAY
      • JSON_TYPE

        @Deprecated
        public static final SqlFunction JSON_TYPE
        Deprecated.
      • JSON_DEPTH

        @Deprecated
        public static final SqlFunction JSON_DEPTH
        Deprecated.
      • JSON_LENGTH

        @Deprecated
        public static final SqlFunction JSON_LENGTH
        Deprecated.
      • JSON_KEYS

        @Deprecated
        public static final SqlFunction JSON_KEYS
        Deprecated.
      • JSON_PRETTY

        @Deprecated
        public static final SqlFunction JSON_PRETTY
        Deprecated.
      • JSON_REMOVE

        @Deprecated
        public static final SqlFunction JSON_REMOVE
        Deprecated.
      • JSON_STORAGE_SIZE

        @Deprecated
        public static final SqlFunction JSON_STORAGE_SIZE
        Deprecated.
      • ESCAPE

        public static final SqlSpecialOperator ESCAPE
        Internal operator used to represent the ESCAPE clause of a LIKE or SIMILAR TO expression.
      • PROCEDURE_CALL

        public static final SqlOperator PROCEDURE_CALL
      • OVER

        public static final SqlBinaryOperator OVER
        The OVER operator, which applies an aggregate functions to a window.

        Operands are as follows:

        1. name of window function (SqlCall)
        2. window name (SqlLiteral) or window in-line specification (@link SqlWindowOperator})
      • REINTERPRET

        public static final SqlSpecialOperator REINTERPRET
        An REINTERPRET operator is internal to the planner. When the physical storage of two types is the same, this operator may be used to reinterpret values of one type as the other. This operator is similar to a cast, except that it does not alter the data value. Like a regular cast it accepts one operand and stores the target type as the return type. It performs an overflow check if it has any second operand, whether true or not.
      • SUBSTRING

        public static final SqlFunction SUBSTRING
        The character substring function: SUBSTRING(string FROM start [FOR length]).

        If the length parameter is a constant, the length of the result is the minimum of the length of the input and that length. Otherwise it is the length of the input.

      • REPLACE

        public static final SqlFunction REPLACE
        The REPLACE(string, search, replace) function. Not standard SQL, but in Oracle and Postgres.
      • TRANSLATE

        public static final SqlFunction TRANSLATE
        The TRANSLATE(char_value USING translation_name) function alters the character set of a string value from one base character set to another.

        It is defined in the SQL standard. See also the non-standard SqlLibraryOperators.TRANSLATE3, which has a different purpose.

      • TRIM

        public static final SqlFunction TRIM
        The "TRIM" function.
      • CHAR_LENGTH

        public static final SqlFunction CHAR_LENGTH
      • CHARACTER_LENGTH

        public static final SqlFunction CHARACTER_LENGTH
      • POWER

        public static final SqlFunction POWER
        Uses SqlOperatorTable.useDouble for its return type since we don't know what the result type will be by just looking at the operand types. For example POW(int, int) can return a non integer if the second operand is negative.
      • FIRST

        public static final SqlFunction FIRST
        FIRST function to be used within MATCH_RECOGNIZE.
      • LAST

        public static final SqlFunction LAST
        LAST function to be used within MATCH_RECOGNIZE.
      • PREV

        public static final SqlFunction PREV
        PREV function to be used within MATCH_RECOGNIZE.
      • NEXT

        public static final SqlFunction NEXT
        NEXT function to be used within MATCH_RECOGNIZE.
      • CLASSIFIER

        public static final SqlFunction CLASSIFIER
        CLASSIFIER function to be used within MATCH_RECOGNIZE.
      • MATCH_NUMBER

        public static final SqlFunction MATCH_NUMBER
        MATCH_NUMBER function to be used within MATCH_RECOGNIZE.
      • COALESCE

        public static final SqlFunction COALESCE
        The COALESCE builtin function.
      • FLOOR

        public static final SqlFunction FLOOR
        The FLOOR function.
      • CEIL

        public static final SqlFunction CEIL
        The CEIL function.
      • USER

        public static final SqlFunction USER
        The USER function.
      • CURRENT_USER

        public static final SqlFunction CURRENT_USER
        The CURRENT_USER function.
      • SESSION_USER

        public static final SqlFunction SESSION_USER
        The SESSION_USER function.
      • SYSTEM_USER

        public static final SqlFunction SYSTEM_USER
        The SYSTEM_USER function.
      • CURRENT_PATH

        public static final SqlFunction CURRENT_PATH
        The CURRENT_PATH function.
      • CURRENT_ROLE

        public static final SqlFunction CURRENT_ROLE
        The CURRENT_ROLE function.
      • CURRENT_CATALOG

        public static final SqlFunction CURRENT_CATALOG
        The CURRENT_CATALOG function.
      • CURRENT_SCHEMA

        public static final SqlFunction CURRENT_SCHEMA
        The CURRENT_SCHEMA function.
      • LOCALTIME

        public static final SqlFunction LOCALTIME
        The LOCALTIME [(precision)] function.
      • LOCALTIMESTAMP

        public static final SqlFunction LOCALTIMESTAMP
        The LOCALTIMESTAMP [(precision)] function.
      • CURRENT_TIME

        public static final SqlFunction CURRENT_TIME
        The CURRENT_TIME [(precision)] function.
      • CURRENT_TIMESTAMP

        public static final SqlFunction CURRENT_TIMESTAMP
        The CURRENT_TIMESTAMP [(precision)] function.
      • CURRENT_DATE

        public static final SqlFunction CURRENT_DATE
        The CURRENT_DATE function.
      • TIMESTAMP_ADD

        public static final SqlFunction TIMESTAMP_ADD
        The TIMESTAMPADD function.
      • TIMESTAMP_DIFF

        public static final SqlFunction TIMESTAMP_DIFF
        The TIMESTAMPDIFF function.
      • IN_FENNEL

        public static final SqlFunction IN_FENNEL
        Use of the IN_FENNEL operator forces the argument to be evaluated in Fennel. Otherwise acts as identity function.
      • CAST

        public static final SqlFunction CAST
        The SQL CAST operator.

        The SQL syntax is

        CAST(expression AS type)

        When the CAST operator is applies as a SqlCall, it has two arguments: the expression and the type. The type must not include a constraint, so CAST(x AS INTEGER NOT NULL), for instance, is invalid.

        When the CAST operator is applied as a RexCall, the target type is simply stored as the return type, not an explicit operand. For example, the expression CAST(1 + 2 AS DOUBLE) will become a call to CAST with the expression 1 + 2 as its only operand.

        The RexCall form can also have a type which contains a NOT NULL constraint. When this expression is implemented, if the value is NULL, an exception will be thrown.

      • EXTRACT

        public static final SqlFunction EXTRACT
        The SQL EXTRACT operator. Extracts a specified field value from a DATETIME or an INTERVAL. E.g.
        EXTRACT(HOUR FROM INTERVAL '364 23:59:59') returns 23
      • YEAR

        public static final SqlDatePartFunction YEAR
        The SQL YEAR operator. Returns the Year from a DATETIME E.g.
        YEAR(date '2008-9-23') returns 2008
      • QUARTER

        public static final SqlDatePartFunction QUARTER
        The SQL QUARTER operator. Returns the Quarter from a DATETIME E.g.
        QUARTER(date '2008-9-23') returns 3
      • MONTH

        public static final SqlDatePartFunction MONTH
        The SQL MONTH operator. Returns the Month from a DATETIME E.g.
        MONTH(date '2008-9-23') returns 9
      • WEEK

        public static final SqlDatePartFunction WEEK
        The SQL WEEK operator. Returns the Week from a DATETIME E.g.
        WEEK(date '2008-9-23') returns 39
      • DAYOFYEAR

        public static final SqlDatePartFunction DAYOFYEAR
        The SQL DAYOFYEAR operator. Returns the DOY from a DATETIME E.g.
        DAYOFYEAR(date '2008-9-23') returns 267
      • DAYOFMONTH

        public static final SqlDatePartFunction DAYOFMONTH
        The SQL DAYOFMONTH operator. Returns the Day from a DATETIME E.g.
        DAYOFMONTH(date '2008-9-23') returns 23
      • DAYOFWEEK

        public static final SqlDatePartFunction DAYOFWEEK
        The SQL DAYOFWEEK operator. Returns the DOW from a DATETIME E.g.
        DAYOFWEEK(date '2008-9-23') returns 2
      • HOUR

        public static final SqlDatePartFunction HOUR
        The SQL HOUR operator. Returns the Hour from a DATETIME E.g.
        HOUR(timestamp '2008-9-23 01:23:45') returns 1
      • MINUTE

        public static final SqlDatePartFunction MINUTE
        The SQL MINUTE operator. Returns the Minute from a DATETIME E.g.
        MINUTE(timestamp '2008-9-23 01:23:45') returns 23
      • SECOND

        public static final SqlDatePartFunction SECOND
        The SQL SECOND operator. Returns the Second from a DATETIME E.g.
        SECOND(timestamp '2008-9-23 01:23:45') returns 45
      • ELEMENT

        public static final SqlFunction ELEMENT
        The ELEMENT operator, used to convert a multiset with only one item to a "regular" type. Example ... log(ELEMENT(MULTISET[1])) ...
      • ITEM

        public static final SqlOperator ITEM
        The item operator [ ... ], used to access a given element of an array or map. For example, myArray[3] or "myMap['foo']".

        The SQL standard calls the ARRAY variant a <array element reference>. Index is 1-based. The standard says to raise "data exception - array element error" but we currently return null.

        MAP is not standard SQL.

      • ARRAY_VALUE_CONSTRUCTOR

        public static final SqlArrayValueConstructor ARRAY_VALUE_CONSTRUCTOR
        The ARRAY Value Constructor. e.g. "ARRAY[1, 2, 3]".
      • MAP_VALUE_CONSTRUCTOR

        public static final SqlMapValueConstructor MAP_VALUE_CONSTRUCTOR
        The MAP Value Constructor, e.g. "MAP['washington', 1, 'obama', 44]".
      • SLICE

        public static final SqlInternalOperator SLICE
        The internal "$SLICE" operator takes a multiset of records and returns a multiset of the first column of those records.

        It is introduced when multisets of scalar types are created, in order to keep types consistent. For example, MULTISET [5] has type INTEGER MULTISET but is translated to an expression of type RECORD(INTEGER EXPR$0) MULTISET because in our internal representation of multisets, every element must be a record. Applying the "$SLICE" operator to this result converts the type back to an INTEGER MULTISET multiset value.

        $SLICE is often translated away when the multiset type is converted back to scalar values.

      • ELEMENT_SLICE

        public static final SqlInternalOperator ELEMENT_SLICE
        The internal "$ELEMENT_SLICE" operator returns the first field of the only element of a multiset.

        It is introduced when multisets of scalar types are created, in order to keep types consistent. For example, ELEMENT(MULTISET [5]) is translated to $ELEMENT_SLICE(MULTISET (VALUES ROW (5 EXPR$0)) It is translated away when the multiset type is converted back to scalar values.

        NOTE: jhyde, 2006/1/9: Usages of this operator are commented out, but I'm not deleting the operator, because some multiset tests are disabled, and we may need this operator to get them working!

      • SCALAR_QUERY

        public static final SqlInternalOperator SCALAR_QUERY
        The internal "$SCALAR_QUERY" operator returns a scalar value from a record type. It assumes the record type only has one field, and returns that field as the output.
      • STRUCT_ACCESS

        public static final SqlInternalOperator STRUCT_ACCESS
        The internal $STRUCT_ACCESS operator is used to access a field of a record.

        In contrast with DOT operator, it never appears in an SqlNode tree and allows to access fields by position and not by name.

      • CARDINALITY

        public static final SqlFunction CARDINALITY
        The CARDINALITY operator, used to retrieve the number of elements in a MULTISET, ARRAY or MAP.
      • COLLECT

        public static final SqlAggFunction COLLECT
        The COLLECT operator. Multiset aggregator function.
      • LISTAGG

        public static final SqlAggFunction LISTAGG
        The LISTAGG operator. Multiset aggregator function.
      • FUSION

        public static final SqlAggFunction FUSION
        The FUSION operator. Multiset aggregator function.
      • NEXT_VALUE

        public static final SqlOperator NEXT_VALUE
        The sequence next value function: NEXT VALUE FOR sequence
      • CURRENT_VALUE

        public static final SqlOperator CURRENT_VALUE
        The sequence current value function: CURRENT VALUE FOR sequence
      • TABLESAMPLE

        public static final SqlSpecialOperator TABLESAMPLE
        The TABLESAMPLE operator.

        Examples:

        • <query> TABLESAMPLE SUBSTITUTE('sampleName') (non-standard)
        • <query> TABLESAMPLE BERNOULLI(<percent>) [REPEATABLE(<seed>)] (standard, but not implemented for FTRS yet)
        • <query> TABLESAMPLE SYSTEM(<percent>) [REPEATABLE(<seed>)] (standard, but not implemented for FTRS yet)

        Operand #0 is a query or table; Operand #1 is a SqlSampleSpec wrapped in a SqlLiteral.

      • TUMBLE_START

        public static final SqlGroupedWindowFunction TUMBLE_START
        The TUMBLE_START auxiliary function of the TUMBLE group function.
      • TUMBLE_END

        public static final SqlGroupedWindowFunction TUMBLE_END
        The TUMBLE_END auxiliary function of the TUMBLE group function.
      • HOP_START

        public static final SqlGroupedWindowFunction HOP_START
        The HOP_START auxiliary function of the HOP group function.
      • HOP_END

        public static final SqlGroupedWindowFunction HOP_END
        The HOP_END auxiliary function of the HOP group function.
      • SESSION_START

        public static final SqlGroupedWindowFunction SESSION_START
        The SESSION_START auxiliary function of the SESSION group function.
      • SESSION_END

        public static final SqlGroupedWindowFunction SESSION_END
        The SESSION_END auxiliary function of the SESSION group function.
      • PATTERN_ALTER

        public static final SqlBinaryOperator PATTERN_ALTER
        | operator to create alternate patterns within MATCH_RECOGNIZE.

        If p1 and p2 are patterns then p1 | p2 is a pattern that matches p1 or p2.

      • PATTERN_CONCAT

        public static final SqlBinaryOperator PATTERN_CONCAT
        Operator to concatenate patterns within MATCH_RECOGNIZE.

        If p1 and p2 are patterns then p1 p2 is a pattern that matches p1 followed by p2.

      • PATTERN_QUANTIFIER

        public static final SqlSpecialOperator PATTERN_QUANTIFIER
        Operator to quantify patterns within MATCH_RECOGNIZE.

        If p is a pattern then p{3, 5} is a pattern that matches between 3 and 5 occurrences of p.

      • PATTERN_PERMUTE

        public static final SqlSpecialOperator PATTERN_PERMUTE
        PERMUTE operator to combine patterns within MATCH_RECOGNIZE.

        If p1 and p2 are patterns then PERMUTE (p1, p2) is a pattern that matches all permutations of p1 and p2.

      • PATTERN_EXCLUDE

        public static final SqlSpecialOperator PATTERN_EXCLUDE
        EXCLUDE operator within MATCH_RECOGNIZE.

        If p is a pattern then {- p -} } is a pattern that excludes p from the output.

    • Constructor Detail

      • SqlStdOperatorTable

        public SqlStdOperatorTable()
    • Method Detail

      • instance

        public static SqlStdOperatorTable instance()
        Returns the standard operator table, creating it if necessary.
      • auxiliaryToGroup

        public static SqlGroupedWindowFunction auxiliaryToGroup​(SqlKind kind)
        Returns the group function for which a given kind is an auxiliary function, or null if it is not an auxiliary function.
      • convertAuxiliaryToGroupCall

        public static SqlCall convertAuxiliaryToGroupCall​(SqlCall call)
        Converts a call to a grouped auxiliary function to a call to the grouped window function. For other calls returns null.

        For example, converts TUMBLE_START(rowtime, INTERVAL '1' HOUR)) to TUMBLE(rowtime, INTERVAL '1' HOUR)).

      • convertGroupToAuxiliaryCalls

        public static java.util.List<Pair<SqlNode,​AuxiliaryConverter>> convertGroupToAuxiliaryCalls​(SqlCall call)
        Converts a call to a grouped window function to a call to its auxiliary window function(s). For other calls returns null.

        For example, converts TUMBLE_START(rowtime, INTERVAL '1' HOUR)) to TUMBLE(rowtime, INTERVAL '1' HOUR)).