Selecto.Builder.Sql.Select
(Selecto v0.4.5)
Copy Markdown
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.
Summary
Functions
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