ExSQL.AST.ColumnDef (exsql v0.1.2)

Copy Markdown

A column definition inside CREATE TABLE.

affinity follows SQLite's type affinity model (section 3.1 of the SQLite datatype docs): every column has one of five affinities derived from its declared type, rather than a strict type.

Summary

Types

affinity()

@type affinity() :: :integer | :text | :real | :numeric | :blob | :any

t()

@type t() :: %ExSQL.AST.ColumnDef{
  affinity: affinity(),
  autoincrement: boolean(),
  check: ExSQL.Parser.expr() | nil,
  check_name: String.t() | nil,
  collate: String.t() | nil,
  declared_type: String.t() | nil,
  default: ExSQL.Parser.expr() | nil,
  generated: {:virtual | :stored, ExSQL.Parser.expr()} | nil,
  name: String.t(),
  not_null: boolean(),
  primary_key: boolean(),
  references: term() | nil,
  unique: boolean()
}