/*
 * 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.
 */
package org.apache.calcite.util;

import org.apache.calcite.DataContext;
import org.apache.calcite.adapter.enumerable.AggregateLambdaFactory;
import org.apache.calcite.adapter.enumerable.BasicAggregateLambdaFactory;
import org.apache.calcite.adapter.enumerable.BasicLazyAccumulator;
import org.apache.calcite.adapter.enumerable.EnumUtils;
import org.apache.calcite.adapter.enumerable.LazyAggregateLambdaFactory;
import org.apache.calcite.adapter.enumerable.MatchUtils;
import org.apache.calcite.adapter.enumerable.SourceSorter;
import org.apache.calcite.adapter.java.ReflectiveSchema;
import org.apache.calcite.adapter.jdbc.JdbcSchema;
import org.apache.calcite.avatica.util.ByteString;
import org.apache.calcite.avatica.util.DateTimeUtils;
import org.apache.calcite.avatica.util.TimeUnitRange;
import org.apache.calcite.interpreter.Context;
import org.apache.calcite.interpreter.Row;
import org.apache.calcite.interpreter.Scalar;
import org.apache.calcite.linq4j.AbstractEnumerable;
import org.apache.calcite.linq4j.Enumerable;
import org.apache.calcite.linq4j.EnumerableDefaults;
import org.apache.calcite.linq4j.Enumerator;
import org.apache.calcite.linq4j.ExtendedEnumerable;
import org.apache.calcite.linq4j.JoinType;
import org.apache.calcite.linq4j.Linq4j;
import org.apache.calcite.linq4j.MemoryFactory;
import org.apache.calcite.linq4j.QueryProvider;
import org.apache.calcite.linq4j.Queryable;
import org.apache.calcite.linq4j.function.EqualityComparer;
import org.apache.calcite.linq4j.function.Function0;
import org.apache.calcite.linq4j.function.Function1;
import org.apache.calcite.linq4j.function.Function2;
import org.apache.calcite.linq4j.function.Functions;
import org.apache.calcite.linq4j.function.Predicate1;
import org.apache.calcite.linq4j.function.Predicate2;
import org.apache.calcite.linq4j.tree.FunctionExpression;
import org.apache.calcite.linq4j.tree.Primitive;
import org.apache.calcite.linq4j.tree.Types;
import org.apache.calcite.plan.volcano.VolcanoPlanner;
import org.apache.calcite.rel.metadata.BuiltInMetadata.AllPredicates;
import org.apache.calcite.rel.metadata.BuiltInMetadata.Collation;
import org.apache.calcite.rel.metadata.BuiltInMetadata.ColumnOrigin;
import org.apache.calcite.rel.metadata.BuiltInMetadata.ColumnUniqueness;
import org.apache.calcite.rel.metadata.BuiltInMetadata.CumulativeCost;
import org.apache.calcite.rel.metadata.BuiltInMetadata.DistinctRowCount;
import org.apache.calcite.rel.metadata.BuiltInMetadata.Distribution;
import org.apache.calcite.rel.metadata.BuiltInMetadata.ExplainVisibility;
import org.apache.calcite.rel.metadata.BuiltInMetadata.ExpressionLineage;
import org.apache.calcite.rel.metadata.BuiltInMetadata.LowerBoundCost;
import org.apache.calcite.rel.metadata.BuiltInMetadata.MaxRowCount;
import org.apache.calcite.rel.metadata.BuiltInMetadata.Memory;
import org.apache.calcite.rel.metadata.BuiltInMetadata.MinRowCount;
import org.apache.calcite.rel.metadata.BuiltInMetadata.NodeTypes;
import org.apache.calcite.rel.metadata.BuiltInMetadata.NonCumulativeCost;
import org.apache.calcite.rel.metadata.BuiltInMetadata.Parallelism;
import org.apache.calcite.rel.metadata.BuiltInMetadata.PercentageOriginalRows;
import org.apache.calcite.rel.metadata.BuiltInMetadata.PopulationSize;
import org.apache.calcite.rel.metadata.BuiltInMetadata.Predicates;
import org.apache.calcite.rel.metadata.BuiltInMetadata.RowCount;
import org.apache.calcite.rel.metadata.BuiltInMetadata.Selectivity;
import org.apache.calcite.rel.metadata.BuiltInMetadata.Size;
import org.apache.calcite.rel.metadata.BuiltInMetadata.TableReferences;
import org.apache.calcite.rel.metadata.BuiltInMetadata.UniqueKeys;
import org.apache.calcite.rel.metadata.Metadata;
import org.apache.calcite.rex.RexNode;
import org.apache.calcite.runtime.ArrayBindable;
import org.apache.calcite.runtime.Automaton;
import org.apache.calcite.runtime.BinarySearch;
import org.apache.calcite.runtime.Bindable;
import org.apache.calcite.runtime.CompressionFunctions;
import org.apache.calcite.runtime.Enumerables;
import org.apache.calcite.runtime.FlatLists;
import org.apache.calcite.runtime.FunctionContexts;
import org.apache.calcite.runtime.JsonFunctions;
import org.apache.calcite.runtime.Matcher;
import org.apache.calcite.runtime.PairList;
import org.apache.calcite.runtime.Pattern;
import org.apache.calcite.runtime.RandomFunction;
import org.apache.calcite.runtime.ResultSetEnumerable;
import org.apache.calcite.runtime.SortedMultiMap;
import org.apache.calcite.runtime.SpatialTypeFunctions;
import org.apache.calcite.runtime.SqlFunctions;
import org.apache.calcite.runtime.SqlFunctions.FlatProductInputType;
import org.apache.calcite.runtime.UrlFunctions;
import org.apache.calcite.runtime.Utilities;
import org.apache.calcite.runtime.XmlFunctions;
import org.apache.calcite.schema.FilterableTable;
import org.apache.calcite.schema.ModifiableTable;
import org.apache.calcite.schema.ProjectableFilterableTable;
import org.apache.calcite.schema.QueryableTable;
import org.apache.calcite.schema.ScannableTable;
import org.apache.calcite.schema.Schema;
import org.apache.calcite.schema.SchemaPlus;
import org.apache.calcite.schema.Schemas;
import org.apache.calcite.schema.Table;
import org.apache.calcite.sql.SqlExplainLevel;
import org.apache.calcite.sql.SqlJsonConstructorNullClause;
import org.apache.calcite.sql.SqlJsonExistsErrorBehavior;
import org.apache.calcite.sql.SqlJsonQueryEmptyOrErrorBehavior;
import org.apache.calcite.sql.SqlJsonQueryWrapperBehavior;
import org.apache.calcite.sql.SqlJsonValueEmptyOrErrorBehavior;

import com.google.common.collect.ImmutableMap;

import org.checkerframework.checker.nullness.qual.Nullable;

import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Method;
import java.math.BigDecimal;
import java.sql.ResultSet;
import java.sql.Time;
import java.sql.Timestamp;
import java.util.Arrays;
import java.util.Calendar;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.Iterator;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.TimeZone;
import java.util.function.BiPredicate;
import java.util.function.Consumer;
import java.util.function.Function;
import java.util.function.Predicate;
import javax.sql.DataSource;

import static org.apache.calcite.linq4j.Nullness.castNonNull;

/**
 * Built-in methods.
 */
