[
  {
    "rule": "unexpected-column",
    "message": "column 1 \"id\" matches no field of `Aliased`",
    "file": "queries.py",
    "line": 4,
    "col": 7,
    "end_line": 4,
    "end_col": 14,
    "notes": [],
    "help": "add a field named \"id\" to `Aliased`, or remove the column from the SELECT",
    "sqlstate": null,
    "sql": null,
    "column_index": 0,
    "field": null
  },
  {
    "rule": "missing-column",
    "message": "field \"id\" of `Aliased` has no column",
    "file": "queries.py",
    "line": 4,
    "col": 7,
    "end_line": 4,
    "end_col": 14,
    "notes": [
      "field defined at <root>/app/models.py:6:5"
    ],
    "help": "select a column named \"id\", alias one with AS id, or give the field a default",
    "sqlstate": null,
    "sql": null,
    "column_index": null,
    "field": "id"
  },
  {
    "rule": "duplicate-column",
    "message": "columns 1 \"id\" and 2 \"user_id\" both map to field \"id\" of `Either`",
    "file": "queries.py",
    "line": 8,
    "col": 7,
    "end_line": 8,
    "end_col": 13,
    "notes": [
      "field defined at <root>/app/models.py:11:5"
    ],
    "help": "select only one of \"id\" and \"user_id\"",
    "sqlstate": null,
    "sql": null,
    "column_index": 1,
    "field": "id"
  },
  {
    "rule": "ambiguous-column",
    "message": "column 1 \"y\" matches fields \"x\" and \"y\" of `Overlap`",
    "file": "queries.py",
    "line": 9,
    "col": 7,
    "end_line": 9,
    "end_col": 14,
    "notes": [
      "field defined at <root>/app/models.py:16:5",
      "field defined at <root>/app/models.py:17:5"
    ],
    "help": "give the fields distinct aliases, or remove populate_by_name if it causes the overlap",
    "sqlstate": null,
    "sql": null,
    "column_index": 0,
    "field": null
  },
  {
    "rule": "type-mismatch",
    "message": "column 2 \"name\" is `str` but field \"name\" of `Choices` is `int`",
    "file": "queries.py",
    "line": 10,
    "col": 7,
    "end_line": 10,
    "end_col": 14,
    "notes": [
      "field defined at <root>/app/models.py:22:5",
      "names not checked: field `id` uses AliasChoices"
    ],
    "help": null,
    "sqlstate": null,
    "sql": null,
    "column_index": 1,
    "field": "name"
  },
  {
    "rule": "type-mismatch",
    "message": "column 2 \"name\" is `str` but field \"name\" of `Choices` is `int`",
    "file": "queries.py",
    "line": 11,
    "col": 7,
    "end_line": 11,
    "end_col": 14,
    "notes": [
      "field defined at <root>/app/models.py:22:5",
      "names not checked: field `id` uses AliasChoices"
    ],
    "help": null,
    "sqlstate": null,
    "sql": null,
    "column_index": 1,
    "field": "name"
  },
  {
    "rule": "type-mismatch",
    "message": "column 2 \"score\" is `decimal.Decimal` but field \"score\" of `Score` is `int`",
    "file": "queries.py",
    "line": 13,
    "col": 7,
    "end_line": 13,
    "end_col": 12,
    "notes": [
      "field defined at <root>/app/models.py:37:5"
    ],
    "help": null,
    "sqlstate": null,
    "sql": null,
    "column_index": 1,
    "field": "score"
  },
  {
    "rule": "duplicate-column",
    "message": "columns 1 \"id\" and 2 \"user_id\" both map to field \"id\" of `Row`",
    "file": "queries.py",
    "line": 14,
    "col": 7,
    "end_line": 14,
    "end_col": 10,
    "notes": [
      "field defined at <root>/app/models.py:42:5"
    ],
    "help": "select only one of \"id\" and \"user_id\"",
    "sqlstate": null,
    "sql": null,
    "column_index": 1,
    "field": "id"
  }
]
