DuckDB LIST/ARRAY expression helpers for Ecto queries.
The macros map directly to DuckDB list functions and are useful for querying
LIST columns or Ecto {:array, type} fields backed by DuckDB lists.
Summary
Functions
Builds list_concat(left, right).
Builds list_contains(list, value).
Alias for contains/2 that avoids shared contains/2 import ambiguity.
Builds list_distinct(list).
Builds list_extract(list, index). DuckDB list indexes are 1-based.
Builds list_has_all(left, right).
Builds list_has_any(left, right).
Builds list_intersect(left, right). Named to avoid Ecto intersect/2 import ambiguity.
Builds list_filter(list, lambda x : ...).
Builds len(list). Named to avoid Kernel.length/1 import ambiguity.
Builds list_reduce(list, lambda acc, x : ...).
Builds list_reduce(list, lambda acc, x : ..., initial_value).
Builds list_transform(list, lambda x : ...).
Builds list_position(list, value).
Builds list_reverse_sort(list).
Builds list_slice(list, begin, end).
Builds list_slice(list, begin, end, step).
Builds list_sort(list).
Builds list_unique(list).
Builds unnest(list).
Functions
Builds list_concat(left, right).
Builds list_contains(list, value).
Alias for contains/2 that avoids shared contains/2 import ambiguity.
Builds list_distinct(list).
Builds list_extract(list, index). DuckDB list indexes are 1-based.
Builds list_has_all(left, right).
Builds list_has_any(left, right).
Builds list_intersect(left, right). Named to avoid Ecto intersect/2 import ambiguity.
Builds list_filter(list, lambda x : ...).
Builds len(list). Named to avoid Kernel.length/1 import ambiguity.
Builds list_reduce(list, lambda acc, x : ...).
Builds list_reduce(list, lambda acc, x : ..., initial_value).
Builds list_transform(list, lambda x : ...).
Builds list_position(list, value).
Builds list_reverse_sort(list).
Builds list_slice(list, begin, end).
Builds list_slice(list, begin, end, step).
Builds list_sort(list).
Builds list_unique(list).
Builds unnest(list).