public enum BuiltInMethod {
  QUERYABLE_SELECT(Queryable.class, "select", FunctionExpression.class),
  QUERYABLE_AS_ENUMERABLE(Queryable.class, "asEnumerable"),
  QUERYABLE_TABLE_AS_QUERYABLE(QueryableTable.class, "asQueryable",
      QueryProvider.class, SchemaPlus.class, String.class),
  AS_QUERYABLE(Enumerable.class, "asQueryable"),
  ABSTRACT_ENUMERABLE_CTOR(AbstractEnumerable.class),
  INTO(ExtendedEnumerable.class, "into", Collection.class),
  REMOVE_ALL(ExtendedEnumerable.class, "removeAll", Collection.class),
  SCHEMA_GET_SUB_SCHEMA(Schema.class, "getSubSchema", String.class),
  SCHEMA_GET_TABLE(Schema.class, "getTable", String.class),
  SCHEMA_PLUS_ADD_TABLE(SchemaPlus.class, "add", String.class, Table.class),
  SCHEMA_PLUS_REMOVE_TABLE(SchemaPlus.class, "removeTable", String.class),
  SCHEMA_PLUS_UNWRAP(SchemaPlus.class, "unwrap", Class.class),
  SCHEMAS_ENUMERABLE_SCANNABLE(Schemas.class, "enumerable",
      ScannableTable.class, DataContext.class),
  SCHEMAS_ENUMERABLE_FILTERABLE(Schemas.class, "enumerable",
      FilterableTable.class, DataContext.class),
  SCHEMAS_ENUMERABLE_PROJECTABLE_FILTERABLE(Schemas.class, "enumerable",
      ProjectableFilterableTable.class, DataContext.class),
  SCHEMAS_QUERYABLE(Schemas.class, "queryable", DataContext.class,
      SchemaPlus.class, Class.class, String.class),
  REFLECTIVE_SCHEMA_GET_TARGET(ReflectiveSchema.class, "getTarget"),
  DATA_CONTEXT_GET(DataContext.class, "get", String.class),
  DATA_CONTEXT_GET_ROOT_SCHEMA(DataContext.class, "getRootSchema"),
  JDBC_SCHEMA_DATA_SOURCE(JdbcSchema.class, "getDataSource"),
  ROW_VALUE(Row.class, "getObject", int.class),
  ROW_AS_COPY(Row.class, "asCopy", Object[].class),
  RESULT_SET_ENUMERABLE_SET_TIMEOUT(ResultSetEnumerable.class, "setTimeout",
      DataContext.class),
  RESULT_SET_ENUMERABLE_OF(ResultSetEnumerable.class, "of", DataSource.class,
      String.class, Function1.class),
  RESULT_SET_ENUMERABLE_OF_PREPARED(ResultSetEnumerable.class, "of",
      DataSource.class, String.class, Function1.class,
      ResultSetEnumerable.PreparedStatementEnricher.class),
  CREATE_ENRICHER(ResultSetEnumerable.class, "createEnricher", Integer[].class,
      DataContext.class),
  HASH_JOIN(ExtendedEnumerable.class, "hashJoin", Enumerable.class,
      Function1.class,
      Function1.class, Function2.class, EqualityComparer.class,
      boolean.class, boolean.class, Predicate2.class),
  MATCH(Enumerables.class, "match", Enumerable.class, Function1.class,
      Matcher.class, Enumerables.Emitter.class, int.class, int.class),
  PATTERN_BUILDER(Utilities.class, "patternBuilder"),
  PATTERN_BUILDER_SYMBOL(Pattern.PatternBuilder.class, "symbol", String.class),
  PATTERN_BUILDER_SEQ(Pattern.PatternBuilder.class, "seq"),
  PATTERN_BUILDER_BUILD(Pattern.PatternBuilder.class, "build"),
  PATTERN_TO_AUTOMATON(Pattern.PatternBuilder.class, "automaton"),
  MATCHER_BUILDER(Matcher.class, "builder", Automaton.class),
  MATCHER_BUILDER_ADD(Matcher.Builder.class, "add", String.class,
      Predicate.class),
  MATCHER_BUILDER_BUILD(Matcher.Builder.class, "build"),
  MATCH_UTILS_LAST_WITH_SYMBOL(MatchUtils.class, "lastWithSymbol", String.class,
      List.class, List.class, int.class),
  EMITTER_EMIT(Enumerables.Emitter.class, "emit", List.class, List.class,
      List.class, int.class, Consumer.class),
  MERGE_JOIN(EnumerableDefaults.class, "mergeJoin", Enumerable.class,
      Enumerable.class, Function1.class, Function1.class, Predicate2.class, Function2.class,
      JoinType.class, Comparator.class, EqualityComparer.class),
  SLICE0(Enumerables.class, "slice0", Enumerable.class),
  SEMI_JOIN(EnumerableDefaults.class, "semiJoin", Enumerable.class,
      Enumerable.class, Function1.class, Function1.class,
      EqualityComparer.class, Predicate2.class),
  ANTI_JOIN(EnumerableDefaults.class, "antiJoin", Enumerable.class,
      Enumerable.class, Function1.class, Function1.class,
      EqualityComparer.class, Predicate2.class),
  NESTED_LOOP_JOIN(EnumerableDefaults.class, "nestedLoopJoin", Enumerable.class,
      Enumerable.class, Predicate2.class, Function2.class, JoinType.class),
  CORRELATE_JOIN(ExtendedEnumerable.class, "correlateJoin",
      JoinType.class, Function1.class, Function2.class),
  CORRELATE_BATCH_JOIN(EnumerableDefaults.class, "correlateBatchJoin",
      JoinType.class, Enumerable.class, Function1.class, Function2.class,
      Predicate2.class, int.class),
  SELECT(ExtendedEnumerable.class, "select", Function1.class),
  SELECT2(ExtendedEnumerable.class, "select", Function2.class),
  SELECT_MANY(ExtendedEnumerable.class, "selectMany", Function1.class),
  WHERE(ExtendedEnumerable.class, "where", Predicate1.class),
  WHERE2(ExtendedEnumerable.class, "where", Predicate2.class),
  DISTINCT(ExtendedEnumerable.class, "distinct"),
  DISTINCT2(ExtendedEnumerable.class, "distinct", EqualityComparer.class),
  SORTED_GROUP_BY(ExtendedEnumerable.class, "sortedGroupBy", Function1.class,
      Function0.class, Function2.class, Function2.class, Comparator.class),
  GROUP_BY(ExtendedEnumerable.class, "groupBy", Function1.class),
  GROUP_BY2(ExtendedEnumerable.class, "groupBy", Function1.class,
      Function0.class, Function2.class, Function2.class),
  GROUP_BY_MULTIPLE(EnumerableDefaults.class, "groupByMultiple",
      Enumerable.class, List.class, Function0.class, Function2.class,
      Function2.class),
  AGGREGATE(ExtendedEnumerable.class, "aggregate", Object.class,
      Function2.class, Function1.class),
  ORDER_BY(ExtendedEnumerable.class, "orderBy", Function1.class,
      Comparator.class),
  ORDER_BY_WITH_FETCH_AND_OFFSET(EnumerableDefaults.class, "orderBy", Enumerable.class,
      Function1.class, Comparator.class, int.class, int.class),
  UNION(ExtendedEnumerable.class, "union", Enumerable.class),
  CONCAT(ExtendedEnumerable.class, "concat", Enumerable.class),
  REPEAT_UNION(EnumerableDefaults.class, "repeatUnion", Enumerable.class,
      Enumerable.class, int.class, boolean.class, EqualityComparer.class, Function0.class),
  MERGE_UNION(EnumerableDefaults.class, "mergeUnion", List.class, Function1.class,
      Comparator.class, boolean.class, EqualityComparer.class),
  LAZY_COLLECTION_SPOOL(EnumerableDefaults.class, "lazyCollectionSpool", Collection.class,
      Enumerable.class),
  INTERSECT(ExtendedEnumerable.class, "intersect", Enumerable.class, boolean.class),
  EXCEPT(ExtendedEnumerable.class, "except", Enumerable.class, boolean.class),
  SKIP(ExtendedEnumerable.class, "skip", int.class),
  TAKE(ExtendedEnumerable.class, "take", int.class),
  SINGLETON_ENUMERABLE(Linq4j.class, "singletonEnumerable", Object.class),
  EMPTY_ENUMERABLE(Linq4j.class, "emptyEnumerable"),
  NULLS_COMPARATOR(Functions.class, "nullsComparator", boolean.class,
      boolean.class),
  NULLS_COMPARATOR2(Functions.class, "nullsComparator", boolean.class,
      boolean.class, Comparator.class),
  ARRAY_COMPARER(Functions.class, "arrayComparer"),
  FUNCTION0_APPLY(Function0.class, "apply"),
  FUNCTION1_APPLY(Function1.class, "apply", Object.class),
  ARRAYS_AS_LIST(Arrays.class, "asList", Object[].class),
  ARRAY(SqlFunctions.class, "array", Object[].class),
  // class PairList.Helper is deprecated to discourage code from calling its
  // methods directly, but use via Janino code generation is just fine.
  @SuppressWarnings("deprecation")
  PAIR_LIST_COPY_OF(PairList.Helper.class, "copyOf", Object.class, Object.class,
      Object[].class),
  FLAT_PRODUCT(SqlFunctions.class, "flatProduct", int[].class, boolean.class,
      FlatProductInputType[].class),
  FLAT_LIST(SqlFunctions.class, "flatList"),
  LIST_N(FlatLists.class, "copyOf", Comparable[].class),
  LIST2(FlatLists.class, "of", Object.class, Object.class),
  LIST3(FlatLists.class, "of", Object.class, Object.class, Object.class),
  LIST4(FlatLists.class, "of", Object.class, Object.class, Object.class,
      Object.class),
  LIST5(FlatLists.class, "of", Object.class, Object.class, Object.class,
      Object.class, Object.class),
  LIST6(FlatLists.class, "of", Object.class, Object.class, Object.class,
      Object.class, Object.class, Object.class),
  COMPARABLE_EMPTY_LIST(FlatLists.class, "COMPARABLE_EMPTY_LIST", true),
  IDENTITY_COMPARER(Functions.class, "identityComparer"),
  IDENTITY_SELECTOR(Functions.class, "identitySelector"),
  AS_ENUMERABLE(Linq4j.class, "asEnumerable", Object[].class),
  AS_ENUMERABLE2(Linq4j.class, "asEnumerable", Iterable.class),
  ENUMERABLE_TO_LIST(ExtendedEnumerable.class, "toList"),
  ENUMERABLE_TO_MAP(ExtendedEnumerable.class, "toMap", Function1.class, Function1.class),
  AS_LIST(Primitive.class, "asList", Object.class),
  INTEGER_CAST(Primitive.class, "integerCast", Primitive.class, Object.class),
  MEMORY_GET0(MemoryFactory.Memory.class, "get"),
  MEMORY_GET1(MemoryFactory.Memory.class, "get", int.class),
  ENUMERATOR_CURRENT(Enumerator.class, "current"),
  ENUMERATOR_MOVE_NEXT(Enumerator.class, "moveNext"),
  ENUMERATOR_CLOSE(Enumerator.class, "close"),
  ENUMERATOR_RESET(Enumerator.class, "reset"),
  ENUMERABLE_ENUMERATOR(Enumerable.class, "enumerator"),
  ENUMERABLE_FOREACH(Enumerable.class, "foreach", Function1.class),
  ITERABLE_FOR_EACH(Iterable.class, "forEach", Consumer.class),
  FUNCTION_APPLY(Function.class, "apply", Object.class),
  PREDICATE_TEST(Predicate.class, "test", Object.class),
  BI_PREDICATE_TEST(BiPredicate.class, "test", Object.class, Object.class),
  CONSUMER_ACCEPT(Consumer.class, "accept", Object.class),
  TYPED_GET_ELEMENT_TYPE(ArrayBindable.class, "getElementType"),
  BINDABLE_BIND(Bindable.class, "bind", DataContext.class),
  RESULT_SET_GET_DATE2(ResultSet.class, "getDate", int.class, Calendar.class),
  RESULT_SET_GET_TIME2(ResultSet.class, "getTime", int.class, Calendar.class),
  RESULT_SET_GET_TIMESTAMP2(ResultSet.class, "getTimestamp", int.class,
      Calendar.class),
  TIME_ZONE_GET_OFFSET(TimeZone.class, "getOffset", long.class),
  LONG_VALUE(Number.class, "longValue"),
  STRING_TO_UPPER(String.class, "toUpperCase"),
  COMPARATOR_COMPARE(Comparator.class, "compare", Object.class, Object.class),
  COLLECTIONS_REVERSE_ORDER(Collections.class, "reverseOrder"),
  COLLECTIONS_EMPTY_LIST(Collections.class, "emptyList"),
  COLLECTIONS_SINGLETON_LIST(Collections.class, "singletonList", Object.class),
  COLLECTION_SIZE(Collection.class, "size"),
  COLLECTION_EXISTS(Functions.class, "exists", List.class, Predicate1.class),
  COLLECTION_ALL(Functions.class, "all", List.class, Predicate1.class),
  COLLECTION_NULLABLE_EXISTS(SqlFunctions.class, "nullableExists",
      List.class, Function1.class),
  COLLECTION_NULLABLE_ALL(SqlFunctions.class, "nullableAll", List.class, Function1.class),
  MAP_CLEAR(Map.class, "clear"),
  MAP_GET(Map.class, "get", Object.class),
  MAP_GET_OR_DEFAULT(Map.class, "getOrDefault", Object.class, Object.class),
  MAP_PUT(Map.class, "put", Object.class, Object.class),
  COLLECTION_ADD(Collection.class, "add", Object.class),
  COLLECTION_ADDALL(Collection.class, "addAll", Collection.class),
  COLLECTION_RETAIN_ALL(Collection.class, "retainAll", Collection.class),
  LIST_CONTAINS(List.class, "contains", Object.class),
  LIST_GET(List.class, "get", int.class),
  ITERATOR_HAS_NEXT(Iterator.class, "hasNext"),
  ITERATOR_NEXT(Iterator.class, "next"),
  MATH_MAX(Math.class, "max", int.class, int.class),
  MATH_MIN(Math.class, "min", int.class, int.class),
  SORTED_MULTI_MAP_PUT_MULTI(SortedMultiMap.class, "putMulti", Object.class,
      Object.class),
  SORTED_MULTI_MAP_ARRAYS(SortedMultiMap.class, "arrays", Comparator.class),
  SORTED_MULTI_MAP_SINGLETON(SortedMultiMap.class, "singletonArrayIterator",
      Comparator.class, List.class),
  IMMUTABLE_INT_LIST_IDENTITY(ImmutableIntList.class, "identity", int.class),
  IMMUTABLE_INT_LIST_COPY_OF(ImmutableIntList.class, "copyOf", int[].class),
  BINARY_SEARCH5_LOWER(BinarySearch.class, "lowerBound", Object[].class,
      Object.class, int.class, int.class, Comparator.class),
  BINARY_SEARCH5_UPPER(BinarySearch.class, "upperBound", Object[].class,
      Object.class, int.class, int.class, Comparator.class),
  BINARY_SEARCH6_LOWER(BinarySearch.class, "lowerBound", Object[].class,
      Object.class, int.class, int.class, Function1.class, Comparator.class),
  BINARY_SEARCH6_UPPER(BinarySearch.class, "upperBound", Object[].class,
      Object.class, int.class, int.class, Function1.class, Comparator.class),
  ARRAY_ITEM(SqlFunctions.class, "arrayItemOptional", List.class, int.class,
      int.class, boolean.class),
  MAP_ITEM(SqlFunctions.class, "mapItemOptional", Map.class, Object.class),
  ANY_ITEM(SqlFunctions.class, "itemOptional", Object.class, Object.class),
  UPPER(SqlFunctions.class, "upper", String.class),
  LOWER(SqlFunctions.class, "lower", String.class),
  ARRAY_TO_STRING(SqlFunctions.class, "arrayToString", List.class,
      String.class),
  SROUND(SqlFunctions.class, "sround", long.class),
  STRUNCATE(SqlFunctions.class, "struncate", long.class),
  ASCII(SqlFunctions.class, "ascii", String.class),
  CHAR_FROM_ASCII(SqlFunctions.class, "charFromAscii", int.class),
  CHAR_FROM_UTF8(SqlFunctions.class, "charFromUtf8", int.class),
  CODE_POINTS_TO_BYTES(SqlFunctions.class, "codePointsToBytes", List.class),
  CODE_POINTS_TO_STRING(SqlFunctions.class, "codePointsToString", List.class),
  TO_CODE_POINTS(SqlFunctions.class, "toCodePoints", String.class),
  CONVERT(SqlFunctions.class, "convertWithCharset", String.class, String.class,
      String.class),
  EXP(SqlFunctions.class, "exp", double.class),
  MOD(SqlFunctions.class, "mod", long.class, long.class),
  POWER(SqlFunctions.class, "power", double.class, double.class),
  REPEAT(SqlFunctions.class, "repeat", String.class, int.class),
  SPACE(SqlFunctions.class, "space", int.class),
  SPLIT(SqlFunctions.class, "split", String.class),
  SOUNDEX(SqlFunctions.class, "soundex", String.class),
  SOUNDEX_SPARK(SqlFunctions.class, "soundexSpark", String.class),
  STRCMP(SqlFunctions.class, "strcmp", String.class, String.class),
  DIFFERENCE(SqlFunctions.class, "difference", String.class, String.class),
  REVERSE(SqlFunctions.class, "reverse", String.class),
  LEVENSHTEIN(SqlFunctions.class, "levenshtein", String.class, String.class),
  FIND_IN_SET(SqlFunctions.class, "findInSet", String.class, String.class),
  LEFT(SqlFunctions.class, "left", String.class, int.class),
  RIGHT(SqlFunctions.class, "right", String.class, int.class),
  TO_BASE64(SqlFunctions.class, "toBase64", String.class),
  FROM_BASE64(SqlFunctions.class, "fromBase64", String.class),
  TO_BASE32(SqlFunctions.class, "toBase32", String.class),
  FROM_BASE32(SqlFunctions.class, "fromBase32", String.class),
  TO_HEX(SqlFunctions.class, "toHex", ByteString.class),
  FROM_HEX(SqlFunctions.class, "fromHex", String.class),
  MD5(SqlFunctions.class, "md5", String.class),
  SHA1(SqlFunctions.class, "sha1", String.class),
  SHA256(SqlFunctions.class, "sha256", String.class),
  SHA512(SqlFunctions.class, "sha512", String.class),
  THROW_UNLESS(SqlFunctions.class, "throwUnless", boolean.class, String.class),
  COMPRESS(CompressionFunctions.class, "compress", String.class),
  URL_DECODE(UrlFunctions.class, "urlDecode", String.class),
  URL_ENCODE(UrlFunctions.class, "urlEncode", String.class),
  EXTRACT_VALUE(XmlFunctions.class, "extractValue", String.class, String.class),
  XML_TRANSFORM(XmlFunctions.class, "xmlTransform", String.class, String.class),
  EXTRACT_XML(XmlFunctions.class, "extractXml", String.class, String.class, String.class),
  EXISTS_NODE(XmlFunctions.class, "existsNode", String.class, String.class, String.class),
  JSONIZE(JsonFunctions.class, "jsonize", Object.class),
  DEJSONIZE(JsonFunctions.class, "dejsonize", String.class),
  JSON_VALUE_EXPRESSION(JsonFunctions.class, "jsonValueExpression",
      String.class),
  JSON_API_COMMON_SYNTAX(JsonFunctions.class, "jsonApiCommonSyntax",
      String.class, String.class),
  JSON_API_COMMON_SYNTAX_WITH_CACHE(JsonFunctions.StatefulFunction.class,
      "jsonApiCommonSyntaxWithCache", String.class, String.class),
  JSON_EXISTS2(JsonFunctions.StatefulFunction.class, "jsonExists",
      String.class, String.class),
  JSON_EXISTS3(JsonFunctions.StatefulFunction.class, "jsonExists",
      String.class, String.class, SqlJsonExistsErrorBehavior.class),
  JSON_VALUE(JsonFunctions.StatefulFunction.class, "jsonValue",
      String.class, String.class,
      SqlJsonValueEmptyOrErrorBehavior.class, Object.class,
      SqlJsonValueEmptyOrErrorBehavior.class, Object.class),
  JSON_QUERY(JsonFunctions.StatefulFunction.class, "jsonQuery", String.class,
      String.class, SqlJsonQueryWrapperBehavior.class,
      SqlJsonQueryEmptyOrErrorBehavior.class,
      SqlJsonQueryEmptyOrErrorBehavior.class),
  JSON_OBJECT(JsonFunctions.class, "jsonObject",
      SqlJsonConstructorNullClause.class),
  JSON_TYPE(JsonFunctions.class, "jsonType", String.class),
  JSON_DEPTH(JsonFunctions.class, "jsonDepth", String.class),
  JSON_KEYS(JsonFunctions.class, "jsonKeys", String.class),
  JSON_INSERT(JsonFunctions.class, "jsonInsert", String.class, Object.class),
  JSON_PRETTY(JsonFunctions.class, "jsonPretty", String.class),
  JSON_LENGTH(JsonFunctions.class, "jsonLength", String.class),
  JSON_REPLACE(JsonFunctions.class, "jsonReplace", String.class, Object.class),
  JSON_REMOVE(JsonFunctions.class, "jsonRemove", String.class),
  JSON_STORAGE_SIZE(JsonFunctions.class, "jsonStorageSize", String.class),
  JSON_SET(JsonFunctions.class, "jsonSet", String.class, Object.class),
  JSON_OBJECTAGG_ADD(JsonFunctions.class, "jsonObjectAggAdd", Map.class,
      String.class, Object.class, SqlJsonConstructorNullClause.class),
  JSON_ARRAY(JsonFunctions.class, "jsonArray",
      SqlJsonConstructorNullClause.class),
  JSON_ARRAYAGG_ADD(JsonFunctions.class, "jsonArrayAggAdd",
      List.class, Object.class, SqlJsonConstructorNullClause.class),
  IS_JSON_VALUE(JsonFunctions.class, "isJsonValue", String.class),
  IS_JSON_OBJECT(JsonFunctions.class, "isJsonObject", String.class),
  IS_JSON_ARRAY(JsonFunctions.class, "isJsonArray", String.class),
  IS_JSON_SCALAR(JsonFunctions.class, "isJsonScalar", String.class),
  ST_GEOM_FROM_EWKT(SpatialTypeFunctions.class, "ST_GeomFromEWKT", String.class),
  INITCAP(SqlFunctions.class, "initcap", String.class),
  SUBSTRING(SqlFunctions.class, "substring", String.class, int.class,
      int.class),
  FORMAT_NUMBER(SqlFunctions.class, "formatNumber", long.class, int.class),
  LPAD(SqlFunctions.class, "lpad", String.class, int.class, String.class),
  RPAD(SqlFunctions.class, "rpad", String.class, int.class, String.class),
  STARTS_WITH(SqlFunctions.class, "startsWith", String.class, String.class),
  ENDS_WITH(SqlFunctions.class, "endsWith", String.class, String.class),
  OCTET_LENGTH(SqlFunctions.class, "octetLength", ByteString.class),
  CHAR_LENGTH(SqlFunctions.class, "charLength", String.class),
  BIT_LENGTH(SqlFunctions.class, "bitLength", String.class),
  BIT_GET(SqlFunctions.class, "bitGet", long.class, int.class),
  STRING_CONCAT(SqlFunctions.class, "concat", String.class, String.class),
  STRING_CONCAT_WITH_NULL(SqlFunctions.class, "concatWithNull", String.class,
      String.class),
  PARSE_URL2(SqlFunctions.ParseUrlFunction.class, "parseUrl", String.class,
      String.class),
  PARSE_URL3(SqlFunctions.ParseUrlFunction.class, "parseUrl", String.class,
      String.class, String.class),
  MULTI_STRING_CONCAT(SqlFunctions.class, "concatMulti", String[].class),
  MULTI_STRING_CONCAT_WITH_NULL(SqlFunctions.class, "concatMultiWithNull",
      String[].class),
  MULTI_STRING_CONCAT_WITH_SEPARATOR(SqlFunctions.class,
      "concatMultiWithSeparator", String[].class),
  FLOOR_DIV(Math.class, "floorDiv", long.class, long.class),
  FLOOR_MOD(Math.class, "floorMod", long.class, long.class),
  ADD_MONTHS(DateTimeUtils.class, "addMonths", long.class, int.class),
  ADD_MONTHS_INT(DateTimeUtils.class, "addMonths", int.class, int.class),
  SUBTRACT_MONTHS(DateTimeUtils.class, "subtractMonths", long.class,
      long.class),
  FLOOR(SqlFunctions.class, "floor", int.class, int.class),
  CEIL(SqlFunctions.class, "ceil", int.class, int.class),
  ABS(SqlFunctions.class, "abs", long.class),
  ACOS(SqlFunctions.class, "acos", double.class),
  ACOSH(SqlFunctions.class, "acosh", double.class),
  ASIN(SqlFunctions.class, "asin", double.class),
  ASINH(SqlFunctions.class, "asinh", double.class),
  ATAN(SqlFunctions.class, "atan", double.class),
  ATAN2(SqlFunctions.class, "atan2", double.class, double.class),
  ATANH(SqlFunctions.class, "atanh", double.class),
  CBRT(SqlFunctions.class, "cbrt", double.class),
  COS(SqlFunctions.class, "cos", double.class),
  COSH(SqlFunctions.class, "cosh", long.class),
  COT(SqlFunctions.class, "cot", double.class),
  COTH(SqlFunctions.class, "coth", double.class),
  CSC(SqlFunctions.class, "csc", double.class),
  CSCH(SqlFunctions.class, "csch", double.class),
  DEGREES(SqlFunctions.class, "degrees", double.class),
  FACTORIAL(SqlFunctions.class, "factorial", int.class),
  IS_INF(SqlFunctions.class, "isInf", long.class),
  IS_NAN(SqlFunctions.class, "isNaN", double.class),
  OVERLAY(SqlFunctions.class, "overlay", String.class, String.class, int.class),
  OVERLAY3(SqlFunctions.class, "overlay", String.class, String.class, int.class,
      int.class),
  POSITION(SqlFunctions.class, "position", String.class, String.class),
  RADIANS(SqlFunctions.class, "radians", double.class),
  RAND(RandomFunction.class, "rand"),
  RAND_SEED(RandomFunction.class, "randSeed", int.class),
  RAND_INTEGER(RandomFunction.class, "randInteger", int.class),
  RAND_INTEGER_SEED(RandomFunction.class, "randIntegerSeed", int.class,
      int.class),
  SAFE_ADD(SqlFunctions.class, "safeAdd", double.class, double.class),
  SAFE_DIVIDE(SqlFunctions.class, "safeDivide", double.class, double.class),
  SAFE_MULTIPLY(SqlFunctions.class, "safeMultiply", double.class, double.class),
  SAFE_SUBTRACT(SqlFunctions.class, "safeSubtract", double.class, double.class),
  LOG(SqlFunctions.class, "log", long.class, long.class),
  LOG2(SqlFunctions.class, "log2", long.class),
  SEC(SqlFunctions.class, "sec", double.class),
  SECH(SqlFunctions.class, "sech", double.class),
  SIGN(SqlFunctions.class, "sign", long.class),
  SIN(SqlFunctions.class, "sin", double.class),
  TAN(SqlFunctions.class, "tan", double.class),
  TANH(SqlFunctions.class, "tanh", long.class),
  SINH(SqlFunctions.class, "sinh", long.class),
  TRUNCATE(SqlFunctions.class, "truncate", String.class, int.class),
  TRUNCATE_OR_PAD(SqlFunctions.class, "truncateOrPad", String.class, int.class),
  TRIM(SqlFunctions.class, "trim", boolean.class, boolean.class, String.class,
      String.class, boolean.class),
  REPLACE(SqlFunctions.class, "replace", String.class, String.class,
      String.class),
  TRANSLATE_WITH_CHARSET(SqlFunctions.class, "translateWithCharset", String.class, String.class),
  TRANSLATE3(SqlFunctions.class, "translate3", String.class, String.class, String.class),
  LTRIM(SqlFunctions.class, "ltrim", String.class),
  RTRIM(SqlFunctions.class, "rtrim", String.class),
  LIKE(SqlFunctions.LikeFunction.class, "like", String.class, String.class),
  LIKE_ESCAPE(SqlFunctions.LikeFunction.class, "like", String.class,
      String.class, String.class),
  ILIKE(SqlFunctions.LikeFunction.class, "ilike", String.class, String.class),
  ILIKE_ESCAPE(SqlFunctions.LikeFunction.class, "ilike", String.class,
      String.class, String.class),
  RLIKE(SqlFunctions.RegexFunction.class, "rlike", String.class, String.class),
  SIMILAR(SqlFunctions.SimilarFunction.class, "similar", String.class,
      String.class),
  SIMILAR_ESCAPE(SqlFunctions.SimilarEscapeFunction.class, "similar",
      String.class, String.class, String.class),
  POSIX_REGEX_INSENSITIVE(SqlFunctions.PosixRegexFunction.class,
      "posixRegexInsensitive", String.class, String.class),
  POSIX_REGEX_SENSITIVE(SqlFunctions.PosixRegexFunction.class,
      "posixRegexSensitive", String.class, String.class),
  REGEXP_CONTAINS(SqlFunctions.RegexFunction.class, "regexpContains",
      String.class, String.class),
  REGEXP_EXTRACT2(SqlFunctions.RegexFunction.class, "regexpExtract",
      String.class, String.class),
  REGEXP_EXTRACT3(SqlFunctions.RegexFunction.class, "regexpExtract",
      String.class, String.class, int.class),
  REGEXP_EXTRACT4(SqlFunctions.RegexFunction.class, "regexpExtract",
      String.class, String.class, int.class, int.class),
  REGEXP_EXTRACT_ALL(SqlFunctions.RegexFunction.class, "regexpExtractAll",
      String.class, String.class),
  REGEXP_INSTR2(SqlFunctions.RegexFunction.class, "regexpInstr",
      String.class, String.class),
  REGEXP_INSTR3(SqlFunctions.RegexFunction.class, "regexpInstr",
      String.class, String.class, int.class),
  REGEXP_INSTR4(SqlFunctions.RegexFunction.class, "regexpInstr",
      String.class, String.class, int.class, int.class),
  REGEXP_INSTR5(SqlFunctions.RegexFunction.class, "regexpInstr",
      String.class, String.class, int.class, int.class, int.class),
  REGEXP_REPLACE3(SqlFunctions.RegexFunction.class, "regexpReplace",
      String.class, String.class, String.class),
  REGEXP_REPLACE4(SqlFunctions.RegexFunction.class, "regexpReplace",
      String.class, String.class, String.class, int.class),
  REGEXP_REPLACE5(SqlFunctions.RegexFunction.class, "regexpReplace",
      String.class, String.class, String.class, int.class, int.class),
  REGEXP_REPLACE6(SqlFunctions.RegexFunction.class, "regexpReplace",
      String.class, String.class, String.class, int.class, int.class,
      String.class),
  IS_TRUE(SqlFunctions.class, "isTrue", Boolean.class),
  IS_NOT_FALSE(SqlFunctions.class, "isNotFalse", Boolean.class),
  NOT(SqlFunctions.class, "not", Boolean.class),
  LESSER(SqlFunctions.class, "lesser", Comparable.class, Comparable.class),
  GREATER(SqlFunctions.class, "greater", Comparable.class, Comparable.class),
  LT_NULLABLE(SqlFunctions.class, "ltNullable", Comparable.class,
      Comparable.class),
  GT_NULLABLE(SqlFunctions.class, "gtNullable", Comparable.class,
      Comparable.class),
  LT(SqlFunctions.class, "lt", boolean.class, boolean.class),
  GT(SqlFunctions.class, "gt", boolean.class, boolean.class),
  BIT_AND(SqlFunctions.class, "bitAnd", long.class, long.class),
  BIT_OR(SqlFunctions.class, "bitOr", long.class, long.class),
  BIT_XOR(SqlFunctions.class, "bitXor", long.class, long.class),
  MODIFIABLE_TABLE_GET_MODIFIABLE_COLLECTION(ModifiableTable.class,
      "getModifiableCollection"),
  SCANNABLE_TABLE_SCAN(ScannableTable.class, "scan", DataContext.class),
  STRING_TO_BOOLEAN(SqlFunctions.class, "toBoolean", String.class),
  INTERNAL_TO_DATE(SqlFunctions.class, "internalToDate", int.class),
  INTERNAL_TO_TIME(SqlFunctions.class, "internalToTime", int.class),
  INTERNAL_TO_TIMESTAMP(SqlFunctions.class, "internalToTimestamp", long.class),
  STRING_TO_DATE(DateTimeUtils.class, "dateStringToUnixDate", String.class),
  STRING_TO_TIME(DateTimeUtils.class, "timeStringToUnixDate", String.class),
  STRING_TO_TIMESTAMP(DateTimeUtils.class, "timestampStringToUnixDate", String.class),
  STRING_TO_TIME_WITH_LOCAL_TIME_ZONE(SqlFunctions.class, "toTimeWithLocalTimeZone",
      String.class),
  TIME_STRING_TO_TIME_WITH_LOCAL_TIME_ZONE(SqlFunctions.class, "toTimeWithLocalTimeZone",
      String.class, TimeZone.class),
  STRING_TO_TIMESTAMP_WITH_LOCAL_TIME_ZONE(SqlFunctions.class, "toTimestampWithLocalTimeZone",
      String.class),
  TIMESTAMP_STRING_TO_TIMESTAMP_WITH_LOCAL_TIME_ZONE(SqlFunctions.class,
      "toTimestampWithLocalTimeZone", String.class, TimeZone.class),
  TIME_WITH_LOCAL_TIME_ZONE_TO_TIME(SqlFunctions.class, "timeWithLocalTimeZoneToTime",
      int.class, TimeZone.class),
  TIME_WITH_LOCAL_TIME_ZONE_TO_TIMESTAMP(SqlFunctions.class, "timeWithLocalTimeZoneToTimestamp",
      String.class, int.class, TimeZone.class),
  TIME_WITH_LOCAL_TIME_ZONE_TO_TIMESTAMP_WITH_LOCAL_TIME_ZONE(SqlFunctions.class,
      "timeWithLocalTimeZoneToTimestampWithLocalTimeZone", String.class, int.class),
  TIME_WITH_LOCAL_TIME_ZONE_TO_STRING(SqlFunctions.class, "timeWithLocalTimeZoneToString",
      int.class, TimeZone.class),
  TIMESTAMP_WITH_LOCAL_TIME_ZONE_TO_DATE(SqlFunctions.class, "timestampWithLocalTimeZoneToDate",
      long.class, TimeZone.class),
  TIMESTAMP_WITH_LOCAL_TIME_ZONE_TO_TIME(SqlFunctions.class, "timestampWithLocalTimeZoneToTime",
      long.class, TimeZone.class),
  TIMESTAMP_WITH_LOCAL_TIME_ZONE_TO_TIME_WITH_LOCAL_TIME_ZONE(SqlFunctions.class,
      "timestampWithLocalTimeZoneToTimeWithLocalTimeZone", long.class),
  TIMESTAMP_WITH_LOCAL_TIME_ZONE_TO_TIMESTAMP(SqlFunctions.class,
      "timestampWithLocalTimeZoneToTimestamp", long.class, TimeZone.class),
  TIMESTAMP_WITH_LOCAL_TIME_ZONE_TO_STRING(SqlFunctions.class,
      "timestampWithLocalTimeZoneToString", long.class, TimeZone.class),
  TIMESTAMP_SECONDS(SqlFunctions.class, "timestampSeconds", long.class),
  TIMESTAMP_MILLIS(SqlFunctions.class, "timestampMillis", long.class),
  TIMESTAMP_MICROS(SqlFunctions.class, "timestampMicros", long.class),
  UNIX_SECONDS(SqlFunctions.class, "unixSeconds", long.class),
  UNIX_MILLIS(SqlFunctions.class, "unixMillis", long.class),
  UNIX_MICROS(SqlFunctions.class, "unixMicros", long.class),
  DATE_FROM_UNIX_DATE(SqlFunctions.class, "dateFromUnixDate", int.class),
  UNIX_DATE(SqlFunctions.class, "unixDate", int.class),
  DATE(SqlFunctions.class, "date", int.class),
  DATETIME(SqlFunctions.class, "datetime", long.class),
  TIME(SqlFunctions.class, "time", int.class),
  TIMESTAMP(SqlFunctions.class, "timestamp", long.class),
  PARSE_DATE(SqlFunctions.DateParseFunction.class, "parseDate", String.class,
      String.class),
  PARSE_DATETIME(SqlFunctions.DateParseFunction.class, "parseDatetime",
      String.class, String.class),
  PARSE_TIME(SqlFunctions.DateParseFunction.class, "parseTime", String.class,
      String.class),
  PARSE_TIMESTAMP(SqlFunctions.DateParseFunction.class, "parseTimestamp",
      String.class, String.class),
  FORMAT_TIMESTAMP(SqlFunctions.DateFormatFunction.class, "formatTimestamp",
      DataContext.class, String.class, long.class),
  TO_CHAR(SqlFunctions.DateFormatFunction.class, "toChar", long.class,
      String.class),
  FORMAT_DATE(SqlFunctions.DateFormatFunction.class, "formatDate",
      DataContext.class, String.class, int.class),
  FORMAT_TIME(SqlFunctions.DateFormatFunction.class, "formatTime",
      DataContext.class, String.class, int.class),
  UNIX_DATE_TO_STRING(DateTimeUtils.class, "unixDateToString", int.class),
  UNIX_TIME_TO_STRING(DateTimeUtils.class, "unixTimeToString", int.class),
  UNIX_TIMESTAMP_TO_STRING(DateTimeUtils.class, "unixTimestampToString",
      long.class),
  INTERVAL_YEAR_MONTH_TO_STRING(DateTimeUtils.class,
      "intervalYearMonthToString", int.class, TimeUnitRange.class),
  INTERVAL_DAY_TIME_TO_STRING(DateTimeUtils.class, "intervalDayTimeToString",
      long.class, TimeUnitRange.class, int.class),
  UNIX_DATE_EXTRACT(DateTimeUtils.class, "unixDateExtract",
      TimeUnitRange.class, long.class),
  UNIX_DATE_FLOOR(DateTimeUtils.class, "unixDateFloor",
      TimeUnitRange.class, int.class),
  UNIX_DATE_CEIL(DateTimeUtils.class, "unixDateCeil",
      TimeUnitRange.class, int.class),
  UNIX_TIMESTAMP_FLOOR(DateTimeUtils.class, "unixTimestampFloor",
      TimeUnitRange.class, long.class),
  UNIX_TIMESTAMP_CEIL(DateTimeUtils.class, "unixTimestampCeil",
      TimeUnitRange.class, long.class),
  CUSTOM_DATE_ADD(SqlFunctions.class, "customDateAdd",
      DataContext.class, String.class, int.class, int.class),
  CUSTOM_DATE_DIFF(SqlFunctions.class, "customDateDiff",
      DataContext.class, String.class, int.class, int.class),
  CUSTOM_DATE_FLOOR(SqlFunctions.class, "customDateFloor",
      DataContext.class, String.class, int.class),
  CUSTOM_DATE_CEIL(SqlFunctions.class, "customDateCeil",
      DataContext.class, String.class, int.class),
  CUSTOM_TIMESTAMP_ADD(SqlFunctions.class, "customTimestampAdd",
      DataContext.class, String.class, long.class, long.class),
  CUSTOM_TIMESTAMP_DIFF(SqlFunctions.class, "customTimestampDiff",
      DataContext.class, String.class, long.class, long.class),
  CUSTOM_TIMESTAMP_FLOOR(SqlFunctions.class, "customTimestampFloor",
      DataContext.class, String.class, long.class),
  CUSTOM_TIMESTAMP_CEIL(SqlFunctions.class, "customTimestampCeil",
      DataContext.class, String.class, long.class),
  TIMESTAMP_TO_DATE(SqlFunctions.class, "timestampToDate", long.class),
  LAST_DAY(DateTimeUtils.class, "lastDay", int.class),
  DAYNAME_WITH_TIMESTAMP(SqlFunctions.class,
      "dayNameWithTimestamp", long.class, Locale.class),
  DAYNAME_WITH_DATE(SqlFunctions.class,
      "dayNameWithDate", int.class, Locale.class),
  MONTHNAME_WITH_TIMESTAMP(SqlFunctions.class,
      "monthNameWithTimestamp", long.class, Locale.class),
  MONTHNAME_WITH_DATE(SqlFunctions.class,
      "monthNameWithDate", int.class, Locale.class),
  CURRENT_TIMESTAMP(SqlFunctions.class, "currentTimestamp", DataContext.class),
  CURRENT_TIME(SqlFunctions.class, "currentTime", DataContext.class),
  CURRENT_DATE(SqlFunctions.class, "currentDate", DataContext.class),
  CURRENT_DATETIME(SqlFunctions.class, "currentDatetime", DataContext.class),
  CURRENT_DATETIME2(SqlFunctions.class, "currentDatetime", DataContext.class,
      String.class),
  LOCAL_TIMESTAMP(SqlFunctions.class, "localTimestamp", DataContext.class),
  LOCAL_TIME(SqlFunctions.class, "localTime", DataContext.class),
  TIME_ZONE(SqlFunctions.class, "timeZone", DataContext.class),
  USER(SqlFunctions.class, "user", DataContext.class),
  SYSTEM_USER(SqlFunctions.class, "systemUser", DataContext.class),
  LOCALE(SqlFunctions.class, "locale", DataContext.class),
  BOOLEAN_TO_STRING(SqlFunctions.class, "toString", boolean.class),
  JDBC_ARRAY_TO_LIST(SqlFunctions.class, "arrayToList", java.sql.Array.class),
  OBJECT_TO_STRING(Object.class, "toString"),
  OBJECTS_EQUAL(Objects.class, "equals", Object.class, Object.class),
  HASH(Utilities.class, "hash", int.class, Object.class),
  COMPARE(Utilities.class, "compare", Comparable.class, Comparable.class),
  COMPARE_NULLS_FIRST(Utilities.class, "compareNullsFirst", Comparable.class,
      Comparable.class),
  COMPARE_NULLS_LAST(Utilities.class, "compareNullsLast", Comparable.class,
      Comparable.class),
  COMPARE2(Utilities.class, "compare", Comparable.class, Comparable.class, Comparator.class),
  COMPARE_NULLS_FIRST2(Utilities.class, "compareNullsFirst", Comparable.class,
      Comparable.class, Comparator.class),
  COMPARE_NULLS_LAST2(Utilities.class, "compareNullsLast", Comparable.class,
      Comparable.class, Comparator.class),
  ROUND_LONG(SqlFunctions.class, "round", long.class, long.class),
  ROUND_INT(SqlFunctions.class, "round", int.class, int.class),
  DATE_TO_INT(SqlFunctions.class, "toInt", java.sql.Date.class),
  DATE_TO_INT_OFFSET(SqlFunctions.class, "toInt", java.sql.Date.class,
      TimeZone.class),
  DATE_TO_INT_OPTIONAL(SqlFunctions.class, "toIntOptional",
      java.sql.Date.class),
  DATE_TO_INT_OPTIONAL_OFFSET(SqlFunctions.class, "toIntOptional",
      java.sql.Date.class, TimeZone.class),
  TIME_TO_INT(SqlFunctions.class, "toInt", Time.class),
  TIME_TO_INT_OPTIONAL(SqlFunctions.class, "toIntOptional", Time.class),
  TIMESTAMP_TO_LONG(SqlFunctions.class, "toLong", Timestamp.class),
  TIMESTAMP_TO_LONG_OFFSET(SqlFunctions.class, "toLong", Timestamp.class,
      TimeZone.class),
  TIMESTAMP_TO_LONG_OPTIONAL(SqlFunctions.class, "toLongOptional",
      Timestamp.class),
  TIMESTAMP_TO_LONG_OPTIONAL_OFFSET(SqlFunctions.class, "toLongOptional",
      Timestamp.class, TimeZone.class),
  SEQUENCE_CURRENT_VALUE(SqlFunctions.class, "sequenceCurrentValue",
      String.class),
  SEQUENCE_NEXT_VALUE(SqlFunctions.class, "sequenceNextValue", String.class),
  SLICE(SqlFunctions.class, "slice", List.class),
  ELEMENT(SqlFunctions.class, "element", List.class),
  MEMBER_OF(SqlFunctions.class, "memberOf", Object.class, Collection.class),
  MULTISET_INTERSECT_DISTINCT(SqlFunctions.class, "multisetIntersectDistinct",
      Collection.class, Collection.class),
  MULTISET_INTERSECT_ALL(SqlFunctions.class, "multisetIntersectAll",
      Collection.class, Collection.class),
  MULTISET_EXCEPT_DISTINCT(SqlFunctions.class, "multisetExceptDistinct",
      Collection.class, Collection.class),
  MULTISET_EXCEPT_ALL(SqlFunctions.class, "multisetExceptAll",
      Collection.class, Collection.class),
  MULTISET_UNION_DISTINCT(SqlFunctions.class, "multisetUnionDistinct",
      Collection.class, Collection.class),
  MULTISET_UNION_ALL(SqlFunctions.class, "multisetUnionAll", Collection.class,
      Collection.class),
  IS_A_SET(SqlFunctions.class, "isASet", Collection.class),
  IS_EMPTY(Collection.class, "isEmpty"),
  SUBMULTISET_OF(SqlFunctions.class, "submultisetOf", Collection.class,
      Collection.class),
  ARRAY_APPEND(SqlFunctions.class, "arrayAppend", List.class, Object.class),
  ARRAY_COMPACT(SqlFunctions.class, "compact", List.class),
  ARRAY_DISTINCT(SqlFunctions.class, "distinct", List.class),
  ARRAY_MAX(SqlFunctions.class, "arrayMax", List.class),
  ARRAY_MIN(SqlFunctions.class, "arrayMin", List.class),
  ARRAY_POSITION(SqlFunctions.class, "arrayPosition", List.class, Object.class),
  ARRAY_PREPEND(SqlFunctions.class, "arrayPrepend", List.class, Object.class),
  ARRAY_REMOVE(SqlFunctions.class, "arrayRemove", List.class, Object.class),
  ARRAY_REPEAT(SqlFunctions.class, "repeat", Object.class, Integer.class),
  ARRAY_EXCEPT(SqlFunctions.class, "arrayExcept", List.class, List.class),
  ARRAY_INSERT(SqlFunctions.class, "arrayInsert", List.class, Integer.class, Object.class),
  ARRAY_INTERSECT(SqlFunctions.class, "arrayIntersect", List.class, List.class),
  ARRAY_UNION(SqlFunctions.class, "arrayUnion", List.class, List.class),
  ARRAY_REVERSE(SqlFunctions.class, "reverse", List.class),
  ARRAYS_OVERLAP(SqlFunctions.class, "arraysOverlap", List.class, List.class),
  ARRAYS_ZIP(SqlFunctions.class, "arraysZip", List.class, List.class),
  EXISTS(SqlFunctions.class, "exists", List.class, Function1.class),
  SORT_ARRAY(SqlFunctions.class, "sortArray", List.class, boolean.class),
  MAP(SqlFunctions.class, "map", Object[].class),
  MAP_CONCAT(SqlFunctions.class, "mapConcat", Map[].class),
  MAP_CONTAINS_KEY(SqlFunctions.class, "mapContainsKey", Map.class, Object.class),
  MAP_ENTRIES(SqlFunctions.class, "mapEntries", Map.class),
  MAP_KEYS(SqlFunctions.class, "mapKeys", Map.class),
  MAP_VALUES(SqlFunctions.class, "mapValues", Map.class),
  MAP_FROM_ARRAYS(SqlFunctions.class, "mapFromArrays", List.class, List.class),
  MAP_FROM_ENTRIES(SqlFunctions.class, "mapFromEntries", List.class),
  STR_TO_MAP(SqlFunctions.class, "strToMap", String.class, String.class, String.class),
  SELECTIVITY(Selectivity.class, "getSelectivity", RexNode.class),
  UNIQUE_KEYS(UniqueKeys.class, "getUniqueKeys", boolean.class),
  AVERAGE_ROW_SIZE(Size.class, "averageRowSize"),
  AVERAGE_COLUMN_SIZES(Size.class, "averageColumnSizes"),
  IS_PHASE_TRANSITION(Parallelism.class, "isPhaseTransition"),
  SPLIT_COUNT(Parallelism.class, "splitCount"),
  LOWER_BOUND_COST(LowerBoundCost.class, "getLowerBoundCost",
      VolcanoPlanner.class),
  MEMORY(Memory.class, "memory"),
  CUMULATIVE_MEMORY_WITHIN_PHASE(Memory.class, "cumulativeMemoryWithinPhase"),
  CUMULATIVE_MEMORY_WITHIN_PHASE_SPLIT(Memory.class,
      "cumulativeMemoryWithinPhaseSplit"),
  COLUMN_UNIQUENESS(ColumnUniqueness.class, "areColumnsUnique",
      ImmutableBitSet.class, boolean.class),
  COLLATIONS(Collation.class, "collations"),
  DISTRIBUTION(Distribution.class, "distribution"),
  NODE_TYPES(NodeTypes.class, "getNodeTypes"),
  ROW_COUNT(RowCount.class, "getRowCount"),
  MAX_ROW_COUNT(MaxRowCount.class, "getMaxRowCount"),
  MIN_ROW_COUNT(MinRowCount.class, "getMinRowCount"),
  DISTINCT_ROW_COUNT(DistinctRowCount.class, "getDistinctRowCount",
      ImmutableBitSet.class, RexNode.class),
  PERCENTAGE_ORIGINAL_ROWS(PercentageOriginalRows.class,
      "getPercentageOriginalRows"),
  POPULATION_SIZE(PopulationSize.class, "getPopulationSize",
      ImmutableBitSet.class),
  COLUMN_ORIGIN(ColumnOrigin.class, "getColumnOrigins", int.class),
  EXPRESSION_LINEAGE(ExpressionLineage.class, "getExpressionLineage", RexNode.class),
  TABLE_REFERENCES(TableReferences.class, "getTableReferences"),
  CUMULATIVE_COST(CumulativeCost.class, "getCumulativeCost"),
  NON_CUMULATIVE_COST(NonCumulativeCost.class, "getNonCumulativeCost"),
  PREDICATES(Predicates.class, "getPredicates"),
  ALL_PREDICATES(AllPredicates.class, "getAllPredicates"),
  EXPLAIN_VISIBILITY(ExplainVisibility.class, "isVisibleInExplain",
      SqlExplainLevel.class),
  SCALAR_EXECUTE1(Scalar.class, "execute", Context.class),
  SCALAR_EXECUTE2(Scalar.class, "execute", Context.class, Object[].class),
  CONTEXT_VALUES(Context.class, "values", true),
  CONTEXT_ROOT(Context.class, "root", true),
  FUNCTION_CONTEXTS_OF(FunctionContexts.class, "of", DataContext.class,
      Object[].class),
  DATA_CONTEXT_GET_QUERY_PROVIDER(DataContext.class, "getQueryProvider"),
  METADATA_REL(Metadata.class, "rel"),
  STRUCT_ACCESS(SqlFunctions.class, "structAccess", Object.class, int.class,
      String.class),
  SOURCE_SORTER(SourceSorter.class, Function2.class, Function1.class,
      Comparator.class),
  BASIC_LAZY_ACCUMULATOR(BasicLazyAccumulator.class, Function2.class),
  LAZY_AGGREGATE_LAMBDA_FACTORY(LazyAggregateLambdaFactory.class,
      Function0.class, List.class),
  BASIC_AGGREGATE_LAMBDA_FACTORY(BasicAggregateLambdaFactory.class,
      Function0.class, List.class),
  AGG_LAMBDA_FACTORY_ACC_INITIALIZER(AggregateLambdaFactory.class,
      "accumulatorInitializer"),
  AGG_LAMBDA_FACTORY_ACC_ADDER(AggregateLambdaFactory.class, "accumulatorAdder"),
  AGG_LAMBDA_FACTORY_ACC_RESULT_SELECTOR(AggregateLambdaFactory.class,
      "resultSelector", Function2.class),
  AGG_LAMBDA_FACTORY_ACC_SINGLE_GROUP_RESULT_SELECTOR(AggregateLambdaFactory.class,
      "singleGroupResultSelector", Function1.class),
  TUMBLING(EnumUtils.class, "tumbling", Enumerable.class, Function1.class),
  HOPPING(EnumUtils.class, "hopping", Enumerator.class, int.class, long.class,
      long.class, long.class),
  SESSIONIZATION(EnumUtils.class, "sessionize", Enumerator.class, int.class, int.class,
      long.class),
  BIG_DECIMAL_ADD(BigDecimal.class, "add", BigDecimal.class),
  BIG_DECIMAL_NEGATE(BigDecimal.class, "negate"),
  COMPARE_TO(Comparable.class, "compareTo", Object.class);

