Selecto.Builder.Sql.Select (Selecto v0.4.3)
SELECT-expression compiler for Selecto query AST values.
This module normalizes selector terms (fields, literals, functions, CASE, subqueries, JSON/array helpers, and custom SQL fragments) into iodata SQL fragments alongside required joins and bind parameters.
Link to this section Summary
Link to this section Functions
build(selecto, field)
build(selecto, field, pivot_aliases)
build(selecto, field, as, pivot_aliases)
build_udf(selecto, function_id, args, call_site, pivot_aliases \\ %{})
prep_selector(selecto, val)
Process field selectors with various formats:
Custom SQL support: {:custom_sql, sql_template, field_mappings} - safely handle custom column SQL with field validation
Standard formats:
"field" # - plain old field from one of the tables {:field, field } #- same as above disamg for predicate second+ position {:literal, "value"} #- for literal values
{:literal, 1.0}
etc
(for count(*))
#...
{:case, [PREDICATE, SELECTOR, ..., :else, SELECTOR]}
{:greatest, [SELECTOR, SELECTOR, ...]}
#LITERAL_SELECTOR means naked value treated as lit not field