# Dialect-specific function additions (not in base parser)
# These functions are only available in certain dialects
[bigquery]
functions = ["APPROX_TOP_COUNT", "BIT_AND", "BIT_COUNT", "BIT_OR", "BIT_XOR", "BOOL", "CONTAINS_SUBSTR", "DIV", "EDIT_DISTANCE", "FORMAT_DATE", "FORMAT_DATETIME", "FORMAT_TIME", "FORMAT_TIMESTAMP", "FROM_HEX", "GENERATE_ARRAY", "JSON_EXTRACT_STRING_ARRAY", "JSON_KEYS", "JSON_QUERY", "JSON_QUERY_ARRAY", "JSON_VALUE", "JSON_VALUE_ARRAY", "NORMALIZE_AND_CASEFOLD", "OCTET_LENGTH", "PARSE_DATE", "PARSE_TIMESTAMP", "REGEXP_CONTAINS", "REGEXP_SUBSTR", "SHA256", "SHA512", "TIMESTAMP_MICROS", "TIMESTAMP_MILLIS", "TIMESTAMP_SECONDS", "TO_JSON", "TO_JSON_STRING"]
[clickhouse]
functions = ["ANY", "ARRAYREVERSE", "ARRAYSLICE", "ARRAYSUM", "COSINEDISTANCE", "DATEADD", "DATESUB", "DATE_FORMAT", "EDITDISTANCE", "FORMATDATETIME", "HAS", "ILIKE", "JSONEXTRACTSTRING", "L2Distance", "LEVENSHTEINDISTANCE", "MATCH", "NOTLIKE", "PARSEDATETIME", "RANDCANONICAL", "SHA256", "SHA512", "SPLITBYCHAR", "SPLITBYREGEXP", "SPLITBYSTRING", "SUBSTRINGINDEX", "TIMESTAMPADD", "TIMESTAMPSUB", "TOMONDAY", "TOSTARTOFDAY", "TOSTARTOFHOUR", "TOSTARTOFMICROSECOND", "TOSTARTOFMILLISECOND", "TOSTARTOFMINUTE", "TOSTARTOFMONTH", "TOSTARTOFQUARTER", "TOSTARTOFSECOND", "TOSTARTOFYEAR", "TOTYPENAME", "UNIQ"]
[databricks]
functions = ["AGGREGATE", "APPROX_PERCENTILE", "BASE64", "BIT_AND", "BIT_COUNT", "BIT_OR", "BIT_XOR", "BOOLEAN", "COLLECT_LIST", "COLLECT_SET", "DATEADD", "DATE_FORMAT", "DOUBLE", "FLOAT", "FORMAT_STRING", "FROM_UNIXTIME", "FROM_UTC_TIMESTAMP", "GET_JSON_OBJECT", "ILIKE", "INT", "LISTAGG", "MAP_FROM_ARRAYS", "PERCENTILE", "PERCENTILE_APPROX", "RLIKE", "SEQUENCE", "SHIFTLEFT", "SHIFTRIGHT", "SIZE", "SLICE", "TIMESTAMPADD", "TIMESTAMP_LTZ", "TIMESTAMP_NTZ", "TO_DATE", "TO_JSON", "TO_TIMESTAMP", "TO_UNIX_TIMESTAMP", "TO_UTC_TIMESTAMP", "TRUNC", "TRY_ADD", "TRY_ELEMENT_AT", "TRY_MULTIPLY", "TRY_SUBTRACT", "UNBASE64", "UNIX_TIMESTAMP"]
[doris]
functions = ["BIT_AND", "BIT_COUNT", "BIT_OR", "BIT_XOR", "COLLECT_SET", "CONVERT_TZ", "CURDATE", "DATABASE", "DATE_FORMAT", "FROM_UNIXTIME", "ISNULL", "L2_DISTANCE", "MAKETIME", "MONTHS_ADD", "REGEXP", "SCHEMA", "TO_DATE"]
[drill]
functions = ["LEVENSHTEIN_DISTANCE", "REPEATED_COUNT", "TO_TIMESTAMP"]
[duckdb]
functions = ["ARRAY_REVERSE_SORT", "BIT_AND", "BIT_OR", "BIT_XOR", "DATETRUNC", "EDITDIST3", "EPOCH", "EPOCH_MS", "JSON", "JSON_EXTRACT_PATH", "JSON_EXTRACT_STRING", "LIST_CONTAINS", "LIST_COSINE_DISTANCE", "LIST_DISTANCE", "LIST_FILTER", "LIST_HAS", "LIST_HAS_ANY", "LIST_REVERSE_SORT", "LIST_SORT", "LIST_TRANSFORM", "LIST_VALUE", "MAKE_DATE", "MAKE_TIME", "MAKE_TIMESTAMP", "QUANTILE_CONT", "QUANTILE_DISC", "RANGE", "REGEXP_MATCHES", "SHA256", "STRFTIME", "STRING_SPLIT", "STRING_SPLIT_REGEX", "STRPTIME", "STRUCT_PACK", "STR_SPLIT", "STR_SPLIT_REGEX", "TIME_BUCKET", "TO_TIMESTAMP"]
[hive]
functions = ["BASE64", "COLLECT_LIST", "COLLECT_SET", "DATE_FORMAT", "FROM_UNIXTIME", "GET_JSON_OBJECT", "PERCENTILE", "PERCENTILE_APPROX", "SEQUENCE", "SIZE", "TO_DATE", "TO_JSON", "TRUNC", "UNBASE64", "UNIX_TIMESTAMP"]
[mysql]
functions = ["BIT_AND", "BIT_COUNT", "BIT_OR", "BIT_XOR", "CONVERT_TZ", "CURDATE", "DATABASE", "DATE_FORMAT", "FROM_UNIXTIME", "ISNULL", "MAKETIME", "SCHEMA"]
[oracle]
functions = ["L2_DISTANCE", "SQUARE", "TO_DATE", "TO_TIMESTAMP", "TRUNC"]
[postgres]
functions = ["BIT_AND", "BIT_OR", "BIT_XOR", "DIV", "JSONB_OBJECT_AGG", "JSON_EXTRACT_PATH", "JSON_OBJECT_AGG", "LEVENSHTEIN_LESS_EQUAL", "MAKE_TIME", "MAKE_TIMESTAMP", "NOW", "SHA256", "SHA384", "SHA512", "TO_DATE", "TO_TIMESTAMP"]
[presto]
functions = ["APPROX_PERCENTILE", "ARBITRARY", "BITWISE_AND", "BITWISE_NOT", "BITWISE_OR", "BITWISE_XOR", "CARDINALITY", "DATE_FORMAT", "DATE_PARSE", "DOW", "DOY", "ELEMENT_AT", "FROM_HEX", "FROM_UNIXTIME", "FROM_UTF8", "LEVENSHTEIN_DISTANCE", "NOW", "ROW", "SEQUENCE", "SET_AGG", "SHA256", "SHA512", "SLICE", "SPLIT_TO_MAP", "TO_UNIXTIME", "TO_UTF8"]
[redshift]
functions = ["BIT_AND", "BIT_OR", "BIT_XOR", "DATEADD", "DIV", "GETDATE", "JSONB_OBJECT_AGG", "JSON_EXTRACT_PATH", "JSON_OBJECT_AGG", "LEVENSHTEIN_LESS_EQUAL", "LISTAGG", "MAKE_TIME", "MAKE_TIMESTAMP", "NOW", "SHA256", "SHA384", "SHA512", "SPLIT_TO_ARRAY", "STRTOL", "TO_DATE", "TO_TIMESTAMP"]
[snowflake]
functions = ["APPROX_PERCENTILE", "ARRAY_CONSTRUCT", "ARRAY_GENERATE_RANGE", "BITAND", "BITANDAGG", "BITAND_AGG", "BITNOT", "BITOR", "BITORAGG", "BITOR_AGG", "BITSHIFTLEFT", "BITSHIFTRIGHT", "BITXOR", "BITXORAGG", "BITXOR_AGG", "BIT_AND", "BIT_ANDAGG", "BIT_AND_AGG", "BIT_NOT", "BIT_OR", "BIT_ORAGG", "BIT_OR_AGG", "BIT_SHIFTLEFT", "BIT_SHIFTRIGHT", "BIT_XOR", "BIT_XORAGG", "BIT_XOR_AGG", "BOOLXOR", "DATEADD", "DAYOFWEEKISO", "DIV0", "DIV0NULL", "EDITDISTANCE", "GET", "GET_PATH", "HEX_DECODE_BINARY", "IFF", "ILIKE", "MD5_BINARY", "MD5_HEX", "MD5_NUMBER_LOWER64", "MD5_NUMBER_UPPER64", "NULLIFZERO", "OBJECT_CONSTRUCT", "OCTET_LENGTH", "REGEXP_SUBSTR", "REGEXP_SUBSTR_ALL", "RLIKE", "SHA1_BINARY", "SHA1_HEX", "SHA2_BINARY", "SHA2_HEX", "SKEW", "SQUARE", "STRTOK", "TABLE", "TIMEADD", "TIMEDIFF", "TIMESTAMPADD", "TIMESTAMPNTZFROMPARTS", "TIMESTAMP_NTZ_FROM_PARTS", "TO_DATE", "TO_JSON", "TO_TIME", "TO_TIMESTAMP", "TO_TIMESTAMP_LTZ", "TO_TIMESTAMP_NTZ", "TO_TIMESTAMP_TZ", "TO_VARCHAR", "TRY_PARSE_JSON", "TRY_TO_DATE", "TRY_TO_TIME", "TRY_TO_TIMESTAMP", "VECTOR_L2_DISTANCE", "WEEKISO", "ZEROIFNULL"]
[spark]
functions = ["AGGREGATE", "APPROX_PERCENTILE", "BASE64", "BIT_AND", "BIT_COUNT", "BIT_OR", "BIT_XOR", "BOOLEAN", "COLLECT_LIST", "COLLECT_SET", "DATEADD", "DATE_FORMAT", "DOUBLE", "FLOAT", "FORMAT_STRING", "FROM_UNIXTIME", "FROM_UTC_TIMESTAMP", "GET_JSON_OBJECT", "ILIKE", "INT", "LISTAGG", "MAP_FROM_ARRAYS", "PERCENTILE", "PERCENTILE_APPROX", "RLIKE", "SEQUENCE", "SHIFTLEFT", "SHIFTRIGHT", "SIZE", "SLICE", "TIMESTAMPADD", "TIMESTAMP_LTZ", "TIMESTAMP_NTZ", "TO_DATE", "TO_JSON", "TO_TIMESTAMP", "TO_UNIX_TIMESTAMP", "TO_UTC_TIMESTAMP", "TRUNC", "TRY_ADD", "TRY_ELEMENT_AT", "TRY_MULTIPLY", "TRY_SUBTRACT", "UNBASE64", "UNIX_TIMESTAMP"]
[sqlite]
functions = ["EDITDIST3", "STRFTIME"]
[starrocks]
functions = ["ARRAY_FLATTEN", "BIT_AND", "BIT_COUNT", "BIT_OR", "BIT_XOR", "CONVERT_TZ", "CURDATE", "DATABASE", "DATE_FORMAT", "FROM_UNIXTIME", "ISNULL", "MAKETIME", "REGEXP", "SCHEMA"]
[tableau]
functions = ["COUNTD", "FIND", "FINDNTH"]
[teradata]
functions = ["CARDINALITY"]
[trino]
functions = ["APPROX_PERCENTILE", "ARBITRARY", "BITWISE_AND", "BITWISE_NOT", "BITWISE_OR", "BITWISE_XOR", "CARDINALITY", "DATE_FORMAT", "DATE_PARSE", "DOW", "DOY", "ELEMENT_AT", "FROM_HEX", "FROM_UNIXTIME", "FROM_UTF8", "LEVENSHTEIN_DISTANCE", "NOW", "ROW", "SEQUENCE", "SET_AGG", "SHA256", "SHA512", "SLICE", "SPLIT_TO_MAP", "TO_UNIXTIME", "TO_UTF8"]
[mssql]
functions = ["COUNT_BIG", "DATEADD", "DATEDIFF_BIG", "DATENAME", "DATETIMEFROMPARTS", "DATETRUNC", "EOMONTH", "GETDATE", "HASHBYTES", "ISNULL", "JSON_QUERY", "JSON_VALUE", "NEWID", "PARSENAME", "REPLICATE", "SCHEMA_NAME", "SQUARE", "SUSER_NAME", "SUSER_SNAME", "SYSDATETIME", "SYSDATETIMEOFFSET", "SYSTEM_USER"]