Selecto.Advanced.LateralJoin.Spec (Selecto v0.4.5)

Copy Markdown

Specification for a LATERAL join operation.

Summary

Types

correlation_ref()

@type correlation_ref() :: {:ref, String.t()}

join_type()

@type join_type() :: :left | :inner | :right | :full

json_table_column()

@type json_table_column() :: %{
  :name => String.t(),
  optional(:path) => String.t(),
  optional(:type) => atom(),
  optional(:for_ordinality) => boolean()
}

subquery_builder()

@type subquery_builder() :: (Selecto.t() -> Selecto.t())

t()

@type t() :: %Selecto.Advanced.LateralJoin.Spec{
  alias: String.t(),
  correlation_refs: [correlation_ref()],
  id: String.t(),
  join_type: join_type(),
  subquery_builder: subquery_builder() | nil,
  table_function: table_function() | nil,
  validated: boolean()
}

table_function()

@type table_function() ::
  {:unnest, String.t()}
  | {:function, atom(), [term()]}
  | {:udf_table, atom() | String.t(), [term()]}
  | {:json_each, String.t(), String.t() | nil}
  | {:json_tree, String.t(), String.t() | nil}
  | {:json_table, String.t(), String.t(), [json_table_column()]}