Selecto.Advanced.ValuesClause (Selecto v0.4.3)

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.