Selecto.Advanced.ValuesClause (Selecto v0.4.5)

Copy Markdown

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

# 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")

Summary

Functions

Create a VALUES clause specification.

Validate VALUES clause data and infer column information.

Functions

create_values_clause(data, opts \\ [])

Create a VALUES clause specification.

Parameters

  • data - List of data rows (lists or maps)
  • opts - Options including :columns, :as (alias)

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")

validate_and_process_data(spec, explicit_columns)

Validate VALUES clause data and infer column information.

Ensures data consistency and infers column names and types.