# `QuackDB.Result`
[🔗](https://github.com/elixir-vibe/quackdb/blob/main/lib/quack_db/result.ex#L1)

Normalized query result.

The shape mirrors what `Ecto.Adapters.SQL` expects from DBConnection-backed
drivers: `rows` and `num_rows` are always present, while `columns`,
`connection_id`, `messages`, and `metadata` keep Quack-specific result
information available.

# `command`

```elixir
@type command() ::
  :select
  | :insert
  | :update
  | :delete
  | :create
  | :drop
  | :alter
  | :begin
  | :commit
  | :rollback
  | atom()
```

# `t`

```elixir
@type t() :: %QuackDB.Result{
  columns: [String.t()] | nil,
  command: command() | nil,
  connection_id: String.t() | nil,
  messages: [map()] | nil,
  metadata: map(),
  num_rows: non_neg_integer(),
  rows: [[term()]] | nil
}
```

# `normalize`

```elixir
@spec normalize(t()) :: t()
```

---

*Consult [api-reference.md](api-reference.md) for complete listing*
