Skip to main content

lib/ex_sql/ast/delete.ex

defmodule ExSQL.AST.Delete do
  @moduledoc "A `DELETE FROM ... [WHERE ...]` statement."

  defstruct table: nil,
            schema: nil,
            target_qualified: false,
            index_hint: nil,
            where: nil,
            returning: [],
            order_by: [],
            limit: nil,
            offset: nil

  @type t :: %__MODULE__{
          table: String.t(),
          schema: String.t() | nil,
          target_qualified: boolean(),
          index_hint: nil | {:indexed_by, String.t()} | :not_indexed,
          where: ExSQL.Parser.expr() | nil,
          returning: list(),
          order_by: list(),
          limit: ExSQL.Parser.expr() | nil,
          offset: ExSQL.Parser.expr() | nil
        }
end