Skip to main content

lib/ex_sql/ast/alter_table.ex

defmodule ExSQL.AST.AlterTable do
  @moduledoc "An `ALTER TABLE` statement."

  @typedoc "The ALTER TABLE operation."
  @type op ::
          {:rename_table, String.t()}
          | {:rename_column, String.t(), String.t()}
          | {:add_column, ExSQL.AST.ColumnDef.t()}
          | {:drop_column, String.t()}

  defstruct name: nil, schema: nil, op: nil

  @type t :: %__MODULE__{
          name: String.t(),
          schema: String.t() | nil,
          op: op()
        }
end