View Source Endo.Index (Endo v0.1.22)

Index metadata for a given table's indexes

Summary

Functions

Tries to load a given Endo.Column.t()'s indexes field.

Types

@type t() :: %Endo.Index{
  adapter: term(),
  columns: term(),
  database: term(),
  is_primary: term(),
  is_unique: term(),
  name: term(),
  otp_app: term(),
  repo: term()
}

Functions

@spec load(Endo.Table.t() | Endo.Column.t(), opts :: Keyword.t()) ::
  Endo.Table.t() | Endo.Column.t()
@spec load([Endo.Table.t() | Endo.Column.t()], opts :: Keyword.t()) :: [
  Endo.Table.t() | Endo.Column.t()
]

Tries to load a given Endo.Column.t()'s indexes field.

Can take multiple inputs:

  • A single Endo.Table.t()
  • A list of Endo.Table.t()s
  • A single Endo.Column.t()
  • A list of Endo.Column.t()s

Please note that given Endo.Column.t() structs, additional Endo lookups are necessary. Thus, for the best performance, it will be more optimal to pass in Endo.Table.t() structs if possible.

Will raise an error if given a mixed list of Endo.Column.t()s and Endo.Table.t()s.

Takes an optional Keyword.t() of options:

  • timeout which is an integer representing the number of milliseconds before which loading should be aborted. This is only really a consideration for loading indexes across multiple tables and does not apply otherwise. Defaults to :timer.seconds(15).