Selecto.Advanced.ValuesClause (Selecto v0.3.14)
VALUES clause support for inline table generation and data transformations.
VALUES clauses allow creating inline tables from literal data, useful for lookup tables, data transformations, and testing scenarios.
examples
Examples
# Basic VALUES table
selecto
|> Selecto.with_values([
["PG", "Family Friendly", 1],
["PG-13", "Teen", 2],
["R", "Adult", 3]
],
columns: ["rating_code", "description", "sort_order"],
as: "rating_lookup"
)
# Map-based VALUES
selecto
|> Selecto.with_values([
%{month: 1, name: "January", days: 31},
%{month: 2, name: "February", days: 28},
%{month: 3, name: "March", days: 31}
], as: "months")
Link to this section Summary
Functions
Create a VALUES clause specification.
Validate VALUES clause data and infer column information.
Link to this section Functions
Link to this function
create_values_clause(data, opts \\ [])
Create a VALUES clause specification.
parameters
Parameters
data- List of data rows (lists or maps)opts- Options including :columns, :as (alias)
examples
Examples
# List of lists format
ValuesClause.create_values_clause([
["PG", "Family", 1],
["R", "Adult", 3]
], columns: ["code", "desc", "order"], as: "ratings")
# Map format (columns inferred)
ValuesClause.create_values_clause([
%{id: 1, name: "Alice"},
%{id: 2, name: "Bob"}
], as: "users")
Link to this function
validate_and_process_data(spec, explicit_columns)
Validate VALUES clause data and infer column information.
Ensures data consistency and infers column names and types.