# Databend's function catalogue, captured from Databend Query v1.2.790 with:
#     SHOW FUNCTIONS
#
# Used by databend_tests.py to assert that no parse/generate round-trip emits a
# function name Databend does not have. Regenerate against a newer Databend by
# re-running the query above and replacing the names below.
#
# One direction only. A name being here means Databend knows it, and that is
# what the sweeps rely on. A name being absent is NOT evidence Databend lacks
# it: count_if, array_filter and array_apply all run on the server and none of
# them is listed. Reading absence as proof is how COUNT_IF came to be rewritten
# into a SUM(CASE ...) that answers NULL where COUNT_IF answers 0. Check the
# server before concluding a name is missing.
#
# This is that query's output verbatim, not a curated list, so that regenerating
# it stays a copy rather than an edit. A few entries -- rlike, like, glob, and,
# or, xor and the comparison names among them -- are operators rather than
# callable functions: Databend answers rlike('a', 'b') with "missing lhs or rhs
# for the binary operator". They are listed here because Databend lists them,
# and the assertion this file backs is only that a rewritten name is one Databend
# knows, which is a weaker claim than it being callable in that position.

abs
acos
add
add_days
add_hours
add_minutes
add_months
add_quarters
add_seconds
add_weeks
add_years
age
ai_embedding_vector
ai_text_completion
and
and_filters
any
approx_count_distinct
arg_max
arg_min
array
array_agg
array_aggregate
array_any
array_append
array_approx_count_distinct
array_avg
array_compact
array_concat
array_construct
array_contains
array_count
array_distinct
array_except
array_flatten
array_generate_range
array_get
array_indexof
array_insert
array_intersection
array_kurtosis
array_length
array_max
array_median
array_min
array_overlap
array_prepend
array_remove
array_remove_first
array_remove_last
array_reverse
array_size
array_skewness
array_slice
array_sort
array_sort_asc_null_first
array_sort_asc_null_last
array_sort_desc_null_first
array_sort_desc_null_last
array_std
array_stddev
array_stddev_pop
array_stddev_samp
array_sum
array_to_string
array_unique
arrays_zip
as_array
as_binary
as_boolean
as_date
as_decimal
as_float
as_integer
as_interval
as_object
as_string
as_timestamp
ascii
asin
assume_not_null
atan
atan2
avg
between_days
between_dows
between_doys
between_epochs
between_hours
between_isodows
between_isoyears
between_microseconds
between_millenniums
between_minutes
between_months
between_quarters
between_seconds
between_weeks
between_years
between_yearweeks
bin
bit_and
bit_length
bit_not
bit_or
bit_shift_left
bit_shift_right
bit_xor
bitmap_and
bitmap_and_count
bitmap_and_not
bitmap_cardinality
bitmap_contains
bitmap_count
bitmap_has_all
bitmap_has_any
bitmap_intersect
bitmap_max
bitmap_min
bitmap_not
bitmap_not_count
bitmap_or
bitmap_or_count
bitmap_subset_in_range
bitmap_subset_limit
bitmap_union
bitmap_xor
bitmap_xor_count
blake3
bool_and
bool_or
build_bitmap
cast
cbrt
ceil
ceiling
char
char_length
character_length
check_json
chr
city64withseed
client_session_id
coalesce
concat
concat_ws
connection_id
contains
convert_timezone
cos
cosine_distance
cot
count
covar_pop
covar_samp
crc32
current_available_roles
current_catalog
current_database
current_role
current_secondary_roles
current_timestamp
current_user
currentdatabase
currentuser
database
date
date_add
date_add_months
date_diff
date_format
date_part
date_sub
date_subtract_months
date_trunc
day
dayofmonth
dayofweek
dayofyear
decode
degrees
delete_by_keypath
diff_days
diff_dows
diff_doys
diff_epochs
diff_hours
diff_isodows
diff_isoyears
diff_microseconds
diff_millenniums
diff_minutes
diff_months
diff_quarters
diff_seconds
diff_weeks
diff_years
diff_yearweeks
div
div0
divide
divnull
epoch
eq
equal_null
error_or
exp
extract
factorial
feistel_obfuscate
flatten
floor
from_base64
from_hex
gen_random_uuid
geo_distance
geo_to_h3
geohash_decode
geohash_encode
get
get_by_keypath
get_by_keypath_string
get_ignore_case
get_path
get_string
getvariable
glob
great_circle_angle
great_circle_distance
greatest
greatest_ignore_nulls
group_array_moving_avg
group_array_moving_sum
group_concat
grouping
gt
gte
h3_cell_area_m2
h3_cell_area_rads2
h3_distance
h3_edge_angle
h3_edge_length_km
h3_edge_length_m
h3_exact_edge_length_km
h3_exact_edge_length_m
h3_exact_edge_length_rads
h3_get_base_cell
h3_get_destination_index_from_unidirectional_edge
h3_get_faces
h3_get_indexes_from_unidirectional_edge
h3_get_origin_index_from_unidirectional_edge
h3_get_resolution
h3_get_unidirectional_edge
h3_get_unidirectional_edge_boundary
h3_get_unidirectional_edges_from_hexagon
h3_hex_area_km2
h3_hex_area_m2
h3_hex_ring
h3_indexes_are_neighbors
h3_is_pentagon
h3_is_res_class_iii
h3_is_valid
h3_k_ring
h3_line
h3_num_hexagons
h3_to_center_child
h3_to_children
h3_to_geo
h3_to_geo_boundary
h3_to_parent
h3_to_string
h3_unidirectional_edge_is_valid
haversine
hex
hilbert_range_index
histogram
humanize_number
humanize_size
if
iff
ifnull
ignore
inet_aton
inet_ntoa
inner_product
insert
instr
intdiv
intersect_count
ipv4_num_to_string
ipv4_string_to_num
is_array
is_binary
is_boolean
is_date
is_decimal
is_double
is_error
is_float
is_integer
is_interval
is_not_error
is_not_null
is_null
is_null_value
is_object
is_real
is_string
is_timestamp
is_true
jaro_winkler
jq
json_agg
json_array
json_array_agg
json_array_distinct
json_array_elements
json_array_except
json_array_insert
json_array_intersection
json_array_overlap
json_contains_in_left
json_contains_in_right
json_each
json_exists_all_keys
json_exists_any_keys
json_exists_key
json_extract_path_text
json_object
json_object_agg
json_object_delete
json_object_insert
json_object_keep_null
json_object_keys
json_object_pick
json_path_exists
json_path_match
json_path_query
json_path_query_array
json_path_query_first
json_pretty
json_strip_nulls
json_to_string
json_typeof
kurtosis
l1_distance
l2_distance
last_query_id
lcase
least
least_ignore_nulls
left
length
length_utf8
like
like_any
list
listagg
ln
locate
log
log10
log2
lower
lpad
lt
lte
ltrim
map
map_cat
map_contains_key
map_delete
map_insert
map_keys
map_pick
map_size
map_values
markov_generate
markov_train
max
md5
median
median_tdigest
median_tdigest_weighted
mid
millennium
min
minus
mod
mode
modulo
month
months_between
multiply
neg
negate
not
noteq
now
nullif
nvl
nvl2
object_construct
object_construct_keep_null
object_delete
object_insert
object_keys
object_pick
oct
octet_length
or
ord
parse_json
pi
plus
point_in_ellipses
point_in_polygon
position
pow
power
quantile
quantile_cont
quantile_disc
quantile_tdigest
quantile_tdigest_weighted
quarter
quote
radians
rand
range
range_bound
range_partition_id
regexp
regexp_extract
regexp_extract_all
regexp_instr
regexp_like
regexp_replace
regexp_split_to_array
regexp_split_to_table
regexp_substr
remove_nullable
repeat
replace
retention
reverse
right
rlike
round
rpad
rtrim
running_difference
sha
sha1
sha2
sign
sin
siphash
siphash64
skewness
sleep
slice
soundex
space
split
split_part
sqrt
st_area
st_asbinary
st_asewkb
st_asewkt
st_asgeojson
st_astext
st_aswkb
st_aswkt
st_collect
st_contains
st_convexhull
st_dimension
st_disjoint
st_distance
st_endpoint
st_equals
st_geogfromewkt
st_geogfromtext
st_geogfromwkt
st_geographyfromewkt
st_geographyfromtext
st_geographyfromwkt
st_geohash
st_geom_point
st_geometryfromewkb
st_geometryfromewkt
st_geometryfromtext
st_geometryfromwkb
st_geometryfromwkt
st_geomfromewkb
st_geomfromewkt
st_geomfromgeohash
st_geomfromtext
st_geomfromwkb
st_geomfromwkt
st_geompointfromgeohash
st_intersects
st_length
st_make_line
st_makegeompoint
st_makeline
st_makepoint
st_makepolygon
st_npoints
st_numpoints
st_point
st_pointn
st_polygon
st_setsrid
st_srid
st_startpoint
st_transform
st_within
st_x
st_xmax
st_xmin
st_y
st_ymax
st_ymin
std
stddev
stddev_pop
stddev_samp
str_to_date
str_to_timestamp
str_to_year
strcmp
stream_has_data
strftime
string_agg
string_to_h3
strip_null_value
sub_bitmap
substr
substr_utf8
substring
substring_utf8
subtract
subtract_days
subtract_hours
subtract_minutes
subtract_months
subtract_quarters
subtract_seconds
subtract_weeks
subtract_years
sum
tan
time_slot
timestamp_diff
timezone
to_base64
to_binary
to_bitmap
to_boolean
to_centuries
to_char
to_date
to_datetime
to_day_of_month
to_day_of_week
to_day_of_year
to_days
to_decades
to_decimal
to_float32
to_float64
to_geometry
to_hex
to_hour
to_hours
to_int16
to_int32
to_int64
to_int8
to_interval
to_iso_year
to_jsonb_binary
to_last_of_month
to_last_of_quarter
to_last_of_week
to_last_of_year
to_microsecond
to_microseconds
to_millennia
to_milliseconds
to_minute
to_minutes
to_monday
to_month
to_months
to_next_friday
to_next_monday
to_next_saturday
to_next_sunday
to_next_thursday
to_next_tuesday
to_next_wednesday
to_nullable
to_number
to_numeric
to_previous_friday
to_previous_monday
to_previous_saturday
to_previous_sunday
to_previous_thursday
to_previous_tuesday
to_previous_wednesday
to_quarter
to_second
to_seconds
to_start_of_day
to_start_of_fifteen_minutes
to_start_of_five_minutes
to_start_of_hour
to_start_of_iso_week
to_start_of_iso_year
to_start_of_minute
to_start_of_month
to_start_of_quarter
to_start_of_second
to_start_of_ten_minutes
to_start_of_week
to_start_of_year
to_string
to_text
to_timestamp
to_uint16
to_uint32
to_uint64
to_uint8
to_unix_timestamp
to_uuid
to_varchar
to_variant
to_week_of_year
to_weeks
to_year
to_years
to_yyyymm
to_yyyymmdd
to_yyyymmddhh
to_yyyymmddhhmmss
today
tomorrow
translate
trim
trim_both
trim_leading
trim_trailing
trunc
truncate
try_cast
try_from_base64
try_from_hex
try_inet_aton
try_inet_ntoa
try_ipv4_num_to_string
try_ipv4_string_to_num
try_json_object
try_json_object_keep_null
try_object_construct
try_object_construct_keep_null
try_parse_json
try_to_binary
try_to_boolean
try_to_date
try_to_datetime
try_to_decimal
try_to_float32
try_to_float64
try_to_geometry
try_to_int16
try_to_int32
try_to_int64
try_to_int8
try_to_interval
try_to_number
try_to_numeric
try_to_string
try_to_timestamp
try_to_uint16
try_to_uint32
try_to_uint64
try_to_uint8
try_to_variant
tuple
typeof
ucase
unhex
unicode
uniq
unnest
upper
user
uuid
var_pop
var_samp
variance_pop
variance_samp
vector_dims
vector_norm
version
week
weekofyear
window_funnel
xor
xxhash32
xxhash64
year
yearweek
yesterday
