QuackDB.Ecto.List (quackdb v0.5.3)

Copy Markdown View Source

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

concat(left, right)

(macro)

Builds list_concat(left, right).

contains(list, value)

(macro)

Builds list_contains(list, value).

contains_list(list, value)

(macro)

Alias for contains/2 that avoids shared contains/2 import ambiguity.

distinct(list)

(macro)

Builds list_distinct(list).

extract(list, index)

(macro)

Builds list_extract(list, index). DuckDB list indexes are 1-based.

has_all(left, right)

(macro)

Builds list_has_all(left, right).

has_any(left, right)

(macro)

Builds list_has_any(left, right).

intersect_list(left, right)

(macro)

Builds list_intersect(left, right). Named to avoid Ecto intersect/2 import ambiguity.

list_filter(list, lambda)

(macro)

Builds list_filter(list, lambda x : ...).

list_length(list)

(macro)

Builds len(list). Named to avoid Kernel.length/1 import ambiguity.

list_reduce(list, lambda)

(macro)

Builds list_reduce(list, lambda acc, x : ...).

list_reduce(list, lambda, initial_value)

(macro)

Builds list_reduce(list, lambda acc, x : ..., initial_value).

list_transform(list, lambda)

(macro)

Builds list_transform(list, lambda x : ...).

position(list, value)

(macro)

Builds list_position(list, value).

reverse_sort(list)

(macro)

Builds list_reverse_sort(list).

slice(list, begin_index, end_index)

(macro)

Builds list_slice(list, begin, end).

slice(list, begin_index, end_index, step)

(macro)

Builds list_slice(list, begin, end, step).

sort(list)

(macro)

Builds list_sort(list).

unique(list)

(macro)

Builds list_unique(list).

unnest(list)

(macro)

Builds unnest(list).