| #!/usr/bin/env python |
| # encoding: utf-8 |
| |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # This file is copied from |
| # https://github.com/apache/impala/blob/branch-2.9.0/common/function-registry/impala_functions.py |
| # and modified by Doris |
| |
| # This is a list of all the functions that are not auto-generated. |
| # It contains all the meta data that describes the function. |
| |
| # The format is: |
| # [sql aliases], <return_type>, [<args>], <nullable mode>, [template_types] |
| # |
| # 'sql aliases' are the function names that can be used from sql. There must be at least |
| # one per function. |
| # |
| # 'nullable mode' reflects whether the return value of the function is null. See @Function.NullableMode |
| # for the specific mode and meaning. |
| # |
| # 'template_types' is for template function just like C++. It is optional list. |
| # eg. [['element_at', '%element_extract%'], 'V', ['MAP<K, V>', 'K'], 'ALWAYS_NULLABLE', ['K', 'V']], |
| # 'K' and 'V' is type template and will be specialized at runtime in FE to match specific args. |
| # |
| # 'template_types' support variadic template is now support variadic template. |
| # eg. [['struct'], 'STRUCT<TYPES>', ['TYPES'], 'ALWAYS_NOT_NULLABLE', ['TYPES...']], |
| # Inspired by C++ std::vector::emplace_back() function. 'TYPES...' is variadic template and will |
| # be expanded to normal templates at runtime in FE to match variadic args. Please ensure that the |
| # variadic template is placed at the last position of all templates. |
| visible_functions = [ |
| # Bit and Byte functions |
| # For functions corresponding to builtin operators, we can reuse the implementations |
| [['bitand'], 'TINYINT', ['TINYINT', 'TINYINT'], ''], |
| [['bitand'], 'SMALLINT', ['SMALLINT', 'SMALLINT'], ''], |
| [['bitand'], 'INT', ['INT', 'INT'], ''], |
| [['bitand'], 'BIGINT', ['BIGINT', 'BIGINT'], ''], |
| [['bitand'], 'LARGEINT', ['LARGEINT', 'LARGEINT'], ''], |
| |
| [['bitor'], 'TINYINT', ['TINYINT', 'TINYINT'], ''], |
| [['bitor'], 'SMALLINT', ['SMALLINT', 'SMALLINT'], ''], |
| [['bitor'], 'INT', ['INT', 'INT'], ''], |
| [['bitor'], 'BIGINT', ['BIGINT', 'BIGINT'], ''], |
| [['bitor'], 'LARGEINT', ['LARGEINT', 'LARGEINT'], ''], |
| |
| [['bitxor'], 'TINYINT', ['TINYINT', 'TINYINT'], ''], |
| [['bitxor'], 'SMALLINT', ['SMALLINT', 'SMALLINT'], ''], |
| [['bitxor'], 'INT', ['INT', 'INT'], ''], |
| [['bitxor'], 'BIGINT', ['BIGINT', 'BIGINT'], ''], |
| [['bitxor'], 'LARGEINT', ['LARGEINT', 'LARGEINT'], ''], |
| |
| [['bitnot'], 'TINYINT', ['TINYINT'], ''], |
| [['bitnot'], 'SMALLINT', ['SMALLINT'], ''], |
| [['bitnot'], 'INT', ['INT'], ''], |
| [['bitnot'], 'BIGINT', ['BIGINT'], ''], |
| [['bitnot'], 'LARGEINT', ['LARGEINT'], ''], |
| |
| # map functions |
| [['map'], 'MAP<K, V>', ['K', 'V', '...'], 'ALWAYS_NOT_NULLABLE', ['K', 'V']], |
| [['element_at', '%element_extract%'], 'V', ['MAP<K, V>', 'K'], 'ALWAYS_NULLABLE', ['K', 'V']], |
| [['size', 'map_size'], 'BIGINT', ['MAP<K, V>'], '', ['K', 'V']], |
| [['map_contains_key'], 'BOOLEAN', ['MAP<K, V>', 'K'], 'ALWAYS_NULLABLE', ['K', 'V']], |
| [['map_contains_value'], 'BOOLEAN', ['MAP<K, V>', 'V'], 'ALWAYS_NULLABLE', ['K', 'V']], |
| #[['map_contains_key_like'], 'BOOLEAN', ['MAP<K, V>', 'K'], '', ['K', 'V']], |
| [['map_keys'], 'ARRAY<K>', ['MAP<K, V>'], '', ['K', 'V']], |
| [['map_values'], 'ARRAY<V>', ['MAP<K, V>'], '', ['K', 'V']], |
| |
| # struct functions |
| [['struct'], 'STRUCT<TYPES>', ['TYPES'], 'ALWAYS_NOT_NULLABLE', ['TYPES...']], |
| [['named_struct'], 'ANY_TYPE', ['TYPES'], 'ALWAYS_NOT_NULLABLE', ['TYPES...']], |
| |
| # array functions |
| [['array'], 'ARRAY', ['BOOLEAN', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['array'], 'ARRAY', ['TINYINT', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['array'], 'ARRAY', ['SMALLINT', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['array'], 'ARRAY', ['INT', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['array'], 'ARRAY', ['BIGINT', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['array'], 'ARRAY', ['LARGEINT', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['array'], 'ARRAY', ['DATETIME', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['array'], 'ARRAY', ['DATE', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['array'], 'ARRAY', ['DATETIMEV2', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['array'], 'ARRAY', ['DATEV2', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['array'], 'ARRAY', ['FLOAT', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['array'], 'ARRAY', ['DOUBLE', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['array'], 'ARRAY', ['DECIMALV2', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['array'], 'ARRAY', ['DECIMAL32', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['array'], 'ARRAY', ['DECIMAL64', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['array'], 'ARRAY', ['DECIMAL128', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['array'], 'ARRAY', ['VARCHAR', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['array'], 'ARRAY', ['STRING', '...'], 'ALWAYS_NOT_NULLABLE'], |
| |
| [['element_at', '%element_extract%'], 'BOOLEAN', ['ARRAY_BOOLEAN', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['element_at', '%element_extract%'], 'TINYINT', ['ARRAY_TINYINT', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['element_at', '%element_extract%'], 'SMALLINT', ['ARRAY_SMALLINT', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['element_at', '%element_extract%'], 'INT', ['ARRAY_INT', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['element_at', '%element_extract%'], 'BIGINT', ['ARRAY_BIGINT', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['element_at', '%element_extract%'], 'LARGEINT', ['ARRAY_LARGEINT', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['element_at', '%element_extract%'], 'DATETIME', ['ARRAY_DATETIME', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['element_at', '%element_extract%'], 'DATE', ['ARRAY_DATE', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['element_at', '%element_extract%'], 'DATETIMEV2', ['ARRAY_DATETIMEV2', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['element_at', '%element_extract%'], 'DATEV2', ['ARRAY_DATEV2', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['element_at', '%element_extract%'], 'FLOAT', ['ARRAY_FLOAT', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['element_at', '%element_extract%'], 'DOUBLE', ['ARRAY_DOUBLE', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['element_at', '%element_extract%'], 'DECIMALV2', ['ARRAY_DECIMALV2', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['element_at', '%element_extract%'], 'DECIMAL32', ['ARRAY_DECIMAL32', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['element_at', '%element_extract%'], 'DECIMAL64', ['ARRAY_DECIMAL64', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['element_at', '%element_extract%'], 'DECIMAL128', ['ARRAY_DECIMAL128', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['element_at', '%element_extract%'], 'VARCHAR', ['ARRAY_VARCHAR', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['element_at', '%element_extract%'], 'STRING', ['ARRAY_STRING', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| |
| [['arrays_overlap'], 'BOOLEAN', ['ARRAY_BOOLEAN', 'ARRAY_BOOLEAN'], 'ALWAYS_NULLABLE'], |
| [['arrays_overlap'], 'BOOLEAN', ['ARRAY_TINYINT', 'ARRAY_TINYINT'], 'ALWAYS_NULLABLE'], |
| [['arrays_overlap'], 'BOOLEAN', ['ARRAY_SMALLINT', 'ARRAY_SMALLINT'], 'ALWAYS_NULLABLE'], |
| [['arrays_overlap'], 'BOOLEAN', ['ARRAY_INT', 'ARRAY_INT'], 'ALWAYS_NULLABLE'], |
| [['arrays_overlap'], 'BOOLEAN', ['ARRAY_BIGINT', 'ARRAY_BIGINT'], 'ALWAYS_NULLABLE'], |
| [['arrays_overlap'], 'BOOLEAN', ['ARRAY_LARGEINT', 'ARRAY_LARGEINT'], 'ALWAYS_NULLABLE'], |
| [['arrays_overlap'], 'BOOLEAN', ['ARRAY_DATETIME', 'ARRAY_DATETIME'], 'ALWAYS_NULLABLE'], |
| [['arrays_overlap'], 'BOOLEAN', ['ARRAY_DATE', 'ARRAY_DATE'], 'ALWAYS_NULLABLE'], |
| [['arrays_overlap'], 'BOOLEAN', ['ARRAY_DATETIMEV2', 'ARRAY_DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['arrays_overlap'], 'BOOLEAN', ['ARRAY_DATEV2', 'ARRAY_DATEV2'], 'ALWAYS_NULLABLE'], |
| [['arrays_overlap'], 'BOOLEAN', ['ARRAY_FLOAT', 'ARRAY_FLOAT'], 'ALWAYS_NULLABLE'], |
| [['arrays_overlap'], 'BOOLEAN', ['ARRAY_DOUBLE', 'ARRAY_DOUBLE'], 'ALWAYS_NULLABLE'], |
| [['arrays_overlap'], 'BOOLEAN', ['ARRAY_DECIMALV2', 'ARRAY_DECIMALV2'], 'ALWAYS_NULLABLE'], |
| [['arrays_overlap'], 'BOOLEAN', ['ARRAY_DECIMAL32', 'ARRAY_DECIMAL32'], 'ALWAYS_NULLABLE'], |
| [['arrays_overlap'], 'BOOLEAN', ['ARRAY_DECIMAL64', 'ARRAY_DECIMAL64'], 'ALWAYS_NULLABLE'], |
| [['arrays_overlap'], 'BOOLEAN', ['ARRAY_DECIMAL128', 'ARRAY_DECIMAL128'], 'ALWAYS_NULLABLE'], |
| [['arrays_overlap'], 'BOOLEAN', ['ARRAY_VARCHAR', 'ARRAY_VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['arrays_overlap'], 'BOOLEAN', ['ARRAY_STRING', 'ARRAY_STRING'], 'ALWAYS_NULLABLE'], |
| |
| [['array_contains'], 'BOOLEAN', ['ARRAY_BOOLEAN', 'BOOLEAN'], 'ALWAYS_NULLABLE'], |
| [['array_contains'], 'BOOLEAN', ['ARRAY_TINYINT', 'TINYINT'], 'ALWAYS_NULLABLE'], |
| [['array_contains'], 'BOOLEAN', ['ARRAY_SMALLINT', 'SMALLINT'], 'ALWAYS_NULLABLE'], |
| [['array_contains'], 'BOOLEAN', ['ARRAY_INT', 'INT'], 'ALWAYS_NULLABLE'], |
| [['array_contains'], 'BOOLEAN', ['ARRAY_BIGINT', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['array_contains'], 'BOOLEAN', ['ARRAY_LARGEINT', 'LARGEINT'], 'ALWAYS_NULLABLE'], |
| [['array_contains'], 'BOOLEAN', ['ARRAY_DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['array_contains'], 'BOOLEAN', ['ARRAY_DATE', 'DATE'], 'ALWAYS_NULLABLE'], |
| [['array_contains'], 'BOOLEAN', ['ARRAY_DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['array_contains'], 'BOOLEAN', ['ARRAY_DATEV2', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['array_contains'], 'BOOLEAN', ['ARRAY_FLOAT', 'FLOAT'], 'ALWAYS_NULLABLE'], |
| [['array_contains'], 'BOOLEAN', ['ARRAY_DOUBLE', 'DOUBLE'], 'ALWAYS_NULLABLE'], |
| [['array_contains'], 'BOOLEAN', ['ARRAY_DECIMALV2', 'DECIMALV2'], 'ALWAYS_NULLABLE'], |
| [['array_contains'], 'BOOLEAN', ['ARRAY_DECIMAL32', 'DECIMAL32'], 'ALWAYS_NULLABLE'], |
| [['array_contains'], 'BOOLEAN', ['ARRAY_DECIMAL64', 'DECIMAL64'], 'ALWAYS_NULLABLE'], |
| [['array_contains'], 'BOOLEAN', ['ARRAY_DECIMAL128', 'DECIMAL128'], 'ALWAYS_NULLABLE'], |
| [['array_contains'], 'BOOLEAN', ['ARRAY_VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['array_contains'], 'BOOLEAN', ['ARRAY_STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| |
| [['array_enumerate'], 'ARRAY_BIGINT', ['ARRAY_BOOLEAN'], ''], |
| [['array_enumerate'], 'ARRAY_BIGINT', ['ARRAY_TINYINT'], ''], |
| [['array_enumerate'], 'ARRAY_BIGINT', ['ARRAY_SMALLINT'], ''], |
| [['array_enumerate'], 'ARRAY_BIGINT', ['ARRAY_INT'], ''], |
| [['array_enumerate'], 'ARRAY_BIGINT', ['ARRAY_BIGINT'], ''], |
| [['array_enumerate'], 'ARRAY_BIGINT', ['ARRAY_LARGEINT'], ''], |
| [['array_enumerate'], 'ARRAY_BIGINT', ['ARRAY_DATETIME'], ''], |
| [['array_enumerate'], 'ARRAY_BIGINT', ['ARRAY_DATE'], ''], |
| [['array_enumerate'], 'ARRAY_BIGINT', ['ARRAY_DATETIMEV2'], ''], |
| [['array_enumerate'], 'ARRAY_BIGINT', ['ARRAY_DATEV2'], ''], |
| [['array_enumerate'], 'ARRAY_BIGINT', ['ARRAY_FLOAT'], ''], |
| [['array_enumerate'], 'ARRAY_BIGINT', ['ARRAY_DOUBLE'], ''], |
| [['array_enumerate'], 'ARRAY_BIGINT', ['ARRAY_DECIMALV2'], ''], |
| [['array_enumerate'], 'ARRAY_BIGINT', ['ARRAY_DECIMAL32'], ''], |
| [['array_enumerate'], 'ARRAY_BIGINT', ['ARRAY_DECIMAL64'], ''], |
| [['array_enumerate'], 'ARRAY_BIGINT', ['ARRAY_DECIMAL128'], ''], |
| [['array_enumerate'], 'ARRAY_BIGINT', ['ARRAY_VARCHAR'], ''], |
| [['array_enumerate'], 'ARRAY_BIGINT', ['ARRAY_STRING'], ''], |
| |
| [['array_enumerate_uniq'], 'ARRAY_BIGINT', ['ARRAY_BOOLEAN', '...'], ''], |
| [['array_enumerate_uniq'], 'ARRAY_BIGINT', ['ARRAY_TINYINT', '...'], ''], |
| [['array_enumerate_uniq'], 'ARRAY_BIGINT', ['ARRAY_SMALLINT', '...'], ''], |
| [['array_enumerate_uniq'], 'ARRAY_BIGINT', ['ARRAY_INT', '...'], ''], |
| [['array_enumerate_uniq'], 'ARRAY_BIGINT', ['ARRAY_BIGINT', '...'], ''], |
| [['array_enumerate_uniq'], 'ARRAY_BIGINT', ['ARRAY_LARGEINT', '...'], ''], |
| [['array_enumerate_uniq'], 'ARRAY_BIGINT', ['ARRAY_DATETIME', '...'], ''], |
| [['array_enumerate_uniq'], 'ARRAY_BIGINT', ['ARRAY_DATE', '...'], ''], |
| [['array_enumerate_uniq'], 'ARRAY_BIGINT', ['ARRAY_DATETIMEV2', '...'], ''], |
| [['array_enumerate_uniq'], 'ARRAY_BIGINT', ['ARRAY_DATEV2', '...'], ''], |
| [['array_enumerate_uniq'], 'ARRAY_BIGINT', ['ARRAY_FLOAT', '...'], ''], |
| [['array_enumerate_uniq'], 'ARRAY_BIGINT', ['ARRAY_DOUBLE', '...'], ''], |
| [['array_enumerate_uniq'], 'ARRAY_BIGINT', ['ARRAY_DECIMALV2', '...'], ''], |
| [['array_enumerate_uniq'], 'ARRAY_BIGINT', ['ARRAY_DECIMAL32', '...'], ''], |
| [['array_enumerate_uniq'], 'ARRAY_BIGINT', ['ARRAY_DECIMAL64', '...'], ''], |
| [['array_enumerate_uniq'], 'ARRAY_BIGINT', ['ARRAY_DECIMAL128', '...'], ''], |
| [['array_enumerate_uniq'], 'ARRAY_BIGINT', ['ARRAY_VARCHAR', '...'], ''], |
| [['array_enumerate_uniq'], 'ARRAY_BIGINT', ['ARRAY_STRING', '...'], ''], |
| |
| [['countequal'], 'BIGINT', ['ARRAY_BOOLEAN', 'BOOLEAN'], 'ALWAYS_NULLABLE'], |
| [['countequal'], 'BIGINT', ['ARRAY_TINYINT', 'TINYINT'], 'ALWAYS_NULLABLE'], |
| [['countequal'], 'BIGINT', ['ARRAY_SMALLINT', 'SMALLINT'], 'ALWAYS_NULLABLE'], |
| [['countequal'], 'BIGINT', ['ARRAY_INT', 'INT'], 'ALWAYS_NULLABLE'], |
| [['countequal'], 'BIGINT', ['ARRAY_BIGINT', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['countequal'], 'BIGINT', ['ARRAY_LARGEINT', 'LARGEINT'], 'ALWAYS_NULLABLE'], |
| [['countequal'], 'BIGINT', ['ARRAY_DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['countequal'], 'BIGINT', ['ARRAY_DATE', 'DATE'], 'ALWAYS_NULLABLE'], |
| [['countequal'], 'BIGINT', ['ARRAY_DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['countequal'], 'BIGINT', ['ARRAY_DATEV2', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['countequal'], 'BIGINT', ['ARRAY_FLOAT', 'FLOAT'], 'ALWAYS_NULLABLE'], |
| [['countequal'], 'BIGINT', ['ARRAY_DOUBLE', 'DOUBLE'], 'ALWAYS_NULLABLE'], |
| [['countequal'], 'BIGINT', ['ARRAY_DECIMALV2', 'DECIMALV2'], 'ALWAYS_NULLABLE'], |
| [['countequal'], 'BIGINT', ['ARRAY_DECIMAL32', 'DECIMAL32'], 'ALWAYS_NULLABLE'], |
| [['countequal'], 'BIGINT', ['ARRAY_DECIMAL64', 'DECIMAL64'], 'ALWAYS_NULLABLE'], |
| [['countequal'], 'BIGINT', ['ARRAY_DECIMAL128', 'DECIMAL128'], 'ALWAYS_NULLABLE'], |
| [['countequal'], 'BIGINT', ['ARRAY_VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['countequal'], 'BIGINT', ['ARRAY_STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| |
| [['array_position'], 'BIGINT', ['ARRAY_BOOLEAN', 'BOOLEAN'], 'ALWAYS_NULLABLE'], |
| [['array_position'], 'BIGINT', ['ARRAY_TINYINT', 'TINYINT'], 'ALWAYS_NULLABLE'], |
| [['array_position'], 'BIGINT', ['ARRAY_SMALLINT', 'SMALLINT'], 'ALWAYS_NULLABLE'], |
| [['array_position'], 'BIGINT', ['ARRAY_INT', 'INT'], 'ALWAYS_NULLABLE'], |
| [['array_position'], 'BIGINT', ['ARRAY_BIGINT', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['array_position'], 'BIGINT', ['ARRAY_LARGEINT', 'LARGEINT'], 'ALWAYS_NULLABLE'], |
| [['array_position'], 'BIGINT', ['ARRAY_DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['array_position'], 'BIGINT', ['ARRAY_DATE', 'DATE'], 'ALWAYS_NULLABLE'], |
| [['array_position'], 'BIGINT', ['ARRAY_DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['array_position'], 'BIGINT', ['ARRAY_DATEV2', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['array_position'], 'BIGINT', ['ARRAY_FLOAT', 'FLOAT'], 'ALWAYS_NULLABLE'], |
| [['array_position'], 'BIGINT', ['ARRAY_DOUBLE', 'DOUBLE'], 'ALWAYS_NULLABLE'], |
| [['array_position'], 'BIGINT', ['ARRAY_DECIMALV2', 'DECIMALV2'], 'ALWAYS_NULLABLE'], |
| [['array_position'], 'BIGINT', ['ARRAY_DECIMAL32', 'DECIMAL32'], 'ALWAYS_NULLABLE'], |
| [['array_position'], 'BIGINT', ['ARRAY_DECIMAL64', 'DECIMAL64'], 'ALWAYS_NULLABLE'], |
| [['array_position'], 'BIGINT', ['ARRAY_DECIMAL128', 'DECIMAL128'], 'ALWAYS_NULLABLE'], |
| [['array_position'], 'BIGINT', ['ARRAY_VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['array_position'], 'BIGINT', ['ARRAY_STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| |
| [['cardinality', 'size', 'array_size'], 'BIGINT', ['ARRAY'], ''], |
| [['array_distinct'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN'], ''], |
| [['array_distinct'], 'ARRAY_TINYINT', ['ARRAY_TINYINT'], ''], |
| [['array_distinct'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT'], ''], |
| [['array_distinct'], 'ARRAY_INT', ['ARRAY_INT'], ''], |
| [['array_distinct'], 'ARRAY_BIGINT', ['ARRAY_BIGINT'], ''], |
| [['array_distinct'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT'], ''], |
| [['array_distinct'], 'ARRAY_DATETIME', ['ARRAY_DATETIME'], ''], |
| [['array_distinct'], 'ARRAY_DATE', ['ARRAY_DATE'], ''], |
| [['array_distinct'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2'], ''], |
| [['array_distinct'], 'ARRAY_DATEV2', ['ARRAY_DATEV2'], ''], |
| [['array_distinct'], 'ARRAY_FLOAT', ['ARRAY_FLOAT'], ''], |
| [['array_distinct'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE'], ''], |
| [['array_distinct'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2'], ''], |
| [['array_distinct'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32'], ''], |
| [['array_distinct'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64'], ''], |
| [['array_distinct'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128'], ''], |
| [['array_distinct'], 'ARRAY_VARCHAR', ['ARRAY_VARCHAR'], ''], |
| [['array_distinct'], 'ARRAY_STRING', ['ARRAY_STRING'], ''], |
| |
| [['array_difference'], 'ARRAY_SMALLINT', ['ARRAY_TINYINT'], ''], |
| [['array_difference'], 'ARRAY_INT', ['ARRAY_SMALLINT'], ''], |
| [['array_difference'], 'ARRAY_BIGINT', ['ARRAY_INT'], ''], |
| [['array_difference'], 'ARRAY_LARGEINT', ['ARRAY_BIGINT'], ''], |
| [['array_difference'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT'], ''], |
| [['array_difference'], 'ARRAY_DOUBLE', ['ARRAY_FLOAT'], ''], |
| [['array_difference'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE'], ''], |
| [['array_difference'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2'], ''], |
| [['array_difference'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32'], ''], |
| [['array_difference'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64'], ''], |
| [['array_difference'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128'], ''], |
| |
| [['array_sort'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN'], ''], |
| [['array_sort'], 'ARRAY_TINYINT', ['ARRAY_TINYINT'], ''], |
| [['array_sort'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT'], ''], |
| [['array_sort'], 'ARRAY_INT', ['ARRAY_INT'], ''], |
| [['array_sort'], 'ARRAY_BIGINT', ['ARRAY_BIGINT'], ''], |
| [['array_sort'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT'], ''], |
| [['array_sort'], 'ARRAY_DATETIME', ['ARRAY_DATETIME'], ''], |
| [['array_sort'], 'ARRAY_DATE', ['ARRAY_DATE'], ''], |
| [['array_sort'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2'], ''], |
| [['array_sort'], 'ARRAY_DATEV2', ['ARRAY_DATEV2'], ''], |
| [['array_sort'], 'ARRAY_FLOAT', ['ARRAY_FLOAT'], ''], |
| [['array_sort'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE'], ''], |
| [['array_sort'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2'], ''], |
| [['array_sort'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32'], ''], |
| [['array_sort'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64'], ''], |
| [['array_sort'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128'], ''], |
| [['array_sort'], 'ARRAY_VARCHAR', ['ARRAY_VARCHAR'], ''], |
| [['array_sort'], 'ARRAY_STRING', ['ARRAY_STRING'], ''], |
| |
| [['array_reverse_sort'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN'], ''], |
| [['array_reverse_sort'], 'ARRAY_TINYINT', ['ARRAY_TINYINT'], ''], |
| [['array_reverse_sort'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT'], ''], |
| [['array_reverse_sort'], 'ARRAY_INT', ['ARRAY_INT'], ''], |
| [['array_reverse_sort'], 'ARRAY_BIGINT', ['ARRAY_BIGINT'], ''], |
| [['array_reverse_sort'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT'], ''], |
| [['array_reverse_sort'], 'ARRAY_DATETIME', ['ARRAY_DATETIME'], ''], |
| [['array_reverse_sort'], 'ARRAY_DATE', ['ARRAY_DATE'], ''], |
| [['array_reverse_sort'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2'], ''], |
| [['array_reverse_sort'], 'ARRAY_DATEV2', ['ARRAY_DATEV2'], ''], |
| [['array_reverse_sort'], 'ARRAY_FLOAT', ['ARRAY_FLOAT'], ''], |
| [['array_reverse_sort'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE'], ''], |
| [['array_reverse_sort'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2'], ''], |
| [['array_reverse_sort'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32'], ''], |
| [['array_reverse_sort'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64'], ''], |
| [['array_reverse_sort'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128'], ''], |
| [['array_reverse_sort'], 'ARRAY_VARCHAR', ['ARRAY_VARCHAR'], ''], |
| [['array_reverse_sort'], 'ARRAY_STRING', ['ARRAY_STRING'], ''], |
| |
| # array_join takes two params |
| [['array_join'], 'STRING', ['ARRAY_BOOLEAN','VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_TINYINT','VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_SMALLINT','VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_INT','VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_BIGINT','VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_LARGEINT','VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_DATETIME','VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_DATE','VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_DATETIMEV2','VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_DATEV2','VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_FLOAT','VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_DOUBLE','VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_DECIMALV2','VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_DECIMAL32','VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_DECIMAL64','VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_DECIMAL128','VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_VARCHAR','VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_STRING','VARCHAR'], ''], |
| # array_join takes three params |
| [['array_join'], 'STRING', ['ARRAY_BOOLEAN','VARCHAR', 'VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_TINYINT','VARCHAR', 'VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_SMALLINT','VARCHAR', 'VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_INT','VARCHAR', 'VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_BIGINT','VARCHAR', 'VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_LARGEINT','VARCHAR', 'VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_DATETIME','VARCHAR', 'VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_DATE','VARCHAR', 'VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_DATETIMEV2','VARCHAR', 'VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_DATEV2','VARCHAR', 'VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_FLOAT','VARCHAR', 'VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_DOUBLE','VARCHAR', 'VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_DECIMALV2','VARCHAR', 'VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_DECIMAL32','VARCHAR', 'VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_DECIMAL64','VARCHAR', 'VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_DECIMAL128','VARCHAR', 'VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_VARCHAR','VARCHAR', 'VARCHAR'], ''], |
| [['array_join'], 'STRING', ['ARRAY_STRING','VARCHAR', 'VARCHAR'], ''], |
| |
| [['array_min'], 'BOOLEAN', ['ARRAY_BOOLEAN'], 'ALWAYS_NULLABLE'], |
| [['array_min'], 'TINYINT', ['ARRAY_TINYINT'], 'ALWAYS_NULLABLE'], |
| [['array_min'], 'SMALLINT', ['ARRAY_SMALLINT'], 'ALWAYS_NULLABLE'], |
| [['array_min'], 'INT', ['ARRAY_INT'], 'ALWAYS_NULLABLE'], |
| [['array_min'], 'BIGINT', ['ARRAY_BIGINT'], 'ALWAYS_NULLABLE'], |
| [['array_min'], 'LARGEINT', ['ARRAY_LARGEINT'], 'ALWAYS_NULLABLE'], |
| [['array_min'], 'FLOAT', ['ARRAY_FLOAT'], 'ALWAYS_NULLABLE'], |
| [['array_min'], 'DOUBLE', ['ARRAY_DOUBLE'], 'ALWAYS_NULLABLE'], |
| [['array_min'], 'DECIMALV2',['ARRAY_DECIMALV2'], 'ALWAYS_NULLABLE'], |
| [['array_min'], 'DECIMAL32',['ARRAY_DECIMAL32'], 'ALWAYS_NULLABLE'], |
| [['array_min'], 'DECIMAL64',['ARRAY_DECIMAL64'], 'ALWAYS_NULLABLE'], |
| [['array_min'], 'DECIMAL128',['ARRAY_DECIMAL128'], 'ALWAYS_NULLABLE'], |
| [['array_min'], 'DATE', ['ARRAY_DATE'], 'ALWAYS_NULLABLE'], |
| [['array_min'], 'DATETIME', ['ARRAY_DATETIME'], 'ALWAYS_NULLABLE'], |
| [['array_min'], 'DATEV2', ['ARRAY_DATEV2'], 'ALWAYS_NULLABLE'], |
| [['array_min'], 'DATETIMEV2', ['ARRAY_DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['array_max'], 'BOOLEAN', ['ARRAY_BOOLEAN'], 'ALWAYS_NULLABLE'], |
| [['array_max'], 'TINYINT', ['ARRAY_TINYINT'], 'ALWAYS_NULLABLE'], |
| [['array_max'], 'SMALLINT', ['ARRAY_SMALLINT'], 'ALWAYS_NULLABLE'], |
| [['array_max'], 'INT', ['ARRAY_INT'], 'ALWAYS_NULLABLE'], |
| [['array_max'], 'BIGINT', ['ARRAY_BIGINT'], 'ALWAYS_NULLABLE'], |
| [['array_max'], 'LARGEINT', ['ARRAY_LARGEINT'], 'ALWAYS_NULLABLE'], |
| [['array_max'], 'FLOAT', ['ARRAY_FLOAT'], 'ALWAYS_NULLABLE'], |
| [['array_max'], 'DOUBLE', ['ARRAY_DOUBLE'], 'ALWAYS_NULLABLE'], |
| [['array_max'], 'DECIMALV2',['ARRAY_DECIMALV2'], 'ALWAYS_NULLABLE'], |
| [['array_max'], 'DECIMAL32',['ARRAY_DECIMAL32'], 'ALWAYS_NULLABLE'], |
| [['array_max'], 'DECIMAL64',['ARRAY_DECIMAL64'], 'ALWAYS_NULLABLE'], |
| [['array_max'], 'DECIMAL128',['ARRAY_DECIMAL128'], 'ALWAYS_NULLABLE'], |
| [['array_max'], 'DATE', ['ARRAY_DATE'], 'ALWAYS_NULLABLE'], |
| [['array_max'], 'DATETIME', ['ARRAY_DATETIME'], 'ALWAYS_NULLABLE'], |
| [['array_max'], 'DATEV2', ['ARRAY_DATEV2'], 'ALWAYS_NULLABLE'], |
| [['array_max'], 'DATETIMEV2', ['ARRAY_DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['array_sum'], 'BIGINT', ['ARRAY_BOOLEAN'], 'ALWAYS_NULLABLE'], |
| [['array_sum'], 'BIGINT', ['ARRAY_TINYINT'], 'ALWAYS_NULLABLE'], |
| [['array_sum'], 'BIGINT', ['ARRAY_SMALLINT'], 'ALWAYS_NULLABLE'], |
| [['array_sum'], 'BIGINT', ['ARRAY_INT'], 'ALWAYS_NULLABLE'], |
| [['array_sum'], 'BIGINT', ['ARRAY_BIGINT'], 'ALWAYS_NULLABLE'], |
| [['array_sum'], 'LARGEINT', ['ARRAY_LARGEINT'], 'ALWAYS_NULLABLE'], |
| [['array_sum'], 'DOUBLE', ['ARRAY_FLOAT'], 'ALWAYS_NULLABLE'], |
| [['array_sum'], 'DOUBLE', ['ARRAY_DOUBLE'], 'ALWAYS_NULLABLE'], |
| [['array_sum'], 'DECIMALV2',['ARRAY_DECIMALV2'], 'ALWAYS_NULLABLE'], |
| [['array_sum'], 'DECIMAL128',['ARRAY_DECIMAL32'], 'ALWAYS_NULLABLE'], |
| [['array_sum'], 'DECIMAL128',['ARRAY_DECIMAL64'], 'ALWAYS_NULLABLE'], |
| [['array_sum'], 'DECIMAL128',['ARRAY_DECIMAL128'], 'ALWAYS_NULLABLE'], |
| [['array_avg'], 'DOUBLE', ['ARRAY_BOOLEAN'], 'ALWAYS_NULLABLE'], |
| [['array_avg'], 'DOUBLE', ['ARRAY_TINYINT'], 'ALWAYS_NULLABLE'], |
| [['array_avg'], 'DOUBLE', ['ARRAY_SMALLINT'], 'ALWAYS_NULLABLE'], |
| [['array_avg'], 'DOUBLE', ['ARRAY_INT'], 'ALWAYS_NULLABLE'], |
| [['array_avg'], 'DOUBLE', ['ARRAY_BIGINT'], 'ALWAYS_NULLABLE'], |
| [['array_avg'], 'DOUBLE', ['ARRAY_LARGEINT'], 'ALWAYS_NULLABLE'], |
| [['array_avg'], 'DOUBLE', ['ARRAY_FLOAT'], 'ALWAYS_NULLABLE'], |
| [['array_avg'], 'DOUBLE', ['ARRAY_DOUBLE'], 'ALWAYS_NULLABLE'], |
| [['array_avg'], 'DECIMALV2',['ARRAY_DECIMALV2'], 'ALWAYS_NULLABLE'], |
| [['array_avg'], 'DECIMAL128',['ARRAY_DECIMAL32'], 'ALWAYS_NULLABLE'], |
| [['array_avg'], 'DECIMAL128',['ARRAY_DECIMAL64'], 'ALWAYS_NULLABLE'], |
| [['array_avg'], 'DECIMAL128',['ARRAY_DECIMAL128'], 'ALWAYS_NULLABLE'], |
| [['array_product'], 'DOUBLE', ['ARRAY_BOOLEAN'], 'ALWAYS_NULLABLE'], |
| [['array_product'], 'DOUBLE', ['ARRAY_TINYINT'], 'ALWAYS_NULLABLE'], |
| [['array_product'], 'DOUBLE', ['ARRAY_SMALLINT'], 'ALWAYS_NULLABLE'], |
| [['array_product'], 'DOUBLE', ['ARRAY_INT'], 'ALWAYS_NULLABLE'], |
| [['array_product'], 'DOUBLE', ['ARRAY_BIGINT'], 'ALWAYS_NULLABLE'], |
| [['array_product'], 'DOUBLE', ['ARRAY_LARGEINT'], 'ALWAYS_NULLABLE'], |
| [['array_product'], 'DOUBLE', ['ARRAY_FLOAT'], 'ALWAYS_NULLABLE'], |
| [['array_product'], 'DOUBLE', ['ARRAY_DOUBLE'], 'ALWAYS_NULLABLE'], |
| [['array_product'], 'DECIMALV2',['ARRAY_DECIMALV2'], 'ALWAYS_NULLABLE'], |
| [['array_product'], 'DECIMAL128',['ARRAY_DECIMAL32'], 'ALWAYS_NULLABLE'], |
| [['array_product'], 'DECIMAL128',['ARRAY_DECIMAL64'], 'ALWAYS_NULLABLE'], |
| [['array_product'], 'DECIMAL128',['ARRAY_DECIMAL128'], 'ALWAYS_NULLABLE'], |
| |
| [['array_remove'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN', 'BOOLEAN'], ''], |
| [['array_remove'], 'ARRAY_TINYINT', ['ARRAY_TINYINT', 'TINYINT'], ''], |
| [['array_remove'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT', 'SMALLINT'], ''], |
| [['array_remove'], 'ARRAY_INT', ['ARRAY_INT', 'INT'], ''], |
| [['array_remove'], 'ARRAY_BIGINT', ['ARRAY_BIGINT', 'BIGINT'], ''], |
| [['array_remove'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT', 'LARGEINT'], ''], |
| [['array_remove'], 'ARRAY_FLOAT', ['ARRAY_FLOAT', 'FLOAT'], ''], |
| [['array_remove'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE', 'DOUBLE'], ''], |
| [['array_remove'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2', 'DECIMALV2'], ''], |
| [['array_remove'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32', 'DECIMAL32'], ''], |
| [['array_remove'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64', 'DECIMAL64'], ''], |
| [['array_remove'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128', 'DECIMAL128'], ''], |
| [['array_remove'], 'ARRAY_DATETIME', ['ARRAY_DATETIME', 'DATETIME'], ''], |
| [['array_remove'], 'ARRAY_DATE', ['ARRAY_DATE', 'DATE'], ''], |
| [['array_remove'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2', 'DATETIMEV2'], ''], |
| [['array_remove'], 'ARRAY_DATEV2', ['ARRAY_DATEV2', 'DATEV2'], ''], |
| [['array_remove'], 'ARRAY_VARCHAR', ['ARRAY_VARCHAR', 'VARCHAR'], ''], |
| [['array_remove'], 'ARRAY_STRING', ['ARRAY_STRING', 'STRING'], ''], |
| |
| [['array_union'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN', 'ARRAY_BOOLEAN'], ''], |
| [['array_union'], 'ARRAY_TINYINT', ['ARRAY_TINYINT', 'ARRAY_TINYINT'], ''], |
| [['array_union'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT', 'ARRAY_SMALLINT'], ''], |
| [['array_union'], 'ARRAY_INT', ['ARRAY_INT', 'ARRAY_INT'], ''], |
| [['array_union'], 'ARRAY_BIGINT', ['ARRAY_BIGINT', 'ARRAY_BIGINT'], ''], |
| [['array_union'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT', 'ARRAY_LARGEINT'], ''], |
| [['array_union'], 'ARRAY_FLOAT', ['ARRAY_FLOAT', 'ARRAY_FLOAT'], ''], |
| [['array_union'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE', 'ARRAY_DOUBLE'], ''], |
| [['array_union'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2', 'ARRAY_DECIMALV2'], ''], |
| [['array_union'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32', 'ARRAY_DECIMAL32'], ''], |
| [['array_union'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64', 'ARRAY_DECIMAL64'], ''], |
| [['array_union'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128', 'ARRAY_DECIMAL128'], ''], |
| [['array_union'], 'ARRAY_DATETIME', ['ARRAY_DATETIME', 'ARRAY_DATETIME'], ''], |
| [['array_union'], 'ARRAY_DATE', ['ARRAY_DATE', 'ARRAY_DATE'], ''], |
| [['array_union'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2', 'ARRAY_DATETIMEV2'], ''], |
| [['array_union'], 'ARRAY_DATEV2', ['ARRAY_DATEV2', 'ARRAY_DATEV2'], ''], |
| [['array_union'], 'ARRAY_VARCHAR', ['ARRAY_VARCHAR', 'ARRAY_VARCHAR'], ''], |
| [['array_union'], 'ARRAY_STRING', ['ARRAY_STRING', 'ARRAY_STRING'], ''], |
| |
| [['array_apply'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN', 'VARCHAR', 'BOOLEAN'], ''], |
| [['array_apply'], 'ARRAY_TINYINT', ['ARRAY_TINYINT', 'VARCHAR', 'TINYINT'], ''], |
| [['array_apply'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT', 'VARCHAR', 'SMALLINT'], ''], |
| [['array_apply'], 'ARRAY_INT', ['ARRAY_INT', 'VARCHAR', 'INT'], ''], |
| [['array_apply'], 'ARRAY_BIGINT', ['ARRAY_BIGINT', 'VARCHAR', 'BIGINT'], ''], |
| [['array_apply'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT', 'VARCHAR', 'ARRAY_LARGEINT'], ''], |
| [['array_apply'], 'ARRAY_FLOAT', ['ARRAY_FLOAT', 'VARCHAR', 'FLOAT'], ''], |
| [['array_apply'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE', 'VARCHAR', 'DOUBLE'], ''], |
| [['array_apply'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2', 'VARCHAR', 'DECIMALV2'], ''], |
| [['array_apply'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32', 'VARCHAR', 'DECIMAL32'], ''], |
| [['array_apply'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64', 'VARCHAR', 'DECIMAL64'], ''], |
| [['array_apply'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128', 'VARCHAR', 'DECIMAL128'], ''], |
| [['array_apply'], 'ARRAY_DATETIME', ['ARRAY_DATETIME', 'VARCHAR', 'DATETIME'], ''], |
| [['array_apply'], 'ARRAY_DATE', ['ARRAY_DATE', 'DATE', 'DATE'], ''], |
| [['array_apply'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2', 'VARCHAR', 'DATETIMEV2'], ''], |
| [['array_apply'], 'ARRAY_DATEV2', ['ARRAY_DATEV2', 'VARCHAR', 'DATEV2'], ''], |
| |
| [['array_concat'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN', '...'], ''], |
| [['array_concat'], 'ARRAY_TINYINT', ['ARRAY_TINYINT', '...'], ''], |
| [['array_concat'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT', '...'], ''], |
| [['array_concat'], 'ARRAY_INT', ['ARRAY_INT', '...'], ''], |
| [['array_concat'], 'ARRAY_BIGINT', ['ARRAY_BIGINT', '...'], ''], |
| [['array_concat'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT', '...'], ''], |
| [['array_concat'], 'ARRAY_FLOAT', ['ARRAY_FLOAT', '...'], ''], |
| [['array_concat'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE', '...'], ''], |
| [['array_concat'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2', '...'], ''], |
| [['array_concat'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32', '...'], ''], |
| [['array_concat'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64', '...'], ''], |
| [['array_concat'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128', '...'], ''], |
| [['array_concat'], 'ARRAY_DATETIME', ['ARRAY_DATETIME', '...'], ''], |
| [['array_concat'], 'ARRAY_DATE', ['ARRAY_DATE', '...'], ''], |
| [['array_concat'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2', '...'], ''], |
| [['array_concat'], 'ARRAY_DATEV2', ['ARRAY_DATEV2', '...'], ''], |
| [['array_concat'], 'ARRAY_VARCHAR', ['ARRAY_VARCHAR', '...'], ''], |
| [['array_concat'], 'ARRAY_STRING', ['ARRAY_STRING', '...'], ''], |
| |
| [['array_except'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN', 'ARRAY_BOOLEAN'], ''], |
| [['array_except'], 'ARRAY_TINYINT', ['ARRAY_TINYINT', 'ARRAY_TINYINT'], ''], |
| [['array_except'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT', 'ARRAY_SMALLINT'], ''], |
| [['array_except'], 'ARRAY_INT', ['ARRAY_INT', 'ARRAY_INT'], ''], |
| [['array_except'], 'ARRAY_BIGINT', ['ARRAY_BIGINT', 'ARRAY_BIGINT'], ''], |
| [['array_except'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT', 'ARRAY_LARGEINT'], ''], |
| [['array_except'], 'ARRAY_FLOAT', ['ARRAY_FLOAT', 'ARRAY_FLOAT'], ''], |
| [['array_except'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE', 'ARRAY_DOUBLE'], ''], |
| [['array_except'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2', 'ARRAY_DECIMALV2'], ''], |
| [['array_except'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32', 'ARRAY_DECIMAL32'], ''], |
| [['array_except'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64', 'ARRAY_DECIMAL64'], ''], |
| [['array_except'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128', 'ARRAY_DECIMAL128'], ''], |
| [['array_except'], 'ARRAY_DATETIME', ['ARRAY_DATETIME', 'ARRAY_DATETIME'], ''], |
| [['array_except'], 'ARRAY_DATE', ['ARRAY_DATE', 'ARRAY_DATE'], ''], |
| [['array_except'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2', 'ARRAY_DATETIMEV2'], ''], |
| [['array_except'], 'ARRAY_DATEV2', ['ARRAY_DATEV2', 'ARRAY_DATEV2'], ''], |
| [['array_except'], 'ARRAY_VARCHAR', ['ARRAY_VARCHAR', 'ARRAY_VARCHAR'], ''], |
| [['array_except'], 'ARRAY_STRING', ['ARRAY_STRING', 'ARRAY_STRING'], ''], |
| |
| [['array_compact'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN'], ''], |
| [['array_compact'], 'ARRAY_TINYINT', ['ARRAY_TINYINT'], ''], |
| [['array_compact'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT'], ''], |
| [['array_compact'], 'ARRAY_INT', ['ARRAY_INT'], ''], |
| [['array_compact'], 'ARRAY_BIGINT', ['ARRAY_BIGINT'], ''], |
| [['array_compact'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT'], ''], |
| [['array_compact'], 'ARRAY_DATETIME', ['ARRAY_DATETIME'], ''], |
| [['array_compact'], 'ARRAY_DATE', ['ARRAY_DATE'], ''], |
| [['array_compact'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2'], ''], |
| [['array_compact'], 'ARRAY_DATEV2', ['ARRAY_DATEV2'], ''], |
| [['array_compact'], 'ARRAY_FLOAT', ['ARRAY_FLOAT'], ''], |
| [['array_compact'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE'], ''], |
| [['array_compact'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2'], ''], |
| [['array_compact'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32'], ''], |
| [['array_compact'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64'], ''], |
| [['array_compact'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128'], ''], |
| [['array_compact'], 'ARRAY_VARCHAR', ['ARRAY_VARCHAR'], ''], |
| |
| [['array_intersect'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN', 'ARRAY_BOOLEAN'], ''], |
| [['array_intersect'], 'ARRAY_TINYINT', ['ARRAY_TINYINT', 'ARRAY_TINYINT'], ''], |
| [['array_intersect'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT', 'ARRAY_SMALLINT'], ''], |
| [['array_intersect'], 'ARRAY_INT', ['ARRAY_INT', 'ARRAY_INT'], ''], |
| [['array_intersect'], 'ARRAY_BIGINT', ['ARRAY_BIGINT', 'ARRAY_BIGINT'], ''], |
| [['array_intersect'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT', 'ARRAY_LARGEINT'], ''], |
| [['array_intersect'], 'ARRAY_FLOAT', ['ARRAY_FLOAT', 'ARRAY_FLOAT'], ''], |
| [['array_intersect'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE', 'ARRAY_DOUBLE'], ''], |
| [['array_intersect'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2', 'ARRAY_DECIMALV2'], ''], |
| [['array_intersect'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32', 'ARRAY_DECIMAL32'], ''], |
| [['array_intersect'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64', 'ARRAY_DECIMAL64'], ''], |
| [['array_intersect'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128', 'ARRAY_DECIMAL128'], ''], |
| [['array_intersect'], 'ARRAY_DATETIME', ['ARRAY_DATETIME', 'ARRAY_DATETIME'], ''], |
| [['array_intersect'], 'ARRAY_DATE', ['ARRAY_DATE', 'ARRAY_DATE'], ''], |
| [['array_intersect'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2', 'ARRAY_DATETIMEV2'], ''], |
| [['array_intersect'], 'ARRAY_DATEV2', ['ARRAY_DATEV2', 'ARRAY_DATEV2'], ''], |
| [['array_intersect'], 'ARRAY_VARCHAR', ['ARRAY_VARCHAR', 'ARRAY_VARCHAR'], ''], |
| [['array_intersect'], 'ARRAY_STRING', ['ARRAY_STRING', 'ARRAY_STRING'], ''], |
| |
| [['array_slice', '%element_slice%'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_TINYINT', ['ARRAY_TINYINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_INT', ['ARRAY_INT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_BIGINT', ['ARRAY_BIGINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_DATETIME', ['ARRAY_DATETIME', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_DATE', ['ARRAY_DATE', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_DATEV2', ['ARRAY_DATEV2', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_FLOAT', ['ARRAY_FLOAT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_VARCHAR', ['ARRAY_VARCHAR', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_STRING', ['ARRAY_STRING', 'BIGINT'], ''], |
| |
| [['array_slice', '%element_slice%'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN', 'BIGINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_TINYINT', ['ARRAY_TINYINT', 'BIGINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT', 'BIGINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_INT', ['ARRAY_INT', 'BIGINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_BIGINT', ['ARRAY_BIGINT', 'BIGINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT', 'BIGINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_DATETIME', ['ARRAY_DATETIME', 'BIGINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_DATE', ['ARRAY_DATE', 'BIGINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2', 'BIGINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_DATEV2', ['ARRAY_DATEV2', 'BIGINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_FLOAT', ['ARRAY_FLOAT', 'BIGINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE', 'BIGINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2', 'BIGINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32', 'BIGINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64', 'BIGINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128', 'BIGINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_VARCHAR', ['ARRAY_VARCHAR', 'BIGINT', 'BIGINT'], ''], |
| [['array_slice', '%element_slice%'], 'ARRAY_STRING', ['ARRAY_STRING', 'BIGINT', 'BIGINT'], ''], |
| |
| [['array_popback'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN'], ''], |
| [['array_popback'], 'ARRAY_TINYINT', ['ARRAY_TINYINT'], ''], |
| [['array_popback'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT'], ''], |
| [['array_popback'], 'ARRAY_INT', ['ARRAY_INT'], ''], |
| [['array_popback'], 'ARRAY_BIGINT', ['ARRAY_BIGINT'], ''], |
| [['array_popback'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT'], ''], |
| [['array_popback'], 'ARRAY_DATETIME', ['ARRAY_DATETIME'], ''], |
| [['array_popback'], 'ARRAY_DATE', ['ARRAY_DATE'], ''], |
| [['array_popback'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2'], ''], |
| [['array_popback'], 'ARRAY_DATEV2', ['ARRAY_DATEV2'], ''], |
| [['array_popback'], 'ARRAY_FLOAT', ['ARRAY_FLOAT'], ''], |
| [['array_popback'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE'], ''], |
| [['array_popback'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2'], ''], |
| [['array_popback'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32'], ''], |
| [['array_popback'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64'], ''], |
| [['array_popback'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128'], ''], |
| [['array_popback'], 'ARRAY_VARCHAR', ['ARRAY_VARCHAR'], ''], |
| [['array_popback'], 'ARRAY_STRING', ['ARRAY_STRING'], ''], |
| |
| [['array_popfront'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN'], ''], |
| [['array_popfront'], 'ARRAY_TINYINT', ['ARRAY_TINYINT'], ''], |
| [['array_popfront'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT'], ''], |
| [['array_popfront'], 'ARRAY_INT', ['ARRAY_INT'], ''], |
| [['array_popfront'], 'ARRAY_BIGINT', ['ARRAY_BIGINT'], ''], |
| [['array_popfront'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT'], ''], |
| [['array_popfront'], 'ARRAY_DATETIME', ['ARRAY_DATETIME'], ''], |
| [['array_popfront'], 'ARRAY_DATE', ['ARRAY_DATE'], ''], |
| [['array_popfront'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2'], ''], |
| [['array_popfront'], 'ARRAY_DATEV2', ['ARRAY_DATEV2'], ''], |
| [['array_popfront'], 'ARRAY_FLOAT', ['ARRAY_FLOAT'], ''], |
| [['array_popfront'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE'], ''], |
| [['array_popfront'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2'], ''], |
| [['array_popfront'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32'], ''], |
| [['array_popfront'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64'], ''], |
| [['array_popfront'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128'], ''], |
| [['array_popfront'], 'ARRAY_VARCHAR', ['ARRAY_VARCHAR'], ''], |
| [['array_popfront'], 'ARRAY_STRING', ['ARRAY_STRING'], ''], |
| [['array_map'], 'ARRAY', ['LAMBDA_FUNCTION', 'ARRAY', '...'], ''], |
| [['array_filter'], 'ARRAY_BOOLEAN',['ARRAY_BOOLEAN', 'ARRAY_BOOLEAN'], ''], |
| [['array_filter'], 'ARRAY_TINYINT',['ARRAY_TINYINT', 'ARRAY_BOOLEAN'], ''], |
| [['array_filter'], 'ARRAY_SMALLINT',['ARRAY_SMALLINT', 'ARRAY_BOOLEAN'], ''], |
| [['array_filter'], 'ARRAY_INT',['ARRAY_INT', 'ARRAY_BOOLEAN'], ''], |
| [['array_filter'], 'ARRAY_BIGINT',['ARRAY_BIGINT', 'ARRAY_BOOLEAN'], ''], |
| [['array_filter'], 'ARRAY_LARGEINT',['ARRAY_LARGEINT', 'ARRAY_BOOLEAN'], ''], |
| [['array_filter'], 'ARRAY_FLOAT',['ARRAY_FLOAT', 'ARRAY_BOOLEAN'], ''], |
| [['array_filter'], 'ARRAY_DOUBLE',['ARRAY_DOUBLE', 'ARRAY_BOOLEAN'], ''], |
| [['array_filter'], 'ARRAY_VARCHAR',['ARRAY_VARCHAR', 'ARRAY_BOOLEAN'], ''], |
| [['array_filter'], 'ARRAY_STRING',['ARRAY_STRING', 'ARRAY_BOOLEAN'], ''], |
| [['array_filter'], 'ARRAY_DECIMALV2',['ARRAY_DECIMALV2', 'ARRAY_BOOLEAN'], ''], |
| [['array_filter'], 'ARRAY_DECIMAL32',['ARRAY_DECIMAL32', 'ARRAY_BOOLEAN'], ''], |
| [['array_filter'], 'ARRAY_DECIMAL64',['ARRAY_DECIMAL64', 'ARRAY_BOOLEAN'], ''], |
| [['array_filter'], 'ARRAY_DECIMAL128',['ARRAY_DECIMAL128', 'ARRAY_BOOLEAN'], ''], |
| [['array_filter'], 'ARRAY_DATETIME',['ARRAY_DATETIME', 'ARRAY_BOOLEAN'], ''], |
| [['array_filter'], 'ARRAY_DATE',['ARRAY_DATE', 'ARRAY_BOOLEAN'], ''], |
| [['array_filter'], 'ARRAY_DATETIMEV2',['ARRAY_DATETIMEV2', 'ARRAY_BOOLEAN'], ''], |
| [['array_filter'], 'ARRAY_DATEV2',['ARRAY_DATEV2', 'ARRAY_BOOLEAN'], ''], |
| [['array_sortby'], 'ARRAY<K>',['ARRAY<K>', 'ARRAY_BOOLEAN'], 'CUSTOM', ['K']], |
| [['array_sortby'], 'ARRAY<K>',['ARRAY<K>', 'ARRAY_TINYINT'], 'CUSTOM', ['K']], |
| [['array_sortby'], 'ARRAY<K>',['ARRAY<K>', 'ARRAY_SMALLINT'], 'CUSTOM', ['K']], |
| [['array_sortby'], 'ARRAY<K>',['ARRAY<K>', 'ARRAY_INT'], 'CUSTOM', ['K']], |
| [['array_sortby'], 'ARRAY<K>',['ARRAY<K>', 'ARRAY_BIGINT'], 'CUSTOM', ['K']], |
| [['array_sortby'], 'ARRAY<K>',['ARRAY<K>', 'ARRAY_LARGEINT'], 'CUSTOM', ['K']], |
| [['array_sortby'], 'ARRAY<K>',['ARRAY<K>', 'ARRAY_FLOAT'], 'CUSTOM', ['K']], |
| [['array_sortby'], 'ARRAY<K>',['ARRAY<K>', 'ARRAY_DOUBLE'], 'CUSTOM', ['K']], |
| [['array_sortby'], 'ARRAY<K>',['ARRAY<K>', 'ARRAY_VARCHAR'], 'CUSTOM', ['K']], |
| [['array_sortby'], 'ARRAY<K>',['ARRAY<K>', 'ARRAY_STRING'], 'CUSTOM', ['K']], |
| [['array_sortby'], 'ARRAY<K>',['ARRAY<K>', 'ARRAY_DECIMALV2'], 'CUSTOM', ['K']], |
| [['array_sortby'], 'ARRAY<K>',['ARRAY<K>', 'ARRAY_DECIMAL32'], 'CUSTOM', ['K']], |
| [['array_sortby'], 'ARRAY<K>',['ARRAY<K>', 'ARRAY_DECIMAL64'], 'CUSTOM', ['K']], |
| [['array_sortby'], 'ARRAY<K>',['ARRAY<K>', 'ARRAY_DECIMAL128'], 'CUSTOM', ['K']], |
| [['array_sortby'], 'ARRAY<K>',['ARRAY<K>', 'ARRAY_DATETIME'], 'CUSTOM', ['K']], |
| [['array_sortby'], 'ARRAY<K>',['ARRAY<K>', 'ARRAY_DATE'], 'CUSTOM', ['K']], |
| [['array_sortby'], 'ARRAY<K>',['ARRAY<K>', 'ARRAY_DATETIMEV2'], 'CUSTOM', ['K']], |
| [['array_sortby'], 'ARRAY<K>',['ARRAY<K>', 'ARRAY_DATEV2'], 'CUSTOM', ['K']], |
| |
| [['array_exists'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN'], ''], |
| [['array_exists'], 'ARRAY_BOOLEAN', ['ARRAY_TINYINT'], ''], |
| [['array_exists'], 'ARRAY_BOOLEAN', ['ARRAY_SMALLINT'], ''], |
| [['array_exists'], 'ARRAY_BOOLEAN', ['ARRAY_INT'], ''], |
| [['array_exists'], 'ARRAY_BOOLEAN', ['ARRAY_BIGINT'], ''], |
| [['array_exists'], 'ARRAY_BOOLEAN', ['ARRAY_LARGEINT'], ''], |
| [['array_exists'], 'ARRAY_BOOLEAN', ['ARRAY_DATETIME'], ''], |
| [['array_exists'], 'ARRAY_BOOLEAN', ['ARRAY_DATE'], ''], |
| [['array_exists'], 'ARRAY_BOOLEAN', ['ARRAY_DATETIMEV2'], ''], |
| [['array_exists'], 'ARRAY_BOOLEAN', ['ARRAY_DATEV2'], ''], |
| [['array_exists'], 'ARRAY_BOOLEAN', ['ARRAY_FLOAT'], ''], |
| [['array_exists'], 'ARRAY_BOOLEAN', ['ARRAY_DOUBLE'], ''], |
| [['array_exists'], 'ARRAY_BOOLEAN', ['ARRAY_DECIMALV2'], ''], |
| [['array_exists'], 'ARRAY_BOOLEAN', ['ARRAY_DECIMAL32'], ''], |
| [['array_exists'], 'ARRAY_BOOLEAN', ['ARRAY_DECIMAL64'], ''], |
| [['array_exists'], 'ARRAY_BOOLEAN', ['ARRAY_DECIMAL128'], ''], |
| [['array_exists'], 'ARRAY_BOOLEAN', ['ARRAY_VARCHAR'], ''], |
| [['array_exists'], 'ARRAY_BOOLEAN', ['ARRAY_STRING'], ''], |
| |
| [['array_first_index'], 'BIGINT', ['ARRAY_BOOLEAN'], 'ALWAYS_NOT_NULLABLE'], |
| |
| [['array_shuffle', 'shuffle'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_TINYINT', ['ARRAY_TINYINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_INT', ['ARRAY_INT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_BIGINT', ['ARRAY_BIGINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_DATETIME', ['ARRAY_DATETIME'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_DATE', ['ARRAY_DATE'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_DATEV2', ['ARRAY_DATEV2'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_FLOAT', ['ARRAY_FLOAT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_VARCHAR', ['ARRAY_VARCHAR'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_STRING', ['ARRAY_STRING'], ''], |
| |
| [['array_shuffle', 'shuffle'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN', 'BIGINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_TINYINT', ['ARRAY_TINYINT', 'BIGINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT', 'BIGINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_INT', ['ARRAY_INT', 'BIGINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_BIGINT', ['ARRAY_BIGINT', 'BIGINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT', 'BIGINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_DATETIME', ['ARRAY_DATETIME', 'BIGINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_DATE', ['ARRAY_DATE', 'BIGINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2', 'BIGINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_DATEV2', ['ARRAY_DATEV2', 'BIGINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_FLOAT', ['ARRAY_FLOAT', 'BIGINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE', 'BIGINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2', 'BIGINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32', 'BIGINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64', 'BIGINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128', 'BIGINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_VARCHAR', ['ARRAY_VARCHAR', 'BIGINT'], ''], |
| [['array_shuffle', 'shuffle'], 'ARRAY_STRING', ['ARRAY_STRING', 'BIGINT'], ''], |
| |
| [['array_pushfront'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN', 'BOOLEAN'], 'ALWAYS_NULLABLE'], |
| [['array_pushfront'], 'ARRAY_TINYINT', ['ARRAY_TINYINT', 'TINYINT'], 'ALWAYS_NULLABLE'], |
| [['array_pushfront'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT', 'SMALLINT'], 'ALWAYS_NULLABLE'], |
| [['array_pushfront'], 'ARRAY_INT', ['ARRAY_INT', 'INT'], 'ALWAYS_NULLABLE'], |
| [['array_pushfront'], 'ARRAY_BIGINT', ['ARRAY_BIGINT', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['array_pushfront'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT', 'LARGEINT'], 'ALWAYS_NULLABLE'], |
| [['array_pushfront'], 'ARRAY_DATETIME', ['ARRAY_DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['array_pushfront'], 'ARRAY_DATE', ['ARRAY_DATE', 'DATE'], 'ALWAYS_NULLABLE'], |
| [['array_pushfront'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['array_pushfront'], 'ARRAY_DATEV2', ['ARRAY_DATEV2', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['array_pushfront'], 'ARRAY_FLOAT', ['ARRAY_FLOAT', 'FLOAT'], 'ALWAYS_NULLABLE'], |
| [['array_pushfront'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE', 'DOUBLE'], 'ALWAYS_NULLABLE'], |
| [['array_pushfront'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2', 'DECIMALV2'], 'ALWAYS_NULLABLE'], |
| [['array_pushfront'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32', 'DECIMAL32'], 'ALWAYS_NULLABLE'], |
| [['array_pushfront'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64', 'DECIMAL64'], 'ALWAYS_NULLABLE'], |
| [['array_pushfront'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128', 'DECIMAL128'], 'ALWAYS_NULLABLE'], |
| [['array_pushfront'], 'ARRAY_VARCHAR', ['ARRAY_VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['array_pushfront'], 'ARRAY_STRING', ['ARRAY_STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| |
| [['array_with_constant'], 'ARRAY_BOOLEAN', ['BIGINT', 'BOOLEAN'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_with_constant'], 'ARRAY_TINYINT', ['BIGINT', 'TINYINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_with_constant'], 'ARRAY_SMALLINT', ['BIGINT','SMALLINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_with_constant'], 'ARRAY_INT', ['BIGINT', 'INT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_with_constant'], 'ARRAY_BIGINT', ['BIGINT', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_with_constant'], 'ARRAY_LARGEINT', ['BIGINT', 'LARGEINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_with_constant'], 'ARRAY_DATETIME', ['BIGINT', 'DATETIME'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_with_constant'], 'ARRAY_DATE', ['BIGINT', 'DATE'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_with_constant'], 'ARRAY_DATETIMEV2', ['BIGINT', 'DATETIMEV2'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_with_constant'], 'ARRAY_DATEV2', ['BIGINT', 'DATEV2'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_with_constant'], 'ARRAY_FLOAT', ['BIGINT', 'FLOAT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_with_constant'], 'ARRAY_DOUBLE', ['BIGINT', 'DOUBLE'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_with_constant'], 'ARRAY_DECIMALV2', ['BIGINT', 'DECIMALV2'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_with_constant'], 'ARRAY_DECIMAL32', ['BIGINT', 'DECIMAL32'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_with_constant'], 'ARRAY_DECIMAL64', ['BIGINT', 'DECIMAL64'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_with_constant'], 'ARRAY_DECIMAL128', ['BIGINT', 'DECIMAL128'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_with_constant'], 'ARRAY_VARCHAR', ['BIGINT', 'VARCHAR'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_with_constant'], 'ARRAY_STRING', ['BIGINT', 'STRING'], 'ALWAYS_NOT_NULLABLE'], |
| |
| [['array_repeat'], 'ARRAY_BOOLEAN', ['BOOLEAN', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_repeat'], 'ARRAY_TINYINT', ['TINYINT', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_repeat'], 'ARRAY_SMALLINT', ['SMALLINT', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_repeat'], 'ARRAY_INT', ['INT', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_repeat'], 'ARRAY_BIGINT', ['BIGINT', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_repeat'], 'ARRAY_LARGEINT', ['LARGEINT', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_repeat'], 'ARRAY_DATETIME', ['DATETIME', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_repeat'], 'ARRAY_DATE', ['DATE', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_repeat'], 'ARRAY_DATETIMEV2', ['DATETIMEV2', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_repeat'], 'ARRAY_DATEV2', ['DATEV2', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_repeat'], 'ARRAY_FLOAT', ['FLOAT', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_repeat'], 'ARRAY_DOUBLE', ['DOUBLE', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_repeat'], 'ARRAY_DECIMALV2', ['DECIMALV2', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_repeat'], 'ARRAY_DECIMAL32', ['DECIMAL32', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_repeat'], 'ARRAY_DECIMAL64', ['DECIMAL64', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_repeat'], 'ARRAY_DECIMAL128', ['DECIMAL128', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_repeat'], 'ARRAY_VARCHAR', ['VARCHAR', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['array_repeat'], 'ARRAY_STRING', ['STRING', 'BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| |
| [['array_range'], 'ARRAY_INT', ['INT'], 'ALWAYS_NULLABLE'], |
| [['array_range'], 'ARRAY_INT', ['INT', 'INT'], 'ALWAYS_NULLABLE'], |
| [['array_range'], 'ARRAY_INT', ['INT', 'INT', 'INT'], 'ALWAYS_NULLABLE'], |
| |
| [['array_zip'], 'ARRAY', ['ARRAY', '...'], ''], |
| |
| # reverse function for string builtin |
| [['reverse'], 'VARCHAR', ['VARCHAR'], ''], |
| # reverse function support the longtext |
| [['reverse'], 'STRING', ['STRING'], ''], |
| # reverse function support the array type |
| [['reverse'], 'ARRAY_TINYINT', ['ARRAY_TINYINT'], ''], |
| [['reverse'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT'], ''], |
| [['reverse'], 'ARRAY_INT', ['ARRAY_INT'], ''], |
| [['reverse'], 'ARRAY_BIGINT', ['ARRAY_BIGINT'], ''], |
| [['reverse'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT'], ''], |
| [['reverse'], 'ARRAY_DATETIME', ['ARRAY_DATETIME'], ''], |
| [['reverse'], 'ARRAY_DATE', ['ARRAY_DATE'], ''], |
| [['reverse'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2'], ''], |
| [['reverse'], 'ARRAY_DATEV2', ['ARRAY_DATEV2'], ''], |
| [['reverse'], 'ARRAY_FLOAT', ['ARRAY_FLOAT'], ''], |
| [['reverse'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE'], ''], |
| [['reverse'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2'], ''], |
| [['reverse'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32'], ''], |
| [['reverse'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64'], ''], |
| [['reverse'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128'], ''], |
| [['reverse'], 'ARRAY_VARCHAR', ['ARRAY_VARCHAR'], ''], |
| [['reverse'], 'ARRAY_STRING', ['ARRAY_STRING'], ''], |
| |
| # Timestamp functions |
| [['unix_timestamp'], 'INT', [], 'ALWAYS_NOT_NULLABLE'], |
| [['unix_timestamp'], 'INT', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['unix_timestamp'], 'INT', ['DATE'], 'ALWAYS_NULLABLE'], |
| [['unix_timestamp'], 'INT', ['DATETIMEV2'], ''], |
| [['unix_timestamp'], 'INT', ['DATEV2'], ''], |
| [['unix_timestamp'], 'INT', ['VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['unix_timestamp'], 'INT', ['STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['from_unixtime'], 'VARCHAR', ['INT'], 'ALWAYS_NULLABLE'], |
| [['from_unixtime'], 'VARCHAR', ['INT', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['from_unixtime'], 'VARCHAR', ['INT', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['now', 'current_timestamp', 'localtime', 'localtimestamp'], 'DATETIME', [], 'ALWAYS_NOT_NULLABLE'], |
| [['now', 'current_timestamp', 'localtime', 'localtimestamp'], 'DATETIMEV2', ['INT'], 'ALWAYS_NOT_NULLABLE'], |
| [['curtime', 'current_time'], 'TIME', [], 'ALWAYS_NOT_NULLABLE'], |
| [['curdate', 'current_date'], 'DATE', [], 'ALWAYS_NOT_NULLABLE'], |
| [['utc_timestamp'], 'DATETIME', [], 'ALWAYS_NOT_NULLABLE'], |
| [['timestamp'], 'DATETIME', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| |
| [['from_days'], 'DATE', ['INT'], 'ALWAYS_NULLABLE'], |
| [['last_day'], 'DATE', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['last_day'], 'DATE', ['DATE'], 'ALWAYS_NULLABLE'], |
| [['last_day'], 'DATEV2', ['DATETIMEV2'], ''], |
| [['last_day'], 'DATEV2', ['DATEV2'], ''], |
| [['to_monday'], 'DATEV2', ['DATETIMEV2'], ''], |
| [['to_monday'], 'DATEV2', ['DATEV2'], ''], |
| [['to_monday'], 'DATE', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['to_monday'], 'DATE', ['DATE'], 'ALWAYS_NULLABLE'], |
| [['to_days'], 'INT', ['DATE'], 'ALWAYS_NULLABLE'], |
| |
| [['date_trunc'], 'DATETIME', ['DATETIME', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| |
| [['date_trunc'], 'DATETIMEV2', ['DATETIMEV2', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| |
| [['year'], 'INT', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['month'], 'INT', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['quarter'], 'INT', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['dayofweek'], 'INT', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['weekday'], 'INT', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['day', 'dayofmonth'], 'INT', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['dayofyear'], 'INT', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['weekofyear'], 'INT', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['yearweek'], 'INT', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['yearweek'], 'INT', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['week'], 'INT', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['week'], 'INT', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['hour'], 'INT', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['minute'], 'INT', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['second'], 'INT', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| |
| [['makedate'], 'DATE', ['INT', 'INT'], 'ALWAYS_NULLABLE'], |
| [['years_add'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['years_sub'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['months_add', 'add_months'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['months_sub'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['weeks_add'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['weeks_sub'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['days_add', 'date_add', 'adddate'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['days_sub', 'date_sub', 'subdate'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['hours_add'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['hours_sub'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['minutes_add'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['minutes_sub'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['seconds_add'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['seconds_sub'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['microseconds_add'], 'DATETIME', ['DATETIME', 'INT'], ''], |
| [['microseconds_sub'], 'DATETIME', ['DATETIME', 'INT'], ''], |
| |
| [['datediff'], 'INT', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['timediff'], 'TIME', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| |
| [['str_to_date'], 'DATETIME', ['VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['str_to_date'], 'DATETIME', ['STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['date_format'], 'VARCHAR', ['DATETIME', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['date_format'], 'VARCHAR', ['DATE', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['date', 'to_date'], 'DATE', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| |
| [['dayname'], 'VARCHAR', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['monthname'], 'VARCHAR', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| |
| [['convert_tz'], 'DATETIME', ['DATETIME', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| |
| [['years_diff'], 'BIGINT', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['months_diff'], 'BIGINT', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['weeks_diff'], 'BIGINT', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['days_diff'], 'BIGINT', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['hours_diff'], 'BIGINT', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['minutes_diff'], 'BIGINT', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['seconds_diff'], 'BIGINT', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| |
| [['year_floor'], 'DATETIME', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['year_floor'], 'DATETIME', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['year_floor'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['year_floor'], 'DATETIME', ['DATETIME', 'INT', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['year_ceil'], 'DATETIME', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['year_ceil'], 'DATETIME', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['year_ceil'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['year_ceil'], 'DATETIME', ['DATETIME', 'INT', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['month_floor'], 'DATETIME', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['month_floor'], 'DATETIME', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['month_floor'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['month_floor'], 'DATETIME', ['DATETIME', 'INT', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['month_ceil'], 'DATETIME', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['month_ceil'], 'DATETIME', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['month_ceil'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['month_ceil'], 'DATETIME', ['DATETIME', 'INT', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['week_floor'], 'DATETIME', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['week_floor'], 'DATETIME', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['week_floor'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['week_floor'], 'DATETIME', ['DATETIME', 'INT', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['week_ceil'], 'DATETIME', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['week_ceil'], 'DATETIME', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['week_ceil'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['week_ceil'], 'DATETIME', ['DATETIME', 'INT', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['day_floor'], 'DATETIME', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['day_floor'], 'DATETIME', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['day_floor'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['day_floor'], 'DATETIME', ['DATETIME', 'INT', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['day_ceil'], 'DATETIME', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['day_ceil'], 'DATETIME', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['day_ceil'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['day_ceil'], 'DATETIME', ['DATETIME', 'INT', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['hour_floor'], 'DATETIME', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['hour_floor'], 'DATETIME', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['hour_floor'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['hour_floor'], 'DATETIME', ['DATETIME', 'INT', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['hour_ceil'], 'DATETIME', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['hour_ceil'], 'DATETIME', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['hour_ceil'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['hour_ceil'], 'DATETIME', ['DATETIME', 'INT', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['minute_floor'], 'DATETIME', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['minute_floor'], 'DATETIME', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['minute_floor'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['minute_floor'], 'DATETIME', ['DATETIME', 'INT', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['minute_ceil'], 'DATETIME', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['minute_ceil'], 'DATETIME', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['minute_ceil'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['minute_ceil'], 'DATETIME', ['DATETIME', 'INT', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['second_floor'], 'DATETIME', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['second_floor'], 'DATETIME', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['second_floor'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['second_floor'], 'DATETIME', ['DATETIME', 'INT', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['second_ceil'], 'DATETIME', ['DATETIME'], 'ALWAYS_NULLABLE'], |
| [['second_ceil'], 'DATETIME', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['second_ceil'], 'DATETIME', ['DATETIME', 'INT'], 'ALWAYS_NULLABLE'], |
| [['second_ceil'], 'DATETIME', ['DATETIME', 'INT', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| |
| [['timestamp'], 'DATETIMEV2', ['DATETIMEV2'], ''], |
| |
| [['to_days'], 'INT', ['DATEV2'], ''], |
| [['time_to_sec'], 'INT', ['TIME'], ''], |
| |
| [['year'], 'INT', ['DATETIMEV2'], ''], |
| [['month'], 'INT', ['DATETIMEV2'], ''], |
| [['quarter'], 'INT', ['DATETIMEV2'], ''], |
| [['dayofweek'], 'INT', ['DATETIMEV2'], ''], |
| [['weekday'], 'INT', ['DATETIMEV2'], ''], |
| [['day', 'dayofmonth'], 'INT', ['DATETIMEV2'], ''], |
| [['dayofyear'], 'INT', ['DATETIMEV2'], ''], |
| [['weekofyear'], 'INT', ['DATETIMEV2'], ''], |
| [['yearweek'], 'INT', ['DATETIMEV2'], ''], |
| [['yearweek'], 'INT', ['DATETIMEV2', 'INT'], ''], |
| [['week'], 'INT', ['DATETIMEV2'], ''], |
| [['week'], 'INT', ['DATETIMEV2', 'INT'], ''], |
| [['hour'], 'INT', ['DATETIMEV2'], ''], |
| [['minute'], 'INT', ['DATETIMEV2'], ''], |
| [['second'], 'INT', ['DATETIMEV2'], ''], |
| |
| [['year'], 'INT', ['DATEV2'], ''], |
| [['month'], 'INT', ['DATEV2'], ''], |
| [['quarter'], 'INT', ['DATEV2'], ''], |
| [['dayofweek'], 'INT', ['DATEV2'], ''], |
| [['weekday'], 'INT', ['DATEV2'], ''], |
| [['day', 'dayofmonth'], 'INT', ['DATEV2'], ''], |
| [['dayofyear'], 'INT', ['DATEV2'], ''], |
| [['weekofyear'], 'INT', ['DATEV2'], ''], |
| [['yearweek'], 'INT', ['DATEV2'], ''], |
| [['yearweek'], 'INT', ['DATEV2', 'INT'], ''], |
| [['week'], 'INT', ['DATEV2'], ''], |
| [['week'], 'INT', ['DATEV2', 'INT'], ''], |
| [['hour'], 'INT', ['DATEV2'], ''], |
| [['minute'], 'INT', ['DATEV2'], ''], |
| [['second'], 'INT', ['DATEV2'], ''], |
| |
| [['years_add'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], ''], |
| [['years_sub'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], ''], |
| [['months_add', 'add_months'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], ''], |
| [['months_sub'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], ''], |
| [['weeks_add'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], ''], |
| [['weeks_sub'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], ''], |
| [['days_add', 'date_add', 'adddate'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], ''], |
| [['days_sub', 'date_sub', 'subdate'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], ''], |
| [['hours_add'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], ''], |
| [['hours_sub'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], ''], |
| [['minutes_add'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], ''], |
| [['minutes_sub'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], ''], |
| [['seconds_add'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], ''], |
| [['seconds_sub'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], ''], |
| [['microseconds_add'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], ''], |
| [['microseconds_sub'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], ''], |
| |
| [['years_add'], 'DATEV2', ['DATEV2', 'INT'], ''], |
| [['years_sub'], 'DATEV2', ['DATEV2', 'INT'], ''], |
| [['months_add', 'add_months'], 'DATEV2', ['DATEV2', 'INT'], ''], |
| [['months_sub'], 'DATEV2', ['DATEV2', 'INT'], ''], |
| [['weeks_add'], 'DATEV2', ['DATEV2', 'INT'], ''], |
| [['weeks_sub'], 'DATEV2', ['DATEV2', 'INT'], ''], |
| [['days_add', 'date_add', 'adddate'], 'DATEV2', ['DATEV2', 'INT'], ''], |
| [['days_sub', 'date_sub', 'subdate'], 'DATEV2', ['DATEV2', 'INT'], ''], |
| [['hours_add'], 'DATETIMEV2', ['DATEV2', 'INT'], ''], |
| [['hours_sub'], 'DATETIMEV2', ['DATEV2', 'INT'], ''], |
| [['minutes_add'], 'DATETIMEV2', ['DATEV2', 'INT'], ''], |
| [['minutes_sub'], 'DATETIMEV2', ['DATEV2', 'INT'], ''], |
| [['seconds_add'], 'DATETIMEV2', ['DATEV2', 'INT'], ''], |
| [['seconds_sub'], 'DATETIMEV2', ['DATEV2', 'INT'], ''], |
| [['microseconds_add'], 'DATETIMEV2', ['DATEV2', 'INT'], ''], |
| [['microseconds_sub'], 'DATETIMEV2', ['DATEV2', 'INT'], ''], |
| |
| [['datediff'], 'INT', ['DATETIMEV2', 'DATETIMEV2'], ''], |
| [['timediff'], 'TIMEV2', ['DATETIMEV2', 'DATETIMEV2'], ''], |
| |
| [['datediff'], 'INT', ['DATETIMEV2', 'DATEV2'], ''], |
| [['timediff'], 'TIMEV2', ['DATETIMEV2', 'DATEV2'], ''], |
| |
| [['datediff'], 'INT', ['DATEV2', 'DATETIMEV2'], ''], |
| [['timediff'], 'TIMEV2', ['DATEV2', 'DATETIMEV2'], ''], |
| |
| [['datediff'], 'INT', ['DATEV2', 'DATEV2'], ''], |
| [['timediff'], 'TIMEV2', ['DATEV2', 'DATEV2'], ''], |
| |
| [['date_format'], 'VARCHAR', ['DATETIMEV2', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['date_format'], 'VARCHAR', ['DATEV2', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['date', 'to_date', 'datev2', 'to_datev2'], 'DATEV2', ['DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| |
| [['dayname'], 'VARCHAR', ['DATETIMEV2'], ''], |
| [['monthname'], 'VARCHAR', ['DATETIMEV2'], ''], |
| |
| [['dayname'], 'VARCHAR', ['DATEV2'], ''], |
| [['monthname'], 'VARCHAR', ['DATEV2'], ''], |
| |
| [['convert_tz'], 'DATETIMEV2', ['DATETIMEV2', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| |
| [['years_diff'], 'BIGINT', ['DATETIMEV2', 'DATETIMEV2'], ''], |
| [['months_diff'], 'BIGINT', ['DATETIMEV2', 'DATETIMEV2'], ''], |
| [['weeks_diff'], 'BIGINT', ['DATETIMEV2', 'DATETIMEV2'], ''], |
| [['days_diff'], 'BIGINT', ['DATETIMEV2', 'DATETIMEV2'], ''], |
| [['hours_diff'], 'BIGINT', ['DATETIMEV2', 'DATETIMEV2'], ''], |
| [['minutes_diff'], 'BIGINT', ['DATETIMEV2', 'DATETIMEV2'], ''], |
| [['seconds_diff'], 'BIGINT', ['DATETIMEV2', 'DATETIMEV2'], ''], |
| |
| [['years_diff'], 'BIGINT', ['DATEV2', 'DATETIMEV2'], ''], |
| [['months_diff'], 'BIGINT', ['DATEV2', 'DATETIMEV2'], ''], |
| [['weeks_diff'], 'BIGINT', ['DATEV2', 'DATETIMEV2'], ''], |
| [['days_diff'], 'BIGINT', ['DATEV2', 'DATETIMEV2'], ''], |
| [['hours_diff'], 'BIGINT', ['DATEV2', 'DATETIMEV2'], ''], |
| [['minutes_diff'], 'BIGINT', ['DATEV2', 'DATETIMEV2'], ''], |
| [['seconds_diff'], 'BIGINT', ['DATEV2', 'DATETIMEV2'], ''], |
| |
| [['years_diff'], 'BIGINT', ['DATETIMEV2', 'DATEV2'], ''], |
| [['months_diff'], 'BIGINT', ['DATETIMEV2', 'DATEV2'], ''], |
| [['weeks_diff'], 'BIGINT', ['DATETIMEV2', 'DATEV2'], ''], |
| [['days_diff'], 'BIGINT', ['DATETIMEV2', 'DATEV2'], ''], |
| [['hours_diff'], 'BIGINT', ['DATETIMEV2', 'DATEV2'], ''], |
| [['minutes_diff'], 'BIGINT', ['DATETIMEV2', 'DATEV2'], ''], |
| [['seconds_diff'], 'BIGINT', ['DATETIMEV2', 'DATEV2'], ''], |
| |
| [['years_diff'], 'BIGINT', ['DATEV2', 'DATEV2'], ''], |
| [['months_diff'], 'BIGINT', ['DATEV2', 'DATEV2'], ''], |
| [['weeks_diff'], 'BIGINT', ['DATEV2', 'DATEV2'], ''], |
| [['days_diff'], 'BIGINT', ['DATEV2', 'DATEV2'], ''], |
| [['hours_diff'], 'BIGINT', ['DATEV2', 'DATEV2'], ''], |
| [['minutes_diff'], 'BIGINT', ['DATEV2', 'DATEV2'], ''], |
| [['seconds_diff'], 'BIGINT', ['DATEV2', 'DATEV2'], ''], |
| |
| [['year_floor'], 'DATETIMEV2', ['DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['year_floor'], 'DATETIMEV2', ['DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['year_floor'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['year_floor'], 'DATETIMEV2', ['DATETIMEV2', 'INT', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['year_ceil'], 'DATETIMEV2', ['DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['year_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['year_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['year_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'INT', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['month_floor'], 'DATETIMEV2', ['DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['month_floor'], 'DATETIMEV2', ['DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['month_floor'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['month_floor'], 'DATETIMEV2', ['DATETIMEV2', 'INT', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['month_ceil'], 'DATETIMEV2', ['DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['month_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['month_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['month_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'INT', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['week_floor'], 'DATETIMEV2', ['DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['week_floor'], 'DATETIMEV2', ['DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['week_floor'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['week_floor'], 'DATETIMEV2', ['DATETIMEV2', 'INT', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['week_ceil'], 'DATETIMEV2', ['DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['week_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['week_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['week_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'INT', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['day_floor'], 'DATETIMEV2', ['DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['day_floor'], 'DATETIMEV2', ['DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['day_floor'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['day_floor'], 'DATETIMEV2', ['DATETIMEV2', 'INT', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['day_ceil'], 'DATETIMEV2', ['DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['day_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['day_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['day_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'INT', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['hour_floor'], 'DATETIMEV2', ['DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['hour_floor'], 'DATETIMEV2', ['DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['hour_floor'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['hour_floor'], 'DATETIMEV2', ['DATETIMEV2', 'INT', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['hour_ceil'], 'DATETIMEV2', ['DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['hour_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['hour_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['hour_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'INT', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['minute_floor'], 'DATETIMEV2', ['DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['minute_floor'], 'DATETIMEV2', ['DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['minute_floor'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['minute_floor'], 'DATETIMEV2', ['DATETIMEV2', 'INT', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['minute_ceil'], 'DATETIMEV2', ['DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['minute_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['minute_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['minute_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'INT', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['second_floor'], 'DATETIMEV2', ['DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['second_floor'], 'DATETIMEV2', ['DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['second_floor'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['second_floor'], 'DATETIMEV2', ['DATETIMEV2', 'INT', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['second_ceil'], 'DATETIMEV2', ['DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['second_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['second_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['second_ceil'], 'DATETIMEV2', ['DATETIMEV2', 'INT', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| |
| [['year_floor'], 'DATEV2', ['DATEV2'], 'ALWAYS_NULLABLE'], |
| [['year_floor'], 'DATEV2', ['DATEV2', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['year_floor'], 'DATEV2', ['DATEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['year_floor'], 'DATEV2', ['DATEV2', 'INT', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['year_ceil'], 'DATEV2', ['DATEV2'], 'ALWAYS_NULLABLE'], |
| [['year_ceil'], 'DATEV2', ['DATEV2', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['year_ceil'], 'DATEV2', ['DATEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['year_ceil'], 'DATEV2', ['DATEV2', 'INT', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['month_floor'], 'DATEV2', ['DATEV2'], 'ALWAYS_NULLABLE'], |
| [['month_floor'], 'DATEV2', ['DATEV2', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['month_floor'], 'DATEV2', ['DATEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['month_floor'], 'DATEV2', ['DATEV2', 'INT', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['month_ceil'], 'DATEV2', ['DATEV2'], 'ALWAYS_NULLABLE'], |
| [['month_ceil'], 'DATEV2', ['DATEV2', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['month_ceil'], 'DATEV2', ['DATEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['month_ceil'], 'DATEV2', ['DATEV2', 'INT', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['week_floor'], 'DATEV2', ['DATEV2'], 'ALWAYS_NULLABLE'], |
| [['week_floor'], 'DATEV2', ['DATEV2', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['week_floor'], 'DATEV2', ['DATEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['week_floor'], 'DATEV2', ['DATEV2', 'INT', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['week_ceil'], 'DATEV2', ['DATEV2'], 'ALWAYS_NULLABLE'], |
| [['week_ceil'], 'DATEV2', ['DATEV2', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['week_ceil'], 'DATEV2', ['DATEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['week_ceil'], 'DATEV2', ['DATEV2', 'INT', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['day_floor'], 'DATEV2', ['DATEV2'], 'ALWAYS_NULLABLE'], |
| [['day_floor'], 'DATEV2', ['DATEV2', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['day_floor'], 'DATEV2', ['DATEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['day_floor'], 'DATEV2', ['DATEV2', 'INT', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['day_ceil'], 'DATEV2', ['DATEV2'], 'ALWAYS_NULLABLE'], |
| [['day_ceil'], 'DATEV2', ['DATEV2', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['day_ceil'], 'DATEV2', ['DATEV2', 'INT'], 'ALWAYS_NULLABLE'], |
| [['day_ceil'], 'DATEV2', ['DATEV2', 'INT', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| |
| # Math builtin functions |
| [['pi'], 'DOUBLE', [], 'ALWAYS_NOT_NULLABLE'], |
| [['e'], 'DOUBLE', [], 'ALWAYS_NOT_NULLABLE'], |
| |
| [['abs'], 'DOUBLE', ['DOUBLE'], ''], |
| [['abs'], 'FLOAT', ['FLOAT'], ''], |
| [['abs'], 'LARGEINT', ['LARGEINT'], ''], |
| [['abs'], 'LARGEINT', ['BIGINT'], ''], |
| [['abs'], 'INT', ['SMALLINT'], ''], |
| [['abs'], 'BIGINT', ['INT'], ''], |
| [['abs'], 'SMALLINT', ['TINYINT'], ''], |
| [['abs'], 'DECIMALV2', ['DECIMALV2'], ''], |
| [['abs'], 'DECIMAL32', ['DECIMAL32'], ''], |
| [['abs'], 'DECIMAL64', ['DECIMAL64'], ''], |
| [['abs'], 'DECIMAL128', ['DECIMAL128'], ''], |
| |
| [['sign'], 'TINYINT', ['DOUBLE'], ''], |
| [['sin'], 'DOUBLE', ['DOUBLE'], ''], |
| [['asin'], 'DOUBLE', ['DOUBLE'], ''], |
| [['cos'], 'DOUBLE', ['DOUBLE'], ''], |
| [['acos'], 'DOUBLE', ['DOUBLE'], ''], |
| [['tan'], 'DOUBLE', ['DOUBLE'], ''], |
| [['atan'], 'DOUBLE', ['DOUBLE'], ''], |
| |
| [['ceil', 'ceiling', 'dceil'], 'DOUBLE', ['DOUBLE'], ''], |
| [['floor', 'dfloor'], 'DOUBLE', ['DOUBLE'], ''], |
| [['round', 'dround'], 'DOUBLE', ['DOUBLE'], ''], |
| [['round_bankers'], 'DOUBLE', ['DOUBLE'], ''], |
| [['ceil', 'ceiling', 'dceil'], 'DECIMAL32', ['DECIMAL32'], ''], |
| [['floor', 'dfloor'], 'DECIMAL32', ['DECIMAL32'], ''], |
| [['round', 'dround'], 'DECIMAL32', ['DECIMAL32'], ''], |
| [['round_bankers'], 'DECIMAL32', ['DECIMAL32'], ''], |
| [['ceil', 'ceiling', 'dceil'], 'DECIMAL64', ['DECIMAL64'], ''], |
| [['floor', 'dfloor'], 'DECIMAL64', ['DECIMAL64'], ''], |
| [['round', 'dround'], 'DECIMAL64', ['DECIMAL64'], ''], |
| [['round_bankers'], 'DECIMAL64', ['DECIMAL64'], ''], |
| [['ceil', 'ceiling', 'dceil'], 'DECIMAL128', ['DECIMAL128'], ''], |
| [['floor', 'dfloor'], 'DECIMAL128', ['DECIMAL128'], ''], |
| [['round', 'dround'], 'DECIMAL128', ['DECIMAL128'], ''], |
| [['round_bankers'], 'DECIMAL128', ['DECIMAL128'], ''], |
| [['round', 'dround'], 'DOUBLE', ['DOUBLE', 'INT'], ''], |
| [['round', 'dround'], 'DECIMAL32', ['DECIMAL32', 'INT'], ''], |
| [['round', 'dround'], 'DECIMAL64', ['DECIMAL64', 'INT'], ''], |
| [['round', 'dround'], 'DECIMAL128', ['DECIMAL128', 'INT'], ''], |
| [['round_bankers', 'round_bankers'], 'DOUBLE', ['DOUBLE', 'INT'], ''], |
| [['round_bankers'], 'DECIMAL32', ['DECIMAL32', 'INT'], ''], |
| [['round_bankers'], 'DECIMAL64', ['DECIMAL64', 'INT'], ''], |
| [['round_bankers'], 'DECIMAL128', ['DECIMAL128', 'INT'], ''], |
| [['floor', 'dfloor'], 'DECIMAL32', ['DECIMAL32', 'INT'], ''], |
| [['floor', 'dfloor'], 'DECIMAL64', ['DECIMAL64', 'INT'], ''], |
| [['floor', 'dfloor'], 'DECIMAL128', ['DECIMAL128', 'INT'], ''], |
| [['ceil', 'dceil'], 'DECIMAL32', ['DECIMAL32', 'INT'], ''], |
| [['ceil', 'dceil'], 'DECIMAL64', ['DECIMAL64', 'INT'], ''], |
| [['ceil', 'dceil'], 'DECIMAL128', ['DECIMAL128', 'INT'], ''], |
| [['truncate'], 'DOUBLE', ['DOUBLE', 'INT'], ''], |
| [['truncate'], 'DECIMAL32', ['DECIMAL32', 'INT'], ''], |
| [['truncate'], 'DECIMAL64', ['DECIMAL64', 'INT'], ''], |
| [['truncate'], 'DECIMAL128', ['DECIMAL128', 'INT'], ''], |
| |
| [['ln', 'dlog1'], 'DOUBLE', ['DOUBLE'], 'ALWAYS_NULLABLE'], |
| [['log'], 'DOUBLE', ['DOUBLE', 'DOUBLE'], 'ALWAYS_NULLABLE'], |
| [['log2'], 'DOUBLE', ['DOUBLE'], 'ALWAYS_NULLABLE'], |
| [['log10', 'dlog10'], 'DOUBLE', ['DOUBLE'], 'ALWAYS_NULLABLE'], |
| [['exp', 'dexp'], 'DOUBLE', ['DOUBLE'], ''], |
| |
| [['radians'], 'DOUBLE', ['DOUBLE'], ''], |
| [['degrees'], 'DOUBLE', ['DOUBLE'], ''], |
| |
| [['sqrt', 'dsqrt'], 'DOUBLE', ['DOUBLE'], ''], |
| [['cbrt'], 'DOUBLE', ['DOUBLE'], ''], |
| [['pow', 'power', 'dpow', 'fpow'], 'DOUBLE', ['DOUBLE', 'DOUBLE'], ''], |
| |
| [['rand', 'random'], 'DOUBLE', [], 'ALWAYS_NOT_NULLABLE'], |
| [['rand', 'random'], 'DOUBLE', ['BIGINT'], ''], |
| |
| [['bin'], 'VARCHAR', ['BIGINT'], ''], |
| [['hex'], 'VARCHAR', ['BIGINT'], ''], |
| [['hex'], 'VARCHAR', ['VARCHAR'], ''], |
| [['hex'], 'STRING', ['STRING'], ''], |
| [['unhex'], 'VARCHAR', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['unhex'], 'STRING', ['STRING'], 'ALWAYS_NULLABLE'], |
| |
| [['conv'], 'VARCHAR', ['BIGINT', 'TINYINT', 'TINYINT'], 'ALWAYS_NULLABLE'], |
| [['conv'], 'VARCHAR', ['VARCHAR', 'TINYINT', 'TINYINT'], 'ALWAYS_NULLABLE'], |
| [['conv'], 'VARCHAR', ['STRING', 'TINYINT', 'TINYINT'], 'ALWAYS_NULLABLE'], |
| |
| [['pmod'], 'BIGINT', ['BIGINT', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['pmod'], 'DOUBLE', ['DOUBLE', 'DOUBLE'], 'ALWAYS_NULLABLE'], |
| [['mod'], 'TINYINT', ['TINYINT', 'TINYINT'], 'ALWAYS_NULLABLE'], |
| [['mod'], 'SMALLINT', ['SMALLINT', 'SMALLINT'], 'ALWAYS_NULLABLE'], |
| [['mod'], 'INT', ['INT', 'INT'], 'ALWAYS_NULLABLE'], |
| [['mod'], 'BIGINT', ['BIGINT', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['mod'], 'LARGEINT', ['LARGEINT', 'LARGEINT'], 'ALWAYS_NULLABLE'], |
| [['mod'], 'DECIMALV2', ['DECIMALV2', 'DECIMALV2'], 'ALWAYS_NULLABLE'], |
| [['mod'], 'DECIMAL32', ['DECIMAL32', 'DECIMAL32'], 'ALWAYS_NULLABLE'], |
| [['mod'], 'DECIMAL64', ['DECIMAL64', 'DECIMAL64'], 'ALWAYS_NULLABLE'], |
| [['mod'], 'DECIMAL128', ['DECIMAL128', 'DECIMAL128'], 'ALWAYS_NULLABLE'], |
| [['mod', 'fmod'], 'FLOAT', ['FLOAT', 'FLOAT'], 'ALWAYS_NULLABLE'], |
| [['mod', 'fmod'], 'DOUBLE', ['DOUBLE', 'DOUBLE'], 'ALWAYS_NULLABLE'], |
| |
| [['positive'], 'BIGINT', ['BIGINT'], ''], |
| [['positive'], 'DOUBLE', ['DOUBLE'], ''], |
| [['positive'], 'DECIMALV2', ['DECIMALV2'], ''], |
| [['positive'], 'DECIMAL32', ['DECIMAL32'], ''], |
| [['positive'], 'DECIMAL64', ['DECIMAL64'], ''], |
| [['positive'], 'DECIMAL128', ['DECIMAL128'], ''], |
| [['negative'], 'BIGINT', ['BIGINT'], ''], |
| [['negative'], 'DOUBLE', ['DOUBLE'], ''], |
| [['negative'], 'DECIMALV2', ['DECIMALV2'], ''], |
| [['negative'], 'DECIMAL32', ['DECIMAL32'], ''], |
| [['negative'], 'DECIMAL64', ['DECIMAL64'], ''], |
| [['negative'], 'DECIMAL128', ['DECIMAL128'], ''], |
| |
| [['least'], 'TINYINT', ['TINYINT', '...'], ''], |
| [['least'], 'SMALLINT', ['SMALLINT', '...'], ''], |
| [['least'], 'INT', ['INT', '...'], ''], |
| [['least'], 'BIGINT', ['BIGINT', '...'], ''], |
| [['least'], 'LARGEINT', ['LARGEINT', '...'], ''], |
| [['least'], 'FLOAT', ['FLOAT', '...'], ''], |
| [['least'], 'DOUBLE', ['DOUBLE', '...'], ''], |
| [['least'], 'DATE', ['DATE', '...'], ''], |
| [['least'], 'DATEV2', ['DATEV2', '...'], ''], |
| [['least'], 'DATETIME', ['DATETIME', '...'], ''], |
| [['least'], 'DATETIMEV2', ['DATETIMEV2', '...'], ''], |
| [['least'], 'DECIMALV2', ['DECIMALV2', '...'], ''], |
| [['least'], 'DECIMAL32', ['DECIMAL32', '...'], ''], |
| [['least'], 'DECIMAL64', ['DECIMAL64', '...'], ''], |
| [['least'], 'DECIMAL128', ['DECIMAL128', '...'], ''], |
| [['least'], 'VARCHAR', ['VARCHAR', '...'], ''], |
| [['least'], 'STRING', ['STRING', '...'], ''], |
| |
| [['greatest'], 'TINYINT', ['TINYINT', '...'], ''], |
| [['greatest'], 'SMALLINT', ['SMALLINT', '...'], ''], |
| [['greatest'], 'INT', ['INT', '...'], ''], |
| [['greatest'], 'BIGINT', ['BIGINT', '...'], ''], |
| [['greatest'], 'LARGEINT', ['LARGEINT', '...'], ''], |
| [['greatest'], 'FLOAT', ['FLOAT', '...'], ''], |
| [['greatest'], 'DOUBLE', ['DOUBLE', '...'], ''], |
| [['greatest'], 'DECIMALV2', ['DECIMALV2', '...'], ''], |
| [['greatest'], 'DECIMAL32', ['DECIMAL32', '...'], ''], |
| [['greatest'], 'DECIMAL64', ['DECIMAL64', '...'], ''], |
| [['greatest'], 'DECIMAL128', ['DECIMAL128', '...'], ''], |
| [['greatest'], 'DATE', ['DATE', '...'], ''], |
| [['greatest'], 'DATEV2', ['DATEV2', '...'], ''], |
| [['greatest'], 'DATETIME', ['DATETIME', '...'], ''], |
| [['greatest'], 'DATETIMEV2', ['DATETIMEV2', '...'], ''], |
| [['greatest'], 'VARCHAR', ['VARCHAR', '...'], ''], |
| [['greatest'], 'STRING', ['STRING', '...'], ''], |
| |
| # Conditional Functions |
| # Some of these have empty symbols because the BE special-cases them based on the |
| # function name |
| [['if'], 'BOOLEAN', ['BOOLEAN', 'BOOLEAN', 'BOOLEAN'], 'CUSTOM'], |
| [['if'], 'TINYINT', ['BOOLEAN', 'TINYINT', 'TINYINT'], 'CUSTOM'], |
| [['if'], 'SMALLINT', ['BOOLEAN', 'SMALLINT', 'SMALLINT'], 'CUSTOM'], |
| [['if'], 'INT', ['BOOLEAN', 'INT', 'INT'], 'CUSTOM'], |
| [['if'], 'BIGINT', ['BOOLEAN', 'BIGINT', 'BIGINT'], 'CUSTOM'], |
| [['if'], 'LARGEINT', ['BOOLEAN', 'LARGEINT', 'LARGEINT'], 'CUSTOM'], |
| [['if'], 'FLOAT', ['BOOLEAN', 'FLOAT', 'FLOAT'], 'CUSTOM'], |
| [['if'], 'DOUBLE', ['BOOLEAN', 'DOUBLE', 'DOUBLE'], 'CUSTOM'], |
| [['if'], 'DATETIME', ['BOOLEAN', 'DATETIME', 'DATETIME'], 'CUSTOM'], |
| [['if'], 'DATE', ['BOOLEAN', 'DATE', 'DATE'], 'CUSTOM'], |
| [['if'], 'DATETIMEV2', ['BOOLEAN', 'DATETIMEV2', 'DATETIMEV2'], 'CUSTOM'], |
| [['if'], 'DATEV2', ['BOOLEAN', 'DATEV2', 'DATEV2'], 'CUSTOM'], |
| [['if'], 'DECIMALV2', ['BOOLEAN', 'DECIMALV2', 'DECIMALV2'], 'CUSTOM'], |
| [['if'], 'DECIMAL32', ['BOOLEAN', 'DECIMAL32', 'DECIMAL32'], 'CUSTOM'], |
| [['if'], 'DECIMAL64', ['BOOLEAN', 'DECIMAL64', 'DECIMAL64'], 'CUSTOM'], |
| [['if'], 'DECIMAL128', ['BOOLEAN', 'DECIMAL128', 'DECIMAL128'], 'CUSTOM'], |
| [['if'], 'BITMAP', ['BOOLEAN', 'BITMAP', 'BITMAP'], 'CUSTOM'], |
| [['if'], 'HLL', ['BOOLEAN', 'HLL', 'HLL'], 'CUSTOM'], |
| # The priority of varchar should be lower than decimal in IS_SUPERTYPE_OF mode. |
| [['if'], 'VARCHAR', ['BOOLEAN', 'VARCHAR', 'VARCHAR'], 'CUSTOM'], |
| [['if'], 'STRING', ['BOOLEAN', 'STRING', 'STRING'], 'CUSTOM'], |
| [['if'], 'ARRAY_BOOLEAN', ['BOOLEAN', 'ARRAY_BOOLEAN', 'ARRAY_BOOLEAN'], 'CUSTOM'], |
| [['if'], 'ARRAY_TINYINT', ['BOOLEAN', 'ARRAY_TINYINT', 'ARRAY_TINYINT'], 'CUSTOM'], |
| [['if'], 'ARRAY_SMALLINT', ['BOOLEAN', 'ARRAY_SMALLINT', 'ARRAY_SMALLINT'], 'CUSTOM'], |
| [['if'], 'ARRAY_INT', ['BOOLEAN', 'ARRAY_INT', 'ARRAY_INT'], 'CUSTOM'], |
| [['if'], 'ARRAY_BIGINT', ['BOOLEAN', 'ARRAY_BIGINT', 'ARRAY_BIGINT'], 'CUSTOM'], |
| [['if'], 'ARRAY_LARGEINT', ['BOOLEAN', 'ARRAY_LARGEINT', 'ARRAY_LARGEINT'], 'CUSTOM'], |
| [['if'], 'ARRAY_FLOAT', ['BOOLEAN', 'ARRAY_FLOAT', 'ARRAY_FLOAT'], 'CUSTOM'], |
| [['if'], 'ARRAY_DOUBLE', ['BOOLEAN', 'ARRAY_DOUBLE', 'ARRAY_DOUBLE'], 'CUSTOM'], |
| [['if'], 'ARRAY_DATETIME', ['BOOLEAN', 'ARRAY_DATETIME', 'ARRAY_DATETIME'], 'CUSTOM'], |
| [['if'], 'ARRAY_DATE', ['BOOLEAN', 'ARRAY_DATE', 'ARRAY_DATE'], 'CUSTOM'], |
| [['if'], 'ARRAY_DATETIMEV2', ['BOOLEAN', 'ARRAY_DATETIMEV2', 'ARRAY_DATETIMEV2'], 'CUSTOM'], |
| [['if'], 'ARRAY_DATEV2', ['BOOLEAN', 'ARRAY_DATEV2', 'ARRAY_DATEV2'], 'CUSTOM'], |
| [['if'], 'ARRAY_DECIMALV2', ['BOOLEAN', 'ARRAY_DECIMALV2', 'ARRAY_DECIMALV2'], 'CUSTOM'], |
| [['if'], 'ARRAY_VARCHAR', ['BOOLEAN', 'ARRAY_VARCHAR', 'ARRAY_VARCHAR'], 'CUSTOM'], |
| [['if'], 'ARRAY_STRING', ['BOOLEAN', 'ARRAY_STRING', 'ARRAY_STRING'], 'CUSTOM'], |
| |
| [['nullif'], 'BOOLEAN', ['BOOLEAN', 'BOOLEAN'], 'ALWAYS_NULLABLE'], |
| [['nullif'], 'TINYINT', ['TINYINT', 'TINYINT'], 'ALWAYS_NULLABLE'], |
| [['nullif'], 'SMALLINT', ['SMALLINT', 'SMALLINT'], 'ALWAYS_NULLABLE'], |
| [['nullif'], 'INT', ['INT', 'INT'], 'ALWAYS_NULLABLE'], |
| [['nullif'], 'BIGINT', ['BIGINT', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['nullif'], 'LARGEINT', ['LARGEINT', 'LARGEINT'], 'ALWAYS_NULLABLE'], |
| [['nullif'], 'FLOAT', ['FLOAT', 'FLOAT'], 'ALWAYS_NULLABLE'], |
| [['nullif'], 'DOUBLE', ['DOUBLE', 'DOUBLE'], 'ALWAYS_NULLABLE'], |
| [['nullif'], 'DATETIME', ['DATETIME', 'DATETIME'], 'ALWAYS_NULLABLE'], |
| [['nullif'], 'DATE', ['DATE', 'DATE'], 'ALWAYS_NULLABLE'], |
| [['nullif'], 'DATETIMEV2', ['DATETIMEV2', 'DATETIMEV2'], 'ALWAYS_NULLABLE'], |
| [['nullif'], 'DATEV2', ['DATEV2', 'DATEV2'], 'ALWAYS_NULLABLE'], |
| [['nullif'], 'DECIMALV2', ['DECIMALV2', 'DECIMALV2'], 'ALWAYS_NULLABLE'], |
| [['nullif'], 'DECIMAL32', ['DECIMAL32', 'DECIMAL32'], 'ALWAYS_NULLABLE'], |
| [['nullif'], 'DECIMAL64', ['DECIMAL64', 'DECIMAL64'], 'ALWAYS_NULLABLE'], |
| [['nullif'], 'DECIMAL128', ['DECIMAL128', 'DECIMAL128'], 'ALWAYS_NULLABLE'], |
| # The priority of varchar should be lower than decimal in IS_SUPERTYPE_OF mode. |
| [['nullif'], 'VARCHAR', ['VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['nullif'], 'STRING', ['STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| |
| [['ifnull', 'nvl'], 'BOOLEAN', ['BOOLEAN', 'BOOLEAN'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'TINYINT', ['TINYINT', 'TINYINT'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'SMALLINT', ['SMALLINT', 'SMALLINT'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'INT', ['INT', 'INT'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'BIGINT', ['BIGINT', 'BIGINT'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'LARGEINT', ['LARGEINT', 'LARGEINT'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'FLOAT', ['FLOAT', 'FLOAT'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'DOUBLE', ['DOUBLE', 'DOUBLE'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'DATE', ['DATE', 'DATE'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'DATETIME', ['DATETIME', 'DATETIME'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'DATETIME', ['DATE', 'DATETIME'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'DATETIME', ['DATETIME', 'DATE'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'DATEV2', ['DATEV2', 'DATEV2'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'DATETIMEV2', ['DATETIMEV2', 'DATETIMEV2'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'DECIMALV2', ['DECIMALV2', 'DECIMALV2'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'DECIMAL32', ['DECIMAL32', 'DECIMAL32'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'DECIMAL64', ['DECIMAL64', 'DECIMAL64'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'DECIMAL128', ['DECIMAL128', 'DECIMAL128'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'BITMAP', ['BITMAP', 'BITMAP'], 'CUSTOM'], |
| # The priority of varchar should be lower than decimal in IS_SUPERTYPE_OF mode. |
| [['ifnull', 'nvl'], 'VARCHAR', ['VARCHAR', 'VARCHAR'], 'CUSTOM'], |
| [['ifnull', 'nvl'], 'STRING', ['STRING', 'STRING'], 'CUSTOM'], |
| |
| [['coalesce'], 'BOOLEAN', ['BOOLEAN', '...'], 'CUSTOM'], |
| [['coalesce'], 'TINYINT', ['TINYINT', '...'], 'CUSTOM'], |
| [['coalesce'], 'SMALLINT', ['SMALLINT', '...'], 'CUSTOM'], |
| [['coalesce'], 'INT', ['INT', '...'], 'CUSTOM'], |
| [['coalesce'], 'BIGINT', ['BIGINT', '...'], 'CUSTOM'], |
| [['coalesce'], 'LARGEINT', ['LARGEINT', '...'], 'CUSTOM'], |
| [['coalesce'], 'FLOAT', ['FLOAT', '...'], 'CUSTOM'], |
| [['coalesce'], 'DOUBLE', ['DOUBLE', '...'], 'CUSTOM'], |
| [['coalesce'], 'DATETIME', ['DATETIME', '...'], 'CUSTOM'], |
| [['coalesce'], 'DATE', ['DATE', '...'], 'CUSTOM'], |
| [['coalesce'], 'DATETIMEV2', ['DATETIMEV2', '...'], 'CUSTOM'], |
| [['coalesce'], 'DATEV2', ['DATEV2', '...'], 'CUSTOM'], |
| [['coalesce'], 'DECIMALV2', ['DECIMALV2', '...'], 'CUSTOM'], |
| [['coalesce'], 'DECIMAL32', ['DECIMAL32', '...'], 'CUSTOM'], |
| [['coalesce'], 'DECIMAL64', ['DECIMAL64', '...'], 'CUSTOM'], |
| [['coalesce'], 'DECIMAL128', ['DECIMAL128', '...'], 'CUSTOM'], |
| [['coalesce'], 'BITMAP', ['BITMAP', '...'], 'CUSTOM'], |
| # The priority of varchar should be lower than decimal in IS_SUPERTYPE_OF mode. |
| [['coalesce'], 'VARCHAR', ['VARCHAR', '...'], 'CUSTOM'], |
| [['coalesce'], 'STRING', ['STRING', '...'], 'CUSTOM'], |
| |
| # esquery's first arg is suitable for all types |
| [['esquery'], 'BOOLEAN', ['BOOLEAN', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['TINYINT', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['SMALLINT', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['INT', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['BIGINT', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['LARGEINT', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['FLOAT', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['DOUBLE', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['DATE', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['DATETIME', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['CHAR', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['VARCHAR', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['JSONB', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['DECIMALV2', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['DECIMAL32', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['DECIMAL64', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['DECIMAL128', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['TIME', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['DATEV2', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['DATETIMEV2', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['TIMEV2', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['ARRAY', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['MAP', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['STRING', 'VARCHAR'], ''], |
| [['esquery'], 'BOOLEAN', ['VARIANT', 'VARCHAR'], ''], |
| |
| # String builtin functions |
| [['substr', 'substring'], 'VARCHAR', ['VARCHAR', 'INT'], 'ALWAYS_NULLABLE'], |
| [['substr', 'substring'], 'VARCHAR', ['VARCHAR', 'INT', 'INT'], 'ALWAYS_NULLABLE'], |
| [['mask'], 'STRING', ['STRING', '...'], ''], |
| [['mask_first_n'], 'STRING', ['STRING'], ''], |
| [['mask_first_n'], 'STRING', ['STRING', 'INT'], ''], |
| [['mask_last_n'], 'STRING', ['STRING'], ''], |
| [['mask_last_n'], 'STRING', ['STRING', 'INT'], ''], |
| [['strleft', 'left'], 'VARCHAR', ['VARCHAR', 'INT'], 'ALWAYS_NULLABLE'], |
| [['strright', 'right'], 'VARCHAR', ['VARCHAR', 'INT'], 'ALWAYS_NULLABLE'], |
| [['ends_with'], 'BOOLEAN', ['VARCHAR', 'VARCHAR'], ''], |
| [['starts_with'], 'BOOLEAN', ['VARCHAR', 'VARCHAR'], ''], |
| [['null_or_empty'], 'BOOLEAN', ['VARCHAR'], 'ALWAYS_NOT_NULLABLE'], |
| [['not_null_or_empty'], 'BOOLEAN', ['VARCHAR'], 'ALWAYS_NOT_NULLABLE'], |
| [['space'], 'VARCHAR', ['INT'], ''], |
| [['repeat'], 'VARCHAR', ['VARCHAR', 'INT'], 'ALWAYS_NULLABLE'], |
| [['lpad'], 'VARCHAR', ['VARCHAR', 'INT', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['rpad'], 'VARCHAR', ['VARCHAR', 'INT', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['append_trailing_char_if_absent'], 'VARCHAR', ['VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['length'], 'INT', ['VARCHAR'], ''], |
| [['bit_length'], 'INT', ['VARCHAR'], ''], |
| |
| [['char_length', 'character_length'], 'INT', ['VARCHAR'], ''], |
| [['lower', 'lcase'], 'VARCHAR', ['VARCHAR'], ''], |
| [['upper', 'ucase'], 'VARCHAR', ['VARCHAR'], ''], |
| [['initcap'], 'VARCHAR', ['VARCHAR'], ''], |
| [['trim'], 'VARCHAR', ['VARCHAR'], ''], |
| [['ltrim'], 'VARCHAR', ['VARCHAR'], ''], |
| [['rtrim'], 'VARCHAR', ['VARCHAR'], ''], |
| [['ascii'], 'INT', ['VARCHAR'], ''], |
| [['instr'], 'INT', ['VARCHAR', 'VARCHAR'], ''], |
| [['locate'], 'INT', ['VARCHAR', 'VARCHAR'], ''], |
| [['locate'], 'INT', ['VARCHAR', 'VARCHAR', 'INT'], ''], |
| [['regexp_extract'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['regexp_replace'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['regexp_replace_one'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['regexp_extract_all'], 'VARCHAR', ['VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['concat'], 'VARCHAR', ['VARCHAR', '...'], ''], |
| [['elt'], 'VARCHAR', ['INT', 'VARCHAR', '...'], 'ALWAYS_NULLABLE'], |
| [['elt'], 'STRING', ['INT', 'STRING', '...'], 'ALWAYS_NULLABLE'], |
| [['replace'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR'], ''], |
| [['concat_ws'], 'VARCHAR', ['VARCHAR', 'VARCHAR', '...'], 'CUSTOM'], |
| [['concat_ws'], 'VARCHAR', ['VARCHAR', 'ARRAY_VARCHAR'], 'CUSTOM'], |
| [['find_in_set'], 'INT', ['VARCHAR', 'VARCHAR'], ''], |
| [['parse_url'], 'VARCHAR', ['VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['parse_url'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['money_format'], 'VARCHAR', ['BIGINT'], ''], |
| [['money_format'], 'VARCHAR', ['LARGEINT'], ''], |
| [['money_format'], 'VARCHAR', ['DOUBLE'], ''], |
| [['money_format'], 'VARCHAR', ['DECIMALV2'], ''], |
| [['money_format'], 'VARCHAR', ['DECIMAL32'], ''], |
| [['money_format'], 'VARCHAR', ['DECIMAL64'], ''], |
| [['money_format'], 'VARCHAR', ['DECIMAL128'], ''], |
| [['split_by_string'],'ARRAY_VARCHAR',['STRING','STRING'], ''], |
| [['split_part'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'INT'], 'ALWAYS_NULLABLE'], |
| [['substring_index'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'INT'], 'ALWAYS_NULLABLE'], |
| [['extract_url_parameter'], 'VARCHAR', ['VARCHAR', 'VARCHAR'], ''], |
| |
| [['sub_replace'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'INT'], 'ALWAYS_NULLABLE'], |
| [['sub_replace'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'INT', 'INT'], 'ALWAYS_NULLABLE'], |
| |
| # width_bucket |
| [['width_bucket'], 'BIGINT', ['TINYINT','TINYINT','TINYINT','TINYINT'], ''], |
| [['width_bucket'], 'BIGINT', ['SMALLINT','SMALLINT','SMALLINT','SMALLINT'], ''], |
| [['width_bucket'], 'BIGINT', ['INT','INT','INT','INT'], ''], |
| [['width_bucket'], 'BIGINT', ['BIGINT','BIGINT','BIGINT','BIGINT'], ''], |
| [['width_bucket'], 'BIGINT', ['FLOAT','FLOAT','FLOAT','BIGINT'], ''], |
| [['width_bucket'], 'BIGINT', ['DOUBLE','DOUBLE','DOUBLE','BIGINT'], ''], |
| [['width_bucket'], 'BIGINT', ['DECIMALV2','DECIMALV2','DECIMALV2','BIGINT'], ''], |
| [['width_bucket'], 'BIGINT', ['DATE','DATE','DATE','BIGINT'], ''], |
| [['width_bucket'], 'BIGINT', ['DATEV2','DATEV2','DATEV2','BIGINT'], ''], |
| [['width_bucket'], 'BIGINT', ['DATETIME','DATETIME','DATETIME','BIGINT'], ''], |
| [['width_bucket'], 'BIGINT', ['DATETIMEV2','DATETIMEV2','DATETIMEV2','BIGINT'], ''], |
| |
| # runningdifference |
| [['running_difference'], 'SMALLINT', ['TINYINT'], ''], |
| [['running_difference'], 'INT', ['SMALLINT'], ''], |
| [['running_difference'], 'BIGINT', ['INT'], ''], |
| [['running_difference'], 'BIGINT', ['BIGINT'], ''], |
| [['running_difference'], 'LARGEINT', ['LARGEINT'], ''], |
| [['running_difference'], 'DOUBLE', ['FLOAT'], ''], |
| [['running_difference'], 'DOUBLE', ['DOUBLE'], ''], |
| [['running_difference'], 'DECIMALV2', ['DECIMALV2'], ''], |
| [['running_difference'], 'DECIMAL32', ['DECIMAL32'], ''], |
| [['running_difference'], 'DECIMAL64', ['DECIMAL64'], ''], |
| [['running_difference'], 'DECIMAL128', ['DECIMAL128'], ''], |
| [['running_difference'], 'INT', ['DATE'], ''], |
| [['running_difference'], 'INT', ['DATEV2'], ''], |
| [['running_difference'], 'TIME', ['DATETIME'], ''], |
| [['running_difference'], 'TIMEV2', ['DATETIMEV2'], ''], |
| |
| # Longtext function |
| [['substr', 'substring'], 'STRING', ['STRING', 'INT'], 'ALWAYS_NULLABLE'], |
| [['substr', 'substring'], 'STRING', ['STRING', 'INT', 'INT'], 'ALWAYS_NULLABLE'], |
| [['strleft', 'left'], 'STRING', ['STRING', 'INT'], 'ALWAYS_NULLABLE'], |
| [['strright', 'right'], 'STRING', ['STRING', 'INT'], 'ALWAYS_NULLABLE'], |
| [['ends_with'], 'BOOLEAN', ['STRING', 'STRING'], ''], |
| [['starts_with'], 'BOOLEAN', ['STRING', 'STRING'], ''], |
| [['null_or_empty'], 'BOOLEAN', ['STRING'], 'ALWAYS_NOT_NULLABLE'], |
| [['not_null_or_empty'], 'BOOLEAN', ['STRING'], 'ALWAYS_NOT_NULLABLE'], |
| [['space'], 'STRING', ['INT'], ''], |
| [['repeat'], 'STRING', ['STRING', 'INT'], 'ALWAYS_NULLABLE'], |
| [['lpad'], 'STRING', ['STRING', 'INT', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['rpad'], 'STRING', ['STRING', 'INT', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['append_trailing_char_if_absent'], 'STRING', ['STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['length'], 'INT', ['STRING'], ''], |
| [['bit_length'], 'INT', ['STRING'], ''], |
| |
| [['char_length', 'character_length'], 'INT', ['STRING'], ''], |
| [['lower', 'lcase'], 'STRING', ['STRING'], ''], |
| [['upper', 'ucase'], 'STRING', ['STRING'], ''], |
| [['trim'], 'STRING', ['STRING'], ''], |
| [['ltrim'], 'STRING', ['STRING'], ''], |
| [['rtrim'], 'STRING', ['STRING'], ''], |
| [['ascii'], 'INT', ['STRING'], ''], |
| [['instr'], 'INT', ['STRING', 'STRING'], ''], |
| [['locate'], 'INT', ['STRING', 'STRING'], ''], |
| [['locate'], 'INT', ['STRING', 'STRING', 'INT'], ''], |
| [['regexp_extract'], 'STRING', ['STRING', 'STRING', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['regexp_replace'], 'STRING', ['STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['regexp_replace_one'], 'STRING', ['STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['regexp_extract_all'], 'STRING', ['STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['concat'], 'STRING', ['STRING', '...'], ''], |
| [['replace'], 'STRING', ['STRING', 'STRING', 'STRING'], ''], |
| [['concat_ws'], 'STRING', ['STRING', 'STRING', '...'], 'CUSTOM'], |
| [['find_in_set'], 'INT', ['STRING', 'STRING'], ''], |
| [['parse_url'], 'STRING', ['STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['parse_url'], 'STRING', ['STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['money_format'], 'STRING', ['BIGINT'], ''], |
| [['money_format'], 'STRING', ['LARGEINT'], ''], |
| [['money_format'], 'STRING', ['DOUBLE'], ''], |
| [['money_format'], 'STRING', ['DECIMALV2'], ''], |
| [['money_format'], 'STRING', ['DECIMAL32'], ''], |
| [['money_format'], 'STRING', ['DECIMAL64'], ''], |
| [['money_format'], 'STRING', ['DECIMAL128'], ''], |
| [['split_part'], 'STRING', ['STRING', 'STRING', 'INT'], 'ALWAYS_NULLABLE'], |
| [['substring_index'], 'STRING', ['STRING', 'STRING', 'INT'], 'ALWAYS_NULLABLE'], |
| |
| # Utility functions |
| [['convert_to'], 'VARCHAR', ['VARCHAR','VARCHAR'], ''], |
| [['sleep'], 'BOOLEAN', ['INT'], ''], |
| [['version'], 'VARCHAR', [], 'ALWAYS_NOT_NULLABLE'], |
| [['field'], 'INT', ['TINYINT', '...'], ''], |
| [['field'], 'INT', ['SMALLINT', '...'], ''], |
| [['field'], 'INT', ['INT', '...'], ''], |
| [['field'], 'INT', ['BIGINT', '...'], ''], |
| [['field'], 'INT', ['LARGEINT', '...'], ''], |
| [['field'], 'INT', ['FLOAT', '...'], ''], |
| [['field'], 'INT', ['DOUBLE', '...'], ''], |
| [['field'], 'INT', ['DECIMALV2', '...'], ''], |
| [['field'], 'INT', ['DATEV2', '...'], ''], |
| [['field'], 'INT', ['DATETIMEV2', '...'], ''], |
| [['field'], 'INT', ['VARCHAR', '...'], ''], |
| [['field'], 'INT', ['STRING', '...'], ''], |
| |
| # Jsonb functions |
| [['jsonb_parse'], 'JSONB', ['VARCHAR'], ''], |
| [['jsonb_parse_error_to_null'], 'JSONB', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['jsonb_parse_error_to_value'], 'JSONB', ['VARCHAR', 'VARCHAR'], ''], |
| [['jsonb_parse_error_to_invalid'], 'JSONB', ['VARCHAR'], ''], |
| [['jsonb_parse_nullable'], 'JSONB', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['jsonb_parse_nullable_error_to_null'], 'JSONB', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['jsonb_parse_nullable_error_to_value'], 'JSONB', ['VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['jsonb_parse_nullable_error_to_invalid'], 'JSONB', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['jsonb_parse_notnull'], 'JSONB', ['VARCHAR'], ''], |
| [['jsonb_parse_notnull_error_to_value'], 'JSONB', ['VARCHAR', 'VARCHAR'], ''], |
| [['jsonb_parse_notnull_error_to_invalid'], 'JSONB', ['VARCHAR'], ''], |
| |
| [['jsonb_exists_path'], 'BOOLEAN', ['JSONB', 'VARCHAR'], ''], |
| [['jsonb_exists_path'], 'BOOLEAN', ['JSONB', 'STRING'], ''], |
| [['jsonb_type'], 'STRING', ['JSONB', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['jsonb_type'], 'STRING', ['JSONB', 'STRING'], 'ALWAYS_NULLABLE'], |
| |
| [['jsonb_extract'], 'JSONB', ['JSONB', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['jsonb_extract'], 'JSONB', ['JSONB', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['jsonb_extract_isnull'], 'BOOLEAN', ['JSONB', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['jsonb_extract_isnull'], 'BOOLEAN', ['JSONB', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['jsonb_extract_bool'], 'BOOLEAN', ['JSONB', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['jsonb_extract_bool'], 'BOOLEAN', ['JSONB', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['jsonb_extract_int'], 'INT', ['JSONB', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['jsonb_extract_int'], 'INT', ['JSONB', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['jsonb_extract_bigint'], 'BIGINT', ['JSONB', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['jsonb_extract_bigint'], 'BIGINT', ['JSONB', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['jsonb_extract_double'], 'DOUBLE', ['JSONB', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['jsonb_extract_double'], 'DOUBLE', ['JSONB', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['jsonb_extract_string'], 'STRING', ['JSONB', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['jsonb_extract_string'], 'STRING', ['JSONB', 'STRING'], 'ALWAYS_NULLABLE'], |
| |
| # Json functions |
| [['get_json_int'], 'INT', ['VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['get_json_double'], 'DOUBLE', ['VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['get_json_string'], 'VARCHAR', ['VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['get_json_int'], 'INT', ['STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['get_json_double'], 'DOUBLE', ['STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['get_json_string'], 'STRING', ['STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['get_json_bigint'], 'BIGINT', ['VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['get_json_bigint'], 'BIGINT', ['STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| |
| [['json_array'], 'VARCHAR', ['VARCHAR', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['json_object'], 'VARCHAR', ['VARCHAR', '...'], 'ALWAYS_NOT_NULLABLE'], |
| [['json_quote'], 'VARCHAR', ['VARCHAR'], ''], |
| [['json_valid'], 'INT', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['json_extract'], 'VARCHAR', ['VARCHAR', 'VARCHAR', '...'], ''], |
| |
| #hll function |
| [['hll_cardinality'], 'BIGINT', ['HLL'], 'ALWAYS_NOT_NULLABLE'], |
| [['hll_hash'], 'HLL', ['VARCHAR'], 'ALWAYS_NOT_NULLABLE'], |
| [['hll_empty'], 'HLL', [], 'ALWAYS_NOT_NULLABLE'], |
| [['hll_hash'], 'HLL', ['STRING'], 'ALWAYS_NOT_NULLABLE'], |
| |
| #bitmap function |
| [['to_bitmap'], 'BITMAP', ['VARCHAR'], 'ALWAYS_NOT_NULLABLE'], |
| [['to_bitmap_with_check'], 'BITMAP', ['VARCHAR'], 'ALWAYS_NOT_NULLABLE'], |
| [['to_bitmap'], 'BITMAP', ['STRING'], 'ALWAYS_NOT_NULLABLE'], |
| [['to_bitmap_with_check'], 'BITMAP', ['STRING'], 'ALWAYS_NOT_NULLABLE'], |
| [['to_bitmap'], 'BITMAP', ['BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['to_bitmap_with_check'], 'BITMAP', ['BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['bitmap_hash'], 'BITMAP', ['VARCHAR'], 'ALWAYS_NOT_NULLABLE'], |
| [['bitmap_hash64'], 'BITMAP', ['VARCHAR'], 'ALWAYS_NOT_NULLABLE'], |
| [['bitmap_hash'], 'BITMAP', ['STRING'], 'ALWAYS_NOT_NULLABLE'], |
| [['bitmap_hash64'], 'BITMAP', ['STRING'], 'ALWAYS_NOT_NULLABLE'], |
| [['bitmap_count'], 'BIGINT', ['BITMAP'], 'ALWAYS_NOT_NULLABLE'], |
| [['bitmap_and_not_count'], 'BIGINT', ['BITMAP','BITMAP'], ''], |
| [['bitmap_empty'], 'BITMAP', [], 'ALWAYS_NOT_NULLABLE'], |
| [['bitmap_or'], 'BITMAP', ['BITMAP','BITMAP','...'], ''], |
| [['bitmap_or'], 'BITMAP', ['BITMAP','BITMAP'], ''], |
| [['bitmap_xor'], 'BITMAP', ['BITMAP','BITMAP','...'], ''], |
| [['bitmap_xor'], 'BITMAP', ['BITMAP','BITMAP'], ''], |
| [['bitmap_xor_count'], 'BIGINT', ['BITMAP','BITMAP','...'], ''], |
| [['bitmap_xor_count'], 'BIGINT', ['BITMAP','BITMAP'], ''], |
| [['bitmap_not'], 'BITMAP', ['BITMAP','BITMAP'], ''], |
| [['bitmap_and'], 'BITMAP', ['BITMAP','BITMAP','...'], ''], |
| [['bitmap_and'], 'BITMAP', ['BITMAP','BITMAP'], ''], |
| [['bitmap_and_not'], 'BITMAP', ['BITMAP','BITMAP'], ''], |
| [['bitmap_to_string'], 'STRING', ['BITMAP'], ''], |
| [['bitmap_from_string'], 'BITMAP', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['bitmap_from_string'], 'BITMAP', ['STRING'], 'ALWAYS_NULLABLE'], |
| [['bitmap_from_array'], 'BITMAP', ['ARRAY_TINYINT'], 'ALWAYS_NULLABLE'], |
| [['bitmap_from_array'], 'BITMAP', ['ARRAY_SMALLINT'], 'ALWAYS_NULLABLE'], |
| [['bitmap_from_array'], 'BITMAP', ['ARRAY_INT'], 'ALWAYS_NULLABLE'], |
| [['bitmap_from_array'], 'BITMAP', ['ARRAY_BIGINT'], 'ALWAYS_NULLABLE'], |
| [['bitmap_contains'], 'BOOLEAN', ['BITMAP','BIGINT'], ''], |
| [['bitmap_has_any'], 'BOOLEAN', ['BITMAP','BITMAP'], ''], |
| [['bitmap_has_all'], 'BOOLEAN', ['BITMAP','BITMAP'], ''], |
| [['bitmap_min'], 'BIGINT', ['BITMAP'], 'ALWAYS_NULLABLE'], |
| [['bitmap_max'], 'BIGINT', ['BITMAP'], 'ALWAYS_NULLABLE'], |
| [['bitmap_subset_in_range'], 'BITMAP', ['BITMAP', 'BIGINT', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['bitmap_subset_limit'], 'BITMAP', ['BITMAP', 'BIGINT', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['bitmap_and_count'], 'BIGINT', ['BITMAP','BITMAP','...'], ''], |
| [['bitmap_and_count'], 'BIGINT', ['BITMAP','BITMAP'], ''], |
| [['bitmap_or_count'], 'BIGINT', ['BITMAP','BITMAP','...'], ''], |
| [['bitmap_or_count'], 'BIGINT', ['BITMAP','BITMAP'], ''], |
| [['sub_bitmap'], 'BITMAP', ['BITMAP', 'BIGINT', 'BIGINT'], 'ALWAYS_NULLABLE'], |
| [['bitmap_to_array'], 'ARRAY_BIGINT', ['BITMAP'], ''], |
| |
| # quantile_function |
| [['to_quantile_state'], 'QUANTILE_STATE', ['VARCHAR', 'FLOAT'], 'ALWAYS_NOT_NULLABLE'], |
| [['to_quantile_state'], 'QUANTILE_STATE', ['DOUBLE', 'FLOAT'], 'ALWAYS_NOT_NULLABLE'], |
| [['to_quantile_state'], 'QUANTILE_STATE', ['FLOAT', 'FLOAT'], 'ALWAYS_NOT_NULLABLE'], |
| [['to_quantile_state'], 'QUANTILE_STATE', ['BIGINT', 'FLOAT'], 'ALWAYS_NOT_NULLABLE'], |
| [['quantile_percent'], 'DOUBLE', ['QUANTILE_STATE', 'FLOAT'], 'ALWAYS_NOT_NULLABLE'], |
| |
| |
| # hash functions |
| [['murmur_hash3_32'], 'INT', ['VARCHAR', '...'], ''], |
| [['murmur_hash3_32'], 'INT', ['STRING', '...'], ''], |
| [['murmur_hash3_64'], 'BIGINT', ['VARCHAR', '...'], ''], |
| [['murmur_hash3_64'], 'BIGINT', ['STRING', '...'], ''], |
| |
| # aes and base64 function |
| [['aes_encrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['aes_decrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['aes_encrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['aes_decrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['sm4_encrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['sm4_decrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['sm4_encrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['sm4_decrypt'], 'VARCHAR', ['VARCHAR', 'VARCHAR', 'VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['from_base64'], 'VARCHAR', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['aes_encrypt'], 'STRING', ['STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['aes_decrypt'], 'STRING', ['STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['aes_encrypt'], 'STRING', ['STRING', 'STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['aes_decrypt'], 'STRING', ['STRING', 'STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['sm4_encrypt'], 'STRING', ['STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['sm4_decrypt'], 'STRING', ['STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['sm4_encrypt'], 'STRING', ['STRING', 'STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['sm4_decrypt'], 'STRING', ['STRING', 'STRING', 'STRING', 'STRING'], 'ALWAYS_NULLABLE'], |
| [['from_base64'], 'STRING', ['STRING'], 'ALWAYS_NULLABLE'], |
| [['to_base64'], 'STRING', ['STRING'], 'ALWAYS_NULLABLE'], |
| [['to_base64'], 'VARCHAR', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| |
| # for compatable with MySQL |
| [['md5'], 'VARCHAR', ['VARCHAR'], ''], |
| [['md5sum'], 'VARCHAR', ['VARCHAR', '...'], ''], |
| [['md5'], 'VARCHAR', ['STRING'], ''], |
| [['md5sum'], 'VARCHAR', ['STRING', '...'], ''], |
| |
| [['sm3'], 'VARCHAR', ['VARCHAR'], ''], |
| [['sm3sum'], 'VARCHAR', ['VARCHAR', '...'], ''], |
| [['sm3'], 'VARCHAR', ['STRING'], ''], |
| [['sm3sum'], 'VARCHAR', ['STRING', '...'], ''], |
| |
| # geo functions |
| [['ST_Point'], 'VARCHAR', ['DOUBLE', 'DOUBLE'], 'ALWAYS_NULLABLE'], |
| [['ST_X'], 'DOUBLE', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['ST_Y'], 'DOUBLE', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['ST_X'], 'DOUBLE', ['STRING'], 'ALWAYS_NULLABLE'], |
| [['ST_Y'], 'DOUBLE', ['STRING'], 'ALWAYS_NULLABLE'], |
| |
| [['ST_Distance_Sphere'], 'DOUBLE', ['DOUBLE', 'DOUBLE', 'DOUBLE', 'DOUBLE'], 'ALWAYS_NULLABLE'], |
| [['ST_Angle_Sphere'], 'DOUBLE', ['DOUBLE', 'DOUBLE', 'DOUBLE', 'DOUBLE'], 'ALWAYS_NULLABLE'], |
| |
| [['ST_Angle'], 'DOUBLE', ['VARCHAR','VARCHAR','VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['ST_Angle'], 'DOUBLE', ['STRING','STRING','STRING'], 'ALWAYS_NULLABLE'], |
| [['ST_Azimuth'], 'DOUBLE', ['VARCHAR','VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['ST_Azimuth'], 'DOUBLE', ['STRING','STRING'], 'ALWAYS_NULLABLE'], |
| |
| [['ST_Area_Square_Meters'], 'DOUBLE', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['ST_Area_Square_Meters'], 'DOUBLE', ['STRING'], 'ALWAYS_NULLABLE'], |
| [['ST_Area_Square_Km'], 'DOUBLE', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['ST_Area_Square_Km'], 'DOUBLE', ['STRING'], 'ALWAYS_NULLABLE'], |
| |
| [['ST_AsText', 'ST_AsWKT'], 'VARCHAR', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['ST_AsText', 'ST_AsWKT'], 'VARCHAR', ['STRING'], 'ALWAYS_NULLABLE'], |
| [['ST_GeometryFromText', 'ST_GeomFromText'], 'VARCHAR', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['ST_GeometryFromText', 'ST_GeomFromText'], 'VARCHAR', ['STRING'], 'ALWAYS_NULLABLE'], |
| |
| [['ST_GeometryFromWkb', 'ST_GeomFromWkb'], 'VARCHAR', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['ST_GeometryFromWkb', 'ST_GeomFromWkb'], 'VARCHAR', ['STRING'], 'ALWAYS_NULLABLE'], |
| |
| [['ST_AsBinary'], 'VARCHAR', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['ST_AsBinary'], 'VARCHAR', ['STRING'], 'ALWAYS_NULLABLE'], |
| |
| [['ST_LineFromText', 'ST_LineStringFromText'], 'VARCHAR', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['ST_LineFromText', 'ST_LineStringFromText'], 'VARCHAR', ['STRING'], 'ALWAYS_NULLABLE'], |
| |
| [['ST_Polygon', 'ST_PolyFromText', 'ST_PolygonFromText'], 'VARCHAR', ['VARCHAR'], 'ALWAYS_NULLABLE'], |
| [['ST_Polygon', 'ST_PolyFromText', 'ST_PolygonFromText'], 'VARCHAR', ['STRING'], 'ALWAYS_NULLABLE'], |
| |
| [['ST_Circle'], 'VARCHAR', ['DOUBLE', 'DOUBLE', 'DOUBLE'], 'ALWAYS_NULLABLE'], |
| |
| [['ST_Contains'], 'BOOLEAN', ['VARCHAR', 'VARCHAR'], 'ALWAYS_NULLABLE'], |
| # grouping sets functions |
| [['grouping_id'], 'BIGINT', ['BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['grouping'], 'BIGINT', ['BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| |
| # url functions |
| [['domain'], 'STRING', ['STRING'], ''], |
| [['domain_without_www'], 'STRING', ['STRING'], ''], |
| [['protocol'], 'STRING', ['STRING'], ''], |
| |
| # search functions |
| [['multi_search_all_positions'], 'ARRAY_INT', ['STRING', 'ARRAY_STRING'], 'ALWAYS_NOT_NULLABLE'], |
| [['multi_match_any'], 'TINYINT', ['STRING', 'ARRAY_STRING'], 'ALWAYS_NOT_NULLABLE'], |
| |
| [['uuid'], 'VARCHAR', [], 'ALWAYS_NOT_NULLABLE'], |
| |
| [['non_nullable'], 'BOOLEAN', ['BOOLEAN'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'TINYINT', ['TINYINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'SMALLINT', ['SMALLINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'INT', ['INT'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'BIGINT', ['BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'LARGEINT', ['LARGEINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'FLOAT', ['FLOAT'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'DOUBLE', ['DOUBLE'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'DATE', ['DATE'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'DATEV2', ['DATEV2'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'DATETIME', ['DATETIME'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'DATETIMEV2', ['DATETIMEV2'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'DECIMALV2', ['DECIMALV2'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'DECIMAL32', ['DECIMAL32'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'DECIMAL64', ['DECIMAL64'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'DECIMAL128', ['DECIMAL128'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'VARCHAR', ['VARCHAR'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'STRING', ['STRING'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'BITMAP', ['BITMAP'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'JSONB', ['JSONB'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'ARRAY_BOOLEAN', ['ARRAY_BOOLEAN'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'ARRAY_TINYINT', ['ARRAY_TINYINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'ARRAY_SMALLINT', ['ARRAY_SMALLINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'ARRAY_INT', ['ARRAY_INT'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'ARRAY_BIGINT', ['ARRAY_BIGINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'ARRAY_LARGEINT', ['ARRAY_LARGEINT'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'ARRAY_DATETIME', ['ARRAY_DATETIME'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'ARRAY_DATE', ['ARRAY_DATE'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'ARRAY_DATETIMEV2', ['ARRAY_DATETIMEV2'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'ARRAY_DATEV2', ['ARRAY_DATEV2'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'ARRAY_FLOAT', ['ARRAY_FLOAT'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'ARRAY_DOUBLE', ['ARRAY_DOUBLE'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'ARRAY_DECIMALV2', ['ARRAY_DECIMALV2'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'ARRAY_DECIMAL32', ['ARRAY_DECIMAL32'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'ARRAY_DECIMAL64', ['ARRAY_DECIMAL64'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'ARRAY_DECIMAL128', ['ARRAY_DECIMAL128'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'ARRAY_VARCHAR', ['ARRAY_VARCHAR'], 'ALWAYS_NOT_NULLABLE'], |
| [['non_nullable'], 'ARRAY_STRING', ['ARRAY_STRING'], 'ALWAYS_NOT_NULLABLE'] |
| ] |
| |
| # Except the following functions, other function will directly return |
| # null if there is null parameters. |
| # Functions in this set will handle null values, not just return null. |
| # |
| # This set is only used to replace 'functions with null parameters' with NullLiteral |
| # when applying FoldConstantsRule rules on the FE side. |
| # TODO(cmy): Are these functions only required to handle null values? |
| non_null_result_with_null_param_functions = [ |
| 'if', |
| 'hll_hash', |
| 'concat_ws', |
| 'ifnull', |
| 'nvl', |
| 'nullif', |
| 'null_or_empty', |
| 'not_null_or_empty' |
| 'coalesce', |
| 'array', |
| 'json_array', |
| 'json_object' |
| ] |
| |
| # Nondeterministic functions may return different results each time they are called |
| nondeterministic_functions = [ |
| 'rand', |
| 'now', |
| 'current_timestamp', |
| 'localtime', |
| 'localtimestamp', |
| 'curdate', |
| 'current_date', |
| 'curtime', |
| 'current_time', |
| 'utc_timestamp', |
| 'uuid' |
| ] |
| # This is the subset of ALWAYS_NULLABLE |
| # The function belongs to @null_result_with_one_null_param_functions, |
| # as long as one parameter is null, the function must return null. |
| null_result_with_one_null_param_functions = [ |
| 'unix_timestamp', |
| 'str_to_date', |
| 'convert_tz', |
| 'pi', |
| 'e', |
| 'divide', |
| 'int_divide', |
| 'pmod', |
| 'mod', |
| 'fmod', |
| 'substr', |
| 'substring', |
| 'append_trailing_char_if_absent', |
| 'ST_X', |
| 'ST_Y', |
| 'ST_AsText', |
| 'ST_GeometryFromText', |
| 'ST_LineFromText', |
| 'ST_Polygon', |
| 'ST_Contains' |
| ] |
| |
| invisible_functions = [ |
| ] |