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

Link to this function

build(selecto, field)

Link to this function

build(selecto, field, pivot_aliases)

Link to this function

build(selecto, field, as, pivot_aliases)

Link to this function

build_udf(selecto, function_id, args, call_site, pivot_aliases \\ %{})

Link to this function

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

Link to this function

prep_selector(selecto, val, pivot_aliases)