  @SuppressWarnings("ImmutableEnumChecker")
  public final Method method;
  @SuppressWarnings("ImmutableEnumChecker")
  public final Constructor constructor;
  @SuppressWarnings("ImmutableEnumChecker")
  public final Field field;

  public static final ImmutableMap<Method, BuiltInMethod> FUNCTIONS_MAPS;

  static {
    final ImmutableMap.Builder<Method, BuiltInMethod> builder =
        ImmutableMap.builder();
    for (BuiltInMethod value : BuiltInMethod.values()) {
      if (value.method != null) {
        builder.put(value.method, value);
      }
    }
    FUNCTIONS_MAPS = builder.build();
  }

  BuiltInMethod(@Nullable Method method, @Nullable Constructor constructor, @Nullable Field field) {
    // TODO: split enum in three different ones
    this.method = castNonNull(method);
    this.constructor = castNonNull(constructor);
    this.field = castNonNull(field);
  }

  /** Defines a method. */
  BuiltInMethod(Class clazz, String methodName, Class... argumentTypes) {
    this(Types.lookupMethod(clazz, methodName, argumentTypes), null, null);
  }

  /** Defines a constructor. */
  BuiltInMethod(Class clazz, Class... argumentTypes) {
    this(null, Types.lookupConstructor(clazz, argumentTypes), null);
  }

  /** Defines a field. */
  BuiltInMethod(Class clazz, String fieldName, boolean dummy) {
    this(null, null, Types.lookupField(clazz, fieldName));
    assert dummy : "dummy value for method overloading must be true";
  }

  public String getMethodName() {
    return castNonNull(method).getName();
  }
}
