Repository: DerekStride/tree-sitter-sql (language: python)

Issue:
Question: Is recursion supported in this grammar?
Hello, we were wondering if this grammar supports recursion (especially for multiple queries)?

For example:

select * from foo where bar > (select foobar from barfoo);

Will something like this be supported by the grammar?
Question: Is recursion supported in this grammar?
Hello, we were wondering if this grammar supports recursion (especially for multiple queries)?

For example:

select * from foo where bar > (select foobar from barfoo);

Will something like this be supported by the grammar?


Discussion / hints:

Fix patch:
diff --git a/grammar.js b/grammar.js
index dac8a5f3..eeda773a 100644
--- a/grammar.js
+++ b/grammar.js
@@ -470,6 +470,14 @@ module.exports = grammar({
       $.list,
       $.field,
       $.predicate,
+      $.subquery,
+    ),
+
+    subquery: $ => seq(
+      '(',
+      $.select,
+      optional($.from),
+      ')',
     ),
 
     list: $ => param_list($.literal),
diff --git a/src/grammar.json b/src/grammar.json
index a795d24b..15f4a162 100644
--- a/src/grammar.json
+++ b/src/grammar.json
@@ -2367,6 +2367,39 @@
         {
           "type": "SYMBOL",
           "name": "predicate"
+        },
+        {
+          "type": "SYMBOL",
+          "name": "subquery"
+        }
+      ]
+    },
+    "subquery": {
+      "type": "SEQ",
+      "members": [
+        {
+          "type": "STRING",
+          "value": "("
+        },
+        {
+          "type": "SYMBOL",
+          "name": "select"
+        },
+        {
+          "type": "CHOICE",
+          "members": [
+            {
+              "type": "SYMBOL",
+              "name": "from"
+            },
+            {
+              "type": "BLANK"
+            }
+          ]
+        },
+        {
+          "type": "STRING",
+          "value": ")"
         }
       ]
     },
diff --git a/src/node-types.json b/src/node-types.json
index 1019f0aa..4830e057 100644
--- a/src/node-types.json
+++ b/src/node-types.json
@@ -740,6 +740,10 @@
           {
             "type": "predicate",
             "named": true
+          },
+          {
+            "type": "subquery",
+            "named": true
           }
         ]
       },
@@ -828,6 +832,10 @@
           {
             "type": "predicate",
             "named": true
+          },
+          {
+            "type": "subquery",
+            "named": true
           }
         ]
       }
@@ -925,6 +933,25 @@
       ]
     }
   },
+  {
+    "type": "subquery",
+    "named": true,
+    "fields": {},
+    "children": {
+      "multiple": true,
+      "required": true,
+      "types": [
+        {
+          "type": "from",
+          "named": true
+        },
+        {
+          "type": "select",
+          "named": true
+        }
+      ]
+    }
+  },
   {
     "type": "table_expression",
     "named": true,
@@ -1140,6 +1167,10 @@
         {
           "type": "predicate",
           "named": true
+        },
+        {
+          "type": "subquery",
+          "named": true
         }
       ]
     }
diff --git a/src/parser.c b/src/parser.c
index 65f01874..da8191f1 100644
--- a/src/parser.c
+++ b/src/parser.c
@@ -14,9 +14,9 @@
 #endif
 
 #define LANGUAGE_VERSION 13
-#define STATE_COUNT 326
+#define STATE_COUNT 335
 #define LARGE_STATE_COUNT 2
-#define SYMBOL_COUNT 149
+#define SYMBOL_COUNT 150
 #define ALIAS_COUNT 0
 #define TOKEN_COUNT 73
 #define EXTERNAL_TOKEN_COUNT 0
@@ -159,20 +159,21 @@ enum {
   sym_where_expression = 132,
   sym_predicate = 133,
   sym__expression = 134,
-  sym_list = 135,
-  sym_literal = 136,
-  sym__literal_string = 137,
-  sym_identifier = 138,
-  aux_sym__column_list_without_order_repeat1 = 139,
-  aux_sym__table_references_repeat1 = 140,
-  aux_sym_assignment_list_repeat1 = 141,
-  aux_sym_table_options_repeat1 = 142,
-  aux_sym_column_definitions_repeat1 = 143,
-  aux_sym_constraints_repeat1 = 144,
-  aux_sym_column_list_repeat1 = 145,
-  aux_sym__field_list_repeat1 = 146,
-  aux_sym_from_repeat1 = 147,
-  aux_sym_list_repeat1 = 148,
+  sym_subquery = 135,
+  sym_list = 136,
+  sym_literal = 137,
+  sym__literal_string = 138,
+  sym_identifier = 139,
+  aux_sym__column_list_without_order_repeat1 = 140,
+  aux_sym__table_references_repeat1 = 141,
+  aux_sym_assignment_list_repeat1 = 142,
+  aux_sym_table_options_repeat1 = 143,
+  aux_sym_column_definitions_repeat1 = 144,
+  aux_sym_constraints_repeat1 = 145,
+  aux_sym_column_list_repeat1 = 146,
+  aux_sym__field_list_repeat1 = 147,
+  aux_sym_from_repeat1 = 148,
+  aux_sym_list_repeat1 = 149,
 };
 
 static const char *ts_symbol_names[] = {
@@ -311,6 +312,7 @@ static const char *ts_symbol_names[] = {
   [sym_where_expression] = "where_expression",
   [sym_predicate] = "predicate",
   [sym__expression] = "_expression",
+  [sym_subquery] = "subquery",
   [sym_list] = "list",
   [sym_literal] = "literal",
   [sym__literal_string] = "_literal_string",
@@ -463,6 +465,7 @@ static TSSymbol ts_symbol_map[] = {
   [sym_where_expression] = sym_where_expression,
   [sym_predicate] = sym_predicate,
   [sym__expression] = sym__expression,
+  [sym_subquery] = sym_subquery,
   [sym_list] = sym_list,
   [sym_literal] = sym_literal,
   [sym__literal_string] = sym__literal_string,
@@ -1020,6 +1023,10 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
     .visible = false,
     .named = true,
   },
+  [sym_subquery] = {
+    .visible = true,
+    .named = true,
+  },
   [sym_list] = {
     .visible = true,
     .named = true,
@@ -1318,6 +1325,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
     case 7:
       if (lookahead == '!') ADVANCE(22);
       if (lookahead == '%') ADVANCE(475);
+      if (lookahead == ')') ADVANCE(462);
       if (lookahead == '*') ADVANCE(471);
       if (lookahead == '+') ADVANCE(472);
       if (lookahead == ',') ADVANCE(469);
@@ -1358,7 +1366,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       if (lookahead == '"') ADVANCE(491);
       if (lookahead == '\'') ADVANCE(482);
       if (lookahead == '(') ADVANCE(461);
-      if (lookahead == '-') ADVANCE(14);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
       if (lookahead == '`') ADVANCE(493);
       if (lookahead == '\t' ||
@@ -1374,7 +1382,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       if (lookahead == '"') ADVANCE(491);
       if (lookahead == '\'') ADVANCE(482);
       if (lookahead == '*') ADVANCE(471);
-      if (lookahead == '-') ADVANCE(14);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
       if (lookahead == 'A') ADVANCE(560);
       if (lookahead == 'C') ADVANCE(533);
@@ -1396,13 +1404,13 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 10:
       if (lookahead == '\'') ADVANCE(10);
-      if (lookahead == '*') ADVANCE(12);
+      if (lookahead == '*') ADVANCE(14);
       if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(13);
+          lookahead != '\n') ADVANCE(15);
       END_STATE();
     case 11:
       if (lookahead == '(') ADVANCE(461);
-      if (lookahead == '-') ADVANCE(14);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
       if (lookahead == 'F') ADVANCE(142);
       if (lookahead == 'f') ADVANCE(321);
@@ -1412,21 +1420,8 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
           lookahead == ' ') SKIP(390)
       END_STATE();
     case 12:
-      if (lookahead == '*') ADVANCE(12);
-      if (lookahead == '/') ADVANCE(466);
-      if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(13);
-      END_STATE();
-    case 13:
-      if (lookahead == '*') ADVANCE(12);
-      if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(13);
-      END_STATE();
-    case 14:
-      if (lookahead == '-') ADVANCE(1);
-      END_STATE();
-    case 15:
-      if (lookahead == '-') ADVANCE(14);
+      if (lookahead == ')') ADVANCE(462);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
       if (lookahead == ';') ADVANCE(467);
       if (lookahead == 'C') ADVANCE(153);
@@ -1458,57 +1453,72 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
           lookahead == '\r' ||
           lookahead == ' ') SKIP(379)
       END_STATE();
-    case 16:
-      if (lookahead == '-') ADVANCE(14);
+    case 13:
+      if (lookahead == ')') ADVANCE(462);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
       if (lookahead == ';') ADVANCE(467);
-      if (lookahead == 'D') ADVANCE(509);
+      if (lookahead == 'F') ADVANCE(535);
+      if (lookahead == 'G') ADVANCE(545);
+      if (lookahead == 'J') ADVANCE(537);
+      if (lookahead == 'L') ADVANCE(517);
+      if (lookahead == 'O') ADVANCE(539);
+      if (lookahead == 'U') ADVANCE(548);
+      if (lookahead == 'W') ADVANCE(515);
       if (lookahead == '`') ADVANCE(493);
-      if (lookahead == 'd') ADVANCE(575);
+      if (lookahead == 'f') ADVANCE(601);
+      if (lookahead == 'g') ADVANCE(611);
+      if (lookahead == 'j') ADVANCE(603);
+      if (lookahead == 'l') ADVANCE(583);
+      if (lookahead == 'o') ADVANCE(605);
+      if (lookahead == 'u') ADVANCE(614);
+      if (lookahead == 'w') ADVANCE(581);
       if (lookahead == '\t' ||
           lookahead == '\n' ||
           lookahead == '\r' ||
-          lookahead == ' ') SKIP(386)
+          lookahead == ' ') SKIP(384)
       if (lookahead == '$' ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           ('_' <= lookahead && lookahead <= 'z')) ADVANCE(630);
       END_STATE();
+    case 14:
+      if (lookahead == '*') ADVANCE(14);
+      if (lookahead == '/') ADVANCE(466);
+      if (lookahead != 0 &&
+          lookahead != '\n') ADVANCE(15);
+      END_STATE();
+    case 15:
+      if (lookahead == '*') ADVANCE(14);
+      if (lookahead != 0 &&
+          lookahead != '\n') ADVANCE(15);
+      END_STATE();
+    case 16:
+      if (lookahead == '-') ADVANCE(1);
+      END_STATE();
     case 17:
-      if (lookahead == '-') ADVANCE(14);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
       if (lookahead == ';') ADVANCE(467);
-      if (lookahead == 'F') ADVANCE(536);
-      if (lookahead == 'G') ADVANCE(545);
-      if (lookahead == 'J') ADVANCE(537);
-      if (lookahead == 'L') ADVANCE(518);
-      if (lookahead == 'O') ADVANCE(539);
-      if (lookahead == 'U') ADVANCE(548);
-      if (lookahead == 'W') ADVANCE(515);
+      if (lookahead == 'D') ADVANCE(509);
       if (lookahead == '`') ADVANCE(493);
-      if (lookahead == 'f') ADVANCE(602);
-      if (lookahead == 'g') ADVANCE(611);
-      if (lookahead == 'j') ADVANCE(603);
-      if (lookahead == 'l') ADVANCE(584);
-      if (lookahead == 'o') ADVANCE(605);
-      if (lookahead == 'u') ADVANCE(614);
-      if (lookahead == 'w') ADVANCE(581);
+      if (lookahead == 'd') ADVANCE(575);
       if (lookahead == '\t' ||
           lookahead == '\n' ||
           lookahead == '\r' ||
-          lookahead == ' ') SKIP(385)
+          lookahead == ' ') SKIP(386)
       if (lookahead == '$' ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           ('_' <= lookahead && lookahead <= 'z')) ADVANCE(630);
       END_STATE();
     case 18:
-      if (lookahead == '-') ADVANCE(14);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
       if (lookahead == ';') ADVANCE(467);
-      if (lookahead == 'L') ADVANCE(518);
+      if (lookahead == 'L') ADVANCE(517);
       if (lookahead == 'O') ADVANCE(539);
       if (lookahead == 'W') ADVANCE(515);
       if (lookahead == '`') ADVANCE(493);
-      if (lookahead == 'l') ADVANCE(584);
+      if (lookahead == 'l') ADVANCE(583);
       if (lookahead == 'o') ADVANCE(605);
       if (lookahead == 'w') ADVANCE(581);
       if (lookahead == '\t' ||
@@ -1520,31 +1530,31 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
           ('_' <= lookahead && lookahead <= 'z')) ADVANCE(630);
       END_STATE();
     case 19:
-      if (lookahead == '-') ADVANCE(14);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
-      if (lookahead == 'C') ADVANCE(535);
-      if (lookahead == 'K') ADVANCE(505);
-      if (lookahead == 'P') ADVANCE(543);
+      if (lookahead == 'C') ADVANCE(536);
+      if (lookahead == 'K') ADVANCE(508);
+      if (lookahead == 'P') ADVANCE(544);
       if (lookahead == '`') ADVANCE(493);
-      if (lookahead == 'c') ADVANCE(601);
-      if (lookahead == 'k') ADVANCE(571);
-      if (lookahead == 'p') ADVANCE(609);
+      if (lookahead == 'c') ADVANCE(602);
+      if (lookahead == 'k') ADVANCE(574);
+      if (lookahead == 'p') ADVANCE(610);
       if (lookahead == '\t' ||
           lookahead == '\n' ||
           lookahead == '\r' ||
-          lookahead == ' ') SKIP(384)
+          lookahead == ' ') SKIP(385)
       if (lookahead == '$' ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           ('_' <= lookahead && lookahead <= 'z')) ADVANCE(630);
       END_STATE();
     case 20:
-      if (lookahead == '-') ADVANCE(14);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
-      if (lookahead == 'F') ADVANCE(536);
+      if (lookahead == 'F') ADVANCE(535);
       if (lookahead == 'O') ADVANCE(529);
       if (lookahead == 'U') ADVANCE(548);
       if (lookahead == '`') ADVANCE(493);
-      if (lookahead == 'f') ADVANCE(602);
+      if (lookahead == 'f') ADVANCE(601);
       if (lookahead == 'o') ADVANCE(595);
       if (lookahead == 'u') ADVANCE(614);
       if (lookahead == '\t' ||
@@ -1556,7 +1566,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
           ('_' <= lookahead && lookahead <= 'z')) ADVANCE(630);
       END_STATE();
     case 21:
-      if (lookahead == '-') ADVANCE(14);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
       if (lookahead == 'I') ADVANCE(512);
       if (lookahead == '`') ADVANCE(493);
@@ -2699,7 +2709,8 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
           lookahead == '\n' ||
           lookahead == '\r' ||
           lookahead == ' ') SKIP(379)
-      if (lookahead == '-') ADVANCE(14);
+      if (lookahead == ')') ADVANCE(462);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
       if (lookahead == ';') ADVANCE(467);
       if (lookahead == 'C') ADVANCE(153);
@@ -2781,6 +2792,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
           lookahead == ' ') SKIP(381)
       if (lookahead == '!') ADVANCE(22);
       if (lookahead == '%') ADVANCE(475);
+      if (lookahead == ')') ADVANCE(462);
       if (lookahead == '*') ADVANCE(471);
       if (lookahead == '+') ADVANCE(472);
       if (lookahead == ',') ADVANCE(469);
@@ -2821,7 +2833,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       if (lookahead == '"') ADVANCE(491);
       if (lookahead == '\'') ADVANCE(482);
       if (lookahead == '*') ADVANCE(471);
-      if (lookahead == '-') ADVANCE(14);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
       if (lookahead == 'A') ADVANCE(560);
       if (lookahead == 'C') ADVANCE(533);
@@ -2845,7 +2857,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       if (lookahead == '"') ADVANCE(491);
       if (lookahead == '\'') ADVANCE(482);
       if (lookahead == '(') ADVANCE(461);
-      if (lookahead == '-') ADVANCE(14);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
       if (lookahead == '`') ADVANCE(493);
       if (('0' <= lookahead && lookahead <= '9')) ADVANCE(492);
@@ -2858,39 +2870,22 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
           lookahead == '\n' ||
           lookahead == '\r' ||
           lookahead == ' ') SKIP(384)
-      if (lookahead == '-') ADVANCE(14);
-      if (lookahead == '/') ADVANCE(10);
-      if (lookahead == 'C') ADVANCE(535);
-      if (lookahead == 'K') ADVANCE(505);
-      if (lookahead == 'P') ADVANCE(543);
-      if (lookahead == '`') ADVANCE(493);
-      if (lookahead == 'c') ADVANCE(601);
-      if (lookahead == 'k') ADVANCE(571);
-      if (lookahead == 'p') ADVANCE(609);
-      if (lookahead == '$' ||
-          ('A' <= lookahead && lookahead <= 'Z') ||
-          ('_' <= lookahead && lookahead <= 'z')) ADVANCE(630);
-      END_STATE();
-    case 385:
-      if (lookahead == '\t' ||
-          lookahead == '\n' ||
-          lookahead == '\r' ||
-          lookahead == ' ') SKIP(385)
-      if (lookahead == '-') ADVANCE(14);
+      if (lookahead == ')') ADVANCE(462);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
       if (lookahead == ';') ADVANCE(467);
-      if (lookahead == 'F') ADVANCE(536);
+      if (lookahead == 'F') ADVANCE(535);
       if (lookahead == 'G') ADVANCE(545);
       if (lookahead == 'J') ADVANCE(537);
-      if (lookahead == 'L') ADVANCE(518);
+      if (lookahead == 'L') ADVANCE(517);
       if (lookahead == 'O') ADVANCE(539);
       if (lookahead == 'U') ADVANCE(548);
       if (lookahead == 'W') ADVANCE(515);
       if (lookahead == '`') ADVANCE(493);
-      if (lookahead == 'f') ADVANCE(602);
+      if (lookahead == 'f') ADVANCE(601);
       if (lookahead == 'g') ADVANCE(611);
       if (lookahead == 'j') ADVANCE(603);
-      if (lookahead == 'l') ADVANCE(584);
+      if (lookahead == 'l') ADVANCE(583);
       if (lookahead == 'o') ADVANCE(605);
       if (lookahead == 'u') ADVANCE(614);
       if (lookahead == 'w') ADVANCE(581);
@@ -2898,12 +2893,30 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
           ('A' <= lookahead && lookahead <= 'Z') ||
           ('_' <= lookahead && lookahead <= 'z')) ADVANCE(630);
       END_STATE();
+    case 385:
+      if (lookahead == '\t' ||
+          lookahead == '\n' ||
+          lookahead == '\r' ||
+          lookahead == ' ') SKIP(385)
+      if (lookahead == '-') ADVANCE(16);
+      if (lookahead == '/') ADVANCE(10);
+      if (lookahead == 'C') ADVANCE(536);
+      if (lookahead == 'K') ADVANCE(508);
+      if (lookahead == 'P') ADVANCE(544);
+      if (lookahead == '`') ADVANCE(493);
+      if (lookahead == 'c') ADVANCE(602);
+      if (lookahead == 'k') ADVANCE(574);
+      if (lookahead == 'p') ADVANCE(610);
+      if (lookahead == '$' ||
+          ('A' <= lookahead && lookahead <= 'Z') ||
+          ('_' <= lookahead && lookahead <= 'z')) ADVANCE(630);
+      END_STATE();
     case 386:
       if (lookahead == '\t' ||
           lookahead == '\n' ||
           lookahead == '\r' ||
           lookahead == ' ') SKIP(386)
-      if (lookahead == '-') ADVANCE(14);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
       if (lookahead == ';') ADVANCE(467);
       if (lookahead == 'D') ADVANCE(509);
@@ -2918,14 +2931,14 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
           lookahead == '\n' ||
           lookahead == '\r' ||
           lookahead == ' ') SKIP(387)
-      if (lookahead == '-') ADVANCE(14);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
       if (lookahead == ';') ADVANCE(467);
-      if (lookahead == 'L') ADVANCE(518);
+      if (lookahead == 'L') ADVANCE(517);
       if (lookahead == 'O') ADVANCE(539);
       if (lookahead == 'W') ADVANCE(515);
       if (lookahead == '`') ADVANCE(493);
-      if (lookahead == 'l') ADVANCE(584);
+      if (lookahead == 'l') ADVANCE(583);
       if (lookahead == 'o') ADVANCE(605);
       if (lookahead == 'w') ADVANCE(581);
       if (lookahead == '$' ||
@@ -2937,7 +2950,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
           lookahead == '\n' ||
           lookahead == '\r' ||
           lookahead == ' ') SKIP(388)
-      if (lookahead == '-') ADVANCE(14);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
       if (lookahead == 'I') ADVANCE(512);
       if (lookahead == '`') ADVANCE(493);
@@ -2951,13 +2964,13 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
           lookahead == '\n' ||
           lookahead == '\r' ||
           lookahead == ' ') SKIP(389)
-      if (lookahead == '-') ADVANCE(14);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
-      if (lookahead == 'F') ADVANCE(536);
+      if (lookahead == 'F') ADVANCE(535);
       if (lookahead == 'O') ADVANCE(529);
       if (lookahead == 'U') ADVANCE(548);
       if (lookahead == '`') ADVANCE(493);
-      if (lookahead == 'f') ADVANCE(602);
+      if (lookahead == 'f') ADVANCE(601);
       if (lookahead == 'o') ADVANCE(595);
       if (lookahead == 'u') ADVANCE(614);
       if (lookahead == '$' ||
@@ -2970,7 +2983,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
           lookahead == '\r' ||
           lookahead == ' ') SKIP(390)
       if (lookahead == '(') ADVANCE(461);
-      if (lookahead == '-') ADVANCE(14);
+      if (lookahead == '-') ADVANCE(16);
       if (lookahead == '/') ADVANCE(10);
       if (lookahead == 'F') ADVANCE(142);
       if (lookahead == 'f') ADVANCE(321);
@@ -3339,15 +3352,15 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
     case 465:
       ACCEPT_TOKEN(sym_marginalia);
       if (lookahead == '\n') ADVANCE(490);
-      if (lookahead == '\'') ADVANCE(13);
+      if (lookahead == '\'') ADVANCE(15);
       if (lookahead == '*') ADVANCE(484);
       if (lookahead != 0) ADVANCE(485);
       END_STATE();
     case 466:
       ACCEPT_TOKEN(sym_marginalia);
-      if (lookahead == '*') ADVANCE(12);
+      if (lookahead == '*') ADVANCE(14);
       if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(13);
+          lookahead != '\n') ADVANCE(15);
       END_STATE();
     case 467:
       ACCEPT_TOKEN(anon_sym_SEMI);
@@ -3374,9 +3387,9 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
     case 474:
       ACCEPT_TOKEN(anon_sym_SLASH);
       if (lookahead == '\'') ADVANCE(10);
-      if (lookahead == '*') ADVANCE(12);
+      if (lookahead == '*') ADVANCE(14);
       if (lookahead != 0 &&
-          lookahead != '\n') ADVANCE(13);
+          lookahead != '\n') ADVANCE(15);
       END_STATE();
     case 475:
       ACCEPT_TOKEN(anon_sym_PERCENT);
@@ -3414,7 +3427,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
     case 484:
       ACCEPT_TOKEN(aux_sym__literal_string_token1);
       if (lookahead == '\n') ADVANCE(490);
-      if (lookahead == '\'') ADVANCE(13);
+      if (lookahead == '\'') ADVANCE(15);
       if (lookahead == '*') ADVANCE(484);
       if (lookahead == '/') ADVANCE(465);
       if (lookahead != 0) ADVANCE(485);
@@ -3422,7 +3435,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
     case 485:
       ACCEPT_TOKEN(aux_sym__literal_string_token1);
       if (lookahead == '\n') ADVANCE(490);
-      if (lookahead == '\'') ADVANCE(13);
+      if (lookahead == '\'') ADVANCE(15);
       if (lookahead == '*') ADVANCE(484);
       if (lookahead != 0) ADVANCE(485);
       END_STATE();
@@ -3550,7 +3563,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 503:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'C') ADVANCE(507);
+      if (lookahead == 'C') ADVANCE(506);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -3566,7 +3579,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 505:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'E') ADVANCE(562);
+      if (lookahead == 'E') ADVANCE(443);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -3574,7 +3587,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 506:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'E') ADVANCE(443);
+      if (lookahead == 'E') ADVANCE(441);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -3582,7 +3595,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 507:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'E') ADVANCE(441);
+      if (lookahead == 'E') ADVANCE(408);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -3590,7 +3603,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 508:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'E') ADVANCE(408);
+      if (lookahead == 'E') ADVANCE(562);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -3606,7 +3619,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 510:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'E') ADVANCE(544);
+      if (lookahead == 'E') ADVANCE(543);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -3662,7 +3675,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 517:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'I') ADVANCE(524);
+      if (lookahead == 'I') ADVANCE(525);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -3670,7 +3683,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 518:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'I') ADVANCE(525);
+      if (lookahead == 'I') ADVANCE(524);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -3694,7 +3707,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 521:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'I') ADVANCE(553);
+      if (lookahead == 'I') ADVANCE(552);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -3774,7 +3787,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 531:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'N') ADVANCE(552);
+      if (lookahead == 'N') ADVANCE(553);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -3806,7 +3819,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 535:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'O') ADVANCE(532);
+      if (lookahead == 'O') ADVANCE(540);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -3814,7 +3827,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 536:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'O') ADVANCE(540);
+      if (lookahead == 'O') ADVANCE(532);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -3870,7 +3883,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 543:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'R') ADVANCE(517);
+      if (lookahead == 'R') ADVANCE(507);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -3878,7 +3891,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 544:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'R') ADVANCE(508);
+      if (lookahead == 'R') ADVANCE(518);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -3910,7 +3923,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 548:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'S') ADVANCE(506);
+      if (lookahead == 'S') ADVANCE(505);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -3942,7 +3955,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 552:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'T') ADVANCE(425);
+      if (lookahead == 'T') ADVANCE(415);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -3950,7 +3963,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 553:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'T') ADVANCE(415);
+      if (lookahead == 'T') ADVANCE(425);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -4079,7 +4092,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 569:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'c') ADVANCE(573);
+      if (lookahead == 'c') ADVANCE(572);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -4095,7 +4108,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 571:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'e') ADVANCE(628);
+      if (lookahead == 'e') ADVANCE(443);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -4103,7 +4116,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 572:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'e') ADVANCE(443);
+      if (lookahead == 'e') ADVANCE(441);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -4111,7 +4124,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 573:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'e') ADVANCE(441);
+      if (lookahead == 'e') ADVANCE(408);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -4119,7 +4132,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 574:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'e') ADVANCE(408);
+      if (lookahead == 'e') ADVANCE(628);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -4135,7 +4148,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 576:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'e') ADVANCE(610);
+      if (lookahead == 'e') ADVANCE(609);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -4191,7 +4204,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 583:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'i') ADVANCE(590);
+      if (lookahead == 'i') ADVANCE(591);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -4199,7 +4212,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 584:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'i') ADVANCE(591);
+      if (lookahead == 'i') ADVANCE(590);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -4223,7 +4236,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 587:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'i') ADVANCE(619);
+      if (lookahead == 'i') ADVANCE(618);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -4303,7 +4316,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 597:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'n') ADVANCE(618);
+      if (lookahead == 'n') ADVANCE(619);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -4335,7 +4348,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 601:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'o') ADVANCE(598);
+      if (lookahead == 'o') ADVANCE(606);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -4343,7 +4356,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 602:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'o') ADVANCE(606);
+      if (lookahead == 'o') ADVANCE(598);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -4399,7 +4412,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 609:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'r') ADVANCE(583);
+      if (lookahead == 'r') ADVANCE(573);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -4407,7 +4420,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 610:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 'r') ADVANCE(574);
+      if (lookahead == 'r') ADVANCE(584);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -4439,7 +4452,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 614:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 's') ADVANCE(572);
+      if (lookahead == 's') ADVANCE(571);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -4471,7 +4484,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 618:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 't') ADVANCE(425);
+      if (lookahead == 't') ADVANCE(415);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -4479,7 +4492,7 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
       END_STATE();
     case 619:
       ACCEPT_TOKEN(sym__identifier);
-      if (lookahead == 't') ADVANCE(415);
+      if (lookahead == 't') ADVANCE(425);
       if (('0' <= lookahead && lookahead <= '9') ||
           ('A' <= lookahead && lookahead <= 'Z') ||
           lookahead == '_' ||
@@ -4579,19 +4592,19 @@ static bool ts_lex(TSLexer *lexer, TSStateId state) {
 
 static TSLexMode ts_lex_modes[STATE_COUNT] = {
   [0] = {.lex_state = 0},
-  [1] = {.lex_state = 15},
+  [1] = {.lex_state = 12},
   [2] = {.lex_state = 6},
   [3] = {.lex_state = 6},
   [4] = {.lex_state = 7},
   [5] = {.lex_state = 7},
-  [6] = {.lex_state = 6},
+  [6] = {.lex_state = 0},
   [7] = {.lex_state = 6},
   [8] = {.lex_state = 6},
-  [9] = {.lex_state = 0},
-  [10] = {.lex_state = 6},
+  [9] = {.lex_state = 6},
+  [10] = {.lex_state = 0},
   [11] = {.lex_state = 0},
   [12] = {.lex_state = 0},
-  [13] = {.lex_state = 0},
+  [13] = {.lex_state = 6},
   [14] = {.lex_state = 0},
   [15] = {.lex_state = 0},
   [16] = {.lex_state = 0},
@@ -4603,15 +4616,15 @@ static TSLexMode ts_lex_modes[STATE_COUNT] = {
   [22] = {.lex_state = 0},
   [23] = {.lex_state = 0},
   [24] = {.lex_state = 0},
-  [25] = {.lex_state = 9},
-  [26] = {.lex_state = 9},
+  [25] = {.lex_state = 0},
+  [26] = {.lex_state = 0},
   [27] = {.lex_state = 0},
-  [28] = {.lex_state = 0},
-  [29] = {.lex_state = 6},
-  [30] = {.lex_state = 6},
-  [31] = {.lex_state = 6},
+  [28] = {.lex_state = 9},
+  [29] = {.lex_state = 0},
+  [30] = {.lex_state = 9},
+  [31] = {.lex_state = 0},
   [32] = {.lex_state = 6},
-  [33] = {.lex_state = 0},
+  [33] = {.lex_state = 6},
   [34] = {.lex_state = 6},
   [35] = {.lex_state = 6},
   [36] = {.lex_state = 6},
@@ -4621,14 +4634,14 @@ static TSLexMode ts_lex_modes[STATE_COUNT] = {
   [40] = {.lex_state = 6},
   [41] = {.lex_state = 6},
   [42] = {.lex_state = 6},
-  [43] = {.lex_state = 15},
-  [44] = {.lex_state = 8},
-  [45] = {.lex_state = 8},
-  [46] = {.lex_state = 8},
+  [43] = {.lex_state = 6},
+  [44] = {.lex_state = 6},
+  [45] = {.lex_state = 12},
+  [46] = {.lex_state = 6},
   [47] = {.lex_state = 8},
   [48] = {.lex_state = 8},
   [49] = {.lex_state = 8},
-  [50] = {.lex_state = 8},
+  [50] = {.lex_state = 6},
   [51] = {.lex_state = 8},
   [52] = {.lex_state = 8},
   [53] = {.lex_state = 8},
@@ -4643,154 +4656,154 @@ static TSLexMode ts_lex_modes[STATE_COUNT] = {
   [62] = {.lex_state = 8},
   [63] = {.lex_state = 8},
   [64] = {.lex_state = 8},
-  [65] = {.lex_state = 19},
-  [66] = {.lex_state = 0},
-  [67] = {.lex_state = 9},
-  [68] = {.lex_state = 0},
+  [65] = {.lex_state = 8},
+  [66] = {.lex_state = 8},
+  [67] = {.lex_state = 8},
+  [68] = {.lex_state = 8},
   [69] = {.lex_state = 0},
-  [70] = {.lex_state = 9},
+  [70] = {.lex_state = 0},
   [71] = {.lex_state = 0},
-  [72] = {.lex_state = 17},
-  [73] = {.lex_state = 17},
-  [74] = {.lex_state = 17},
-  [75] = {.lex_state = 0},
+  [72] = {.lex_state = 13},
+  [73] = {.lex_state = 19},
+  [74] = {.lex_state = 9},
+  [75] = {.lex_state = 9},
   [76] = {.lex_state = 0},
-  [77] = {.lex_state = 0},
-  [78] = {.lex_state = 15},
-  [79] = {.lex_state = 0},
+  [77] = {.lex_state = 13},
+  [78] = {.lex_state = 13},
+  [79] = {.lex_state = 12},
   [80] = {.lex_state = 0},
-  [81] = {.lex_state = 16},
+  [81] = {.lex_state = 0},
   [82] = {.lex_state = 0},
-  [83] = {.lex_state = 8},
+  [83] = {.lex_state = 0},
   [84] = {.lex_state = 0},
-  [85] = {.lex_state = 16},
+  [85] = {.lex_state = 0},
   [86] = {.lex_state = 0},
   [87] = {.lex_state = 0},
   [88] = {.lex_state = 0},
   [89] = {.lex_state = 0},
   [90] = {.lex_state = 0},
-  [91] = {.lex_state = 0},
-  [92] = {.lex_state = 16},
-  [93] = {.lex_state = 0},
-  [94] = {.lex_state = 0},
+  [91] = {.lex_state = 17},
+  [92] = {.lex_state = 0},
+  [93] = {.lex_state = 17},
+  [94] = {.lex_state = 8},
   [95] = {.lex_state = 0},
   [96] = {.lex_state = 0},
   [97] = {.lex_state = 0},
   [98] = {.lex_state = 0},
   [99] = {.lex_state = 0},
-  [100] = {.lex_state = 18},
+  [100] = {.lex_state = 0},
   [101] = {.lex_state = 0},
   [102] = {.lex_state = 0},
-  [103] = {.lex_state = 16},
+  [103] = {.lex_state = 17},
   [104] = {.lex_state = 0},
   [105] = {.lex_state = 0},
   [106] = {.lex_state = 18},
   [107] = {.lex_state = 0},
-  [108] = {.lex_state = 0},
+  [108] = {.lex_state = 17},
   [109] = {.lex_state = 0},
   [110] = {.lex_state = 0},
-  [111] = {.lex_state = 18},
-  [112] = {.lex_state = 21},
-  [113] = {.lex_state = 20},
-  [114] = {.lex_state = 0},
-  [115] = {.lex_state = 20},
+  [111] = {.lex_state = 0},
+  [112] = {.lex_state = 0},
+  [113] = {.lex_state = 18},
+  [114] = {.lex_state = 18},
+  [115] = {.lex_state = 0},
   [116] = {.lex_state = 0},
   [117] = {.lex_state = 0},
-  [118] = {.lex_state = 8},
+  [118] = {.lex_state = 21},
   [119] = {.lex_state = 0},
-  [120] = {.lex_state = 20},
+  [120] = {.lex_state = 0},
   [121] = {.lex_state = 0},
   [122] = {.lex_state = 0},
-  [123] = {.lex_state = 0},
+  [123] = {.lex_state = 20},
   [124] = {.lex_state = 0},
   [125] = {.lex_state = 0},
   [126] = {.lex_state = 0},
-  [127] = {.lex_state = 0},
+  [127] = {.lex_state = 8},
   [128] = {.lex_state = 0},
   [129] = {.lex_state = 0},
   [130] = {.lex_state = 0},
   [131] = {.lex_state = 0},
   [132] = {.lex_state = 0},
-  [133] = {.lex_state = 0},
+  [133] = {.lex_state = 20},
   [134] = {.lex_state = 0},
   [135] = {.lex_state = 0},
-  [136] = {.lex_state = 8},
-  [137] = {.lex_state = 8},
+  [136] = {.lex_state = 0},
+  [137] = {.lex_state = 0},
   [138] = {.lex_state = 0},
-  [139] = {.lex_state = 16},
+  [139] = {.lex_state = 20},
   [140] = {.lex_state = 0},
-  [141] = {.lex_state = 15},
-  [142] = {.lex_state = 15},
-  [143] = {.lex_state = 16},
+  [141] = {.lex_state = 0},
+  [142] = {.lex_state = 0},
+  [143] = {.lex_state = 8},
   [144] = {.lex_state = 0},
-  [145] = {.lex_state = 8},
-  [146] = {.lex_state = 8},
-  [147] = {.lex_state = 16},
-  [148] = {.lex_state = 16},
-  [149] = {.lex_state = 8},
-  [150] = {.lex_state = 16},
-  [151] = {.lex_state = 16},
-  [152] = {.lex_state = 0},
-  [153] = {.lex_state = 8},
+  [145] = {.lex_state = 0},
+  [146] = {.lex_state = 17},
+  [147] = {.lex_state = 8},
+  [148] = {.lex_state = 17},
+  [149] = {.lex_state = 17},
+  [150] = {.lex_state = 17},
+  [151] = {.lex_state = 12},
+  [152] = {.lex_state = 8},
+  [153] = {.lex_state = 0},
   [154] = {.lex_state = 0},
   [155] = {.lex_state = 0},
-  [156] = {.lex_state = 8},
-  [157] = {.lex_state = 8},
+  [156] = {.lex_state = 0},
+  [157] = {.lex_state = 0},
   [158] = {.lex_state = 8},
-  [159] = {.lex_state = 8},
-  [160] = {.lex_state = 0},
-  [161] = {.lex_state = 16},
-  [162] = {.lex_state = 8},
-  [163] = {.lex_state = 0},
+  [159] = {.lex_state = 17},
+  [160] = {.lex_state = 17},
+  [161] = {.lex_state = 8},
+  [162] = {.lex_state = 0},
+  [163] = {.lex_state = 8},
   [164] = {.lex_state = 0},
-  [165] = {.lex_state = 0},
-  [166] = {.lex_state = 0},
-  [167] = {.lex_state = 0},
-  [168] = {.lex_state = 8},
+  [165] = {.lex_state = 8},
+  [166] = {.lex_state = 12},
+  [167] = {.lex_state = 17},
+  [168] = {.lex_state = 0},
   [169] = {.lex_state = 8},
   [170] = {.lex_state = 0},
   [171] = {.lex_state = 8},
-  [172] = {.lex_state = 0},
-  [173] = {.lex_state = 0},
+  [172] = {.lex_state = 8},
+  [173] = {.lex_state = 8},
   [174] = {.lex_state = 0},
-  [175] = {.lex_state = 0},
+  [175] = {.lex_state = 8},
   [176] = {.lex_state = 0},
   [177] = {.lex_state = 0},
-  [178] = {.lex_state = 8},
-  [179] = {.lex_state = 8},
+  [178] = {.lex_state = 0},
+  [179] = {.lex_state = 0},
   [180] = {.lex_state = 0},
   [181] = {.lex_state = 0},
   [182] = {.lex_state = 0},
   [183] = {.lex_state = 0},
   [184] = {.lex_state = 0},
-  [185] = {.lex_state = 8},
-  [186] = {.lex_state = 0},
+  [185] = {.lex_state = 0},
+  [186] = {.lex_state = 8},
   [187] = {.lex_state = 0},
   [188] = {.lex_state = 0},
   [189] = {.lex_state = 0},
   [190] = {.lex_state = 0},
   [191] = {.lex_state = 0},
-  [192] = {.lex_state = 8},
-  [193] = {.lex_state = 8},
+  [192] = {.lex_state = 0},
+  [193] = {.lex_state = 0},
   [194] = {.lex_state = 8},
-  [195] = {.lex_state = 0},
+  [195] = {.lex_state = 8},
   [196] = {.lex_state = 0},
   [197] = {.lex_state = 0},
-  [198] = {.lex_state = 0},
+  [198] = {.lex_state = 8},
   [199] = {.lex_state = 0},
-  [200] = {.lex_state = 0},
+  [200] = {.lex_state = 8},
   [201] = {.lex_state = 0},
   [202] = {.lex_state = 0},
   [203] = {.lex_state = 0},
-  [204] = {.lex_state = 0},
+  [204] = {.lex_state = 8},
   [205] = {.lex_state = 0},
   [206] = {.lex_state = 0},
   [207] = {.lex_state = 0},
   [208] = {.lex_state = 0},
   [209] = {.lex_state = 0},
-  [210] = {.lex_state = 0},
+  [210] = {.lex_state = 8},
   [211] = {.lex_state = 0},
-  [212] = {.lex_state = 0},
+  [212] = {.lex_state = 8},
   [213] = {.lex_state = 0},
   [214] = {.lex_state = 0},
   [215] = {.lex_state = 0},
@@ -4807,7 +4820,7 @@ static TSLexMode ts_lex_modes[STATE_COUNT] = {
   [226] = {.lex_state = 0},
   [227] = {.lex_state = 0},
   [228] = {.lex_state = 0},
-  [229] = {.lex_state = 8},
+  [229] = {.lex_state = 11},
   [230] = {.lex_state = 0},
   [231] = {.lex_state = 0},
   [232] = {.lex_state = 0},
@@ -4816,7 +4829,7 @@ static TSLexMode ts_lex_modes[STATE_COUNT] = {
   [235] = {.lex_state = 0},
   [236] = {.lex_state = 0},
   [237] = {.lex_state = 0},
-  [238] = {.lex_state = 11},
+  [238] = {.lex_state = 0},
   [239] = {.lex_state = 0},
   [240] = {.lex_state = 0},
   [241] = {.lex_state = 0},
@@ -4829,7 +4842,7 @@ static TSLexMode ts_lex_modes[STATE_COUNT] = {
   [248] = {.lex_state = 0},
   [249] = {.lex_state = 0},
   [250] = {.lex_state = 0},
-  [251] = {.lex_state = 0},
+  [251] = {.lex_state = 8},
   [252] = {.lex_state = 0},
   [253] = {.lex_state = 0},
   [254] = {.lex_state = 0},
@@ -4865,16 +4878,16 @@ static TSLexMode ts_lex_modes[STATE_COUNT] = {
   [284] = {.lex_state = 0},
   [285] = {.lex_state = 0},
   [286] = {.lex_state = 0},
-  [287] = {.lex_state = 15},
+  [287] = {.lex_state = 0},
   [288] = {.lex_state = 0},
-  [289] = {.lex_state = 0},
+  [289] = {.lex_state = 12},
   [290] = {.lex_state = 0},
   [291] = {.lex_state = 0},
-  [292] = {.lex_state = 8},
-  [293] = {.lex_state = 487},
-  [294] = {.lex_state = 487},
-  [295] = {.lex_state = 0},
-  [296] = {.lex_state = 0},
+  [292] = {.lex_state = 0},
+  [293] = {.lex_state = 0},
+  [294] = {.lex_state = 8},
+  [295] = {.lex_state = 487},
+  [296] = {.lex_state = 487},
   [297] = {.lex_state = 0},
   [298] = {.lex_state = 0},
   [299] = {.lex_state = 0},
@@ -4888,7 +4901,7 @@ static TSLexMode ts_lex_modes[STATE_COUNT] = {
   [307] = {.lex_state = 0},
   [308] = {.lex_state = 0},
   [309] = {.lex_state = 0},
-  [310] = {.lex_state = 15},
+  [310] = {.lex_state = 0},
   [311] = {.lex_state = 0},
   [312] = {.lex_state = 0},
   [313] = {.lex_state = 0},
@@ -4896,14 +4909,23 @@ static TSLexMode ts_lex_modes[STATE_COUNT] = {
   [315] = {.lex_state = 0},
   [316] = {.lex_state = 0},
   [317] = {.lex_state = 0},
-  [318] = {.lex_state = 487},
-  [319] = {.lex_state = 487},
-  [320] = {.lex_state = 8},
+  [318] = {.lex_state = 12},
+  [319] = {.lex_state = 0},
+  [320] = {.lex_state = 0},
   [321] = {.lex_state = 0},
-  [322] = {.lex_state = 8},
-  [323] = {.lex_state = 8},
-  [324] = {.lex_state = 8},
-  [325] = {.lex_state = 8},
+  [322] = {.lex_state = 0},
+  [323] = {.lex_state = 0},
+  [324] = {.lex_state = 0},
+  [325] = {.lex_state = 0},
+  [326] = {.lex_state = 0},
+  [327] = {.lex_state = 487},
+  [328] = {.lex_state = 487},
+  [329] = {.lex_state = 8},
+  [330] = {.lex_state = 0},
+  [331] = {.lex_state = 8},
+  [332] = {.lex_state = 8},
+  [333] = {.lex_state = 8},
+  [334] = {.lex_state = 8},
 };
 
 static uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
@@ -4978,18 +5000,18 @@ static uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
     [anon_sym_BQUOTE] = ACTIONS(1),
   },
   [1] = {
-    [sym_program] = STATE(308),
-    [sym_statement] = STATE(304),
-    [sym__select_statement] = STATE(303),
-    [sym_select] = STATE(164),
-    [sym__delete_statement] = STATE(303),
-    [sym_delete] = STATE(212),
-    [sym__create_statement] = STATE(303),
-    [sym_create] = STATE(298),
-    [sym__insert_statement] = STATE(303),
-    [sym_insert] = STATE(297),
-    [sym__update_statement] = STATE(303),
-    [sym_update] = STATE(296),
+    [sym_program] = STATE(315),
+    [sym_statement] = STATE(311),
+    [sym__select_statement] = STATE(310),
+    [sym_select] = STATE(178),
+    [sym__delete_statement] = STATE(310),
+    [sym_delete] = STATE(249),
+    [sym__create_statement] = STATE(310),
+    [sym_create] = STATE(300),
+    [sym__insert_statement] = STATE(310),
+    [sym_insert] = STATE(299),
+    [sym__update_statement] = STATE(310),
+    [sym_update] = STATE(298),
     [sym_keyword_select] = ACTIONS(5),
     [sym_keyword_delete] = ACTIONS(7),
     [sym_keyword_create] = ACTIONS(9),
@@ -5096,7 +5118,7 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(15), 21,
+    ACTIONS(15), 22,
       sym_keyword_join,
       sym_keyword_where,
       sym_keyword_order_by,
@@ -5107,6 +5129,7 @@ static uint16_t ts_small_parse_table[] = {
       sym_keyword_and,
       sym_keyword_force,
       sym_keyword_use,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
       anon_sym_DOT,
       anon_sym_COMMA,
@@ -5118,7 +5141,7 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [125] = 3,
+  [126] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
@@ -5128,7 +5151,7 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(19), 21,
+    ACTIONS(19), 22,
       sym_keyword_join,
       sym_keyword_where,
       sym_keyword_order_by,
@@ -5139,6 +5162,7 @@ static uint16_t ts_small_parse_table[] = {
       sym_keyword_and,
       sym_keyword_force,
       sym_keyword_use,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
       anon_sym_DOT,
       anon_sym_COMMA,
@@ -5150,25 +5174,26 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [160] = 3,
+  [162] = 4,
+    ACTIONS(27), 1,
+      anon_sym_DOT,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(25), 4,
+    ACTIONS(25), 5,
+      sym_keyword_or,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(23), 20,
-      sym_keyword_from,
+    ACTIONS(23), 18,
+      sym_keyword_join,
       sym_keyword_where,
-      sym_keyword_desc,
-      sym_keyword_asc,
+      sym_keyword_order_by,
+      sym_keyword_group_by,
       sym_keyword_limit,
-      sym_keyword_offset,
       sym_keyword_in,
       sym_keyword_and,
-      sym_keyword_or,
       anon_sym_RPAREN,
       anon_sym_SEMI,
       anon_sym_COMMA,
@@ -5180,9 +5205,7 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [193] = 4,
-    ACTIONS(29), 1,
-      anon_sym_DOT,
+  [197] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
@@ -5191,12 +5214,13 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(27), 19,
+    ACTIONS(29), 20,
       sym_keyword_from,
       sym_keyword_where,
       sym_keyword_desc,
       sym_keyword_asc,
       sym_keyword_limit,
+      sym_keyword_offset,
       sym_keyword_in,
       sym_keyword_and,
       sym_keyword_or,
@@ -5211,22 +5235,23 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [228] = 3,
+  [230] = 4,
+    ACTIONS(33), 1,
+      anon_sym_DOT,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(35), 4,
+    ACTIONS(25), 4,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(33), 20,
+    ACTIONS(23), 19,
       sym_keyword_from,
       sym_keyword_where,
       sym_keyword_desc,
       sym_keyword_asc,
       sym_keyword_limit,
-      sym_keyword_offset,
       sym_keyword_in,
       sym_keyword_and,
       sym_keyword_or,
@@ -5241,26 +5266,26 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [261] = 4,
-    ACTIONS(37), 1,
-      anon_sym_DOT,
+  [265] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(31), 5,
-      sym_keyword_or,
+    ACTIONS(37), 4,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(27), 17,
-      sym_keyword_join,
+    ACTIONS(35), 20,
+      sym_keyword_from,
       sym_keyword_where,
-      sym_keyword_order_by,
-      sym_keyword_group_by,
+      sym_keyword_desc,
+      sym_keyword_asc,
       sym_keyword_limit,
+      sym_keyword_offset,
       sym_keyword_in,
       sym_keyword_and,
+      sym_keyword_or,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_EQ,
@@ -5271,48 +5296,51 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [295] = 3,
+  [298] = 8,
+    ACTIONS(45), 1,
+      anon_sym_PLUS,
+    ACTIONS(47), 1,
+      anon_sym_DASH,
+    ACTIONS(49), 1,
+      anon_sym_SLASH,
+    ACTIONS(51), 1,
+      anon_sym_CARET,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(41), 4,
-      anon_sym_DASH,
-      anon_sym_SLASH,
+    ACTIONS(43), 2,
+      anon_sym_STAR,
+      anon_sym_PERCENT,
+    ACTIONS(41), 3,
+      sym_keyword_or,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(39), 19,
-      sym_keyword_from,
+    ACTIONS(39), 14,
+      sym_keyword_join,
       sym_keyword_where,
-      sym_keyword_desc,
-      sym_keyword_asc,
+      sym_keyword_order_by,
+      sym_keyword_group_by,
       sym_keyword_limit,
       sym_keyword_in,
       sym_keyword_and,
-      sym_keyword_or,
       anon_sym_RPAREN,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_EQ,
-      anon_sym_STAR,
-      anon_sym_PLUS,
-      anon_sym_PERCENT,
-      anon_sym_CARET,
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [327] = 4,
-    ACTIONS(47), 1,
-      anon_sym_CARET,
+  [340] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(45), 5,
+    ACTIONS(55), 5,
       sym_keyword_or,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(43), 16,
+    ACTIONS(53), 18,
       sym_keyword_join,
       sym_keyword_where,
       sym_keyword_order_by,
@@ -5320,102 +5348,89 @@ static uint16_t ts_small_parse_table[] = {
       sym_keyword_limit,
       sym_keyword_in,
       sym_keyword_and,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_EQ,
       anon_sym_STAR,
       anon_sym_PLUS,
       anon_sym_PERCENT,
+      anon_sym_CARET,
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [360] = 11,
-    ACTIONS(45), 1,
-      sym_keyword_or,
-    ACTIONS(47), 1,
-      anon_sym_CARET,
+  [372] = 6,
     ACTIONS(49), 1,
-      sym_keyword_in,
-    ACTIONS(55), 1,
-      anon_sym_PLUS,
-    ACTIONS(57), 1,
-      anon_sym_DASH,
-    ACTIONS(59), 1,
       anon_sym_SLASH,
+    ACTIONS(51), 1,
+      anon_sym_CARET,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(53), 2,
+    ACTIONS(43), 2,
       anon_sym_STAR,
       anon_sym_PERCENT,
-    ACTIONS(61), 2,
+    ACTIONS(41), 4,
+      sym_keyword_or,
+      anon_sym_DASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(51), 4,
-      anon_sym_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_GT_EQ,
-    ACTIONS(43), 8,
+    ACTIONS(39), 15,
       sym_keyword_join,
       sym_keyword_where,
       sym_keyword_order_by,
       sym_keyword_group_by,
       sym_keyword_limit,
+      sym_keyword_in,
       sym_keyword_and,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
       anon_sym_COMMA,
-  [407] = 9,
-    ACTIONS(47), 1,
-      anon_sym_CARET,
-    ACTIONS(49), 1,
-      sym_keyword_in,
-    ACTIONS(55), 1,
+      anon_sym_EQ,
       anon_sym_PLUS,
-    ACTIONS(57), 1,
-      anon_sym_DASH,
-    ACTIONS(59), 1,
-      anon_sym_SLASH,
+      anon_sym_LT_EQ,
+      anon_sym_BANG_EQ,
+      anon_sym_GT_EQ,
+  [410] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(53), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(45), 3,
-      sym_keyword_or,
+    ACTIONS(59), 4,
+      anon_sym_DASH,
+      anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(43), 12,
-      sym_keyword_join,
+    ACTIONS(57), 19,
+      sym_keyword_from,
       sym_keyword_where,
-      sym_keyword_order_by,
-      sym_keyword_group_by,
+      sym_keyword_desc,
+      sym_keyword_asc,
       sym_keyword_limit,
+      sym_keyword_in,
       sym_keyword_and,
+      sym_keyword_or,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_EQ,
+      anon_sym_STAR,
+      anon_sym_PLUS,
+      anon_sym_PERCENT,
+      anon_sym_CARET,
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [450] = 6,
-    ACTIONS(47), 1,
-      anon_sym_CARET,
-    ACTIONS(59), 1,
-      anon_sym_SLASH,
+  [442] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(53), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(45), 4,
+    ACTIONS(37), 5,
       sym_keyword_or,
       anon_sym_DASH,
+      anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(43), 14,
+    ACTIONS(35), 18,
       sym_keyword_join,
       sym_keyword_where,
       sym_keyword_order_by,
@@ -5423,24 +5438,28 @@ static uint16_t ts_small_parse_table[] = {
       sym_keyword_limit,
       sym_keyword_in,
       sym_keyword_and,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_EQ,
+      anon_sym_STAR,
       anon_sym_PLUS,
+      anon_sym_PERCENT,
+      anon_sym_CARET,
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [487] = 3,
+  [474] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(65), 5,
+    ACTIONS(41), 5,
       sym_keyword_or,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(63), 17,
+    ACTIONS(39), 18,
       sym_keyword_join,
       sym_keyword_where,
       sym_keyword_order_by,
@@ -5448,6 +5467,7 @@ static uint16_t ts_small_parse_table[] = {
       sym_keyword_limit,
       sym_keyword_in,
       sym_keyword_and,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_EQ,
@@ -5458,17 +5478,17 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [518] = 3,
+  [506] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(25), 5,
+    ACTIONS(59), 5,
       sym_keyword_or,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(23), 17,
+    ACTIONS(57), 18,
       sym_keyword_join,
       sym_keyword_where,
       sym_keyword_order_by,
@@ -5476,6 +5496,7 @@ static uint16_t ts_small_parse_table[] = {
       sym_keyword_limit,
       sym_keyword_in,
       sym_keyword_and,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_EQ,
@@ -5486,17 +5507,19 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [549] = 3,
+  [538] = 4,
+    ACTIONS(51), 1,
+      anon_sym_CARET,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(35), 5,
+    ACTIONS(41), 5,
       sym_keyword_or,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(33), 17,
+    ACTIONS(39), 17,
       sym_keyword_join,
       sym_keyword_where,
       sym_keyword_order_by,
@@ -5504,36 +5527,27 @@ static uint16_t ts_small_parse_table[] = {
       sym_keyword_limit,
       sym_keyword_in,
       sym_keyword_and,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_EQ,
       anon_sym_STAR,
       anon_sym_PLUS,
       anon_sym_PERCENT,
-      anon_sym_CARET,
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [580] = 8,
-    ACTIONS(47), 1,
-      anon_sym_CARET,
-    ACTIONS(55), 1,
-      anon_sym_PLUS,
-    ACTIONS(57), 1,
-      anon_sym_DASH,
-    ACTIONS(59), 1,
-      anon_sym_SLASH,
+  [572] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(53), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(45), 3,
+    ACTIONS(63), 5,
       sym_keyword_or,
+      anon_sym_DASH,
+      anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(43), 13,
+    ACTIONS(61), 18,
       sym_keyword_join,
       sym_keyword_where,
       sym_keyword_order_by,
@@ -5541,23 +5555,28 @@ static uint16_t ts_small_parse_table[] = {
       sym_keyword_limit,
       sym_keyword_in,
       sym_keyword_and,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_EQ,
+      anon_sym_STAR,
+      anon_sym_PLUS,
+      anon_sym_PERCENT,
+      anon_sym_CARET,
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [621] = 3,
+  [604] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(41), 5,
+    ACTIONS(67), 5,
       sym_keyword_or,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(39), 17,
+    ACTIONS(65), 18,
       sym_keyword_join,
       sym_keyword_where,
       sym_keyword_order_by,
@@ -5565,6 +5584,7 @@ static uint16_t ts_small_parse_table[] = {
       sym_keyword_limit,
       sym_keyword_in,
       sym_keyword_and,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_EQ,
@@ -5575,17 +5595,89 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [652] = 3,
+  [636] = 9,
+    ACTIONS(45), 1,
+      anon_sym_PLUS,
+    ACTIONS(47), 1,
+      anon_sym_DASH,
+    ACTIONS(49), 1,
+      anon_sym_SLASH,
+    ACTIONS(51), 1,
+      anon_sym_CARET,
+    ACTIONS(69), 1,
+      sym_keyword_in,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    ACTIONS(43), 2,
+      anon_sym_STAR,
+      anon_sym_PERCENT,
+    ACTIONS(41), 3,
+      sym_keyword_or,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(39), 13,
+      sym_keyword_join,
+      sym_keyword_where,
+      sym_keyword_order_by,
+      sym_keyword_group_by,
+      sym_keyword_limit,
+      sym_keyword_and,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
+      anon_sym_EQ,
+      anon_sym_LT_EQ,
+      anon_sym_BANG_EQ,
+      anon_sym_GT_EQ,
+  [680] = 11,
+    ACTIONS(41), 1,
+      sym_keyword_or,
+    ACTIONS(45), 1,
+      anon_sym_PLUS,
+    ACTIONS(47), 1,
+      anon_sym_DASH,
+    ACTIONS(49), 1,
+      anon_sym_SLASH,
+    ACTIONS(51), 1,
+      anon_sym_CARET,
+    ACTIONS(69), 1,
+      sym_keyword_in,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    ACTIONS(43), 2,
+      anon_sym_STAR,
+      anon_sym_PERCENT,
+    ACTIONS(73), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(71), 4,
+      anon_sym_EQ,
+      anon_sym_LT_EQ,
+      anon_sym_BANG_EQ,
+      anon_sym_GT_EQ,
+    ACTIONS(39), 9,
+      sym_keyword_join,
+      sym_keyword_where,
+      sym_keyword_order_by,
+      sym_keyword_group_by,
+      sym_keyword_limit,
+      sym_keyword_and,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
+  [728] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(45), 5,
+    ACTIONS(31), 5,
       sym_keyword_or,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(43), 17,
+    ACTIONS(29), 18,
       sym_keyword_join,
       sym_keyword_where,
       sym_keyword_order_by,
@@ -5593,6 +5685,7 @@ static uint16_t ts_small_parse_table[] = {
       sym_keyword_limit,
       sym_keyword_in,
       sym_keyword_and,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_EQ,
@@ -5603,17 +5696,17 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [683] = 3,
+  [760] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(69), 5,
+    ACTIONS(77), 5,
       sym_keyword_or,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(67), 17,
+    ACTIONS(75), 18,
       sym_keyword_join,
       sym_keyword_where,
       sym_keyword_order_by,
@@ -5621,6 +5714,7 @@ static uint16_t ts_small_parse_table[] = {
       sym_keyword_limit,
       sym_keyword_in,
       sym_keyword_and,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_EQ,
@@ -5631,26 +5725,25 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [714] = 6,
-    ACTIONS(77), 1,
-      anon_sym_COMMA,
-    STATE(110), 1,
-      aux_sym_assignment_list_repeat1,
+  [792] = 4,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(71), 4,
-      sym_keyword_where,
-      sym_keyword_order_by,
-      sym_keyword_limit,
-      anon_sym_SEMI,
-    ACTIONS(75), 5,
+    ACTIONS(83), 5,
       sym_keyword_or,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(73), 10,
+    ACTIONS(79), 7,
+      sym_keyword_join,
+      sym_keyword_where,
+      sym_keyword_order_by,
+      sym_keyword_group_by,
+      sym_keyword_limit,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+    ACTIONS(81), 10,
       sym_keyword_in,
       sym_keyword_and,
       anon_sym_EQ,
@@ -5661,24 +5754,25 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [750] = 4,
+  [825] = 4,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(75), 5,
+    ACTIONS(83), 5,
       sym_keyword_or,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(79), 6,
+    ACTIONS(85), 7,
       sym_keyword_join,
       sym_keyword_where,
       sym_keyword_order_by,
       sym_keyword_group_by,
       sym_keyword_limit,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
-    ACTIONS(73), 10,
+    ACTIONS(81), 10,
       sym_keyword_in,
       sym_keyword_and,
       anon_sym_EQ,
@@ -5689,24 +5783,53 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [782] = 4,
+  [858] = 6,
+    ACTIONS(89), 1,
+      anon_sym_COMMA,
+    STATE(121), 1,
+      aux_sym_assignment_list_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(75), 5,
+    ACTIONS(87), 4,
+      sym_keyword_where,
+      sym_keyword_order_by,
+      sym_keyword_limit,
+      anon_sym_SEMI,
+    ACTIONS(83), 5,
       sym_keyword_or,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(81), 6,
-      sym_keyword_join,
+    ACTIONS(81), 10,
+      sym_keyword_in,
+      sym_keyword_and,
+      anon_sym_EQ,
+      anon_sym_STAR,
+      anon_sym_PLUS,
+      anon_sym_PERCENT,
+      anon_sym_CARET,
+      anon_sym_LT_EQ,
+      anon_sym_BANG_EQ,
+      anon_sym_GT_EQ,
+  [894] = 4,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    ACTIONS(83), 5,
+      sym_keyword_or,
+      anon_sym_DASH,
+      anon_sym_SLASH,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(91), 5,
       sym_keyword_where,
       sym_keyword_order_by,
-      sym_keyword_group_by,
       sym_keyword_limit,
       anon_sym_SEMI,
-    ACTIONS(73), 10,
+      anon_sym_COMMA,
+    ACTIONS(81), 10,
       sym_keyword_in,
       sym_keyword_and,
       anon_sym_EQ,
@@ -5717,99 +5840,133 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [814] = 15,
-    ACTIONS(85), 1,
+  [925] = 15,
+    ACTIONS(95), 1,
       anon_sym_STAR,
-    ACTIONS(87), 1,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(101), 1,
       sym__number,
-    ACTIONS(93), 1,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-    ACTIONS(95), 1,
+    ACTIONS(105), 1,
       sym__identifier,
-    STATE(6), 1,
-      sym__literal_string,
-    STATE(7), 1,
+    STATE(8), 1,
       sym_identifier,
-    STATE(213), 1,
-      sym_select_expression,
-    STATE(288), 1,
+    STATE(9), 1,
+      sym__literal_string,
+    STATE(193), 1,
+      sym_order_expression,
+    STATE(290), 1,
       sym__function_name,
-    STATE(289), 1,
+    STATE(291), 1,
       sym_function_name,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(96), 2,
+    STATE(89), 2,
       sym_field,
       sym_function_call,
-    STATE(214), 2,
+    STATE(116), 2,
       sym__field_list,
       sym_literal,
-    ACTIONS(83), 5,
+    ACTIONS(93), 5,
       sym_keyword_distinct,
       sym_keyword_count,
       sym_keyword_max,
       sym_keyword_min,
       sym_keyword_avg,
-  [867] = 15,
-    ACTIONS(87), 1,
+  [978] = 12,
+    ACTIONS(45), 1,
+      anon_sym_PLUS,
+    ACTIONS(47), 1,
+      anon_sym_DASH,
+    ACTIONS(49), 1,
+      anon_sym_SLASH,
+    ACTIONS(51), 1,
+      anon_sym_CARET,
+    ACTIONS(69), 1,
+      sym_keyword_in,
+    ACTIONS(109), 1,
+      sym_keyword_and,
+    ACTIONS(111), 1,
+      sym_keyword_or,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    ACTIONS(43), 2,
+      anon_sym_STAR,
+      anon_sym_PERCENT,
+    ACTIONS(73), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(71), 4,
+      anon_sym_EQ,
+      anon_sym_LT_EQ,
+      anon_sym_BANG_EQ,
+      anon_sym_GT_EQ,
+    ACTIONS(107), 5,
+      sym_keyword_order_by,
+      sym_keyword_group_by,
+      sym_keyword_limit,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+  [1025] = 15,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(101), 1,
       sym__number,
-    ACTIONS(93), 1,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-    ACTIONS(95), 1,
+    ACTIONS(105), 1,
       sym__identifier,
-    ACTIONS(97), 1,
+    ACTIONS(113), 1,
       anon_sym_STAR,
-    STATE(6), 1,
-      sym__literal_string,
-    STATE(7), 1,
+    STATE(8), 1,
       sym_identifier,
-    STATE(230), 1,
-      sym_order_expression,
-    STATE(288), 1,
+    STATE(9), 1,
+      sym__literal_string,
+    STATE(182), 1,
+      sym_select_expression,
+    STATE(290), 1,
       sym__function_name,
-    STATE(289), 1,
+    STATE(291), 1,
       sym_function_name,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(96), 2,
+    STATE(89), 2,
       sym_field,
       sym_function_call,
-    STATE(133), 2,
+    STATE(185), 2,
       sym__field_list,
       sym_literal,
-    ACTIONS(83), 5,
+    ACTIONS(93), 5,
       sym_keyword_distinct,
       sym_keyword_count,
       sym_keyword_max,
       sym_keyword_min,
       sym_keyword_avg,
-  [920] = 4,
+  [1078] = 4,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(75), 5,
+    ACTIONS(115), 4,
+      sym_keyword_order_by,
+      sym_keyword_limit,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+    ACTIONS(83), 5,
       sym_keyword_or,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(99), 5,
-      sym_keyword_where,
-      sym_keyword_order_by,
-      sym_keyword_limit,
-      anon_sym_SEMI,
-      anon_sym_COMMA,
-    ACTIONS(73), 10,
+    ACTIONS(81), 10,
       sym_keyword_in,
       sym_keyword_and,
       anon_sym_EQ,
@@ -5820,57 +5977,23 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [951] = 12,
-    ACTIONS(47), 1,
-      anon_sym_CARET,
-    ACTIONS(49), 1,
-      sym_keyword_in,
-    ACTIONS(55), 1,
-      anon_sym_PLUS,
-    ACTIONS(57), 1,
-      anon_sym_DASH,
-    ACTIONS(59), 1,
-      anon_sym_SLASH,
-    ACTIONS(103), 1,
-      sym_keyword_and,
-    ACTIONS(105), 1,
-      sym_keyword_or,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-    ACTIONS(53), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(61), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(51), 4,
-      anon_sym_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_GT_EQ,
-    ACTIONS(101), 4,
-      sym_keyword_order_by,
-      sym_keyword_group_by,
-      sym_keyword_limit,
-      anon_sym_SEMI,
-  [997] = 6,
-    ACTIONS(107), 1,
+  [1108] = 6,
+    ACTIONS(117), 1,
       anon_sym_COMMA,
-    STATE(144), 1,
+    STATE(154), 1,
       aux_sym_assignment_list_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(71), 2,
+    ACTIONS(87), 2,
       sym_keyword_where,
       anon_sym_SEMI,
-    ACTIONS(75), 4,
+    ACTIONS(83), 4,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(73), 11,
+    ACTIONS(81), 11,
       sym_keyword_in,
       sym_keyword_and,
       sym_keyword_or,
@@ -5882,47 +6005,16 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [1031] = 10,
-    ACTIONS(109), 1,
-      sym_keyword_in,
-    ACTIONS(115), 1,
-      anon_sym_PLUS,
-    ACTIONS(117), 1,
-      anon_sym_DASH,
-    ACTIONS(119), 1,
-      anon_sym_SLASH,
-    ACTIONS(121), 1,
-      anon_sym_CARET,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-    ACTIONS(113), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(123), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(111), 4,
-      anon_sym_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_GT_EQ,
-    ACTIONS(43), 5,
-      sym_keyword_where,
-      sym_keyword_and,
-      sym_keyword_or,
-      anon_sym_SEMI,
-      anon_sym_COMMA,
-  [1072] = 3,
+  [1142] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(45), 4,
+    ACTIONS(41), 4,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(43), 14,
+    ACTIONS(39), 14,
       sym_keyword_where,
       sym_keyword_in,
       sym_keyword_and,
@@ -5937,16 +6029,16 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [1099] = 3,
+  [1169] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(65), 4,
+    ACTIONS(55), 4,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(63), 14,
+    ACTIONS(53), 14,
       sym_keyword_where,
       sym_keyword_in,
       sym_keyword_and,
@@ -5961,23 +6053,22 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [1126] = 4,
+  [1196] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(125), 3,
-      sym_keyword_order_by,
-      sym_keyword_limit,
-      anon_sym_SEMI,
-    ACTIONS(75), 5,
-      sym_keyword_or,
+    ACTIONS(67), 4,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(73), 10,
+    ACTIONS(65), 14,
+      sym_keyword_where,
       sym_keyword_in,
       sym_keyword_and,
+      sym_keyword_or,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
       anon_sym_EQ,
       anon_sym_STAR,
       anon_sym_PLUS,
@@ -5986,20 +6077,20 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [1155] = 4,
+  [1223] = 4,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(99), 3,
+    ACTIONS(91), 3,
       sym_keyword_where,
       anon_sym_SEMI,
       anon_sym_COMMA,
-    ACTIONS(75), 4,
+    ACTIONS(83), 4,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(73), 11,
+    ACTIONS(81), 11,
       sym_keyword_in,
       sym_keyword_and,
       sym_keyword_or,
@@ -6011,16 +6102,25 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [1184] = 3,
+  [1252] = 8,
+    ACTIONS(121), 1,
+      anon_sym_PLUS,
+    ACTIONS(123), 1,
+      anon_sym_DASH,
+    ACTIONS(125), 1,
+      anon_sym_SLASH,
+    ACTIONS(127), 1,
+      anon_sym_CARET,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(69), 4,
-      anon_sym_DASH,
-      anon_sym_SLASH,
+    ACTIONS(41), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(67), 14,
+    ACTIONS(119), 2,
+      anon_sym_STAR,
+      anon_sym_PERCENT,
+    ACTIONS(39), 10,
       sym_keyword_where,
       sym_keyword_in,
       sym_keyword_and,
@@ -6028,84 +6128,74 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_EQ,
-      anon_sym_STAR,
-      anon_sym_PLUS,
-      anon_sym_PERCENT,
-      anon_sym_CARET,
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [1211] = 8,
-    ACTIONS(115), 1,
+  [1289] = 10,
+    ACTIONS(121), 1,
       anon_sym_PLUS,
-    ACTIONS(117), 1,
+    ACTIONS(123), 1,
       anon_sym_DASH,
-    ACTIONS(119), 1,
+    ACTIONS(125), 1,
       anon_sym_SLASH,
-    ACTIONS(121), 1,
+    ACTIONS(127), 1,
       anon_sym_CARET,
+    ACTIONS(129), 1,
+      sym_keyword_in,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(45), 2,
-      anon_sym_LT,
-      anon_sym_GT,
-    ACTIONS(113), 2,
+    ACTIONS(119), 2,
       anon_sym_STAR,
       anon_sym_PERCENT,
-    ACTIONS(43), 10,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(131), 4,
+      anon_sym_EQ,
+      anon_sym_LT_EQ,
+      anon_sym_BANG_EQ,
+      anon_sym_GT_EQ,
+    ACTIONS(39), 5,
       sym_keyword_where,
-      sym_keyword_in,
       sym_keyword_and,
       sym_keyword_or,
       anon_sym_SEMI,
       anon_sym_COMMA,
-      anon_sym_EQ,
-      anon_sym_LT_EQ,
-      anon_sym_BANG_EQ,
-      anon_sym_GT_EQ,
-  [1248] = 9,
-    ACTIONS(109), 1,
-      sym_keyword_in,
-    ACTIONS(115), 1,
-      anon_sym_PLUS,
-    ACTIONS(117), 1,
-      anon_sym_DASH,
-    ACTIONS(119), 1,
-      anon_sym_SLASH,
-    ACTIONS(121), 1,
-      anon_sym_CARET,
+  [1330] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(45), 2,
+    ACTIONS(63), 4,
+      anon_sym_DASH,
+      anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(113), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(43), 9,
+    ACTIONS(61), 14,
       sym_keyword_where,
+      sym_keyword_in,
       sym_keyword_and,
       sym_keyword_or,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_EQ,
+      anon_sym_STAR,
+      anon_sym_PLUS,
+      anon_sym_PERCENT,
+      anon_sym_CARET,
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [1287] = 4,
-    ACTIONS(121), 1,
-      anon_sym_CARET,
+  [1357] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(45), 4,
+    ACTIONS(77), 4,
       anon_sym_DASH,
       anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(43), 13,
+    ACTIONS(75), 14,
       sym_keyword_where,
       sym_keyword_in,
       sym_keyword_and,
@@ -6116,922 +6206,1022 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_STAR,
       anon_sym_PLUS,
       anon_sym_PERCENT,
+      anon_sym_CARET,
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [1316] = 6,
-    ACTIONS(119), 1,
-      anon_sym_SLASH,
+  [1384] = 9,
     ACTIONS(121), 1,
+      anon_sym_PLUS,
+    ACTIONS(123), 1,
+      anon_sym_DASH,
+    ACTIONS(125), 1,
+      anon_sym_SLASH,
+    ACTIONS(127), 1,
       anon_sym_CARET,
+    ACTIONS(129), 1,
+      sym_keyword_in,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(113), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(45), 3,
-      anon_sym_DASH,
+    ACTIONS(41), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(43), 11,
+    ACTIONS(119), 2,
+      anon_sym_STAR,
+      anon_sym_PERCENT,
+    ACTIONS(39), 9,
       sym_keyword_where,
-      sym_keyword_in,
       sym_keyword_and,
       sym_keyword_or,
       anon_sym_SEMI,
       anon_sym_COMMA,
       anon_sym_EQ,
-      anon_sym_PLUS,
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [1349] = 11,
-    ACTIONS(101), 1,
-      anon_sym_SEMI,
-    ACTIONS(109), 1,
-      sym_keyword_in,
-    ACTIONS(115), 1,
-      anon_sym_PLUS,
-    ACTIONS(117), 1,
-      anon_sym_DASH,
-    ACTIONS(119), 1,
-      anon_sym_SLASH,
-    ACTIONS(121), 1,
+  [1423] = 4,
+    ACTIONS(127), 1,
       anon_sym_CARET,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(113), 2,
-      anon_sym_STAR,
-      anon_sym_PERCENT,
-    ACTIONS(123), 2,
+    ACTIONS(41), 4,
+      anon_sym_DASH,
+      anon_sym_SLASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(127), 2,
+    ACTIONS(39), 13,
+      sym_keyword_where,
+      sym_keyword_in,
       sym_keyword_and,
       sym_keyword_or,
-    ACTIONS(111), 4,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
       anon_sym_EQ,
+      anon_sym_STAR,
+      anon_sym_PLUS,
+      anon_sym_PERCENT,
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [1390] = 10,
-    ACTIONS(47), 1,
-      anon_sym_CARET,
-    ACTIONS(49), 1,
-      sym_keyword_in,
-    ACTIONS(55), 1,
-      anon_sym_PLUS,
-    ACTIONS(57), 1,
-      anon_sym_DASH,
-    ACTIONS(59), 1,
+  [1452] = 6,
+    ACTIONS(125), 1,
       anon_sym_SLASH,
+    ACTIONS(127), 1,
+      anon_sym_CARET,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(53), 2,
+    ACTIONS(119), 2,
       anon_sym_STAR,
       anon_sym_PERCENT,
-    ACTIONS(61), 2,
+    ACTIONS(41), 3,
+      anon_sym_DASH,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(103), 2,
+    ACTIONS(39), 11,
+      sym_keyword_where,
+      sym_keyword_in,
       sym_keyword_and,
       sym_keyword_or,
-    ACTIONS(51), 4,
+      anon_sym_SEMI,
+      anon_sym_COMMA,
       anon_sym_EQ,
+      anon_sym_PLUS,
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [1428] = 10,
-    ACTIONS(109), 1,
-      sym_keyword_in,
-    ACTIONS(115), 1,
+  [1485] = 11,
+    ACTIONS(107), 1,
+      anon_sym_SEMI,
+    ACTIONS(121), 1,
       anon_sym_PLUS,
-    ACTIONS(117), 1,
+    ACTIONS(123), 1,
       anon_sym_DASH,
-    ACTIONS(119), 1,
+    ACTIONS(125), 1,
       anon_sym_SLASH,
-    ACTIONS(121), 1,
+    ACTIONS(127), 1,
       anon_sym_CARET,
+    ACTIONS(129), 1,
+      sym_keyword_in,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(113), 2,
+    ACTIONS(119), 2,
       anon_sym_STAR,
       anon_sym_PERCENT,
-    ACTIONS(123), 2,
+    ACTIONS(133), 2,
       anon_sym_LT,
       anon_sym_GT,
-    ACTIONS(127), 2,
+    ACTIONS(135), 2,
       sym_keyword_and,
       sym_keyword_or,
-    ACTIONS(111), 4,
+    ACTIONS(131), 4,
       anon_sym_EQ,
       anon_sym_LT_EQ,
       anon_sym_BANG_EQ,
       anon_sym_GT_EQ,
-  [1466] = 14,
-    ACTIONS(129), 1,
+  [1526] = 14,
+    ACTIONS(137), 1,
       sym_keyword_join,
-    ACTIONS(131), 1,
+    ACTIONS(139), 1,
       sym_keyword_where,
-    ACTIONS(133), 1,
+    ACTIONS(141), 1,
       sym_keyword_order_by,
-    ACTIONS(135), 1,
+    ACTIONS(143), 1,
       sym_keyword_group_by,
-    ACTIONS(137), 1,
+    ACTIONS(145), 1,
       sym_keyword_limit,
-    ACTIONS(141), 1,
-      anon_sym_SEMI,
-    STATE(66), 1,
+    STATE(71), 1,
       sym_index_hint,
-    STATE(95), 1,
+    STATE(96), 1,
       sym_where,
-    STATE(132), 1,
+    STATE(120), 1,
       sym_group_by,
-    STATE(177), 1,
+    STATE(157), 1,
       sym_order_by,
-    STATE(255), 1,
+    STATE(215), 1,
       sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(139), 2,
+    ACTIONS(147), 2,
       sym_keyword_force,
       sym_keyword_use,
-    STATE(68), 2,
+    ACTIONS(149), 2,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+    STATE(69), 2,
       sym_join,
       aux_sym_from_repeat1,
-  [1512] = 11,
-    ACTIONS(143), 1,
-      anon_sym_LPAREN,
-    ACTIONS(145), 1,
+  [1573] = 10,
+    ACTIONS(45), 1,
+      anon_sym_PLUS,
+    ACTIONS(47), 1,
+      anon_sym_DASH,
+    ACTIONS(49), 1,
+      anon_sym_SLASH,
+    ACTIONS(51), 1,
+      anon_sym_CARET,
+    ACTIONS(69), 1,
+      sym_keyword_in,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    ACTIONS(43), 2,
+      anon_sym_STAR,
+      anon_sym_PERCENT,
+    ACTIONS(73), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(109), 2,
+      sym_keyword_and,
+      sym_keyword_or,
+    ACTIONS(71), 4,
+      anon_sym_EQ,
+      anon_sym_LT_EQ,
+      anon_sym_BANG_EQ,
+      anon_sym_GT_EQ,
+  [1611] = 12,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(147), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(149), 1,
+    ACTIONS(101), 1,
       sym__number,
-    ACTIONS(151), 1,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
+    ACTIONS(151), 1,
+      anon_sym_LPAREN,
     ACTIONS(153), 1,
       sym__identifier,
-    STATE(9), 1,
+    STATE(8), 1,
       sym_identifier,
-    STATE(16), 1,
+    STATE(9), 1,
       sym__literal_string,
-    STATE(138), 1,
-      sym_where_expression,
+    STATE(26), 1,
+      sym_predicate,
+    STATE(111), 1,
+      sym_assignment_list,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(28), 5,
+    STATE(46), 5,
       sym_field,
-      sym_predicate,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [1551] = 11,
-    ACTIONS(87), 1,
+  [1653] = 11,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(101), 1,
       sym__number,
-    ACTIONS(93), 1,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-    ACTIONS(155), 1,
+    ACTIONS(151), 1,
       anon_sym_LPAREN,
-    ACTIONS(157), 1,
+    ACTIONS(153), 1,
       sym__identifier,
-    STATE(6), 1,
-      sym__literal_string,
-    STATE(7), 1,
+    STATE(8), 1,
       sym_identifier,
-    STATE(138), 1,
+    STATE(9), 1,
+      sym__literal_string,
+    STATE(136), 1,
       sym_where_expression,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(40), 5,
+    STATE(44), 6,
       sym_field,
       sym_predicate,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [1590] = 12,
-    ACTIONS(87), 1,
+  [1693] = 11,
+    ACTIONS(155), 1,
+      anon_sym_LPAREN,
+    ACTIONS(157), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(159), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(161), 1,
       sym__number,
-    ACTIONS(93), 1,
+    ACTIONS(163), 1,
       anon_sym_BQUOTE,
-    ACTIONS(155), 1,
-      anon_sym_LPAREN,
-    ACTIONS(157), 1,
+    ACTIONS(165), 1,
       sym__identifier,
     STATE(6), 1,
-      sym__literal_string,
-    STATE(7), 1,
       sym_identifier,
-    STATE(29), 1,
-      sym_predicate,
-    STATE(186), 1,
-      sym_assignment_list,
+    STATE(14), 1,
+      sym__literal_string,
+    STATE(136), 1,
+      sym_where_expression,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(42), 4,
+    STATE(29), 6,
       sym_field,
+      sym_predicate,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [1631] = 12,
-    ACTIONS(87), 1,
+  [1733] = 10,
+    ACTIONS(121), 1,
+      anon_sym_PLUS,
+    ACTIONS(123), 1,
+      anon_sym_DASH,
+    ACTIONS(125), 1,
+      anon_sym_SLASH,
+    ACTIONS(127), 1,
+      anon_sym_CARET,
+    ACTIONS(129), 1,
+      sym_keyword_in,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    ACTIONS(119), 2,
+      anon_sym_STAR,
+      anon_sym_PERCENT,
+    ACTIONS(133), 2,
+      anon_sym_LT,
+      anon_sym_GT,
+    ACTIONS(135), 2,
+      sym_keyword_and,
+      sym_keyword_or,
+    ACTIONS(131), 4,
+      anon_sym_EQ,
+      anon_sym_LT_EQ,
+      anon_sym_BANG_EQ,
+      anon_sym_GT_EQ,
+  [1771] = 12,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(101), 1,
       sym__number,
-    ACTIONS(93), 1,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-    ACTIONS(155), 1,
+    ACTIONS(151), 1,
       anon_sym_LPAREN,
-    ACTIONS(157), 1,
+    ACTIONS(153), 1,
       sym__identifier,
-    STATE(6), 1,
-      sym__literal_string,
-    STATE(7), 1,
+    STATE(8), 1,
       sym_identifier,
-    STATE(22), 1,
+    STATE(9), 1,
+      sym__literal_string,
+    STATE(32), 1,
       sym_predicate,
-    STATE(91), 1,
+    STATE(176), 1,
       sym_assignment_list,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(41), 4,
+    STATE(50), 5,
       sym_field,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [1672] = 10,
-    ACTIONS(87), 1,
+  [1813] = 11,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(101), 1,
       sym__number,
-    ACTIONS(93), 1,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-    ACTIONS(155), 1,
+    ACTIONS(151), 1,
       anon_sym_LPAREN,
-    ACTIONS(157), 1,
+    ACTIONS(153), 1,
       sym__identifier,
-    STATE(6), 1,
-      sym__literal_string,
-    STATE(7), 1,
+    STATE(8), 1,
       sym_identifier,
+    STATE(9), 1,
+      sym__literal_string,
+    STATE(36), 1,
+      sym_predicate,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(30), 5,
+    STATE(50), 5,
       sym_field,
-      sym_predicate,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [1708] = 10,
-    ACTIONS(87), 1,
+  [1852] = 11,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(101), 1,
       sym__number,
-    ACTIONS(93), 1,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-    ACTIONS(155), 1,
+    ACTIONS(151), 1,
       anon_sym_LPAREN,
-    ACTIONS(157), 1,
+    ACTIONS(153), 1,
       sym__identifier,
-    STATE(6), 1,
-      sym__literal_string,
-    STATE(7), 1,
+    STATE(8), 1,
       sym_identifier,
+    STATE(9), 1,
+      sym__literal_string,
+    STATE(24), 1,
+      sym_predicate,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(38), 5,
+    STATE(46), 5,
       sym_field,
-      sym_predicate,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [1744] = 11,
-    ACTIONS(87), 1,
+  [1891] = 10,
+    ACTIONS(155), 1,
+      anon_sym_LPAREN,
+    ACTIONS(157), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(159), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(161), 1,
       sym__number,
-    ACTIONS(93), 1,
+    ACTIONS(163), 1,
       anon_sym_BQUOTE,
-    ACTIONS(155), 1,
-      anon_sym_LPAREN,
-    ACTIONS(157), 1,
+    ACTIONS(165), 1,
       sym__identifier,
     STATE(6), 1,
-      sym__literal_string,
-    STATE(7), 1,
       sym_identifier,
-    STATE(23), 1,
-      sym_predicate,
+    STATE(14), 1,
+      sym__literal_string,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(41), 4,
+    STATE(17), 6,
       sym_field,
+      sym_predicate,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [1782] = 10,
-    ACTIONS(87), 1,
+  [1928] = 10,
+    ACTIONS(155), 1,
+      anon_sym_LPAREN,
+    ACTIONS(157), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(159), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(161), 1,
       sym__number,
-    ACTIONS(93), 1,
+    ACTIONS(163), 1,
       anon_sym_BQUOTE,
-    ACTIONS(155), 1,
-      anon_sym_LPAREN,
-    ACTIONS(157), 1,
+    ACTIONS(165), 1,
       sym__identifier,
     STATE(6), 1,
-      sym__literal_string,
-    STATE(7), 1,
       sym_identifier,
+    STATE(14), 1,
+      sym__literal_string,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(36), 5,
+    STATE(12), 6,
       sym_field,
       sym_predicate,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [1818] = 10,
-    ACTIONS(143), 1,
+  [1965] = 10,
+    ACTIONS(155), 1,
       anon_sym_LPAREN,
-    ACTIONS(145), 1,
+    ACTIONS(157), 1,
       anon_sym_SQUOTE,
-    ACTIONS(147), 1,
+    ACTIONS(159), 1,
       anon_sym_DQUOTE,
-    ACTIONS(149), 1,
+    ACTIONS(161), 1,
       sym__number,
-    ACTIONS(151), 1,
+    ACTIONS(163), 1,
       anon_sym_BQUOTE,
-    ACTIONS(153), 1,
+    ACTIONS(165), 1,
       sym__identifier,
-    STATE(9), 1,
+    STATE(6), 1,
       sym_identifier,
-    STATE(16), 1,
+    STATE(14), 1,
       sym__literal_string,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(18), 5,
+    STATE(15), 6,
       sym_field,
       sym_predicate,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [1854] = 10,
-    ACTIONS(87), 1,
+  [2002] = 10,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(101), 1,
       sym__number,
-    ACTIONS(93), 1,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-    ACTIONS(155), 1,
+    ACTIONS(151), 1,
       anon_sym_LPAREN,
-    ACTIONS(157), 1,
+    ACTIONS(153), 1,
       sym__identifier,
-    STATE(6), 1,
-      sym__literal_string,
-    STATE(7), 1,
+    STATE(8), 1,
       sym_identifier,
+    STATE(9), 1,
+      sym__literal_string,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(37), 5,
+    STATE(43), 6,
       sym_field,
       sym_predicate,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [1890] = 10,
-    ACTIONS(143), 1,
-      anon_sym_LPAREN,
-    ACTIONS(145), 1,
+  [2039] = 10,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(147), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(149), 1,
+    ACTIONS(101), 1,
       sym__number,
-    ACTIONS(151), 1,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
+    ACTIONS(151), 1,
+      anon_sym_LPAREN,
     ACTIONS(153), 1,
       sym__identifier,
-    STATE(9), 1,
+    STATE(8), 1,
       sym_identifier,
-    STATE(16), 1,
+    STATE(9), 1,
       sym__literal_string,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(12), 5,
+    STATE(42), 6,
       sym_field,
       sym_predicate,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [1926] = 11,
-    ACTIONS(87), 1,
+  [2076] = 10,
+    ACTIONS(155), 1,
+      anon_sym_LPAREN,
+    ACTIONS(157), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(159), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(161), 1,
       sym__number,
-    ACTIONS(93), 1,
+    ACTIONS(163), 1,
       anon_sym_BQUOTE,
-    ACTIONS(155), 1,
-      anon_sym_LPAREN,
-    ACTIONS(157), 1,
+    ACTIONS(165), 1,
       sym__identifier,
     STATE(6), 1,
-      sym__literal_string,
-    STATE(7), 1,
       sym_identifier,
-    STATE(27), 1,
-      sym_predicate,
+    STATE(14), 1,
+      sym__literal_string,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(41), 4,
+    STATE(10), 6,
       sym_field,
+      sym_predicate,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [1964] = 10,
-    ACTIONS(87), 1,
+  [2113] = 11,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(101), 1,
       sym__number,
-    ACTIONS(93), 1,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-    ACTIONS(155), 1,
+    ACTIONS(151), 1,
       anon_sym_LPAREN,
-    ACTIONS(157), 1,
+    ACTIONS(153), 1,
       sym__identifier,
-    STATE(6), 1,
-      sym__literal_string,
-    STATE(7), 1,
+    STATE(8), 1,
       sym_identifier,
+    STATE(9), 1,
+      sym__literal_string,
+    STATE(31), 1,
+      sym_predicate,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(31), 5,
+    STATE(46), 5,
       sym_field,
-      sym_predicate,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [2000] = 11,
-    ACTIONS(87), 1,
+  [2152] = 10,
+    ACTIONS(155), 1,
+      anon_sym_LPAREN,
+    ACTIONS(157), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(159), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(161), 1,
       sym__number,
-    ACTIONS(93), 1,
+    ACTIONS(163), 1,
       anon_sym_BQUOTE,
-    ACTIONS(155), 1,
-      anon_sym_LPAREN,
-    ACTIONS(157), 1,
+    ACTIONS(165), 1,
       sym__identifier,
     STATE(6), 1,
-      sym__literal_string,
-    STATE(7), 1,
       sym_identifier,
-    STATE(24), 1,
-      sym_predicate,
+    STATE(14), 1,
+      sym__literal_string,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(41), 4,
+    STATE(21), 6,
       sym_field,
+      sym_predicate,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [2038] = 11,
-    ACTIONS(87), 1,
+  [2189] = 11,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(101), 1,
       sym__number,
-    ACTIONS(93), 1,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-    ACTIONS(155), 1,
+    ACTIONS(151), 1,
       anon_sym_LPAREN,
-    ACTIONS(157), 1,
+    ACTIONS(153), 1,
       sym__identifier,
-    STATE(6), 1,
-      sym__literal_string,
-    STATE(7), 1,
+    STATE(8), 1,
       sym_identifier,
-    STATE(34), 1,
+    STATE(9), 1,
+      sym__literal_string,
+    STATE(25), 1,
       sym_predicate,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(42), 4,
+    STATE(46), 5,
       sym_field,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [2076] = 11,
-    ACTIONS(87), 1,
+  [2228] = 11,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(101), 1,
       sym__number,
-    ACTIONS(93), 1,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-    ACTIONS(155), 1,
+    ACTIONS(151), 1,
       anon_sym_LPAREN,
-    ACTIONS(157), 1,
+    ACTIONS(153), 1,
       sym__identifier,
-    STATE(6), 1,
-      sym__literal_string,
-    STATE(7), 1,
+    STATE(8), 1,
       sym_identifier,
-    STATE(33), 1,
+    STATE(9), 1,
+      sym__literal_string,
+    STATE(27), 1,
       sym_predicate,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(41), 4,
+    STATE(46), 5,
       sym_field,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [2114] = 10,
-    ACTIONS(143), 1,
+  [2267] = 10,
+    ACTIONS(155), 1,
       anon_sym_LPAREN,
-    ACTIONS(145), 1,
+    ACTIONS(157), 1,
       anon_sym_SQUOTE,
-    ACTIONS(147), 1,
+    ACTIONS(159), 1,
       anon_sym_DQUOTE,
-    ACTIONS(149), 1,
+    ACTIONS(161), 1,
       sym__number,
-    ACTIONS(151), 1,
+    ACTIONS(163), 1,
       anon_sym_BQUOTE,
-    ACTIONS(153), 1,
+    ACTIONS(165), 1,
       sym__identifier,
-    STATE(9), 1,
+    STATE(6), 1,
       sym_identifier,
-    STATE(16), 1,
+    STATE(14), 1,
       sym__literal_string,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(20), 5,
+    STATE(20), 6,
       sym_field,
       sym_predicate,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [2150] = 10,
-    ACTIONS(143), 1,
-      anon_sym_LPAREN,
-    ACTIONS(145), 1,
+  [2304] = 10,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(147), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(149), 1,
+    ACTIONS(101), 1,
       sym__number,
-    ACTIONS(151), 1,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
+    ACTIONS(151), 1,
+      anon_sym_LPAREN,
     ACTIONS(153), 1,
       sym__identifier,
-    STATE(9), 1,
+    STATE(8), 1,
       sym_identifier,
-    STATE(16), 1,
+    STATE(9), 1,
       sym__literal_string,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(14), 5,
+    STATE(33), 6,
       sym_field,
       sym_predicate,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [2186] = 10,
-    ACTIONS(143), 1,
-      anon_sym_LPAREN,
-    ACTIONS(145), 1,
+  [2341] = 10,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(147), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(149), 1,
+    ACTIONS(101), 1,
       sym__number,
-    ACTIONS(151), 1,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
+    ACTIONS(151), 1,
+      anon_sym_LPAREN,
     ACTIONS(153), 1,
       sym__identifier,
-    STATE(9), 1,
+    STATE(8), 1,
       sym_identifier,
-    STATE(16), 1,
+    STATE(9), 1,
       sym__literal_string,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(11), 5,
+    STATE(37), 6,
       sym_field,
       sym_predicate,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [2222] = 10,
-    ACTIONS(87), 1,
+  [2378] = 10,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(101), 1,
       sym__number,
-    ACTIONS(93), 1,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-    ACTIONS(155), 1,
+    ACTIONS(151), 1,
       anon_sym_LPAREN,
-    ACTIONS(157), 1,
+    ACTIONS(153), 1,
       sym__identifier,
-    STATE(6), 1,
-      sym__literal_string,
-    STATE(7), 1,
+    STATE(8), 1,
       sym_identifier,
+    STATE(9), 1,
+      sym__literal_string,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(39), 5,
+    STATE(38), 6,
       sym_field,
       sym_predicate,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [2258] = 10,
-    ACTIONS(143), 1,
-      anon_sym_LPAREN,
-    ACTIONS(145), 1,
+  [2415] = 10,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(147), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(149), 1,
+    ACTIONS(101), 1,
       sym__number,
-    ACTIONS(151), 1,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
+    ACTIONS(151), 1,
+      anon_sym_LPAREN,
     ACTIONS(153), 1,
       sym__identifier,
-    STATE(9), 1,
+    STATE(8), 1,
       sym_identifier,
-    STATE(16), 1,
+    STATE(9), 1,
       sym__literal_string,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(13), 5,
+    STATE(41), 6,
       sym_field,
       sym_predicate,
       sym__expression,
+      sym_subquery,
       sym_list,
       sym_literal,
-  [2294] = 13,
-    ACTIONS(93), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(95), 1,
-      sym__identifier,
-    ACTIONS(159), 1,
-      sym_keyword_primary,
-    ACTIONS(161), 1,
-      sym_keyword_key,
-    ACTIONS(163), 1,
-      sym_keyword_constraint,
-    STATE(77), 1,
-      sym_identifier,
-    STATE(197), 1,
-      sym_constraint,
-    STATE(206), 1,
-      sym_column_definition,
-    STATE(207), 1,
-      sym__constraint_literal,
-    STATE(208), 1,
-      sym__primary_key_constraint,
-    STATE(209), 1,
-      sym__key_constraint,
-    STATE(235), 1,
-      sym__primary_key,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-  [2335] = 12,
-    ACTIONS(129), 1,
+  [2452] = 12,
+    ACTIONS(137), 1,
       sym_keyword_join,
-    ACTIONS(131), 1,
+    ACTIONS(139), 1,
       sym_keyword_where,
-    ACTIONS(133), 1,
+    ACTIONS(141), 1,
       sym_keyword_order_by,
-    ACTIONS(135), 1,
+    ACTIONS(143), 1,
       sym_keyword_group_by,
-    ACTIONS(137), 1,
+    ACTIONS(145), 1,
       sym_keyword_limit,
-    ACTIONS(165), 1,
-      anon_sym_SEMI,
-    STATE(93), 1,
+    STATE(98), 1,
       sym_where,
-    STATE(124), 1,
+    STATE(125), 1,
       sym_group_by,
-    STATE(201), 1,
+    STATE(155), 1,
       sym_order_by,
-    STATE(313), 1,
+    STATE(230), 1,
       sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(69), 2,
+    ACTIONS(167), 2,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+    STATE(80), 2,
       sym_join,
       aux_sym_from_repeat1,
-  [2374] = 8,
-    ACTIONS(93), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(95), 1,
-      sym__identifier,
-    STATE(7), 1,
-      sym_identifier,
-    STATE(288), 1,
-      sym__function_name,
-    STATE(289), 1,
-      sym_function_name,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-    STATE(241), 2,
-      sym_field,
-      sym_function_call,
-    ACTIONS(83), 5,
-      sym_keyword_distinct,
-      sym_keyword_count,
-      sym_keyword_max,
-      sym_keyword_min,
-      sym_keyword_avg,
-  [2405] = 12,
-    ACTIONS(129), 1,
+  [2492] = 12,
+    ACTIONS(137), 1,
       sym_keyword_join,
-    ACTIONS(131), 1,
+    ACTIONS(139), 1,
       sym_keyword_where,
-    ACTIONS(133), 1,
+    ACTIONS(141), 1,
       sym_keyword_order_by,
-    ACTIONS(135), 1,
+    ACTIONS(143), 1,
       sym_keyword_group_by,
-    ACTIONS(137), 1,
+    ACTIONS(145), 1,
       sym_keyword_limit,
-    ACTIONS(165), 1,
-      anon_sym_SEMI,
-    STATE(93), 1,
+    STATE(100), 1,
       sym_where,
-    STATE(124), 1,
+    STATE(122), 1,
       sym_group_by,
-    STATE(201), 1,
+    STATE(174), 1,
       sym_order_by,
-    STATE(313), 1,
+    STATE(237), 1,
       sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
+    ACTIONS(169), 2,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
     STATE(80), 2,
       sym_join,
       aux_sym_from_repeat1,
-  [2444] = 12,
-    ACTIONS(129), 1,
+  [2532] = 12,
+    ACTIONS(137), 1,
       sym_keyword_join,
-    ACTIONS(131), 1,
+    ACTIONS(139), 1,
       sym_keyword_where,
-    ACTIONS(133), 1,
+    ACTIONS(141), 1,
       sym_keyword_order_by,
-    ACTIONS(135), 1,
+    ACTIONS(143), 1,
       sym_keyword_group_by,
-    ACTIONS(137), 1,
+    ACTIONS(145), 1,
       sym_keyword_limit,
-    ACTIONS(167), 1,
-      anon_sym_SEMI,
     STATE(98), 1,
       sym_where,
-    STATE(114), 1,
+    STATE(125), 1,
       sym_group_by,
-    STATE(187), 1,
+    STATE(155), 1,
       sym_order_by,
-    STATE(250), 1,
+    STATE(230), 1,
       sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(80), 2,
+    ACTIONS(167), 2,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+    STATE(70), 2,
       sym_join,
       aux_sym_from_repeat1,
-  [2483] = 8,
-    ACTIONS(93), 1,
+  [2572] = 6,
+    ACTIONS(163), 1,
       anon_sym_BQUOTE,
-    ACTIONS(95), 1,
+    ACTIONS(175), 1,
       sym__identifier,
-    STATE(7), 1,
+    STATE(79), 1,
       sym_identifier,
-    STATE(288), 1,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    ACTIONS(173), 4,
+      sym_keyword_order_by,
+      sym_keyword_group_by,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+    ACTIONS(171), 5,
+      sym_keyword_join,
+      sym_keyword_where,
+      sym_keyword_limit,
+      sym_keyword_force,
+      sym_keyword_use,
+  [2599] = 13,
+    ACTIONS(103), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(105), 1,
+      sym__identifier,
+    ACTIONS(177), 1,
+      sym_keyword_primary,
+    ACTIONS(179), 1,
+      sym_keyword_key,
+    ACTIONS(181), 1,
+      sym_keyword_constraint,
+    STATE(82), 1,
+      sym_identifier,
+    STATE(201), 1,
+      sym_constraint,
+    STATE(224), 1,
+      sym__key_constraint,
+    STATE(226), 1,
+      sym__primary_key_constraint,
+    STATE(228), 1,
+      sym__constraint_literal,
+    STATE(236), 1,
+      sym__primary_key,
+    STATE(245), 1,
+      sym_column_definition,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+  [2640] = 8,
+    ACTIONS(103), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(105), 1,
+      sym__identifier,
+    STATE(8), 1,
+      sym_identifier,
+    STATE(290), 1,
       sym__function_name,
-    STATE(289), 1,
+    STATE(291), 1,
       sym_function_name,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(105), 2,
+    STATE(109), 2,
       sym_field,
       sym_function_call,
-    ACTIONS(83), 5,
+    ACTIONS(93), 5,
+      sym_keyword_distinct,
+      sym_keyword_count,
+      sym_keyword_max,
+      sym_keyword_min,
+      sym_keyword_avg,
+  [2671] = 8,
+    ACTIONS(103), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(105), 1,
+      sym__identifier,
+    STATE(8), 1,
+      sym_identifier,
+    STATE(290), 1,
+      sym__function_name,
+    STATE(291), 1,
+      sym_function_name,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    STATE(287), 2,
+      sym_field,
+      sym_function_call,
+    ACTIONS(93), 5,
       sym_keyword_distinct,
       sym_keyword_count,
       sym_keyword_max,
       sym_keyword_min,
       sym_keyword_avg,
-  [2514] = 10,
-    ACTIONS(171), 1,
+  [2702] = 10,
+    ACTIONS(185), 1,
       sym_keyword_primary,
-    ACTIONS(173), 1,
+    ACTIONS(187), 1,
       sym_keyword_not,
-    ACTIONS(175), 1,
+    ACTIONS(189), 1,
       sym_keyword_auto_increment,
-    ACTIONS(177), 1,
+    ACTIONS(191), 1,
       sym_keyword_default,
-    STATE(123), 1,
+    STATE(131), 1,
       sym__primary_key,
-    STATE(218), 1,
+    STATE(234), 1,
       sym_direction,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(169), 2,
+    ACTIONS(183), 2,
       sym_keyword_desc,
       sym_keyword_asc,
-    ACTIONS(179), 2,
+    ACTIONS(193), 2,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-    STATE(82), 2,
+    STATE(97), 2,
       sym__not_null,
       sym__default_null,
-  [2549] = 6,
-    ACTIONS(151), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(185), 1,
-      sym__identifier,
-    STATE(78), 1,
-      sym_identifier,
+  [2737] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(183), 3,
+    ACTIONS(19), 5,
       sym_keyword_order_by,
       sym_keyword_group_by,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
-    ACTIONS(181), 5,
+      anon_sym_BQUOTE,
+    ACTIONS(21), 6,
       sym_keyword_join,
       sym_keyword_where,
       sym_keyword_limit,
       sym_keyword_force,
       sym_keyword_use,
-  [2575] = 3,
+      sym__identifier,
+  [2757] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(15), 4,
+    ACTIONS(15), 5,
       sym_keyword_order_by,
       sym_keyword_group_by,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
       anon_sym_BQUOTE,
     ACTIONS(17), 6,
@@ -7041,44 +7231,44 @@ static uint16_t ts_small_parse_table[] = {
       sym_keyword_force,
       sym_keyword_use,
       sym__identifier,
-  [2594] = 3,
+  [2777] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(19), 4,
-      sym_keyword_order_by,
-      sym_keyword_group_by,
-      anon_sym_SEMI,
-      anon_sym_BQUOTE,
-    ACTIONS(21), 6,
+    ACTIONS(195), 10,
       sym_keyword_join,
+      sym_keyword_on,
       sym_keyword_where,
+      sym_keyword_order_by,
+      sym_keyword_group_by,
       sym_keyword_limit,
       sym_keyword_force,
       sym_keyword_use,
-      sym__identifier,
-  [2613] = 3,
-    ACTIONS(189), 1,
-      anon_sym_LPAREN,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+  [2794] = 4,
+    ACTIONS(197), 1,
+      sym_keyword_join,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(187), 8,
-      sym_keyword_desc,
-      sym_keyword_asc,
-      sym_keyword_primary,
-      sym_keyword_not,
-      sym_keyword_auto_increment,
-      sym_keyword_default,
+    STATE(80), 2,
+      sym_join,
+      aux_sym_from_repeat1,
+    ACTIONS(200), 6,
+      sym_keyword_where,
+      sym_keyword_order_by,
+      sym_keyword_group_by,
+      sym_keyword_limit,
       anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [2631] = 3,
-    ACTIONS(193), 1,
+      anon_sym_SEMI,
+  [2814] = 3,
+    ACTIONS(204), 1,
       anon_sym_LPAREN,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(191), 8,
+    ACTIONS(202), 8,
       sym_keyword_desc,
       sym_keyword_asc,
       sym_keyword_primary,
@@ -7087,46 +7277,46 @@ static uint16_t ts_small_parse_table[] = {
       sym_keyword_default,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [2649] = 7,
-    ACTIONS(195), 1,
+  [2832] = 7,
+    ACTIONS(206), 1,
       sym_keyword_bigint,
-    ACTIONS(197), 1,
+    ACTIONS(208), 1,
       sym_keyword_date,
-    ACTIONS(199), 1,
+    ACTIONS(210), 1,
       sym_keyword_datetime,
-    ACTIONS(201), 1,
+    ACTIONS(212), 1,
       sym_keyword_char,
-    ACTIONS(203), 1,
+    ACTIONS(214), 1,
       sym_keyword_varchar,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(71), 4,
+    STATE(76), 4,
       sym__type,
       sym_bigint,
       sym_char,
       sym_varchar,
-  [2675] = 2,
+  [2858] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(205), 9,
+    ACTIONS(216), 9,
+      sym_keyword_from,
       sym_keyword_join,
       sym_keyword_on,
       sym_keyword_where,
       sym_keyword_order_by,
       sym_keyword_group_by,
       sym_keyword_limit,
-      sym_keyword_force,
-      sym_keyword_use,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
-  [2691] = 3,
-    ACTIONS(209), 1,
+  [2874] = 3,
+    ACTIONS(220), 1,
       anon_sym_LPAREN,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(207), 8,
+    ACTIONS(218), 8,
       sym_keyword_desc,
       sym_keyword_asc,
       sym_keyword_primary,
@@ -7135,173 +7325,175 @@ static uint16_t ts_small_parse_table[] = {
       sym_keyword_default,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [2709] = 4,
-    ACTIONS(211), 1,
-      sym_keyword_join,
+  [2892] = 3,
+    ACTIONS(224), 1,
+      anon_sym_LPAREN,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(80), 2,
-      sym_join,
-      aux_sym_from_repeat1,
-    ACTIONS(214), 5,
+    ACTIONS(222), 8,
+      sym_keyword_desc,
+      sym_keyword_asc,
+      sym_keyword_primary,
+      sym_keyword_not,
+      sym_keyword_auto_increment,
+      sym_keyword_default,
+      anon_sym_RPAREN,
+      anon_sym_COMMA,
+  [2910] = 2,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    ACTIONS(226), 9,
+      sym_keyword_from,
+      sym_keyword_join,
+      sym_keyword_on,
       sym_keyword_where,
       sym_keyword_order_by,
       sym_keyword_group_by,
       sym_keyword_limit,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
-  [2728] = 8,
-    ACTIONS(93), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(95), 1,
-      sym__identifier,
-    ACTIONS(216), 1,
-      sym_keyword_default,
-    ACTIONS(218), 1,
-      anon_sym_SEMI,
-    STATE(264), 1,
-      sym_table_options,
-    STATE(278), 1,
-      sym_identifier,
+  [2926] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(92), 2,
-      sym_table_option,
-      aux_sym_table_options_repeat1,
-  [2755] = 7,
-    ACTIONS(171), 1,
+    ACTIONS(228), 8,
+      sym_keyword_desc,
+      sym_keyword_asc,
       sym_keyword_primary,
-    ACTIONS(220), 1,
+      sym_keyword_not,
       sym_keyword_auto_increment,
-    STATE(131), 1,
+      sym_keyword_default,
+      anon_sym_RPAREN,
+      anon_sym_COMMA,
+  [2941] = 9,
+    ACTIONS(185), 1,
+      sym_keyword_primary,
+    ACTIONS(230), 1,
+      sym_keyword_key,
+    ACTIONS(232), 1,
+      sym_keyword_constraint,
+    STATE(224), 1,
+      sym__key_constraint,
+    STATE(226), 1,
+      sym__primary_key_constraint,
+    STATE(228), 1,
+      sym__constraint_literal,
+    STATE(233), 1,
+      sym_constraint,
+    STATE(236), 1,
       sym__primary_key,
-    STATE(232), 1,
-      sym_direction,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(169), 2,
-      sym_keyword_desc,
-      sym_keyword_asc,
-    ACTIONS(222), 2,
-      anon_sym_RPAREN,
+  [2970] = 4,
+    ACTIONS(236), 1,
       anon_sym_COMMA,
-  [2780] = 8,
-    ACTIONS(93), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(157), 1,
-      sym__identifier,
-    STATE(126), 1,
-      sym_identifier,
-    STATE(182), 1,
-      sym_table_reference,
-    STATE(240), 1,
-      sym__table_references,
-    STATE(284), 1,
-      sym_update_expression,
+    STATE(90), 1,
+      aux_sym__field_list_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(283), 2,
-      sym__single_table_update,
-      sym__multi_table_update,
-  [2807] = 2,
+    ACTIONS(234), 6,
+      sym_keyword_from,
+      sym_keyword_desc,
+      sym_keyword_asc,
+      sym_keyword_limit,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+  [2989] = 4,
+    ACTIONS(236), 1,
+      anon_sym_COMMA,
+    STATE(92), 1,
+      aux_sym__field_list_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(224), 8,
+    ACTIONS(238), 6,
       sym_keyword_from,
-      sym_keyword_join,
-      sym_keyword_on,
-      sym_keyword_where,
-      sym_keyword_order_by,
-      sym_keyword_group_by,
+      sym_keyword_desc,
+      sym_keyword_asc,
       sym_keyword_limit,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
-  [2822] = 8,
-    ACTIONS(93), 1,
+  [3008] = 8,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-    ACTIONS(95), 1,
+    ACTIONS(105), 1,
       sym__identifier,
-    ACTIONS(216), 1,
+    ACTIONS(240), 1,
       sym_keyword_default,
-    ACTIONS(226), 1,
+    ACTIONS(242), 1,
       anon_sym_SEMI,
-    STATE(278), 1,
+    STATE(321), 1,
       sym_identifier,
-    STATE(302), 1,
+    STATE(322), 1,
       sym_table_options,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(92), 2,
+    STATE(108), 2,
       sym_table_option,
       aux_sym_table_options_repeat1,
-  [2849] = 2,
+  [3035] = 4,
+    ACTIONS(246), 1,
+      anon_sym_COMMA,
+    STATE(92), 1,
+      aux_sym__field_list_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(228), 8,
+    ACTIONS(244), 6,
       sym_keyword_from,
-      sym_keyword_join,
-      sym_keyword_on,
-      sym_keyword_where,
-      sym_keyword_order_by,
-      sym_keyword_group_by,
+      sym_keyword_desc,
+      sym_keyword_asc,
       sym_keyword_limit,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+  [3054] = 8,
+    ACTIONS(103), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(105), 1,
+      sym__identifier,
+    ACTIONS(240), 1,
+      sym_keyword_default,
+    ACTIONS(249), 1,
       anon_sym_SEMI,
-  [2864] = 2,
+    STATE(307), 1,
+      sym_table_options,
+    STATE(321), 1,
+      sym_identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(230), 8,
-      sym_keyword_desc,
-      sym_keyword_asc,
-      sym_keyword_primary,
-      sym_keyword_not,
-      sym_keyword_auto_increment,
-      sym_keyword_default,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [2879] = 2,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-    ACTIONS(232), 8,
-      sym_keyword_desc,
-      sym_keyword_asc,
-      sym_keyword_primary,
-      sym_keyword_not,
-      sym_keyword_auto_increment,
-      sym_keyword_default,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [2894] = 9,
-    ACTIONS(171), 1,
-      sym_keyword_primary,
-    ACTIONS(234), 1,
-      sym_keyword_key,
-    ACTIONS(236), 1,
-      sym_keyword_constraint,
-    STATE(207), 1,
-      sym__constraint_literal,
-    STATE(208), 1,
-      sym__primary_key_constraint,
-    STATE(209), 1,
-      sym__key_constraint,
-    STATE(235), 1,
-      sym__primary_key,
-    STATE(237), 1,
-      sym_constraint,
+    STATE(108), 2,
+      sym_table_option,
+      aux_sym_table_options_repeat1,
+  [3081] = 8,
+    ACTIONS(103), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(153), 1,
+      sym__identifier,
+    STATE(129), 1,
+      sym_identifier,
+    STATE(187), 1,
+      sym_table_reference,
+    STATE(282), 1,
+      sym__table_references,
+    STATE(284), 1,
+      sym_update_expression,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [2923] = 2,
+    STATE(283), 2,
+      sym__single_table_update,
+      sym__multi_table_update,
+  [3108] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(238), 8,
+    ACTIONS(251), 8,
       sym_keyword_desc,
       sym_keyword_asc,
       sym_keyword_primary,
@@ -7310,148 +7502,166 @@ static uint16_t ts_small_parse_table[] = {
       sym_keyword_default,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [2938] = 8,
-    ACTIONS(131), 1,
-      sym_keyword_where,
-    ACTIONS(133), 1,
+  [3123] = 8,
+    ACTIONS(141), 1,
       sym_keyword_order_by,
-    ACTIONS(137), 1,
+    ACTIONS(143), 1,
+      sym_keyword_group_by,
+    ACTIONS(145), 1,
       sym_keyword_limit,
-    ACTIONS(240), 1,
-      anon_sym_SEMI,
-    STATE(121), 1,
-      sym_where,
-    STATE(190), 1,
+    STATE(125), 1,
+      sym_group_by,
+    STATE(155), 1,
       sym_order_by,
-    STATE(311), 1,
+    STATE(230), 1,
       sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [2964] = 7,
-    ACTIONS(93), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(95), 1,
-      sym__identifier,
-    ACTIONS(216), 1,
-      sym_keyword_default,
-    ACTIONS(242), 1,
+    ACTIONS(167), 2,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
-    STATE(278), 1,
-      sym_identifier,
+  [3150] = 7,
+    ACTIONS(185), 1,
+      sym_keyword_primary,
+    ACTIONS(253), 1,
+      sym_keyword_auto_increment,
+    STATE(140), 1,
+      sym__primary_key,
+    STATE(241), 1,
+      sym_direction,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    STATE(103), 2,
-      sym_table_option,
-      aux_sym_table_options_repeat1,
-  [2988] = 8,
-    ACTIONS(133), 1,
+    ACTIONS(183), 2,
+      sym_keyword_desc,
+      sym_keyword_asc,
+    ACTIONS(255), 2,
+      anon_sym_RPAREN,
+      anon_sym_COMMA,
+  [3175] = 8,
+    ACTIONS(141), 1,
       sym_keyword_order_by,
-    ACTIONS(135), 1,
+    ACTIONS(143), 1,
       sym_keyword_group_by,
-    ACTIONS(137), 1,
+    ACTIONS(145), 1,
       sym_keyword_limit,
-    ACTIONS(167), 1,
-      anon_sym_SEMI,
-    STATE(114), 1,
+    STATE(122), 1,
       sym_group_by,
-    STATE(187), 1,
+    STATE(174), 1,
       sym_order_by,
-    STATE(250), 1,
+    STATE(237), 1,
       sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [3014] = 6,
-    ACTIONS(171), 1,
-      sym_keyword_primary,
-    STATE(117), 1,
-      sym__primary_key,
-    STATE(205), 1,
-      sym_direction,
+    ACTIONS(169), 2,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+  [3202] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(169), 2,
+    ACTIONS(257), 8,
       sym_keyword_desc,
       sym_keyword_asc,
-    ACTIONS(244), 2,
+      sym_keyword_primary,
+      sym_keyword_not,
+      sym_keyword_auto_increment,
+      sym_keyword_default,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [3036] = 8,
-    ACTIONS(133), 1,
+  [3217] = 8,
+    ACTIONS(141), 1,
       sym_keyword_order_by,
-    ACTIONS(135), 1,
+    ACTIONS(143), 1,
       sym_keyword_group_by,
-    ACTIONS(137), 1,
+    ACTIONS(145), 1,
       sym_keyword_limit,
-    ACTIONS(165), 1,
-      anon_sym_SEMI,
-    STATE(124), 1,
+    STATE(119), 1,
       sym_group_by,
-    STATE(201), 1,
+    STATE(156), 1,
       sym_order_by,
-    STATE(313), 1,
+    STATE(227), 1,
       sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [3062] = 4,
-    ACTIONS(248), 1,
-      anon_sym_COMMA,
-    STATE(104), 1,
-      aux_sym__field_list_repeat1,
+    ACTIONS(259), 2,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+  [3244] = 6,
+    ACTIONS(185), 1,
+      sym_keyword_primary,
+    STATE(140), 1,
+      sym__primary_key,
+    STATE(241), 1,
+      sym_direction,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(246), 5,
-      sym_keyword_from,
+    ACTIONS(183), 2,
       sym_keyword_desc,
       sym_keyword_asc,
-      sym_keyword_limit,
-      anon_sym_SEMI,
-  [3080] = 8,
-    ACTIONS(131), 1,
+    ACTIONS(255), 2,
+      anon_sym_RPAREN,
+      anon_sym_COMMA,
+  [3266] = 8,
+    ACTIONS(139), 1,
       sym_keyword_where,
-    ACTIONS(133), 1,
+    ACTIONS(141), 1,
       sym_keyword_order_by,
-    ACTIONS(137), 1,
+    ACTIONS(145), 1,
       sym_keyword_limit,
-    ACTIONS(250), 1,
+    ACTIONS(261), 1,
       anon_sym_SEMI,
-    STATE(116), 1,
+    STATE(137), 1,
       sym_where,
-    STATE(175), 1,
+    STATE(192), 1,
       sym_order_by,
-    STATE(256), 1,
+    STATE(316), 1,
       sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [3106] = 8,
-    ACTIONS(133), 1,
-      sym_keyword_order_by,
-    ACTIONS(135), 1,
-      sym_keyword_group_by,
-    ACTIONS(137), 1,
-      sym_keyword_limit,
-    ACTIONS(252), 1,
+  [3292] = 7,
+    ACTIONS(263), 1,
+      sym_keyword_default,
+    ACTIONS(266), 1,
       anon_sym_SEMI,
-    STATE(127), 1,
-      sym_group_by,
-    STATE(200), 1,
-      sym_order_by,
-    STATE(262), 1,
-      sym_limit,
+    ACTIONS(268), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(271), 1,
+      sym__identifier,
+    STATE(321), 1,
+      sym_identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [3132] = 2,
+    STATE(103), 2,
+      sym_table_option,
+      aux_sym_table_options_repeat1,
+  [3316] = 6,
+    ACTIONS(185), 1,
+      sym_keyword_primary,
+    STATE(128), 1,
+      sym__primary_key,
+    STATE(250), 1,
+      sym_direction,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    ACTIONS(183), 2,
+      sym_keyword_desc,
+      sym_keyword_asc,
+    ACTIONS(274), 2,
+      anon_sym_RPAREN,
+      anon_sym_COMMA,
+  [3338] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(254), 7,
+    ACTIONS(276), 7,
       sym_keyword_from,
       sym_keyword_desc,
       sym_keyword_asc,
@@ -7459,62 +7669,50 @@ static uint16_t ts_small_parse_table[] = {
       anon_sym_RPAREN,
       anon_sym_SEMI,
       anon_sym_COMMA,
-  [3146] = 6,
-    ACTIONS(151), 1,
+  [3352] = 6,
+    ACTIONS(163), 1,
       anon_sym_BQUOTE,
-    ACTIONS(185), 1,
+    ACTIONS(175), 1,
       sym__identifier,
-    STATE(78), 1,
+    STATE(79), 1,
       sym_identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(181), 2,
+    ACTIONS(171), 2,
       sym_keyword_where,
       sym_keyword_limit,
-    ACTIONS(183), 2,
+    ACTIONS(173), 2,
       sym_keyword_order_by,
       anon_sym_SEMI,
-  [3168] = 4,
-    ACTIONS(258), 1,
-      anon_sym_COMMA,
-    STATE(101), 1,
-      aux_sym__field_list_repeat1,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-    ACTIONS(256), 5,
-      sym_keyword_from,
-      sym_keyword_desc,
-      sym_keyword_asc,
-      sym_keyword_limit,
-      anon_sym_SEMI,
-  [3186] = 6,
-    ACTIONS(171), 1,
-      sym_keyword_primary,
-    STATE(131), 1,
-      sym__primary_key,
-    STATE(232), 1,
-      sym_direction,
+  [3374] = 8,
+    ACTIONS(5), 1,
+      sym_keyword_select,
+    ACTIONS(97), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(99), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(101), 1,
+      sym__number,
+    STATE(9), 1,
+      sym__literal_string,
+    STATE(188), 1,
+      sym_select,
+    STATE(202), 1,
+      sym_literal,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(169), 2,
-      sym_keyword_desc,
-      sym_keyword_asc,
-    ACTIONS(222), 2,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [3208] = 7,
-    ACTIONS(261), 1,
-      sym_keyword_default,
-    ACTIONS(264), 1,
-      anon_sym_SEMI,
-    ACTIONS(266), 1,
+  [3400] = 7,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-    ACTIONS(269), 1,
+    ACTIONS(105), 1,
       sym__identifier,
-    STATE(278), 1,
+    ACTIONS(240), 1,
+      sym_keyword_default,
+    ACTIONS(278), 1,
+      anon_sym_SEMI,
+    STATE(321), 1,
       sym_identifier,
     ACTIONS(3), 2,
       sym_comment,
@@ -7522,32 +7720,66 @@ static uint16_t ts_small_parse_table[] = {
     STATE(103), 2,
       sym_table_option,
       aux_sym_table_options_repeat1,
-  [3232] = 4,
-    ACTIONS(248), 1,
-      anon_sym_COMMA,
-    STATE(101), 1,
-      aux_sym__field_list_repeat1,
+  [3424] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(272), 5,
+    ACTIONS(244), 7,
       sym_keyword_from,
       sym_keyword_desc,
       sym_keyword_asc,
       sym_keyword_limit,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
-  [3250] = 2,
+      anon_sym_COMMA,
+  [3438] = 8,
+    ACTIONS(5), 1,
+      sym_keyword_select,
+    ACTIONS(97), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(99), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(101), 1,
+      sym__number,
+    STATE(9), 1,
+      sym__literal_string,
+    STATE(197), 1,
+      sym_select,
+    STATE(205), 1,
+      sym_literal,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(256), 6,
-      sym_keyword_from,
-      sym_keyword_desc,
-      sym_keyword_asc,
+  [3464] = 8,
+    ACTIONS(139), 1,
+      sym_keyword_where,
+    ACTIONS(141), 1,
+      sym_keyword_order_by,
+    ACTIONS(145), 1,
       sym_keyword_limit,
+    ACTIONS(280), 1,
       anon_sym_SEMI,
+    STATE(126), 1,
+      sym_where,
+    STATE(183), 1,
+      sym_order_by,
+    STATE(317), 1,
+      sym_limit,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+  [3490] = 2,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    ACTIONS(282), 6,
+      sym_keyword_desc,
+      sym_keyword_asc,
+      sym_keyword_primary,
+      sym_keyword_auto_increment,
+      anon_sym_RPAREN,
       anon_sym_COMMA,
-  [3263] = 3,
+  [3503] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
@@ -7559,1857 +7791,1890 @@ static uint16_t ts_small_parse_table[] = {
       sym_keyword_where,
       sym_keyword_limit,
       sym__identifier,
-  [3278] = 4,
-    ACTIONS(274), 1,
-      anon_sym_COMMA,
-    STATE(107), 1,
-      aux_sym_assignment_list_repeat1,
+  [3518] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(99), 4,
+    ACTIONS(19), 3,
+      sym_keyword_order_by,
+      anon_sym_SEMI,
+      anon_sym_BQUOTE,
+    ACTIONS(21), 3,
       sym_keyword_where,
+      sym_keyword_limit,
+      sym__identifier,
+  [3533] = 4,
+    ACTIONS(286), 1,
+      sym_keyword_having,
+    STATE(168), 1,
+      sym__having,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    ACTIONS(284), 4,
       sym_keyword_order_by,
       sym_keyword_limit,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
-  [3295] = 2,
+  [3550] = 4,
+    STATE(189), 1,
+      sym_direction,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(277), 6,
+    ACTIONS(183), 2,
       sym_keyword_desc,
       sym_keyword_asc,
-      sym_keyword_primary,
-      sym_keyword_auto_increment,
+    ACTIONS(288), 3,
+      sym_keyword_limit,
       anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [3308] = 2,
+      anon_sym_SEMI,
+  [3567] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(279), 6,
+    ACTIONS(290), 6,
       sym_keyword_desc,
       sym_keyword_asc,
       sym_keyword_primary,
       sym_keyword_auto_increment,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [3321] = 4,
-    ACTIONS(77), 1,
-      anon_sym_COMMA,
-    STATE(107), 1,
-      aux_sym_assignment_list_repeat1,
+  [3580] = 7,
+    ACTIONS(103), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(105), 1,
+      sym__identifier,
+    ACTIONS(292), 1,
+      sym_keyword_if,
+    STATE(129), 1,
+      sym_identifier,
+    STATE(158), 1,
+      sym__if_not_exists,
+    STATE(223), 1,
+      sym_table_reference,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(281), 4,
-      sym_keyword_where,
+  [3603] = 6,
+    ACTIONS(141), 1,
       sym_keyword_order_by,
+    ACTIONS(145), 1,
       sym_keyword_limit,
-      anon_sym_SEMI,
-  [3338] = 3,
+    STATE(145), 1,
+      sym_order_by,
+    STATE(242), 1,
+      sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(19), 3,
+    ACTIONS(294), 2,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+  [3624] = 6,
+    ACTIONS(141), 1,
       sym_keyword_order_by,
+    ACTIONS(145), 1,
+      sym_keyword_limit,
+    STATE(155), 1,
+      sym_order_by,
+    STATE(230), 1,
+      sym_limit,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    ACTIONS(167), 2,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
-      anon_sym_BQUOTE,
-    ACTIONS(21), 3,
+  [3645] = 4,
+    ACTIONS(89), 1,
+      anon_sym_COMMA,
+    STATE(124), 1,
+      aux_sym_assignment_list_repeat1,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    ACTIONS(296), 4,
       sym_keyword_where,
+      sym_keyword_order_by,
       sym_keyword_limit,
-      sym__identifier,
-  [3353] = 7,
-    ACTIONS(93), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(95), 1,
-      sym__identifier,
-    ACTIONS(283), 1,
-      sym_keyword_if,
-    STATE(126), 1,
-      sym_identifier,
-    STATE(159), 1,
-      sym__if_not_exists,
-    STATE(236), 1,
-      sym_table_reference,
+      anon_sym_SEMI,
+  [3662] = 6,
+    ACTIONS(141), 1,
+      sym_keyword_order_by,
+    ACTIONS(145), 1,
+      sym_keyword_limit,
+    STATE(156), 1,
+      sym_order_by,
+    STATE(227), 1,
+      sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [3376] = 5,
-    ACTIONS(93), 1,
+    ACTIONS(259), 2,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+  [3683] = 5,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-    ACTIONS(95), 1,
+    ACTIONS(105), 1,
       sym__identifier,
-    STATE(78), 1,
+    STATE(79), 1,
       sym_identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(181), 3,
+    ACTIONS(171), 3,
       sym_keyword_on,
       sym_keyword_force,
       sym_keyword_use,
-  [3395] = 6,
-    ACTIONS(133), 1,
+  [3702] = 4,
+    ACTIONS(298), 1,
+      anon_sym_COMMA,
+    STATE(124), 1,
+      aux_sym_assignment_list_repeat1,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    ACTIONS(91), 4,
+      sym_keyword_where,
       sym_keyword_order_by,
-    ACTIONS(137), 1,
       sym_keyword_limit,
-    ACTIONS(252), 1,
       anon_sym_SEMI,
-    STATE(200), 1,
+  [3719] = 6,
+    ACTIONS(141), 1,
+      sym_keyword_order_by,
+    ACTIONS(145), 1,
+      sym_keyword_limit,
+    STATE(174), 1,
       sym_order_by,
-    STATE(262), 1,
+    STATE(237), 1,
       sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [3415] = 3,
-    ACTIONS(15), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-    ACTIONS(17), 4,
-      sym_keyword_on,
-      sym_keyword_force,
-      sym_keyword_use,
-      sym__identifier,
-  [3429] = 6,
-    ACTIONS(133), 1,
+    ACTIONS(169), 2,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+  [3740] = 6,
+    ACTIONS(141), 1,
       sym_keyword_order_by,
-    ACTIONS(137), 1,
+    ACTIONS(145), 1,
       sym_keyword_limit,
-    ACTIONS(285), 1,
+    ACTIONS(301), 1,
       anon_sym_SEMI,
-    STATE(195), 1,
+    STATE(181), 1,
       sym_order_by,
-    STATE(309), 1,
+    STATE(301), 1,
       sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [3449] = 4,
-    STATE(222), 1,
+  [3760] = 6,
+    ACTIONS(103), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(153), 1,
+      sym__identifier,
+    STATE(129), 1,
+      sym_identifier,
+    STATE(208), 1,
+      sym_table_reference,
+    STATE(265), 1,
+      sym_insert_expression,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+  [3780] = 4,
+    STATE(219), 1,
+      sym_direction,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    ACTIONS(183), 2,
+      sym_keyword_desc,
+      sym_keyword_asc,
+    ACTIONS(303), 2,
+      anon_sym_RPAREN,
+      anon_sym_COMMA,
+  [3796] = 3,
+    ACTIONS(307), 1,
+      anon_sym_DOT,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    ACTIONS(305), 4,
+      sym_keyword_values,
+      sym_keyword_set,
+      anon_sym_LPAREN,
+      anon_sym_COMMA,
+  [3810] = 6,
+    ACTIONS(97), 1,
+      anon_sym_SQUOTE,
+    ACTIONS(99), 1,
+      anon_sym_DQUOTE,
+    ACTIONS(101), 1,
+      sym__number,
+    STATE(9), 1,
+      sym__literal_string,
+    STATE(225), 1,
+      sym_literal,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+  [3830] = 4,
+    STATE(241), 1,
       sym_direction,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(169), 2,
+    ACTIONS(183), 2,
       sym_keyword_desc,
       sym_keyword_asc,
-    ACTIONS(287), 2,
+    ACTIONS(255), 2,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [3465] = 6,
-    ACTIONS(93), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(157), 1,
-      sym__identifier,
-    STATE(126), 1,
-      sym_identifier,
-    STATE(176), 1,
-      sym_table_reference,
-    STATE(252), 1,
-      sym_insert_expression,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-  [3485] = 6,
-    ACTIONS(87), 1,
+  [3846] = 6,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(101), 1,
       sym__number,
-    STATE(6), 1,
+    STATE(9), 1,
       sym__literal_string,
-    STATE(265), 1,
+    STATE(205), 1,
       sym_literal,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [3505] = 3,
-    ACTIONS(19), 1,
+  [3866] = 3,
+    ACTIONS(15), 1,
       anon_sym_BQUOTE,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(21), 4,
+    ACTIONS(17), 4,
       sym_keyword_on,
       sym_keyword_force,
       sym_keyword_use,
       sym__identifier,
-  [3519] = 6,
-    ACTIONS(133), 1,
-      sym_keyword_order_by,
-    ACTIONS(137), 1,
-      sym_keyword_limit,
-    ACTIONS(289), 1,
-      anon_sym_SEMI,
-    STATE(163), 1,
-      sym_order_by,
-    STATE(263), 1,
-      sym_limit,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-  [3539] = 6,
-    ACTIONS(87), 1,
+  [3880] = 6,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(101), 1,
       sym__number,
-    STATE(6), 1,
+    STATE(9), 1,
       sym__literal_string,
-    STATE(188), 1,
+    STATE(220), 1,
       sym_literal,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [3559] = 4,
-    STATE(232), 1,
-      sym_direction,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-    ACTIONS(169), 2,
-      sym_keyword_desc,
-      sym_keyword_asc,
-    ACTIONS(222), 2,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [3575] = 6,
-    ACTIONS(133), 1,
-      sym_keyword_order_by,
-    ACTIONS(137), 1,
-      sym_keyword_limit,
-    ACTIONS(167), 1,
-      anon_sym_SEMI,
-    STATE(187), 1,
-      sym_order_by,
-    STATE(250), 1,
-      sym_limit,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-  [3595] = 6,
-    ACTIONS(87), 1,
+  [3900] = 6,
+    ACTIONS(97), 1,
       anon_sym_SQUOTE,
-    ACTIONS(89), 1,
+    ACTIONS(99), 1,
       anon_sym_DQUOTE,
-    ACTIONS(91), 1,
+    ACTIONS(101), 1,
       sym__number,
-    STATE(6), 1,
+    STATE(9), 1,
       sym__literal_string,
-    STATE(170), 1,
+    STATE(153), 1,
       sym_literal,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [3615] = 3,
-    ACTIONS(293), 1,
-      anon_sym_DOT,
+  [3920] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(291), 4,
-      sym_keyword_values,
-      sym_keyword_set,
-      anon_sym_LPAREN,
-      anon_sym_COMMA,
-  [3629] = 6,
-    ACTIONS(133), 1,
+    ACTIONS(309), 5,
       sym_keyword_order_by,
-    ACTIONS(137), 1,
+      sym_keyword_group_by,
       sym_keyword_limit,
-    ACTIONS(295), 1,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
-    STATE(174), 1,
+  [3932] = 6,
+    ACTIONS(141), 1,
+      sym_keyword_order_by,
+    ACTIONS(145), 1,
+      sym_keyword_limit,
+    ACTIONS(311), 1,
+      anon_sym_SEMI,
+    STATE(203), 1,
       sym_order_by,
-    STATE(254), 1,
+    STATE(308), 1,
       sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [3649] = 6,
-    ACTIONS(87), 1,
-      anon_sym_SQUOTE,
-    ACTIONS(89), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(91), 1,
-      sym__number,
-    STATE(6), 1,
-      sym__literal_string,
-    STATE(196), 1,
-      sym_literal,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-  [3669] = 2,
+  [3952] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(297), 5,
+    ACTIONS(313), 5,
       sym_keyword_desc,
       sym_keyword_asc,
       anon_sym_LPAREN,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [3681] = 6,
-    ACTIONS(87), 1,
-      anon_sym_SQUOTE,
-    ACTIONS(89), 1,
-      anon_sym_DQUOTE,
-    ACTIONS(91), 1,
-      sym__number,
-    STATE(6), 1,
-      sym__literal_string,
-    STATE(221), 1,
-      sym_literal,
+  [3964] = 3,
+    ACTIONS(19), 1,
+      anon_sym_BQUOTE,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [3701] = 4,
-    STATE(205), 1,
+    ACTIONS(21), 4,
+      sym_keyword_on,
+      sym_keyword_force,
+      sym_keyword_use,
+      sym__identifier,
+  [3978] = 4,
+    STATE(250), 1,
       sym_direction,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(169), 2,
+    ACTIONS(183), 2,
       sym_keyword_desc,
       sym_keyword_asc,
-    ACTIONS(244), 2,
+    ACTIONS(274), 2,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [3717] = 6,
-    ACTIONS(133), 1,
-      sym_keyword_order_by,
-    ACTIONS(137), 1,
-      sym_keyword_limit,
-    ACTIONS(165), 1,
-      anon_sym_SEMI,
-    STATE(201), 1,
-      sym_order_by,
-    STATE(313), 1,
-      sym_limit,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-  [3737] = 4,
-    STATE(234), 1,
+  [3994] = 4,
+    STATE(217), 1,
       sym_direction,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(169), 2,
+    ACTIONS(183), 2,
       sym_keyword_desc,
       sym_keyword_asc,
-    ACTIONS(299), 2,
-      sym_keyword_limit,
-      anon_sym_SEMI,
-  [3753] = 4,
-    ACTIONS(303), 1,
-      sym_keyword_having,
-    STATE(183), 1,
-      sym__having,
+    ACTIONS(315), 2,
+      anon_sym_RPAREN,
+      anon_sym_COMMA,
+  [4010] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(301), 3,
-      sym_keyword_order_by,
+    ACTIONS(317), 4,
       sym_keyword_limit,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
-  [3769] = 4,
-    STATE(224), 1,
-      sym_direction,
+      anon_sym_COMMA,
+  [4021] = 5,
+    ACTIONS(319), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(321), 1,
+      sym__identifier,
+    STATE(45), 1,
+      sym_table_expression,
+    STATE(72), 1,
+      sym_identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(169), 2,
-      sym_keyword_desc,
-      sym_keyword_asc,
-    ACTIONS(305), 2,
+  [4038] = 5,
+    ACTIONS(323), 1,
       anon_sym_RPAREN,
+    ACTIONS(325), 1,
       anon_sym_COMMA,
-  [3785] = 5,
-    ACTIONS(93), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(157), 1,
-      sym__identifier,
-    STATE(180), 1,
-      sym__column_without_order,
-    STATE(215), 1,
-      sym_identifier,
+    STATE(162), 1,
+      aux_sym_column_definitions_repeat1,
+    STATE(306), 1,
+      sym_constraints,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+  [4055] = 4,
+    ACTIONS(145), 1,
+      sym_keyword_limit,
+    STATE(252), 1,
+      sym_limit,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    ACTIONS(327), 2,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+  [4070] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [3802] = 5,
-    ACTIONS(93), 1,
+    ACTIONS(329), 2,
+      sym_keyword_default,
+      sym__identifier,
+    ACTIONS(331), 2,
+      anon_sym_SEMI,
       anon_sym_BQUOTE,
-    ACTIONS(157), 1,
+  [4083] = 5,
+    ACTIONS(103), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(153), 1,
       sym__identifier,
-    STATE(135), 1,
+    STATE(82), 1,
       sym_identifier,
-    STATE(220), 1,
-      sym_column,
+    STATE(245), 1,
+      sym_column_definition,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [3819] = 2,
+  [4100] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(307), 4,
-      sym_keyword_order_by,
-      sym_keyword_group_by,
-      sym_keyword_limit,
+    ACTIONS(15), 2,
       anon_sym_SEMI,
-  [3830] = 3,
+      anon_sym_BQUOTE,
+    ACTIONS(17), 2,
+      sym_keyword_default,
+      sym__identifier,
+  [4113] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(309), 2,
+    ACTIONS(333), 2,
       sym_keyword_default,
       sym__identifier,
-    ACTIONS(311), 2,
+    ACTIONS(335), 2,
       anon_sym_SEMI,
       anon_sym_BQUOTE,
-  [3843] = 4,
-    ACTIONS(313), 1,
-      anon_sym_COMMA,
-    STATE(140), 1,
-      aux_sym_assignment_list_repeat1,
+  [4126] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(99), 2,
-      sym_keyword_where,
+    ACTIONS(19), 2,
       anon_sym_SEMI,
-  [3858] = 4,
-    ACTIONS(316), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(21), 2,
+      sym_keyword_default,
+      sym__identifier,
+  [4139] = 4,
+    ACTIONS(337), 1,
       sym_keyword_on,
-    STATE(253), 1,
+    STATE(285), 1,
       sym_index_hint,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(139), 2,
+    ACTIONS(147), 2,
       sym_keyword_force,
       sym_keyword_use,
-  [3873] = 4,
-    ACTIONS(318), 1,
-      sym_keyword_from,
-    STATE(286), 1,
-      sym_index_hint,
+  [4154] = 5,
+    ACTIONS(103), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(153), 1,
+      sym__identifier,
+    STATE(141), 1,
+      sym_identifier,
+    STATE(184), 1,
+      sym_column,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(139), 2,
-      sym_keyword_force,
-      sym_keyword_use,
-  [3888] = 3,
+  [4171] = 4,
+    ACTIONS(339), 1,
+      sym_keyword_offset,
+    STATE(239), 1,
+      sym_offset,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(320), 2,
-      sym_keyword_default,
-      sym__identifier,
-    ACTIONS(322), 2,
+    ACTIONS(341), 2,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
-      anon_sym_BQUOTE,
-  [3901] = 4,
-    ACTIONS(107), 1,
+  [4186] = 4,
+    ACTIONS(117), 1,
       anon_sym_COMMA,
-    STATE(140), 1,
+    STATE(170), 1,
       aux_sym_assignment_list_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(281), 2,
+    ACTIONS(296), 2,
       sym_keyword_where,
       anon_sym_SEMI,
-  [3916] = 5,
-    ACTIONS(93), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(157), 1,
-      sym__identifier,
-    STATE(77), 1,
-      sym_identifier,
-    STATE(160), 1,
-      sym_column_definition,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-  [3933] = 5,
-    ACTIONS(93), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(157), 1,
-      sym__identifier,
-    STATE(135), 1,
-      sym_identifier,
-    STATE(173), 1,
-      sym_column,
+  [4201] = 4,
+    ACTIONS(145), 1,
+      sym_keyword_limit,
+    STATE(237), 1,
+      sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [3950] = 3,
+    ACTIONS(169), 2,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+  [4216] = 4,
+    ACTIONS(145), 1,
+      sym_keyword_limit,
+    STATE(242), 1,
+      sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(15), 2,
+    ACTIONS(294), 2,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
-      anon_sym_BQUOTE,
-    ACTIONS(17), 2,
-      sym_keyword_default,
-      sym__identifier,
-  [3963] = 3,
+  [4231] = 4,
+    ACTIONS(145), 1,
+      sym_keyword_limit,
+    STATE(230), 1,
+      sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(324), 2,
-      sym_keyword_default,
-      sym__identifier,
-    ACTIONS(326), 2,
+    ACTIONS(167), 2,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
+  [4246] = 5,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-  [3976] = 5,
-    ACTIONS(93), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(157), 1,
+    ACTIONS(153), 1,
       sym__identifier,
-    STATE(77), 1,
+    STATE(129), 1,
       sym_identifier,
-    STATE(206), 1,
-      sym_column_definition,
+    STATE(246), 1,
+      sym_table_reference,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [3993] = 3,
+  [4263] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(19), 2,
-      anon_sym_SEMI,
-      anon_sym_BQUOTE,
-    ACTIONS(21), 2,
+    ACTIONS(343), 2,
       sym_keyword_default,
       sym__identifier,
-  [4006] = 3,
+    ACTIONS(345), 2,
+      anon_sym_SEMI,
+      anon_sym_BQUOTE,
+  [4276] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(328), 2,
+    ACTIONS(347), 2,
       sym_keyword_default,
       sym__identifier,
-    ACTIONS(330), 2,
+    ACTIONS(349), 2,
       anon_sym_SEMI,
       anon_sym_BQUOTE,
-  [4019] = 2,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-    ACTIONS(332), 4,
-      sym_keyword_values,
-      sym_keyword_set,
-      anon_sym_LPAREN,
-      anon_sym_COMMA,
-  [4030] = 5,
-    ACTIONS(334), 1,
+  [4289] = 5,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-    ACTIONS(336), 1,
+    ACTIONS(153), 1,
       sym__identifier,
-    STATE(113), 1,
+    STATE(129), 1,
       sym_identifier,
-    STATE(141), 1,
-      sym_table_expression,
+    STATE(248), 1,
+      sym_table_reference,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4047] = 5,
-    ACTIONS(338), 1,
-      anon_sym_RPAREN,
-    ACTIONS(340), 1,
+  [4306] = 5,
+    ACTIONS(325), 1,
       anon_sym_COMMA,
-    STATE(203), 1,
+    ACTIONS(351), 1,
+      anon_sym_RPAREN,
+    STATE(207), 1,
       aux_sym_column_definitions_repeat1,
-    STATE(261), 1,
+    STATE(274), 1,
       sym_constraints,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4064] = 2,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-    ACTIONS(342), 4,
-      sym_keyword_limit,
-      anon_sym_RPAREN,
-      anon_sym_SEMI,
-      anon_sym_COMMA,
-  [4075] = 5,
-    ACTIONS(344), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(346), 1,
-      sym__identifier,
-    STATE(43), 1,
-      sym_table_expression,
-    STATE(72), 1,
-      sym_identifier,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-  [4092] = 5,
-    ACTIONS(93), 1,
+  [4323] = 5,
+    ACTIONS(353), 1,
       anon_sym_BQUOTE,
-    ACTIONS(157), 1,
+    ACTIONS(355), 1,
       sym__identifier,
-    STATE(126), 1,
+    STATE(123), 1,
       sym_identifier,
-    STATE(210), 1,
-      sym_table_reference,
+    STATE(151), 1,
+      sym_table_expression,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4109] = 5,
-    ACTIONS(348), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(350), 1,
-      sym__identifier,
-    STATE(97), 1,
-      sym_table_expression,
-    STATE(100), 1,
-      sym_identifier,
+  [4340] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4126] = 5,
-    ACTIONS(93), 1,
+    ACTIONS(357), 4,
+      sym_keyword_values,
+      sym_keyword_set,
+      anon_sym_LPAREN,
+      anon_sym_COMMA,
+  [4351] = 5,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-    ACTIONS(157), 1,
+    ACTIONS(153), 1,
       sym__identifier,
-    STATE(126), 1,
+    STATE(141), 1,
       sym_identifier,
-    STATE(223), 1,
-      sym_table_reference,
+    STATE(221), 1,
+      sym_column,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4143] = 5,
-    ACTIONS(340), 1,
-      anon_sym_COMMA,
-    ACTIONS(352), 1,
-      anon_sym_RPAREN,
-    STATE(154), 1,
-      aux_sym_column_definitions_repeat1,
-    STATE(301), 1,
-      sym_constraints,
+  [4368] = 4,
+    ACTIONS(359), 1,
+      sym_keyword_from,
+    STATE(288), 1,
+      sym_index_hint,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4160] = 3,
+    ACTIONS(147), 2,
+      sym_keyword_force,
+      sym_keyword_use,
+  [4383] = 3,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(354), 2,
+    ACTIONS(361), 2,
       sym_keyword_default,
       sym__identifier,
-    ACTIONS(356), 2,
+    ACTIONS(363), 2,
       anon_sym_SEMI,
       anon_sym_BQUOTE,
-  [4173] = 5,
-    ACTIONS(93), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(157), 1,
-      sym__identifier,
-    STATE(215), 1,
-      sym_identifier,
-    STATE(219), 1,
-      sym__column_without_order,
+  [4396] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4190] = 4,
-    ACTIONS(137), 1,
+    ACTIONS(365), 4,
+      sym_keyword_order_by,
       sym_keyword_limit,
-    ACTIONS(358), 1,
-      anon_sym_SEMI,
-    STATE(267), 1,
-      sym_limit,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-  [4204] = 4,
-    ACTIONS(360), 1,
-      sym_keyword_from,
-    ACTIONS(362), 1,
-      anon_sym_SEMI,
-    STATE(279), 1,
-      sym_from,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-  [4218] = 4,
-    ACTIONS(364), 1,
       anon_sym_RPAREN,
-    ACTIONS(366), 1,
-      anon_sym_COMMA,
-    STATE(202), 1,
-      aux_sym__column_list_without_order_repeat1,
+      anon_sym_SEMI,
+  [4407] = 5,
+    ACTIONS(103), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(153), 1,
+      sym__identifier,
+    STATE(218), 1,
+      sym__column_without_order,
+    STATE(238), 1,
+      sym_identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4232] = 4,
-    ACTIONS(368), 1,
-      anon_sym_RPAREN,
-    ACTIONS(370), 1,
+  [4424] = 4,
+    ACTIONS(367), 1,
       anon_sym_COMMA,
-    STATE(184), 1,
-      aux_sym_column_list_repeat1,
+    STATE(170), 1,
+      aux_sym_assignment_list_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4246] = 4,
-    ACTIONS(372), 1,
-      anon_sym_RPAREN,
-    ACTIONS(374), 1,
-      anon_sym_COMMA,
-    STATE(198), 1,
-      aux_sym_list_repeat1,
+    ACTIONS(91), 2,
+      sym_keyword_where,
+      anon_sym_SEMI,
+  [4439] = 5,
+    ACTIONS(103), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(153), 1,
+      sym__identifier,
+    STATE(82), 1,
+      sym_identifier,
+    STATE(144), 1,
+      sym_column_definition,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4260] = 4,
-    ACTIONS(93), 1,
+  [4456] = 5,
+    ACTIONS(370), 1,
       anon_sym_BQUOTE,
-    ACTIONS(157), 1,
+    ACTIONS(372), 1,
       sym__identifier,
-    STATE(258), 1,
+    STATE(102), 1,
+      sym_table_expression,
+    STATE(106), 1,
       sym_identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4274] = 4,
-    ACTIONS(93), 1,
+  [4473] = 5,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-    ACTIONS(157), 1,
+    ACTIONS(153), 1,
       sym__identifier,
-    STATE(10), 1,
+    STATE(214), 1,
+      sym__column_without_order,
+    STATE(238), 1,
       sym_identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4288] = 4,
-    ACTIONS(376), 1,
-      sym_keyword_offset,
-    ACTIONS(378), 1,
-      anon_sym_SEMI,
-    STATE(251), 1,
-      sym_offset,
+  [4490] = 4,
+    ACTIONS(145), 1,
+      sym_keyword_limit,
+    STATE(227), 1,
+      sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4302] = 4,
-    ACTIONS(151), 1,
+    ACTIONS(259), 2,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+  [4505] = 4,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
     ACTIONS(153), 1,
       sym__identifier,
-    STATE(19), 1,
+    STATE(231), 1,
       sym_identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4316] = 4,
-    ACTIONS(380), 1,
-      anon_sym_RPAREN,
-    ACTIONS(382), 1,
-      anon_sym_COMMA,
-    STATE(172), 1,
-      aux_sym_constraints_repeat1,
+  [4519] = 4,
+    ACTIONS(374), 1,
+      sym_keyword_where,
+    ACTIONS(376), 1,
+      anon_sym_SEMI,
+    STATE(309), 1,
+      sym_where,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4330] = 4,
-    ACTIONS(370), 1,
-      anon_sym_COMMA,
-    ACTIONS(385), 1,
+  [4533] = 4,
+    ACTIONS(378), 1,
       anon_sym_RPAREN,
-    STATE(166), 1,
-      aux_sym_column_list_repeat1,
+    ACTIONS(380), 1,
+      anon_sym_COMMA,
+    STATE(209), 1,
+      aux_sym__column_list_without_order_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4344] = 4,
-    ACTIONS(137), 1,
-      sym_keyword_limit,
-    ACTIONS(387), 1,
+  [4547] = 4,
+    ACTIONS(382), 1,
+      sym_keyword_from,
+    ACTIONS(384), 1,
       anon_sym_SEMI,
-    STATE(260), 1,
-      sym_limit,
+    STATE(277), 1,
+      sym_from,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4358] = 4,
-    ACTIONS(137), 1,
-      sym_keyword_limit,
-    ACTIONS(285), 1,
-      anon_sym_SEMI,
-    STATE(309), 1,
-      sym_limit,
+  [4561] = 4,
+    ACTIONS(386), 1,
+      anon_sym_RPAREN,
+    ACTIONS(388), 1,
+      anon_sym_COMMA,
+    STATE(179), 1,
+      aux_sym_constraints_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4372] = 4,
-    ACTIONS(389), 1,
-      sym_keyword_values,
+  [4575] = 4,
     ACTIONS(391), 1,
-      anon_sym_LPAREN,
-    STATE(285), 1,
-      sym__column_list_without_order,
+      anon_sym_RPAREN,
+    ACTIONS(393), 1,
+      anon_sym_COMMA,
+    STATE(206), 1,
+      aux_sym_list_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4386] = 4,
-    ACTIONS(137), 1,
+  [4589] = 4,
+    ACTIONS(145), 1,
       sym_keyword_limit,
-    ACTIONS(165), 1,
+    ACTIONS(395), 1,
       anon_sym_SEMI,
-    STATE(313), 1,
+    STATE(258), 1,
       sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4400] = 4,
-    ACTIONS(151), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(153), 1,
-      sym__identifier,
-    STATE(134), 1,
-      sym_identifier,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-  [4414] = 4,
-    ACTIONS(393), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(395), 1,
-      sym__identifier,
-    STATE(143), 1,
-      sym_identifier,
+  [4603] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4428] = 4,
-    ACTIONS(366), 1,
-      anon_sym_COMMA,
-    ACTIONS(397), 1,
+    ACTIONS(397), 3,
+      sym_keyword_from,
       anon_sym_RPAREN,
-    STATE(165), 1,
-      aux_sym__column_list_without_order_repeat1,
+      anon_sym_SEMI,
+  [4613] = 4,
+    ACTIONS(145), 1,
+      sym_keyword_limit,
+    ACTIONS(301), 1,
+      anon_sym_SEMI,
+    STATE(301), 1,
+      sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4442] = 4,
+  [4627] = 4,
     ACTIONS(399), 1,
-      sym_keyword_set,
+      anon_sym_RPAREN,
     ACTIONS(401), 1,
       anon_sym_COMMA,
-    STATE(189), 1,
-      aux_sym__table_references_repeat1,
+    STATE(211), 1,
+      aux_sym_column_list_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4456] = 4,
-    ACTIONS(401), 1,
-      anon_sym_COMMA,
-    ACTIONS(403), 1,
-      sym_keyword_set,
-    STATE(181), 1,
-      aux_sym__table_references_repeat1,
+  [4641] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4470] = 2,
+    ACTIONS(403), 3,
+      sym_keyword_from,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+  [4651] = 4,
+    ACTIONS(103), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(153), 1,
+      sym__identifier,
+    STATE(268), 1,
+      sym_identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(405), 3,
-      sym_keyword_order_by,
-      sym_keyword_limit,
-      anon_sym_SEMI,
-  [4480] = 4,
+  [4665] = 4,
+    ACTIONS(405), 1,
+      sym_keyword_set,
     ACTIONS(407), 1,
-      anon_sym_RPAREN,
-    ACTIONS(409), 1,
       anon_sym_COMMA,
-    STATE(184), 1,
-      aux_sym_column_list_repeat1,
+    STATE(190), 1,
+      aux_sym__table_references_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4494] = 4,
-    ACTIONS(93), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(157), 1,
-      sym__identifier,
-    STATE(152), 1,
-      sym_identifier,
+  [4679] = 4,
+    ACTIONS(382), 1,
+      sym_keyword_from,
+    ACTIONS(409), 1,
+      anon_sym_RPAREN,
+    STATE(320), 1,
+      sym_from,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4508] = 4,
-    ACTIONS(412), 1,
-      sym_keyword_where,
-    ACTIONS(414), 1,
-      anon_sym_SEMI,
-    STATE(243), 1,
-      sym_where,
+  [4693] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4522] = 4,
-    ACTIONS(137), 1,
+    ACTIONS(411), 3,
       sym_keyword_limit,
-    ACTIONS(252), 1,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
-    STATE(262), 1,
-      sym_limit,
+  [4703] = 4,
+    ACTIONS(407), 1,
+      anon_sym_COMMA,
+    ACTIONS(413), 1,
+      sym_keyword_set,
+    STATE(213), 1,
+      aux_sym__table_references_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4536] = 4,
-    ACTIONS(374), 1,
+  [4717] = 4,
+    ACTIONS(393), 1,
       anon_sym_COMMA,
-    ACTIONS(416), 1,
+    ACTIONS(415), 1,
       anon_sym_RPAREN,
-    STATE(167), 1,
+    STATE(206), 1,
       aux_sym_list_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4550] = 4,
-    ACTIONS(418), 1,
-      sym_keyword_set,
-    ACTIONS(420), 1,
-      anon_sym_COMMA,
-    STATE(189), 1,
-      aux_sym__table_references_repeat1,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-  [4564] = 4,
-    ACTIONS(137), 1,
+  [4731] = 4,
+    ACTIONS(145), 1,
       sym_keyword_limit,
-    ACTIONS(289), 1,
+    ACTIONS(311), 1,
       anon_sym_SEMI,
-    STATE(263), 1,
+    STATE(308), 1,
       sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4578] = 4,
-    ACTIONS(423), 1,
-      anon_sym_RPAREN,
-    ACTIONS(425), 1,
-      anon_sym_COMMA,
-    STATE(172), 1,
-      aux_sym_constraints_repeat1,
+  [4745] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4592] = 4,
-    ACTIONS(93), 1,
+    ACTIONS(417), 3,
+      sym_keyword_limit,
+      anon_sym_RPAREN,
+      anon_sym_SEMI,
+  [4755] = 4,
+    ACTIONS(103), 1,
       anon_sym_BQUOTE,
-    ACTIONS(157), 1,
+    ACTIONS(153), 1,
       sym__identifier,
-    STATE(245), 1,
+    STATE(164), 1,
       sym_identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4606] = 4,
-    ACTIONS(93), 1,
+  [4769] = 4,
+    ACTIONS(163), 1,
       anon_sym_BQUOTE,
-    ACTIONS(157), 1,
+    ACTIONS(165), 1,
       sym__identifier,
-    STATE(204), 1,
+    STATE(16), 1,
       sym_identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4620] = 4,
-    ACTIONS(93), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(157), 1,
-      sym__identifier,
-    STATE(231), 1,
-      sym_identifier,
+  [4783] = 4,
+    ACTIONS(419), 1,
+      anon_sym_RPAREN,
+    ACTIONS(421), 1,
+      anon_sym_COMMA,
+    STATE(196), 1,
+      aux_sym_column_list_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4634] = 4,
-    ACTIONS(137), 1,
-      sym_keyword_limit,
-    ACTIONS(427), 1,
-      anon_sym_SEMI,
-    STATE(246), 1,
-      sym_limit,
+  [4797] = 4,
+    ACTIONS(382), 1,
+      sym_keyword_from,
+    ACTIONS(424), 1,
+      anon_sym_RPAREN,
+    STATE(302), 1,
+      sym_from,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4648] = 4,
-    ACTIONS(374), 1,
-      anon_sym_COMMA,
-    ACTIONS(429), 1,
-      anon_sym_RPAREN,
-    STATE(199), 1,
-      aux_sym_list_repeat1,
+  [4811] = 4,
+    ACTIONS(103), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(153), 1,
+      sym__identifier,
+    STATE(216), 1,
+      sym_identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4662] = 4,
-    ACTIONS(425), 1,
-      anon_sym_COMMA,
-    ACTIONS(431), 1,
+  [4825] = 4,
+    ACTIONS(426), 1,
       anon_sym_RPAREN,
-    STATE(191), 1,
+    ACTIONS(428), 1,
+      anon_sym_COMMA,
+    STATE(179), 1,
       aux_sym_constraints_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4676] = 4,
-    ACTIONS(433), 1,
-      anon_sym_RPAREN,
-    ACTIONS(435), 1,
+  [4839] = 4,
+    ACTIONS(103), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(153), 1,
+      sym__identifier,
+    STATE(13), 1,
+      sym_identifier,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+  [4853] = 4,
+    ACTIONS(428), 1,
       anon_sym_COMMA,
-    STATE(198), 1,
-      aux_sym_list_repeat1,
+    ACTIONS(430), 1,
+      anon_sym_RPAREN,
+    STATE(199), 1,
+      aux_sym_constraints_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4690] = 4,
-    ACTIONS(374), 1,
+  [4867] = 4,
+    ACTIONS(393), 1,
       anon_sym_COMMA,
-    ACTIONS(438), 1,
+    ACTIONS(432), 1,
       anon_sym_RPAREN,
-    STATE(198), 1,
+    STATE(191), 1,
       aux_sym_list_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4704] = 4,
-    ACTIONS(137), 1,
+  [4881] = 4,
+    ACTIONS(145), 1,
       sym_keyword_limit,
-    ACTIONS(295), 1,
+    ACTIONS(434), 1,
       anon_sym_SEMI,
-    STATE(254), 1,
+    STATE(280), 1,
       sym_limit,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4718] = 4,
-    ACTIONS(137), 1,
-      sym_keyword_limit,
-    ACTIONS(167), 1,
-      anon_sym_SEMI,
-    STATE(250), 1,
-      sym_limit,
+  [4895] = 4,
+    ACTIONS(103), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(153), 1,
+      sym__identifier,
+    STATE(278), 1,
+      sym_identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4732] = 4,
-    ACTIONS(440), 1,
+  [4909] = 4,
+    ACTIONS(393), 1,
+      anon_sym_COMMA,
+    ACTIONS(436), 1,
+      anon_sym_RPAREN,
+    STATE(180), 1,
+      aux_sym_list_repeat1,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+  [4923] = 4,
+    ACTIONS(438), 1,
       anon_sym_RPAREN,
-    ACTIONS(442), 1,
+    ACTIONS(440), 1,
       anon_sym_COMMA,
-    STATE(202), 1,
-      aux_sym__column_list_without_order_repeat1,
+    STATE(206), 1,
+      aux_sym_list_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4746] = 4,
-    ACTIONS(445), 1,
+  [4937] = 4,
+    ACTIONS(443), 1,
       anon_sym_RPAREN,
-    ACTIONS(447), 1,
+    ACTIONS(445), 1,
       anon_sym_COMMA,
-    STATE(203), 1,
+    STATE(207), 1,
       aux_sym_column_definitions_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4760] = 3,
+  [4951] = 4,
+    ACTIONS(448), 1,
+      sym_keyword_values,
     ACTIONS(450), 1,
       anon_sym_LPAREN,
-    STATE(227), 1,
-      sym_column_list,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-  [4771] = 2,
+    STATE(254), 1,
+      sym__column_list_without_order,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(287), 2,
+  [4965] = 4,
+    ACTIONS(452), 1,
       anon_sym_RPAREN,
+    ACTIONS(454), 1,
       anon_sym_COMMA,
-  [4780] = 2,
+    STATE(209), 1,
+      aux_sym__column_list_without_order_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(445), 2,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [4789] = 2,
+  [4979] = 4,
+    ACTIONS(163), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(165), 1,
+      sym__identifier,
+    STATE(115), 1,
+      sym_identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(452), 2,
-      anon_sym_RPAREN,
+  [4993] = 4,
+    ACTIONS(401), 1,
       anon_sym_COMMA,
-  [4798] = 2,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-    ACTIONS(454), 2,
+    ACTIONS(457), 1,
       anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [4807] = 2,
+    STATE(196), 1,
+      aux_sym_column_list_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(452), 2,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [4816] = 2,
+  [5007] = 4,
+    ACTIONS(459), 1,
+      anon_sym_BQUOTE,
+    ACTIONS(461), 1,
+      sym__identifier,
+    STATE(159), 1,
+      sym_identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(418), 2,
+  [5021] = 4,
+    ACTIONS(463), 1,
       sym_keyword_set,
+    ACTIONS(465), 1,
       anon_sym_COMMA,
-  [4825] = 3,
-    ACTIONS(155), 1,
-      anon_sym_LPAREN,
-    STATE(269), 1,
-      sym_list,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-  [4836] = 3,
-    ACTIONS(456), 1,
-      sym_keyword_from,
-    STATE(277), 1,
-      sym__delete_from,
+    STATE(213), 1,
+      aux_sym__table_references_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4847] = 2,
+  [5035] = 4,
+    ACTIONS(380), 1,
+      anon_sym_COMMA,
+    ACTIONS(468), 1,
+      anon_sym_RPAREN,
+    STATE(177), 1,
+      aux_sym__column_list_without_order_repeat1,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(458), 2,
-      sym_keyword_from,
-      anon_sym_SEMI,
-  [4856] = 2,
+  [5049] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(460), 2,
-      sym_keyword_from,
+    ACTIONS(167), 2,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
-  [4865] = 2,
+  [5058] = 3,
+    ACTIONS(185), 1,
+      sym_keyword_primary,
+    STATE(235), 1,
+      sym__primary_key,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(462), 2,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [4874] = 2,
+  [5069] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(464), 2,
+    ACTIONS(470), 2,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [4883] = 3,
-    ACTIONS(155), 1,
-      anon_sym_LPAREN,
-    STATE(281), 1,
-      sym_list,
+  [5078] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4894] = 2,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-    ACTIONS(222), 2,
+    ACTIONS(472), 2,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [4903] = 2,
+  [5087] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(466), 2,
+    ACTIONS(474), 2,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [4912] = 2,
+  [5096] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(407), 2,
+    ACTIONS(438), 2,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [4921] = 2,
+  [5105] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(433), 2,
+    ACTIONS(419), 2,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [4930] = 2,
+  [5114] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(468), 2,
+    ACTIONS(476), 2,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [4939] = 3,
-    ACTIONS(470), 1,
+  [5123] = 3,
+    ACTIONS(478), 1,
       anon_sym_LPAREN,
-    STATE(85), 1,
+    STATE(91), 1,
       sym_column_definitions,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [4950] = 2,
+  [5134] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(472), 2,
+    ACTIONS(480), 2,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [4959] = 2,
+  [5143] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(474), 2,
+    ACTIONS(482), 2,
       anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [4968] = 2,
+      anon_sym_SEMI,
+  [5152] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(476), 2,
+    ACTIONS(484), 2,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [4977] = 2,
+  [5161] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(478), 2,
+    ACTIONS(294), 2,
       anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [4986] = 3,
-    ACTIONS(450), 1,
-      anon_sym_LPAREN,
-    STATE(226), 1,
-      sym_column_list,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-  [4997] = 2,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-    ACTIONS(480), 2,
-      anon_sym_BQUOTE,
-      sym__identifier,
-  [5006] = 2,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-    ACTIONS(482), 2,
-      sym_keyword_limit,
       anon_sym_SEMI,
-  [5015] = 3,
-    ACTIONS(171), 1,
-      sym_keyword_primary,
-    STATE(228), 1,
-      sym__primary_key,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-  [5026] = 2,
+  [5170] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(244), 2,
+    ACTIONS(480), 2,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [5035] = 2,
+  [5179] = 3,
+    ACTIONS(486), 1,
+      sym_keyword_for,
+    ACTIONS(488), 1,
+      anon_sym_LPAREN,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(484), 2,
-      anon_sym_RPAREN,
-      anon_sym_COMMA,
-  [5044] = 2,
+  [5190] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(486), 2,
-      sym_keyword_limit,
+    ACTIONS(169), 2,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
-  [5053] = 3,
-    ACTIONS(450), 1,
+  [5199] = 3,
+    ACTIONS(490), 1,
       anon_sym_LPAREN,
-    STATE(233), 1,
+    STATE(244), 1,
       sym_column_list,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5064] = 3,
-    ACTIONS(470), 1,
-      anon_sym_LPAREN,
-    STATE(81), 1,
-      sym_column_definitions,
+  [5210] = 2,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+    ACTIONS(492), 2,
+      anon_sym_RPAREN,
+      anon_sym_COMMA,
+  [5219] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5075] = 2,
+    ACTIONS(386), 2,
+      anon_sym_RPAREN,
+      anon_sym_COMMA,
+  [5228] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-    ACTIONS(380), 2,
+    ACTIONS(255), 2,
       anon_sym_RPAREN,
       anon_sym_COMMA,
-  [5084] = 3,
-    ACTIONS(488), 1,
-      sym_keyword_for,
+  [5237] = 3,
     ACTIONS(490), 1,
       anon_sym_LPAREN,
+    STATE(253), 1,
+      sym_column_list,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5095] = 2,
-    ACTIONS(492), 1,
-      sym_keyword_key,
+  [5248] = 3,
+    ACTIONS(490), 1,
+      anon_sym_LPAREN,
+    STATE(232), 1,
+      sym_column_list,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5103] = 2,
-    ACTIONS(494), 1,
-      sym_keyword_set,
+  [5259] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5111] = 2,
-    ACTIONS(496), 1,
+    ACTIONS(259), 2,
       anon_sym_RPAREN,
+      anon_sym_SEMI,
+  [5268] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5119] = 2,
-    ACTIONS(498), 1,
-      ts_builtin_sym_end,
+    ACTIONS(494), 2,
+      anon_sym_RPAREN,
+      anon_sym_COMMA,
+  [5277] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5127] = 2,
-    ACTIONS(500), 1,
+    ACTIONS(496), 2,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
+  [5286] = 3,
+    ACTIONS(498), 1,
+      anon_sym_LPAREN,
+    STATE(304), 1,
+      sym_list,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5135] = 2,
-    ACTIONS(502), 1,
-      ts_builtin_sym_end,
+  [5297] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5143] = 2,
-    ACTIONS(504), 1,
+    ACTIONS(274), 2,
       anon_sym_RPAREN,
+      anon_sym_COMMA,
+  [5306] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5151] = 2,
-    ACTIONS(506), 1,
+    ACTIONS(327), 2,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
+  [5315] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5159] = 2,
-    ACTIONS(508), 1,
+    ACTIONS(500), 2,
       anon_sym_RPAREN,
+      anon_sym_COMMA,
+  [5324] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5167] = 2,
-    ACTIONS(510), 1,
+    ACTIONS(502), 2,
       anon_sym_RPAREN,
+      anon_sym_COMMA,
+  [5333] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5175] = 2,
-    ACTIONS(512), 1,
+    ACTIONS(443), 2,
       anon_sym_RPAREN,
+      anon_sym_COMMA,
+  [5342] = 3,
+    ACTIONS(478), 1,
+      anon_sym_LPAREN,
+    STATE(93), 1,
+      sym_column_definitions,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5183] = 2,
-    ACTIONS(252), 1,
-      anon_sym_SEMI,
+  [5353] = 3,
+    ACTIONS(498), 1,
+      anon_sym_LPAREN,
+    STATE(319), 1,
+      sym_list,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5191] = 2,
-    ACTIONS(514), 1,
-      anon_sym_SEMI,
+  [5364] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5199] = 2,
-    ACTIONS(516), 1,
-      anon_sym_SEMI,
+    ACTIONS(463), 2,
+      sym_keyword_set,
+      anon_sym_COMMA,
+  [5373] = 3,
+    ACTIONS(504), 1,
+      sym_keyword_from,
+    STATE(275), 1,
+      sym__delete_from,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5207] = 2,
-    ACTIONS(518), 1,
-      sym_keyword_on,
+  [5384] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5215] = 2,
-    ACTIONS(387), 1,
-      anon_sym_SEMI,
+    ACTIONS(303), 2,
+      anon_sym_RPAREN,
+      anon_sym_COMMA,
+  [5393] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5223] = 2,
-    ACTIONS(165), 1,
-      anon_sym_SEMI,
+    ACTIONS(506), 2,
+      anon_sym_BQUOTE,
+      sym__identifier,
+  [5402] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5231] = 2,
-    ACTIONS(285), 1,
+    ACTIONS(508), 2,
+      anon_sym_RPAREN,
       anon_sym_SEMI,
+  [5411] = 2,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5239] = 2,
-    ACTIONS(520), 1,
-      anon_sym_LPAREN,
+    ACTIONS(510), 2,
+      anon_sym_RPAREN,
+      anon_sym_COMMA,
+  [5420] = 2,
+    ACTIONS(512), 1,
+      sym_keyword_values,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5247] = 2,
-    ACTIONS(522), 1,
+  [5428] = 2,
+    ACTIONS(514), 1,
       anon_sym_RPAREN,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5255] = 2,
-    ACTIONS(524), 1,
+  [5436] = 2,
+    ACTIONS(516), 1,
+      sym_keyword_values,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+  [5444] = 2,
+    ACTIONS(518), 1,
       sym_keyword_not,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5263] = 2,
-    ACTIONS(526), 1,
+  [5452] = 2,
+    ACTIONS(520), 1,
       anon_sym_SEMI,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5271] = 2,
-    ACTIONS(528), 1,
-      anon_sym_RPAREN,
+  [5460] = 2,
+    ACTIONS(522), 1,
+      anon_sym_BQUOTE,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5279] = 2,
-    ACTIONS(295), 1,
-      anon_sym_SEMI,
+  [5468] = 2,
+    ACTIONS(524), 1,
+      ts_builtin_sym_end,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5287] = 2,
-    ACTIONS(358), 1,
-      anon_sym_SEMI,
+  [5476] = 2,
+    ACTIONS(526), 1,
+      ts_builtin_sym_end,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5295] = 2,
-    ACTIONS(226), 1,
-      anon_sym_SEMI,
+  [5484] = 2,
+    ACTIONS(528), 1,
+      ts_builtin_sym_end,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5303] = 2,
+  [5492] = 2,
     ACTIONS(530), 1,
-      anon_sym_SEMI,
+      anon_sym_DQUOTE,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+  [5500] = 2,
+    ACTIONS(530), 1,
+      anon_sym_SQUOTE,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5311] = 2,
+  [5508] = 2,
     ACTIONS(532), 1,
-      sym_keyword_exists,
+      anon_sym_SEMI,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5319] = 2,
+  [5516] = 2,
     ACTIONS(534), 1,
-      anon_sym_SEMI,
+      anon_sym_RPAREN,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5327] = 2,
+  [5524] = 2,
     ACTIONS(536), 1,
-      sym_keyword_values,
+      anon_sym_RPAREN,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5335] = 2,
+  [5532] = 2,
     ACTIONS(538), 1,
-      anon_sym_SEMI,
+      anon_sym_RPAREN,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5343] = 2,
+  [5540] = 2,
     ACTIONS(540), 1,
-      anon_sym_BQUOTE,
-    ACTIONS(3), 2,
-      sym_comment,
-      sym_marginalia,
-  [5351] = 2,
-    ACTIONS(542), 1,
-      anon_sym_DQUOTE,
+      sym_keyword_null,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5359] = 2,
+  [5548] = 2,
     ACTIONS(542), 1,
-      anon_sym_SQUOTE,
+      sym_keyword_null,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5367] = 2,
+  [5556] = 2,
     ACTIONS(544), 1,
-      sym_keyword_values,
+      sym__number,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5375] = 2,
+  [5564] = 2,
     ACTIONS(546), 1,
-      ts_builtin_sym_end,
+      sym__number,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5383] = 2,
+  [5572] = 2,
     ACTIONS(548), 1,
-      ts_builtin_sym_end,
+      sym__number,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5391] = 2,
+  [5580] = 2,
     ACTIONS(550), 1,
-      ts_builtin_sym_end,
+      anon_sym_RPAREN,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5399] = 2,
+  [5588] = 2,
     ACTIONS(552), 1,
       anon_sym_SEMI,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5407] = 2,
+  [5596] = 2,
     ACTIONS(554), 1,
-      anon_sym_EQ,
+      sym_keyword_key,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5415] = 2,
+  [5604] = 2,
     ACTIONS(556), 1,
       anon_sym_SEMI,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5423] = 2,
+  [5612] = 2,
     ACTIONS(558), 1,
-      ts_builtin_sym_end,
+      anon_sym_RPAREN,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5431] = 2,
+  [5620] = 2,
     ACTIONS(560), 1,
-      anon_sym_SEMI,
+      ts_builtin_sym_end,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5439] = 2,
+  [5628] = 2,
     ACTIONS(562), 1,
-      sym_keyword_join,
+      anon_sym_SEMI,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5447] = 2,
+  [5636] = 2,
     ACTIONS(564), 1,
-      anon_sym_SEMI,
+      ts_builtin_sym_end,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5455] = 2,
+  [5644] = 2,
     ACTIONS(566), 1,
-      anon_sym_SEMI,
+      sym_keyword_set,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5463] = 2,
+  [5652] = 2,
     ACTIONS(568), 1,
-      sym_keyword_values,
+      anon_sym_SEMI,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5471] = 2,
+  [5660] = 2,
     ACTIONS(570), 1,
-      sym_keyword_from,
+      anon_sym_SEMI,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5479] = 2,
+  [5668] = 2,
     ACTIONS(572), 1,
-      sym_keyword_index,
+      sym_keyword_on,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5487] = 2,
+  [5676] = 2,
     ACTIONS(574), 1,
-      anon_sym_LPAREN,
+      ts_builtin_sym_end,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5495] = 2,
+  [5684] = 2,
     ACTIONS(576), 1,
-      anon_sym_LPAREN,
+      anon_sym_RPAREN,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5503] = 2,
+  [5692] = 2,
     ACTIONS(578), 1,
-      sym_keyword_null,
+      sym_keyword_from,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5511] = 2,
+  [5700] = 2,
     ACTIONS(580), 1,
-      sym_keyword_null,
+      sym_keyword_index,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5519] = 2,
+  [5708] = 2,
     ACTIONS(582), 1,
-      sym__identifier,
+      anon_sym_LPAREN,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+  [5716] = 2,
+    ACTIONS(584), 1,
+      anon_sym_LPAREN,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5527] = 2,
+  [5724] = 2,
     ACTIONS(586), 1,
-      aux_sym__literal_string_token1,
-    ACTIONS(584), 2,
+      sym_keyword_join,
+    ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5535] = 2,
+  [5732] = 2,
     ACTIONS(588), 1,
-      aux_sym__literal_string_token1,
-    ACTIONS(584), 2,
+      sym_keyword_exists,
+    ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5543] = 2,
+  [5740] = 2,
     ACTIONS(590), 1,
+      sym__identifier,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+  [5748] = 2,
+    ACTIONS(594), 1,
+      aux_sym__literal_string_token1,
+    ACTIONS(592), 2,
+      sym_comment,
+      sym_marginalia,
+  [5756] = 2,
+    ACTIONS(596), 1,
+      aux_sym__literal_string_token1,
+    ACTIONS(592), 2,
+      sym_comment,
+      sym_marginalia,
+  [5764] = 2,
+    ACTIONS(598), 1,
       anon_sym_LPAREN,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5551] = 2,
-    ACTIONS(592), 1,
+  [5772] = 2,
+    ACTIONS(600), 1,
       anon_sym_SEMI,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5559] = 2,
-    ACTIONS(594), 1,
+  [5780] = 2,
+    ACTIONS(602), 1,
       anon_sym_SEMI,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5567] = 2,
-    ACTIONS(596), 1,
+  [5788] = 2,
+    ACTIONS(604), 1,
       anon_sym_SEMI,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5575] = 2,
-    ACTIONS(598), 1,
-      sym__number,
+  [5796] = 2,
+    ACTIONS(395), 1,
+      anon_sym_SEMI,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5583] = 2,
-    ACTIONS(600), 1,
-      sym__number,
+  [5804] = 2,
+    ACTIONS(606), 1,
+      anon_sym_RPAREN,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+  [5812] = 2,
+    ACTIONS(608), 1,
+      anon_sym_LPAREN,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5591] = 2,
-    ACTIONS(338), 1,
+  [5820] = 2,
+    ACTIONS(610), 1,
+      anon_sym_SEMI,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+  [5828] = 2,
+    ACTIONS(612), 1,
+      sym_keyword_values,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+  [5836] = 2,
+    ACTIONS(351), 1,
       anon_sym_RPAREN,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5599] = 2,
-    ACTIONS(602), 1,
+  [5844] = 2,
+    ACTIONS(614), 1,
       anon_sym_SEMI,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5607] = 2,
-    ACTIONS(604), 1,
+  [5852] = 2,
+    ACTIONS(434), 1,
+      anon_sym_SEMI,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+  [5860] = 2,
+    ACTIONS(616), 1,
+      anon_sym_SEMI,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+  [5868] = 2,
+    ACTIONS(618), 1,
       ts_builtin_sym_end,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5615] = 2,
-    ACTIONS(606), 1,
+  [5876] = 2,
+    ACTIONS(620), 1,
       ts_builtin_sym_end,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5623] = 2,
-    ACTIONS(608), 1,
+  [5884] = 2,
+    ACTIONS(622), 1,
       anon_sym_SQUOTE,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5631] = 2,
-    ACTIONS(608), 1,
+  [5892] = 2,
+    ACTIONS(622), 1,
       anon_sym_DQUOTE,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5639] = 2,
-    ACTIONS(610), 1,
+  [5900] = 2,
+    ACTIONS(624), 1,
       anon_sym_BQUOTE,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5647] = 2,
-    ACTIONS(612), 1,
+  [5908] = 2,
+    ACTIONS(626), 1,
       ts_builtin_sym_end,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5655] = 2,
-    ACTIONS(427), 1,
+  [5916] = 2,
+    ACTIONS(311), 1,
       anon_sym_SEMI,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5663] = 2,
-    ACTIONS(614), 1,
+  [5924] = 2,
+    ACTIONS(301), 1,
+      anon_sym_SEMI,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+  [5932] = 2,
+    ACTIONS(628), 1,
       sym_keyword_into,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5671] = 2,
-    ACTIONS(289), 1,
+  [5940] = 2,
+    ACTIONS(630), 1,
       anon_sym_SEMI,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5679] = 2,
-    ACTIONS(616), 1,
-      sym__number,
+  [5948] = 2,
+    ACTIONS(632), 1,
+      anon_sym_RPAREN,
+    ACTIONS(3), 2,
+      sym_comment,
+      sym_marginalia,
+  [5956] = 2,
+    ACTIONS(634), 1,
+      anon_sym_EQ,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5687] = 2,
-    ACTIONS(167), 1,
+  [5964] = 2,
+    ACTIONS(249), 1,
       anon_sym_SEMI,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5695] = 2,
-    ACTIONS(618), 1,
+  [5972] = 2,
+    ACTIONS(636), 1,
       anon_sym_BQUOTE,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5703] = 2,
-    ACTIONS(620), 1,
+  [5980] = 2,
+    ACTIONS(638), 1,
       anon_sym_BQUOTE,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5711] = 2,
-    ACTIONS(622), 1,
+  [5988] = 2,
+    ACTIONS(640), 1,
       anon_sym_BQUOTE,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5719] = 2,
-    ACTIONS(624), 1,
+  [5996] = 2,
+    ACTIONS(642), 1,
       anon_sym_BQUOTE,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5727] = 2,
-    ACTIONS(626), 1,
+  [6004] = 2,
+    ACTIONS(644), 1,
       aux_sym__literal_string_token1,
-    ACTIONS(584), 2,
+    ACTIONS(592), 2,
       sym_comment,
       sym_marginalia,
-  [5735] = 2,
-    ACTIONS(628), 1,
+  [6012] = 2,
+    ACTIONS(646), 1,
       aux_sym__literal_string_token1,
-    ACTIONS(584), 2,
+    ACTIONS(592), 2,
       sym_comment,
       sym_marginalia,
-  [5743] = 2,
-    ACTIONS(630), 1,
+  [6020] = 2,
+    ACTIONS(648), 1,
       sym__identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5751] = 2,
-    ACTIONS(632), 1,
+  [6028] = 2,
+    ACTIONS(650), 1,
       sym_keyword_table,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5759] = 2,
-    ACTIONS(634), 1,
+  [6036] = 2,
+    ACTIONS(652), 1,
       sym__identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5767] = 2,
-    ACTIONS(636), 1,
+  [6044] = 2,
+    ACTIONS(654), 1,
       sym__identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5775] = 2,
-    ACTIONS(638), 1,
+  [6052] = 2,
+    ACTIONS(656), 1,
       sym__identifier,
     ACTIONS(3), 2,
       sym_comment,
       sym_marginalia,
-  [5783] = 2,
-    ACTIONS(640), 1,
+  [6060] = 2,
+    ACTIONS(658), 1,
       sym__identifier,
     ACTIONS(3), 2,
       sym_comment,
@@ -9420,645 +9685,663 @@ static uint32_t ts_small_parse_table_map[] = {
   [SMALL_STATE(2)] = 0,
   [SMALL_STATE(3)] = 45,
   [SMALL_STATE(4)] = 90,
-  [SMALL_STATE(5)] = 125,
-  [SMALL_STATE(6)] = 160,
-  [SMALL_STATE(7)] = 193,
-  [SMALL_STATE(8)] = 228,
-  [SMALL_STATE(9)] = 261,
-  [SMALL_STATE(10)] = 295,
-  [SMALL_STATE(11)] = 327,
-  [SMALL_STATE(12)] = 360,
-  [SMALL_STATE(13)] = 407,
-  [SMALL_STATE(14)] = 450,
-  [SMALL_STATE(15)] = 487,
-  [SMALL_STATE(16)] = 518,
-  [SMALL_STATE(17)] = 549,
-  [SMALL_STATE(18)] = 580,
-  [SMALL_STATE(19)] = 621,
-  [SMALL_STATE(20)] = 652,
-  [SMALL_STATE(21)] = 683,
-  [SMALL_STATE(22)] = 714,
-  [SMALL_STATE(23)] = 750,
-  [SMALL_STATE(24)] = 782,
-  [SMALL_STATE(25)] = 814,
-  [SMALL_STATE(26)] = 867,
-  [SMALL_STATE(27)] = 920,
-  [SMALL_STATE(28)] = 951,
-  [SMALL_STATE(29)] = 997,
-  [SMALL_STATE(30)] = 1031,
-  [SMALL_STATE(31)] = 1072,
-  [SMALL_STATE(32)] = 1099,
-  [SMALL_STATE(33)] = 1126,
-  [SMALL_STATE(34)] = 1155,
-  [SMALL_STATE(35)] = 1184,
-  [SMALL_STATE(36)] = 1211,
-  [SMALL_STATE(37)] = 1248,
-  [SMALL_STATE(38)] = 1287,
-  [SMALL_STATE(39)] = 1316,
-  [SMALL_STATE(40)] = 1349,
-  [SMALL_STATE(41)] = 1390,
-  [SMALL_STATE(42)] = 1428,
-  [SMALL_STATE(43)] = 1466,
-  [SMALL_STATE(44)] = 1512,
-  [SMALL_STATE(45)] = 1551,
-  [SMALL_STATE(46)] = 1590,
-  [SMALL_STATE(47)] = 1631,
-  [SMALL_STATE(48)] = 1672,
-  [SMALL_STATE(49)] = 1708,
-  [SMALL_STATE(50)] = 1744,
-  [SMALL_STATE(51)] = 1782,
-  [SMALL_STATE(52)] = 1818,
-  [SMALL_STATE(53)] = 1854,
-  [SMALL_STATE(54)] = 1890,
-  [SMALL_STATE(55)] = 1926,
-  [SMALL_STATE(56)] = 1964,
-  [SMALL_STATE(57)] = 2000,
-  [SMALL_STATE(58)] = 2038,
+  [SMALL_STATE(5)] = 126,
+  [SMALL_STATE(6)] = 162,
+  [SMALL_STATE(7)] = 197,
+  [SMALL_STATE(8)] = 230,
+  [SMALL_STATE(9)] = 265,
+  [SMALL_STATE(10)] = 298,
+  [SMALL_STATE(11)] = 340,
+  [SMALL_STATE(12)] = 372,
+  [SMALL_STATE(13)] = 410,
+  [SMALL_STATE(14)] = 442,
+  [SMALL_STATE(15)] = 474,
+  [SMALL_STATE(16)] = 506,
+  [SMALL_STATE(17)] = 538,
+  [SMALL_STATE(18)] = 572,
+  [SMALL_STATE(19)] = 604,
+  [SMALL_STATE(20)] = 636,
+  [SMALL_STATE(21)] = 680,
+  [SMALL_STATE(22)] = 728,
+  [SMALL_STATE(23)] = 760,
+  [SMALL_STATE(24)] = 792,
+  [SMALL_STATE(25)] = 825,
+  [SMALL_STATE(26)] = 858,
+  [SMALL_STATE(27)] = 894,
+  [SMALL_STATE(28)] = 925,
+  [SMALL_STATE(29)] = 978,
+  [SMALL_STATE(30)] = 1025,
+  [SMALL_STATE(31)] = 1078,
+  [SMALL_STATE(32)] = 1108,
+  [SMALL_STATE(33)] = 1142,
+  [SMALL_STATE(34)] = 1169,
+  [SMALL_STATE(35)] = 1196,
+  [SMALL_STATE(36)] = 1223,
+  [SMALL_STATE(37)] = 1252,
+  [SMALL_STATE(38)] = 1289,
+  [SMALL_STATE(39)] = 1330,
+  [SMALL_STATE(40)] = 1357,
+  [SMALL_STATE(41)] = 1384,
+  [SMALL_STATE(42)] = 1423,
+  [SMALL_STATE(43)] = 1452,
+  [SMALL_STATE(44)] = 1485,
+  [SMALL_STATE(45)] = 1526,
+  [SMALL_STATE(46)] = 1573,
+  [SMALL_STATE(47)] = 1611,
+  [SMALL_STATE(48)] = 1653,
+  [SMALL_STATE(49)] = 1693,
+  [SMALL_STATE(50)] = 1733,
+  [SMALL_STATE(51)] = 1771,
+  [SMALL_STATE(52)] = 1813,
+  [SMALL_STATE(53)] = 1852,
+  [SMALL_STATE(54)] = 1891,
+  [SMALL_STATE(55)] = 1928,
+  [SMALL_STATE(56)] = 1965,
+  [SMALL_STATE(57)] = 2002,
+  [SMALL_STATE(58)] = 2039,
   [SMALL_STATE(59)] = 2076,
-  [SMALL_STATE(60)] = 2114,
-  [SMALL_STATE(61)] = 2150,
-  [SMALL_STATE(62)] = 2186,
-  [SMALL_STATE(63)] = 2222,
-  [SMALL_STATE(64)] = 2258,
-  [SMALL_STATE(65)] = 2294,
-  [SMALL_STATE(66)] = 2335,
-  [SMALL_STATE(67)] = 2374,
-  [SMALL_STATE(68)] = 2405,
-  [SMALL_STATE(69)] = 2444,
-  [SMALL_STATE(70)] = 2483,
-  [SMALL_STATE(71)] = 2514,
-  [SMALL_STATE(72)] = 2549,
-  [SMALL_STATE(73)] = 2575,
-  [SMALL_STATE(74)] = 2594,
-  [SMALL_STATE(75)] = 2613,
-  [SMALL_STATE(76)] = 2631,
-  [SMALL_STATE(77)] = 2649,
-  [SMALL_STATE(78)] = 2675,
-  [SMALL_STATE(79)] = 2691,
-  [SMALL_STATE(80)] = 2709,
-  [SMALL_STATE(81)] = 2728,
-  [SMALL_STATE(82)] = 2755,
-  [SMALL_STATE(83)] = 2780,
-  [SMALL_STATE(84)] = 2807,
-  [SMALL_STATE(85)] = 2822,
-  [SMALL_STATE(86)] = 2849,
-  [SMALL_STATE(87)] = 2864,
-  [SMALL_STATE(88)] = 2879,
-  [SMALL_STATE(89)] = 2894,
-  [SMALL_STATE(90)] = 2923,
-  [SMALL_STATE(91)] = 2938,
-  [SMALL_STATE(92)] = 2964,
-  [SMALL_STATE(93)] = 2988,
-  [SMALL_STATE(94)] = 3014,
-  [SMALL_STATE(95)] = 3036,
-  [SMALL_STATE(96)] = 3062,
-  [SMALL_STATE(97)] = 3080,
-  [SMALL_STATE(98)] = 3106,
-  [SMALL_STATE(99)] = 3132,
-  [SMALL_STATE(100)] = 3146,
-  [SMALL_STATE(101)] = 3168,
-  [SMALL_STATE(102)] = 3186,
-  [SMALL_STATE(103)] = 3208,
-  [SMALL_STATE(104)] = 3232,
-  [SMALL_STATE(105)] = 3250,
-  [SMALL_STATE(106)] = 3263,
-  [SMALL_STATE(107)] = 3278,
-  [SMALL_STATE(108)] = 3295,
-  [SMALL_STATE(109)] = 3308,
-  [SMALL_STATE(110)] = 3321,
-  [SMALL_STATE(111)] = 3338,
-  [SMALL_STATE(112)] = 3353,
-  [SMALL_STATE(113)] = 3376,
-  [SMALL_STATE(114)] = 3395,
-  [SMALL_STATE(115)] = 3415,
-  [SMALL_STATE(116)] = 3429,
-  [SMALL_STATE(117)] = 3449,
-  [SMALL_STATE(118)] = 3465,
-  [SMALL_STATE(119)] = 3485,
-  [SMALL_STATE(120)] = 3505,
-  [SMALL_STATE(121)] = 3519,
-  [SMALL_STATE(122)] = 3539,
-  [SMALL_STATE(123)] = 3559,
-  [SMALL_STATE(124)] = 3575,
-  [SMALL_STATE(125)] = 3595,
-  [SMALL_STATE(126)] = 3615,
-  [SMALL_STATE(127)] = 3629,
-  [SMALL_STATE(128)] = 3649,
-  [SMALL_STATE(129)] = 3669,
-  [SMALL_STATE(130)] = 3681,
-  [SMALL_STATE(131)] = 3701,
-  [SMALL_STATE(132)] = 3717,
-  [SMALL_STATE(133)] = 3737,
-  [SMALL_STATE(134)] = 3753,
-  [SMALL_STATE(135)] = 3769,
-  [SMALL_STATE(136)] = 3785,
-  [SMALL_STATE(137)] = 3802,
-  [SMALL_STATE(138)] = 3819,
-  [SMALL_STATE(139)] = 3830,
-  [SMALL_STATE(140)] = 3843,
-  [SMALL_STATE(141)] = 3858,
-  [SMALL_STATE(142)] = 3873,
-  [SMALL_STATE(143)] = 3888,
-  [SMALL_STATE(144)] = 3901,
-  [SMALL_STATE(145)] = 3916,
-  [SMALL_STATE(146)] = 3933,
-  [SMALL_STATE(147)] = 3950,
-  [SMALL_STATE(148)] = 3963,
-  [SMALL_STATE(149)] = 3976,
-  [SMALL_STATE(150)] = 3993,
-  [SMALL_STATE(151)] = 4006,
-  [SMALL_STATE(152)] = 4019,
-  [SMALL_STATE(153)] = 4030,
-  [SMALL_STATE(154)] = 4047,
-  [SMALL_STATE(155)] = 4064,
-  [SMALL_STATE(156)] = 4075,
-  [SMALL_STATE(157)] = 4092,
-  [SMALL_STATE(158)] = 4109,
-  [SMALL_STATE(159)] = 4126,
-  [SMALL_STATE(160)] = 4143,
-  [SMALL_STATE(161)] = 4160,
-  [SMALL_STATE(162)] = 4173,
-  [SMALL_STATE(163)] = 4190,
-  [SMALL_STATE(164)] = 4204,
-  [SMALL_STATE(165)] = 4218,
-  [SMALL_STATE(166)] = 4232,
-  [SMALL_STATE(167)] = 4246,
-  [SMALL_STATE(168)] = 4260,
-  [SMALL_STATE(169)] = 4274,
-  [SMALL_STATE(170)] = 4288,
-  [SMALL_STATE(171)] = 4302,
-  [SMALL_STATE(172)] = 4316,
-  [SMALL_STATE(173)] = 4330,
-  [SMALL_STATE(174)] = 4344,
-  [SMALL_STATE(175)] = 4358,
-  [SMALL_STATE(176)] = 4372,
-  [SMALL_STATE(177)] = 4386,
-  [SMALL_STATE(178)] = 4400,
-  [SMALL_STATE(179)] = 4414,
-  [SMALL_STATE(180)] = 4428,
-  [SMALL_STATE(181)] = 4442,
-  [SMALL_STATE(182)] = 4456,
-  [SMALL_STATE(183)] = 4470,
-  [SMALL_STATE(184)] = 4480,
-  [SMALL_STATE(185)] = 4494,
-  [SMALL_STATE(186)] = 4508,
-  [SMALL_STATE(187)] = 4522,
-  [SMALL_STATE(188)] = 4536,
-  [SMALL_STATE(189)] = 4550,
-  [SMALL_STATE(190)] = 4564,
-  [SMALL_STATE(191)] = 4578,
-  [SMALL_STATE(192)] = 4592,
-  [SMALL_STATE(193)] = 4606,
-  [SMALL_STATE(194)] = 4620,
-  [SMALL_STATE(195)] = 4634,
-  [SMALL_STATE(196)] = 4648,
-  [SMALL_STATE(197)] = 4662,
-  [SMALL_STATE(198)] = 4676,
-  [SMALL_STATE(199)] = 4690,
-  [SMALL_STATE(200)] = 4704,
-  [SMALL_STATE(201)] = 4718,
-  [SMALL_STATE(202)] = 4732,
-  [SMALL_STATE(203)] = 4746,
-  [SMALL_STATE(204)] = 4760,
-  [SMALL_STATE(205)] = 4771,
-  [SMALL_STATE(206)] = 4780,
-  [SMALL_STATE(207)] = 4789,
-  [SMALL_STATE(208)] = 4798,
-  [SMALL_STATE(209)] = 4807,
-  [SMALL_STATE(210)] = 4816,
-  [SMALL_STATE(211)] = 4825,
-  [SMALL_STATE(212)] = 4836,
-  [SMALL_STATE(213)] = 4847,
-  [SMALL_STATE(214)] = 4856,
-  [SMALL_STATE(215)] = 4865,
-  [SMALL_STATE(216)] = 4874,
-  [SMALL_STATE(217)] = 4883,
-  [SMALL_STATE(218)] = 4894,
-  [SMALL_STATE(219)] = 4903,
-  [SMALL_STATE(220)] = 4912,
-  [SMALL_STATE(221)] = 4921,
-  [SMALL_STATE(222)] = 4930,
-  [SMALL_STATE(223)] = 4939,
-  [SMALL_STATE(224)] = 4950,
-  [SMALL_STATE(225)] = 4959,
-  [SMALL_STATE(226)] = 4968,
-  [SMALL_STATE(227)] = 4977,
-  [SMALL_STATE(228)] = 4986,
-  [SMALL_STATE(229)] = 4997,
-  [SMALL_STATE(230)] = 5006,
-  [SMALL_STATE(231)] = 5015,
-  [SMALL_STATE(232)] = 5026,
-  [SMALL_STATE(233)] = 5035,
-  [SMALL_STATE(234)] = 5044,
-  [SMALL_STATE(235)] = 5053,
-  [SMALL_STATE(236)] = 5064,
-  [SMALL_STATE(237)] = 5075,
-  [SMALL_STATE(238)] = 5084,
-  [SMALL_STATE(239)] = 5095,
-  [SMALL_STATE(240)] = 5103,
-  [SMALL_STATE(241)] = 5111,
-  [SMALL_STATE(242)] = 5119,
-  [SMALL_STATE(243)] = 5127,
-  [SMALL_STATE(244)] = 5135,
-  [SMALL_STATE(245)] = 5143,
-  [SMALL_STATE(246)] = 5151,
-  [SMALL_STATE(247)] = 5159,
-  [SMALL_STATE(248)] = 5167,
-  [SMALL_STATE(249)] = 5175,
-  [SMALL_STATE(250)] = 5183,
-  [SMALL_STATE(251)] = 5191,
-  [SMALL_STATE(252)] = 5199,
-  [SMALL_STATE(253)] = 5207,
-  [SMALL_STATE(254)] = 5215,
-  [SMALL_STATE(255)] = 5223,
-  [SMALL_STATE(256)] = 5231,
-  [SMALL_STATE(257)] = 5239,
-  [SMALL_STATE(258)] = 5247,
-  [SMALL_STATE(259)] = 5255,
-  [SMALL_STATE(260)] = 5263,
-  [SMALL_STATE(261)] = 5271,
-  [SMALL_STATE(262)] = 5279,
-  [SMALL_STATE(263)] = 5287,
-  [SMALL_STATE(264)] = 5295,
-  [SMALL_STATE(265)] = 5303,
-  [SMALL_STATE(266)] = 5311,
-  [SMALL_STATE(267)] = 5319,
-  [SMALL_STATE(268)] = 5327,
-  [SMALL_STATE(269)] = 5335,
-  [SMALL_STATE(270)] = 5343,
-  [SMALL_STATE(271)] = 5351,
-  [SMALL_STATE(272)] = 5359,
-  [SMALL_STATE(273)] = 5367,
-  [SMALL_STATE(274)] = 5375,
-  [SMALL_STATE(275)] = 5383,
-  [SMALL_STATE(276)] = 5391,
-  [SMALL_STATE(277)] = 5399,
-  [SMALL_STATE(278)] = 5407,
-  [SMALL_STATE(279)] = 5415,
-  [SMALL_STATE(280)] = 5423,
-  [SMALL_STATE(281)] = 5431,
-  [SMALL_STATE(282)] = 5439,
-  [SMALL_STATE(283)] = 5447,
-  [SMALL_STATE(284)] = 5455,
-  [SMALL_STATE(285)] = 5463,
-  [SMALL_STATE(286)] = 5471,
-  [SMALL_STATE(287)] = 5479,
-  [SMALL_STATE(288)] = 5487,
-  [SMALL_STATE(289)] = 5495,
-  [SMALL_STATE(290)] = 5503,
-  [SMALL_STATE(291)] = 5511,
-  [SMALL_STATE(292)] = 5519,
-  [SMALL_STATE(293)] = 5527,
-  [SMALL_STATE(294)] = 5535,
-  [SMALL_STATE(295)] = 5543,
-  [SMALL_STATE(296)] = 5551,
-  [SMALL_STATE(297)] = 5559,
-  [SMALL_STATE(298)] = 5567,
-  [SMALL_STATE(299)] = 5575,
-  [SMALL_STATE(300)] = 5583,
-  [SMALL_STATE(301)] = 5591,
-  [SMALL_STATE(302)] = 5599,
-  [SMALL_STATE(303)] = 5607,
-  [SMALL_STATE(304)] = 5615,
-  [SMALL_STATE(305)] = 5623,
-  [SMALL_STATE(306)] = 5631,
-  [SMALL_STATE(307)] = 5639,
-  [SMALL_STATE(308)] = 5647,
-  [SMALL_STATE(309)] = 5655,
-  [SMALL_STATE(310)] = 5663,
-  [SMALL_STATE(311)] = 5671,
-  [SMALL_STATE(312)] = 5679,
-  [SMALL_STATE(313)] = 5687,
-  [SMALL_STATE(314)] = 5695,
-  [SMALL_STATE(315)] = 5703,
-  [SMALL_STATE(316)] = 5711,
-  [SMALL_STATE(317)] = 5719,
-  [SMALL_STATE(318)] = 5727,
-  [SMALL_STATE(319)] = 5735,
-  [SMALL_STATE(320)] = 5743,
-  [SMALL_STATE(321)] = 5751,
-  [SMALL_STATE(322)] = 5759,
-  [SMALL_STATE(323)] = 5767,
-  [SMALL_STATE(324)] = 5775,
-  [SMALL_STATE(325)] = 5783,
+  [SMALL_STATE(60)] = 2113,
+  [SMALL_STATE(61)] = 2152,
+  [SMALL_STATE(62)] = 2189,
+  [SMALL_STATE(63)] = 2228,
+  [SMALL_STATE(64)] = 2267,
+  [SMALL_STATE(65)] = 2304,
+  [SMALL_STATE(66)] = 2341,
+  [SMALL_STATE(67)] = 2378,
+  [SMALL_STATE(68)] = 2415,
+  [SMALL_STATE(69)] = 2452,
+  [SMALL_STATE(70)] = 2492,
+  [SMALL_STATE(71)] = 2532,
+  [SMALL_STATE(72)] = 2572,
+  [SMALL_STATE(73)] = 2599,
+  [SMALL_STATE(74)] = 2640,
+  [SMALL_STATE(75)] = 2671,
+  [SMALL_STATE(76)] = 2702,
+  [SMALL_STATE(77)] = 2737,
+  [SMALL_STATE(78)] = 2757,
+  [SMALL_STATE(79)] = 2777,
+  [SMALL_STATE(80)] = 2794,
+  [SMALL_STATE(81)] = 2814,
+  [SMALL_STATE(82)] = 2832,
+  [SMALL_STATE(83)] = 2858,
+  [SMALL_STATE(84)] = 2874,
+  [SMALL_STATE(85)] = 2892,
+  [SMALL_STATE(86)] = 2910,
+  [SMALL_STATE(87)] = 2926,
+  [SMALL_STATE(88)] = 2941,
+  [SMALL_STATE(89)] = 2970,
+  [SMALL_STATE(90)] = 2989,
+  [SMALL_STATE(91)] = 3008,
+  [SMALL_STATE(92)] = 3035,
+  [SMALL_STATE(93)] = 3054,
+  [SMALL_STATE(94)] = 3081,
+  [SMALL_STATE(95)] = 3108,
+  [SMALL_STATE(96)] = 3123,
+  [SMALL_STATE(97)] = 3150,
+  [SMALL_STATE(98)] = 3175,
+  [SMALL_STATE(99)] = 3202,
+  [SMALL_STATE(100)] = 3217,
+  [SMALL_STATE(101)] = 3244,
+  [SMALL_STATE(102)] = 3266,
+  [SMALL_STATE(103)] = 3292,
+  [SMALL_STATE(104)] = 3316,
+  [SMALL_STATE(105)] = 3338,
+  [SMALL_STATE(106)] = 3352,
+  [SMALL_STATE(107)] = 3374,
+  [SMALL_STATE(108)] = 3400,
+  [SMALL_STATE(109)] = 3424,
+  [SMALL_STATE(110)] = 3438,
+  [SMALL_STATE(111)] = 3464,
+  [SMALL_STATE(112)] = 3490,
+  [SMALL_STATE(113)] = 3503,
+  [SMALL_STATE(114)] = 3518,
+  [SMALL_STATE(115)] = 3533,
+  [SMALL_STATE(116)] = 3550,
+  [SMALL_STATE(117)] = 3567,
+  [SMALL_STATE(118)] = 3580,
+  [SMALL_STATE(119)] = 3603,
+  [SMALL_STATE(120)] = 3624,
+  [SMALL_STATE(121)] = 3645,
+  [SMALL_STATE(122)] = 3662,
+  [SMALL_STATE(123)] = 3683,
+  [SMALL_STATE(124)] = 3702,
+  [SMALL_STATE(125)] = 3719,
+  [SMALL_STATE(126)] = 3740,
+  [SMALL_STATE(127)] = 3760,
+  [SMALL_STATE(128)] = 3780,
+  [SMALL_STATE(129)] = 3796,
+  [SMALL_STATE(130)] = 3810,
+  [SMALL_STATE(131)] = 3830,
+  [SMALL_STATE(132)] = 3846,
+  [SMALL_STATE(133)] = 3866,
+  [SMALL_STATE(134)] = 3880,
+  [SMALL_STATE(135)] = 3900,
+  [SMALL_STATE(136)] = 3920,
+  [SMALL_STATE(137)] = 3932,
+  [SMALL_STATE(138)] = 3952,
+  [SMALL_STATE(139)] = 3964,
+  [SMALL_STATE(140)] = 3978,
+  [SMALL_STATE(141)] = 3994,
+  [SMALL_STATE(142)] = 4010,
+  [SMALL_STATE(143)] = 4021,
+  [SMALL_STATE(144)] = 4038,
+  [SMALL_STATE(145)] = 4055,
+  [SMALL_STATE(146)] = 4070,
+  [SMALL_STATE(147)] = 4083,
+  [SMALL_STATE(148)] = 4100,
+  [SMALL_STATE(149)] = 4113,
+  [SMALL_STATE(150)] = 4126,
+  [SMALL_STATE(151)] = 4139,
+  [SMALL_STATE(152)] = 4154,
+  [SMALL_STATE(153)] = 4171,
+  [SMALL_STATE(154)] = 4186,
+  [SMALL_STATE(155)] = 4201,
+  [SMALL_STATE(156)] = 4216,
+  [SMALL_STATE(157)] = 4231,
+  [SMALL_STATE(158)] = 4246,
+  [SMALL_STATE(159)] = 4263,
+  [SMALL_STATE(160)] = 4276,
+  [SMALL_STATE(161)] = 4289,
+  [SMALL_STATE(162)] = 4306,
+  [SMALL_STATE(163)] = 4323,
+  [SMALL_STATE(164)] = 4340,
+  [SMALL_STATE(165)] = 4351,
+  [SMALL_STATE(166)] = 4368,
+  [SMALL_STATE(167)] = 4383,
+  [SMALL_STATE(168)] = 4396,
+  [SMALL_STATE(169)] = 4407,
+  [SMALL_STATE(170)] = 4424,
+  [SMALL_STATE(171)] = 4439,
+  [SMALL_STATE(172)] = 4456,
+  [SMALL_STATE(173)] = 4473,
+  [SMALL_STATE(174)] = 4490,
+  [SMALL_STATE(175)] = 4505,
+  [SMALL_STATE(176)] = 4519,
+  [SMALL_STATE(177)] = 4533,
+  [SMALL_STATE(178)] = 4547,
+  [SMALL_STATE(179)] = 4561,
+  [SMALL_STATE(180)] = 4575,
+  [SMALL_STATE(181)] = 4589,
+  [SMALL_STATE(182)] = 4603,
+  [SMALL_STATE(183)] = 4613,
+  [SMALL_STATE(184)] = 4627,
+  [SMALL_STATE(185)] = 4641,
+  [SMALL_STATE(186)] = 4651,
+  [SMALL_STATE(187)] = 4665,
+  [SMALL_STATE(188)] = 4679,
+  [SMALL_STATE(189)] = 4693,
+  [SMALL_STATE(190)] = 4703,
+  [SMALL_STATE(191)] = 4717,
+  [SMALL_STATE(192)] = 4731,
+  [SMALL_STATE(193)] = 4745,
+  [SMALL_STATE(194)] = 4755,
+  [SMALL_STATE(195)] = 4769,
+  [SMALL_STATE(196)] = 4783,
+  [SMALL_STATE(197)] = 4797,
+  [SMALL_STATE(198)] = 4811,
+  [SMALL_STATE(199)] = 4825,
+  [SMALL_STATE(200)] = 4839,
+  [SMALL_STATE(201)] = 4853,
+  [SMALL_STATE(202)] = 4867,
+  [SMALL_STATE(203)] = 4881,
+  [SMALL_STATE(204)] = 4895,
+  [SMALL_STATE(205)] = 4909,
+  [SMALL_STATE(206)] = 4923,
+  [SMALL_STATE(207)] = 4937,
+  [SMALL_STATE(208)] = 4951,
+  [SMALL_STATE(209)] = 4965,
+  [SMALL_STATE(210)] = 4979,
+  [SMALL_STATE(211)] = 4993,
+  [SMALL_STATE(212)] = 5007,
+  [SMALL_STATE(213)] = 5021,
+  [SMALL_STATE(214)] = 5035,
+  [SMALL_STATE(215)] = 5049,
+  [SMALL_STATE(216)] = 5058,
+  [SMALL_STATE(217)] = 5069,
+  [SMALL_STATE(218)] = 5078,
+  [SMALL_STATE(219)] = 5087,
+  [SMALL_STATE(220)] = 5096,
+  [SMALL_STATE(221)] = 5105,
+  [SMALL_STATE(222)] = 5114,
+  [SMALL_STATE(223)] = 5123,
+  [SMALL_STATE(224)] = 5134,
+  [SMALL_STATE(225)] = 5143,
+  [SMALL_STATE(226)] = 5152,
+  [SMALL_STATE(227)] = 5161,
+  [SMALL_STATE(228)] = 5170,
+  [SMALL_STATE(229)] = 5179,
+  [SMALL_STATE(230)] = 5190,
+  [SMALL_STATE(231)] = 5199,
+  [SMALL_STATE(232)] = 5210,
+  [SMALL_STATE(233)] = 5219,
+  [SMALL_STATE(234)] = 5228,
+  [SMALL_STATE(235)] = 5237,
+  [SMALL_STATE(236)] = 5248,
+  [SMALL_STATE(237)] = 5259,
+  [SMALL_STATE(238)] = 5268,
+  [SMALL_STATE(239)] = 5277,
+  [SMALL_STATE(240)] = 5286,
+  [SMALL_STATE(241)] = 5297,
+  [SMALL_STATE(242)] = 5306,
+  [SMALL_STATE(243)] = 5315,
+  [SMALL_STATE(244)] = 5324,
+  [SMALL_STATE(245)] = 5333,
+  [SMALL_STATE(246)] = 5342,
+  [SMALL_STATE(247)] = 5353,
+  [SMALL_STATE(248)] = 5364,
+  [SMALL_STATE(249)] = 5373,
+  [SMALL_STATE(250)] = 5384,
+  [SMALL_STATE(251)] = 5393,
+  [SMALL_STATE(252)] = 5402,
+  [SMALL_STATE(253)] = 5411,
+  [SMALL_STATE(254)] = 5420,
+  [SMALL_STATE(255)] = 5428,
+  [SMALL_STATE(256)] = 5436,
+  [SMALL_STATE(257)] = 5444,
+  [SMALL_STATE(258)] = 5452,
+  [SMALL_STATE(259)] = 5460,
+  [SMALL_STATE(260)] = 5468,
+  [SMALL_STATE(261)] = 5476,
+  [SMALL_STATE(262)] = 5484,
+  [SMALL_STATE(263)] = 5492,
+  [SMALL_STATE(264)] = 5500,
+  [SMALL_STATE(265)] = 5508,
+  [SMALL_STATE(266)] = 5516,
+  [SMALL_STATE(267)] = 5524,
+  [SMALL_STATE(268)] = 5532,
+  [SMALL_STATE(269)] = 5540,
+  [SMALL_STATE(270)] = 5548,
+  [SMALL_STATE(271)] = 5556,
+  [SMALL_STATE(272)] = 5564,
+  [SMALL_STATE(273)] = 5572,
+  [SMALL_STATE(274)] = 5580,
+  [SMALL_STATE(275)] = 5588,
+  [SMALL_STATE(276)] = 5596,
+  [SMALL_STATE(277)] = 5604,
+  [SMALL_STATE(278)] = 5612,
+  [SMALL_STATE(279)] = 5620,
+  [SMALL_STATE(280)] = 5628,
+  [SMALL_STATE(281)] = 5636,
+  [SMALL_STATE(282)] = 5644,
+  [SMALL_STATE(283)] = 5652,
+  [SMALL_STATE(284)] = 5660,
+  [SMALL_STATE(285)] = 5668,
+  [SMALL_STATE(286)] = 5676,
+  [SMALL_STATE(287)] = 5684,
+  [SMALL_STATE(288)] = 5692,
+  [SMALL_STATE(289)] = 5700,
+  [SMALL_STATE(290)] = 5708,
+  [SMALL_STATE(291)] = 5716,
+  [SMALL_STATE(292)] = 5724,
+  [SMALL_STATE(293)] = 5732,
+  [SMALL_STATE(294)] = 5740,
+  [SMALL_STATE(295)] = 5748,
+  [SMALL_STATE(296)] = 5756,
+  [SMALL_STATE(297)] = 5764,
+  [SMALL_STATE(298)] = 5772,
+  [SMALL_STATE(299)] = 5780,
+  [SMALL_STATE(300)] = 5788,
+  [SMALL_STATE(301)] = 5796,
+  [SMALL_STATE(302)] = 5804,
+  [SMALL_STATE(303)] = 5812,
+  [SMALL_STATE(304)] = 5820,
+  [SMALL_STATE(305)] = 5828,
+  [SMALL_STATE(306)] = 5836,
+  [SMALL_STATE(307)] = 5844,
+  [SMALL_STATE(308)] = 5852,
+  [SMALL_STATE(309)] = 5860,
+  [SMALL_STATE(310)] = 5868,
+  [SMALL_STATE(311)] = 5876,
+  [SMALL_STATE(312)] = 5884,
+  [SMALL_STATE(313)] = 5892,
+  [SMALL_STATE(314)] = 5900,
+  [SMALL_STATE(315)] = 5908,
+  [SMALL_STATE(316)] = 5916,
+  [SMALL_STATE(317)] = 5924,
+  [SMALL_STATE(318)] = 5932,
+  [SMALL_STATE(319)] = 5940,
+  [SMALL_STATE(320)] = 5948,
+  [SMALL_STATE(321)] = 5956,
+  [SMALL_STATE(322)] = 5964,
+  [SMALL_STATE(323)] = 5972,
+  [SMALL_STATE(324)] = 5980,
+  [SMALL_STATE(325)] = 5988,
+  [SMALL_STATE(326)] = 5996,
+  [SMALL_STATE(327)] = 6004,
+  [SMALL_STATE(328)] = 6012,
+  [SMALL_STATE(329)] = 6020,
+  [SMALL_STATE(330)] = 6028,
+  [SMALL_STATE(331)] = 6036,
+  [SMALL_STATE(332)] = 6044,
+  [SMALL_STATE(333)] = 6052,
+  [SMALL_STATE(334)] = 6060,
 };
 
 static TSParseActionEntry ts_parse_actions[] = {
   [0] = {.entry = {.count = 0, .reusable = false}},
   [1] = {.entry = {.count = 1, .reusable = false}}, RECOVER(),
   [3] = {.entry = {.count = 1, .reusable = true}}, SHIFT_EXTRA(),
-  [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(25),
-  [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142),
-  [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(321),
-  [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(310),
-  [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
+  [5] = {.entry = {.count = 1, .reusable = true}}, SHIFT(30),
+  [7] = {.entry = {.count = 1, .reusable = true}}, SHIFT(166),
+  [9] = {.entry = {.count = 1, .reusable = true}}, SHIFT(330),
+  [11] = {.entry = {.count = 1, .reusable = true}}, SHIFT(318),
+  [13] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94),
   [15] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 3),
   [17] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 3),
   [19] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_identifier, 1),
   [21] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_identifier, 1),
-  [23] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literal, 1),
-  [25] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_literal, 1),
-  [27] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 1, .production_id = 1),
-  [29] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169),
-  [31] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field, 1, .production_id = 1),
-  [33] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__literal_string, 3),
-  [35] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__literal_string, 3),
-  [37] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171),
-  [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 3, .production_id = 2),
-  [41] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field, 3, .production_id = 2),
-  [43] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_predicate, 3, .production_id = 10),
-  [45] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_predicate, 3, .production_id = 10),
-  [47] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60),
-  [49] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52),
-  [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64),
-  [53] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62),
-  [55] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61),
-  [57] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61),
-  [59] = {.entry = {.count = 1, .reusable = false}}, SHIFT(62),
-  [61] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64),
-  [63] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4),
-  [65] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 4),
-  [67] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3),
-  [69] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3),
-  [71] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_list, 1),
-  [73] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1),
-  [75] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1),
-  [77] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
+  [23] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 1, .production_id = 1),
+  [25] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field, 1, .production_id = 1),
+  [27] = {.entry = {.count = 1, .reusable = true}}, SHIFT(195),
+  [29] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__literal_string, 3),
+  [31] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__literal_string, 3),
+  [33] = {.entry = {.count = 1, .reusable = true}}, SHIFT(200),
+  [35] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_literal, 1),
+  [37] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_literal, 1),
+  [39] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_predicate, 3, .production_id = 10),
+  [41] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_predicate, 3, .production_id = 10),
+  [43] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
+  [45] = {.entry = {.count = 1, .reusable = true}}, SHIFT(55),
+  [47] = {.entry = {.count = 1, .reusable = false}}, SHIFT(55),
+  [49] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54),
+  [51] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
+  [53] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subquery, 3),
+  [55] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subquery, 3),
+  [57] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_field, 3, .production_id = 2),
+  [59] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_field, 3, .production_id = 2),
+  [61] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_subquery, 4),
+  [63] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_subquery, 4),
+  [65] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 3),
+  [67] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 3),
+  [69] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59),
+  [71] = {.entry = {.count = 1, .reusable = true}}, SHIFT(64),
+  [73] = {.entry = {.count = 1, .reusable = false}}, SHIFT(64),
+  [75] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_list, 4),
+  [77] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_list, 4),
   [79] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_join, 5),
-  [81] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_join, 4),
-  [83] = {.entry = {.count = 1, .reusable = false}}, SHIFT(295),
-  [85] = {.entry = {.count = 1, .reusable = true}}, SHIFT(214),
-  [87] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294),
-  [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293),
-  [91] = {.entry = {.count = 1, .reusable = true}}, SHIFT(6),
-  [93] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292),
-  [95] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3),
-  [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133),
-  [99] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assignment_list_repeat1, 2),
-  [101] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_where_expression, 1),
-  [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(54),
-  [105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(54),
-  [107] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58),
-  [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51),
-  [111] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53),
-  [113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49),
-  [115] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63),
-  [117] = {.entry = {.count = 1, .reusable = false}}, SHIFT(63),
-  [119] = {.entry = {.count = 1, .reusable = false}}, SHIFT(49),
-  [121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(56),
-  [123] = {.entry = {.count = 1, .reusable = false}}, SHIFT(53),
-  [125] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__having, 2),
-  [127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48),
-  [129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(153),
-  [131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(44),
-  [133] = {.entry = {.count = 1, .reusable = true}}, SHIFT(26),
-  [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(178),
-  [137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(125),
-  [139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(287),
-  [141] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from, 2),
-  [143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(128),
-  [145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(318),
-  [147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(319),
-  [149] = {.entry = {.count = 1, .reusable = true}}, SHIFT(16),
-  [151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323),
-  [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
-  [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(122),
-  [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
-  [159] = {.entry = {.count = 1, .reusable = false}}, SHIFT(239),
-  [161] = {.entry = {.count = 1, .reusable = false}}, SHIFT(193),
-  [163] = {.entry = {.count = 1, .reusable = false}}, SHIFT(194),
-  [165] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from, 3),
-  [167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from, 4),
-  [169] = {.entry = {.count = 1, .reusable = true}}, SHIFT(155),
-  [171] = {.entry = {.count = 1, .reusable = true}}, SHIFT(239),
-  [173] = {.entry = {.count = 1, .reusable = true}}, SHIFT(291),
-  [175] = {.entry = {.count = 1, .reusable = true}}, SHIFT(102),
-  [177] = {.entry = {.count = 1, .reusable = true}}, SHIFT(290),
-  [179] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_definition, 2, .production_id = 8),
-  [181] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_expression, 1, .production_id = 1),
-  [183] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_expression, 1, .production_id = 1),
-  [185] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5),
-  [187] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_char, 1),
-  [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(300),
-  [191] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_varchar, 1),
-  [193] = {.entry = {.count = 1, .reusable = true}}, SHIFT(299),
-  [195] = {.entry = {.count = 1, .reusable = true}}, SHIFT(79),
-  [197] = {.entry = {.count = 1, .reusable = false}}, SHIFT(71),
-  [199] = {.entry = {.count = 1, .reusable = true}}, SHIFT(71),
-  [201] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75),
-  [203] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76),
-  [205] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_expression, 2, .production_id = 4),
-  [207] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bigint, 1),
-  [209] = {.entry = {.count = 1, .reusable = true}}, SHIFT(312),
-  [211] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_from_repeat1, 2), SHIFT_REPEAT(153),
-  [214] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_from_repeat1, 2),
-  [216] = {.entry = {.count = 1, .reusable = false}}, SHIFT(161),
-  [218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_create, 4),
-  [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(94),
-  [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_definition, 3, .production_id = 8),
-  [224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_hint, 5, .production_id = 7),
-  [226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_create, 5),
-  [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_hint, 7, .production_id = 13),
-  [230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_varchar, 4, .production_id = 15),
-  [232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_char, 4, .production_id = 15),
-  [234] = {.entry = {.count = 1, .reusable = true}}, SHIFT(193),
-  [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194),
-  [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bigint, 4, .production_id = 15),
-  [240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__single_table_update, 3),
-  [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_options, 1),
-  [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_definition, 4, .production_id = 8),
-  [246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_list, 1),
-  [248] = {.entry = {.count = 1, .reusable = true}}, SHIFT(70),
-  [250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__delete_from, 2),
-  [252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from, 5),
-  [254] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 4, .production_id = 5),
-  [256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__field_list_repeat1, 2),
-  [258] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__field_list_repeat1, 2), SHIFT_REPEAT(70),
-  [261] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_table_options_repeat1, 2), SHIFT_REPEAT(161),
-  [264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_table_options_repeat1, 2),
-  [266] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_table_options_repeat1, 2), SHIFT_REPEAT(292),
-  [269] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_table_options_repeat1, 2), SHIFT_REPEAT(3),
-  [272] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_list, 2),
-  [274] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assignment_list_repeat1, 2), SHIFT_REPEAT(55),
-  [277] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__default_null, 2),
-  [279] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__not_null, 2),
-  [281] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_list, 2),
-  [283] = {.entry = {.count = 1, .reusable = false}}, SHIFT(259),
-  [285] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__delete_from, 3),
-  [287] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_definition, 5, .production_id = 8),
-  [289] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__single_table_update, 4),
-  [291] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_reference, 1, .production_id = 1),
-  [293] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185),
-  [295] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from, 6),
-  [297] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__primary_key, 2),
-  [299] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_order_expression, 1),
-  [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_group_by, 2),
-  [303] = {.entry = {.count = 1, .reusable = true}}, SHIFT(59),
-  [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column, 1, .production_id = 1),
-  [307] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_where, 2),
-  [309] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_column_definitions, 4),
-  [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_definitions, 4),
-  [313] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assignment_list_repeat1, 2), SHIFT_REPEAT(58),
-  [316] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57),
-  [318] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_delete, 1),
-  [320] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_option, 3, .production_id = 12),
-  [322] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_option, 3, .production_id = 12),
-  [324] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_column_definitions, 5),
-  [326] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_definitions, 5),
-  [328] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_column_definitions, 3),
-  [330] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_definitions, 3),
-  [332] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_reference, 3, .production_id = 3),
-  [334] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324),
-  [336] = {.entry = {.count = 1, .reusable = true}}, SHIFT(120),
-  [338] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139),
-  [340] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65),
-  [342] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_direction, 1),
-  [344] = {.entry = {.count = 1, .reusable = true}}, SHIFT(320),
-  [346] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74),
-  [348] = {.entry = {.count = 1, .reusable = true}}, SHIFT(322),
-  [350] = {.entry = {.count = 1, .reusable = true}}, SHIFT(111),
-  [352] = {.entry = {.count = 1, .reusable = true}}, SHIFT(151),
-  [354] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_option, 1, .production_id = 6),
-  [356] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_option, 1, .production_id = 6),
-  [358] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__single_table_update, 5),
-  [360] = {.entry = {.count = 1, .reusable = true}}, SHIFT(156),
-  [362] = {.entry = {.count = 1, .reusable = true}}, SHIFT(280),
-  [364] = {.entry = {.count = 1, .reusable = true}}, SHIFT(268),
-  [366] = {.entry = {.count = 1, .reusable = true}}, SHIFT(162),
-  [368] = {.entry = {.count = 1, .reusable = true}}, SHIFT(216),
-  [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(137),
-  [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(32),
-  [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130),
-  [376] = {.entry = {.count = 1, .reusable = true}}, SHIFT(119),
-  [378] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_limit, 2),
-  [380] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_constraints_repeat1, 2),
-  [382] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_constraints_repeat1, 2), SHIFT_REPEAT(89),
-  [385] = {.entry = {.count = 1, .reusable = true}}, SHIFT(225),
-  [387] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from, 7),
-  [389] = {.entry = {.count = 1, .reusable = true}}, SHIFT(217),
-  [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(136),
-  [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325),
-  [395] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150),
-  [397] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273),
-  [399] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__table_references, 2),
-  [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(157),
-  [403] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
-  [405] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_group_by, 3),
-  [407] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_column_list_repeat1, 2),
-  [409] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_column_list_repeat1, 2), SHIFT_REPEAT(137),
-  [412] = {.entry = {.count = 1, .reusable = true}}, SHIFT(45),
-  [414] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__multi_table_update, 3),
-  [416] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
-  [418] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__table_references_repeat1, 2),
-  [420] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__table_references_repeat1, 2), SHIFT_REPEAT(157),
-  [423] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraints, 3),
-  [425] = {.entry = {.count = 1, .reusable = true}}, SHIFT(89),
-  [427] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__delete_from, 4),
-  [429] = {.entry = {.count = 1, .reusable = true}}, SHIFT(21),
-  [431] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraints, 2),
-  [433] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2),
-  [435] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(130),
-  [438] = {.entry = {.count = 1, .reusable = true}}, SHIFT(15),
-  [440] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__column_list_without_order_repeat1, 2),
-  [442] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__column_list_without_order_repeat1, 2), SHIFT_REPEAT(162),
-  [445] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_column_definitions_repeat1, 2),
-  [447] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_column_definitions_repeat1, 2), SHIFT_REPEAT(149),
-  [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(146),
-  [452] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraint, 1, .production_id = 11),
-  [454] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraint, 1),
-  [456] = {.entry = {.count = 1, .reusable = true}}, SHIFT(158),
-  [458] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_select, 2),
-  [460] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_select_expression, 1),
-  [462] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__column_without_order, 1, .production_id = 1),
-  [464] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_list, 4),
-  [466] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__column_list_without_order_repeat1, 2, .production_id = 9),
-  [468] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_definition, 6, .production_id = 8),
-  [470] = {.entry = {.count = 1, .reusable = true}}, SHIFT(145),
-  [472] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column, 2, .production_id = 1),
-  [474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_list, 3),
-  [476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__constraint_literal, 4, .production_id = 14),
-  [478] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__key_constraint, 3, .production_id = 14),
-  [480] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__if_not_exists, 3),
-  [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_order_by, 2),
-  [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__primary_key_constraint, 2),
-  [486] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_order_expression, 2),
-  [488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(282),
-  [490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(168),
-  [492] = {.entry = {.count = 1, .reusable = true}}, SHIFT(129),
-  [494] = {.entry = {.count = 1, .reusable = true}}, SHIFT(46),
-  [496] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99),
-  [498] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__delete_statement, 3),
-  [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__multi_table_update, 4),
-  [502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__select_statement, 3),
-  [504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86),
-  [506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__delete_from, 5),
-  [508] = {.entry = {.count = 1, .reusable = true}}, SHIFT(90),
-  [510] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88),
-  [512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87),
-  [514] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_limit, 3),
-  [516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_insert, 3),
-  [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(50),
-  [520] = {.entry = {.count = 1, .reusable = true}}, SHIFT(192),
-  [522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84),
-  [524] = {.entry = {.count = 1, .reusable = true}}, SHIFT(266),
-  [526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from, 8),
-  [528] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148),
-  [530] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_offset, 2),
-  [532] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229),
-  [534] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__single_table_update, 6),
-  [536] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__column_list_without_order, 4, .production_id = 9),
-  [538] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_insert_expression, 4),
-  [540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
-  [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(8),
-  [544] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__column_list_without_order, 3, .production_id = 9),
-  [546] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__update_statement, 2),
-  [548] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__insert_statement, 2),
-  [550] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__create_statement, 2),
-  [552] = {.entry = {.count = 1, .reusable = true}}, SHIFT(242),
-  [554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(179),
-  [556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(244),
-  [558] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__select_statement, 2),
-  [560] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_insert_expression, 3),
-  [562] = {.entry = {.count = 1, .reusable = true}}, SHIFT(257),
-  [564] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_update_expression, 1),
-  [566] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_update, 2),
-  [568] = {.entry = {.count = 1, .reusable = true}}, SHIFT(211),
-  [570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_delete, 2),
-  [572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(238),
-  [574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_name, 1),
-  [576] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67),
-  [578] = {.entry = {.count = 1, .reusable = true}}, SHIFT(108),
-  [580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(109),
-  [582] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270),
-  [584] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(),
-  [586] = {.entry = {.count = 1, .reusable = false}}, SHIFT(271),
-  [588] = {.entry = {.count = 1, .reusable = false}}, SHIFT(272),
-  [590] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name, 1),
-  [592] = {.entry = {.count = 1, .reusable = true}}, SHIFT(274),
-  [594] = {.entry = {.count = 1, .reusable = true}}, SHIFT(275),
-  [596] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276),
-  [598] = {.entry = {.count = 1, .reusable = true}}, SHIFT(249),
-  [600] = {.entry = {.count = 1, .reusable = true}}, SHIFT(248),
-  [602] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_create, 6),
-  [604] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1),
-  [606] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1),
-  [608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(17),
-  [610] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73),
-  [612] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
-  [614] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118),
-  [616] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247),
-  [618] = {.entry = {.count = 1, .reusable = true}}, SHIFT(106),
-  [620] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
-  [622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(115),
-  [624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(147),
-  [626] = {.entry = {.count = 1, .reusable = false}}, SHIFT(305),
-  [628] = {.entry = {.count = 1, .reusable = false}}, SHIFT(306),
-  [630] = {.entry = {.count = 1, .reusable = true}}, SHIFT(307),
-  [632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112),
-  [634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314),
-  [636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(315),
-  [638] = {.entry = {.count = 1, .reusable = true}}, SHIFT(316),
-  [640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(317),
+  [81] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__expression, 1),
+  [83] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym__expression, 1),
+  [85] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_join, 4),
+  [87] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_list, 1),
+  [89] = {.entry = {.count = 1, .reusable = true}}, SHIFT(63),
+  [91] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_assignment_list_repeat1, 2),
+  [93] = {.entry = {.count = 1, .reusable = false}}, SHIFT(297),
+  [95] = {.entry = {.count = 1, .reusable = true}}, SHIFT(116),
+  [97] = {.entry = {.count = 1, .reusable = true}}, SHIFT(296),
+  [99] = {.entry = {.count = 1, .reusable = true}}, SHIFT(295),
+  [101] = {.entry = {.count = 1, .reusable = true}}, SHIFT(9),
+  [103] = {.entry = {.count = 1, .reusable = true}}, SHIFT(294),
+  [105] = {.entry = {.count = 1, .reusable = false}}, SHIFT(3),
+  [107] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_where_expression, 1),
+  [109] = {.entry = {.count = 1, .reusable = true}}, SHIFT(61),
+  [111] = {.entry = {.count = 1, .reusable = false}}, SHIFT(61),
+  [113] = {.entry = {.count = 1, .reusable = true}}, SHIFT(185),
+  [115] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__having, 2),
+  [117] = {.entry = {.count = 1, .reusable = true}}, SHIFT(52),
+  [119] = {.entry = {.count = 1, .reusable = true}}, SHIFT(58),
+  [121] = {.entry = {.count = 1, .reusable = true}}, SHIFT(57),
+  [123] = {.entry = {.count = 1, .reusable = false}}, SHIFT(57),
+  [125] = {.entry = {.count = 1, .reusable = false}}, SHIFT(58),
+  [127] = {.entry = {.count = 1, .reusable = true}}, SHIFT(65),
+  [129] = {.entry = {.count = 1, .reusable = true}}, SHIFT(66),
+  [131] = {.entry = {.count = 1, .reusable = true}}, SHIFT(68),
+  [133] = {.entry = {.count = 1, .reusable = false}}, SHIFT(68),
+  [135] = {.entry = {.count = 1, .reusable = true}}, SHIFT(67),
+  [137] = {.entry = {.count = 1, .reusable = true}}, SHIFT(163),
+  [139] = {.entry = {.count = 1, .reusable = true}}, SHIFT(49),
+  [141] = {.entry = {.count = 1, .reusable = true}}, SHIFT(28),
+  [143] = {.entry = {.count = 1, .reusable = true}}, SHIFT(210),
+  [145] = {.entry = {.count = 1, .reusable = true}}, SHIFT(135),
+  [147] = {.entry = {.count = 1, .reusable = true}}, SHIFT(289),
+  [149] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from, 2),
+  [151] = {.entry = {.count = 1, .reusable = true}}, SHIFT(110),
+  [153] = {.entry = {.count = 1, .reusable = true}}, SHIFT(3),
+  [155] = {.entry = {.count = 1, .reusable = true}}, SHIFT(107),
+  [157] = {.entry = {.count = 1, .reusable = true}}, SHIFT(327),
+  [159] = {.entry = {.count = 1, .reusable = true}}, SHIFT(328),
+  [161] = {.entry = {.count = 1, .reusable = true}}, SHIFT(14),
+  [163] = {.entry = {.count = 1, .reusable = true}}, SHIFT(332),
+  [165] = {.entry = {.count = 1, .reusable = true}}, SHIFT(5),
+  [167] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from, 3),
+  [169] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from, 4),
+  [171] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_expression, 1, .production_id = 1),
+  [173] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_expression, 1, .production_id = 1),
+  [175] = {.entry = {.count = 1, .reusable = false}}, SHIFT(5),
+  [177] = {.entry = {.count = 1, .reusable = false}}, SHIFT(276),
+  [179] = {.entry = {.count = 1, .reusable = false}}, SHIFT(175),
+  [181] = {.entry = {.count = 1, .reusable = false}}, SHIFT(198),
+  [183] = {.entry = {.count = 1, .reusable = true}}, SHIFT(142),
+  [185] = {.entry = {.count = 1, .reusable = true}}, SHIFT(276),
+  [187] = {.entry = {.count = 1, .reusable = true}}, SHIFT(270),
+  [189] = {.entry = {.count = 1, .reusable = true}}, SHIFT(101),
+  [191] = {.entry = {.count = 1, .reusable = true}}, SHIFT(269),
+  [193] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_definition, 2, .production_id = 8),
+  [195] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_expression, 2, .production_id = 4),
+  [197] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_from_repeat1, 2), SHIFT_REPEAT(163),
+  [200] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_from_repeat1, 2),
+  [202] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_varchar, 1),
+  [204] = {.entry = {.count = 1, .reusable = true}}, SHIFT(271),
+  [206] = {.entry = {.count = 1, .reusable = true}}, SHIFT(85),
+  [208] = {.entry = {.count = 1, .reusable = false}}, SHIFT(76),
+  [210] = {.entry = {.count = 1, .reusable = true}}, SHIFT(76),
+  [212] = {.entry = {.count = 1, .reusable = true}}, SHIFT(84),
+  [214] = {.entry = {.count = 1, .reusable = true}}, SHIFT(81),
+  [216] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_hint, 7, .production_id = 13),
+  [218] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_char, 1),
+  [220] = {.entry = {.count = 1, .reusable = true}}, SHIFT(272),
+  [222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bigint, 1),
+  [224] = {.entry = {.count = 1, .reusable = true}}, SHIFT(273),
+  [226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_index_hint, 5, .production_id = 7),
+  [228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_varchar, 4, .production_id = 15),
+  [230] = {.entry = {.count = 1, .reusable = true}}, SHIFT(175),
+  [232] = {.entry = {.count = 1, .reusable = true}}, SHIFT(198),
+  [234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_list, 1),
+  [236] = {.entry = {.count = 1, .reusable = true}}, SHIFT(74),
+  [238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__field_list, 2),
+  [240] = {.entry = {.count = 1, .reusable = false}}, SHIFT(146),
+  [242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_create, 4),
+  [244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__field_list_repeat1, 2),
+  [246] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__field_list_repeat1, 2), SHIFT_REPEAT(74),
+  [249] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_create, 5),
+  [251] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_bigint, 4, .production_id = 15),
+  [253] = {.entry = {.count = 1, .reusable = true}}, SHIFT(104),
+  [255] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_definition, 3, .production_id = 8),
+  [257] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_char, 4, .production_id = 15),
+  [259] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from, 5),
+  [261] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__delete_from, 2),
+  [263] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_table_options_repeat1, 2), SHIFT_REPEAT(146),
+  [266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_table_options_repeat1, 2),
+  [268] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_table_options_repeat1, 2), SHIFT_REPEAT(294),
+  [271] = {.entry = {.count = 2, .reusable = false}}, REDUCE(aux_sym_table_options_repeat1, 2), SHIFT_REPEAT(3),
+  [274] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_definition, 4, .production_id = 8),
+  [276] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_call, 4, .production_id = 5),
+  [278] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_options, 1),
+  [280] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__single_table_update, 3),
+  [282] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__default_null, 2),
+  [284] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_group_by, 2),
+  [286] = {.entry = {.count = 1, .reusable = true}}, SHIFT(60),
+  [288] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_order_expression, 1),
+  [290] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__not_null, 2),
+  [292] = {.entry = {.count = 1, .reusable = false}}, SHIFT(257),
+  [294] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from, 6),
+  [296] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assignment_list, 2),
+  [298] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assignment_list_repeat1, 2), SHIFT_REPEAT(63),
+  [301] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__single_table_update, 4),
+  [303] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_definition, 5, .production_id = 8),
+  [305] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_reference, 1, .production_id = 1),
+  [307] = {.entry = {.count = 1, .reusable = true}}, SHIFT(194),
+  [309] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_where, 2),
+  [311] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__delete_from, 3),
+  [313] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__primary_key, 2),
+  [315] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column, 1, .production_id = 1),
+  [317] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_direction, 1),
+  [319] = {.entry = {.count = 1, .reusable = true}}, SHIFT(329),
+  [321] = {.entry = {.count = 1, .reusable = true}}, SHIFT(77),
+  [323] = {.entry = {.count = 1, .reusable = true}}, SHIFT(160),
+  [325] = {.entry = {.count = 1, .reusable = true}}, SHIFT(73),
+  [327] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from, 7),
+  [329] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_option, 1, .production_id = 6),
+  [331] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_option, 1, .production_id = 6),
+  [333] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_column_definitions, 5),
+  [335] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_definitions, 5),
+  [337] = {.entry = {.count = 1, .reusable = true}}, SHIFT(62),
+  [339] = {.entry = {.count = 1, .reusable = true}}, SHIFT(130),
+  [341] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_limit, 2),
+  [343] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_table_option, 3, .production_id = 12),
+  [345] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_option, 3, .production_id = 12),
+  [347] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_column_definitions, 3),
+  [349] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_definitions, 3),
+  [351] = {.entry = {.count = 1, .reusable = true}}, SHIFT(167),
+  [353] = {.entry = {.count = 1, .reusable = true}}, SHIFT(333),
+  [355] = {.entry = {.count = 1, .reusable = true}}, SHIFT(139),
+  [357] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_table_reference, 3, .production_id = 3),
+  [359] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_delete, 1),
+  [361] = {.entry = {.count = 1, .reusable = false}}, REDUCE(sym_column_definitions, 4),
+  [363] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_definitions, 4),
+  [365] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_group_by, 3),
+  [367] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_assignment_list_repeat1, 2), SHIFT_REPEAT(52),
+  [370] = {.entry = {.count = 1, .reusable = true}}, SHIFT(331),
+  [372] = {.entry = {.count = 1, .reusable = true}}, SHIFT(114),
+  [374] = {.entry = {.count = 1, .reusable = true}}, SHIFT(48),
+  [376] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__multi_table_update, 3),
+  [378] = {.entry = {.count = 1, .reusable = true}}, SHIFT(256),
+  [380] = {.entry = {.count = 1, .reusable = true}}, SHIFT(169),
+  [382] = {.entry = {.count = 1, .reusable = true}}, SHIFT(143),
+  [384] = {.entry = {.count = 1, .reusable = true}}, SHIFT(279),
+  [386] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_constraints_repeat1, 2),
+  [388] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_constraints_repeat1, 2), SHIFT_REPEAT(88),
+  [391] = {.entry = {.count = 1, .reusable = true}}, SHIFT(40),
+  [393] = {.entry = {.count = 1, .reusable = true}}, SHIFT(134),
+  [395] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__single_table_update, 5),
+  [397] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_select, 2),
+  [399] = {.entry = {.count = 1, .reusable = true}}, SHIFT(243),
+  [401] = {.entry = {.count = 1, .reusable = true}}, SHIFT(165),
+  [403] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_select_expression, 1),
+  [405] = {.entry = {.count = 1, .reusable = true}}, SHIFT(47),
+  [407] = {.entry = {.count = 1, .reusable = true}}, SHIFT(161),
+  [409] = {.entry = {.count = 1, .reusable = true}}, SHIFT(11),
+  [411] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_order_expression, 2),
+  [413] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__table_references, 2),
+  [415] = {.entry = {.count = 1, .reusable = true}}, SHIFT(23),
+  [417] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_order_by, 2),
+  [419] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_column_list_repeat1, 2),
+  [421] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_column_list_repeat1, 2), SHIFT_REPEAT(165),
+  [424] = {.entry = {.count = 1, .reusable = true}}, SHIFT(34),
+  [426] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraints, 3),
+  [428] = {.entry = {.count = 1, .reusable = true}}, SHIFT(88),
+  [430] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraints, 2),
+  [432] = {.entry = {.count = 1, .reusable = true}}, SHIFT(19),
+  [434] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__delete_from, 4),
+  [436] = {.entry = {.count = 1, .reusable = true}}, SHIFT(35),
+  [438] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2),
+  [440] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_list_repeat1, 2), SHIFT_REPEAT(134),
+  [443] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_column_definitions_repeat1, 2),
+  [445] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym_column_definitions_repeat1, 2), SHIFT_REPEAT(147),
+  [448] = {.entry = {.count = 1, .reusable = true}}, SHIFT(247),
+  [450] = {.entry = {.count = 1, .reusable = true}}, SHIFT(173),
+  [452] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__column_list_without_order_repeat1, 2),
+  [454] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__column_list_without_order_repeat1, 2), SHIFT_REPEAT(169),
+  [457] = {.entry = {.count = 1, .reusable = true}}, SHIFT(222),
+  [459] = {.entry = {.count = 1, .reusable = true}}, SHIFT(334),
+  [461] = {.entry = {.count = 1, .reusable = true}}, SHIFT(150),
+  [463] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__table_references_repeat1, 2),
+  [465] = {.entry = {.count = 2, .reusable = true}}, REDUCE(aux_sym__table_references_repeat1, 2), SHIFT_REPEAT(161),
+  [468] = {.entry = {.count = 1, .reusable = true}}, SHIFT(305),
+  [470] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column, 2, .production_id = 1),
+  [472] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym__column_list_without_order_repeat1, 2, .production_id = 9),
+  [474] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_definition, 6, .production_id = 8),
+  [476] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_list, 4),
+  [478] = {.entry = {.count = 1, .reusable = true}}, SHIFT(171),
+  [480] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraint, 1, .production_id = 11),
+  [482] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_offset, 2),
+  [484] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_constraint, 1),
+  [486] = {.entry = {.count = 1, .reusable = true}}, SHIFT(292),
+  [488] = {.entry = {.count = 1, .reusable = true}}, SHIFT(186),
+  [490] = {.entry = {.count = 1, .reusable = true}}, SHIFT(152),
+  [492] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__primary_key_constraint, 2),
+  [494] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__column_without_order, 1, .production_id = 1),
+  [496] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_limit, 3),
+  [498] = {.entry = {.count = 1, .reusable = true}}, SHIFT(132),
+  [500] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_column_list, 3),
+  [502] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__key_constraint, 3, .production_id = 14),
+  [504] = {.entry = {.count = 1, .reusable = true}}, SHIFT(172),
+  [506] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__if_not_exists, 3),
+  [508] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_from, 8),
+  [510] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__constraint_literal, 4, .production_id = 14),
+  [512] = {.entry = {.count = 1, .reusable = true}}, SHIFT(240),
+  [514] = {.entry = {.count = 1, .reusable = true}}, SHIFT(87),
+  [516] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__column_list_without_order, 4, .production_id = 9),
+  [518] = {.entry = {.count = 1, .reusable = true}}, SHIFT(293),
+  [520] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__single_table_update, 6),
+  [522] = {.entry = {.count = 1, .reusable = true}}, SHIFT(2),
+  [524] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__update_statement, 2),
+  [526] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__insert_statement, 2),
+  [528] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__create_statement, 2),
+  [530] = {.entry = {.count = 1, .reusable = true}}, SHIFT(7),
+  [532] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_insert, 3),
+  [534] = {.entry = {.count = 1, .reusable = true}}, SHIFT(95),
+  [536] = {.entry = {.count = 1, .reusable = true}}, SHIFT(99),
+  [538] = {.entry = {.count = 1, .reusable = true}}, SHIFT(86),
+  [540] = {.entry = {.count = 1, .reusable = true}}, SHIFT(112),
+  [542] = {.entry = {.count = 1, .reusable = true}}, SHIFT(117),
+  [544] = {.entry = {.count = 1, .reusable = true}}, SHIFT(255),
+  [546] = {.entry = {.count = 1, .reusable = true}}, SHIFT(267),
+  [548] = {.entry = {.count = 1, .reusable = true}}, SHIFT(266),
+  [550] = {.entry = {.count = 1, .reusable = true}}, SHIFT(149),
+  [552] = {.entry = {.count = 1, .reusable = true}}, SHIFT(286),
+  [554] = {.entry = {.count = 1, .reusable = true}}, SHIFT(138),
+  [556] = {.entry = {.count = 1, .reusable = true}}, SHIFT(281),
+  [558] = {.entry = {.count = 1, .reusable = true}}, SHIFT(83),
+  [560] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__select_statement, 2),
+  [562] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__delete_from, 5),
+  [564] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__select_statement, 3),
+  [566] = {.entry = {.count = 1, .reusable = true}}, SHIFT(51),
+  [568] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_update_expression, 1),
+  [570] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_update, 2),
+  [572] = {.entry = {.count = 1, .reusable = true}}, SHIFT(53),
+  [574] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__delete_statement, 3),
+  [576] = {.entry = {.count = 1, .reusable = true}}, SHIFT(105),
+  [578] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_delete, 2),
+  [580] = {.entry = {.count = 1, .reusable = true}}, SHIFT(229),
+  [582] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_function_name, 1),
+  [584] = {.entry = {.count = 1, .reusable = true}}, SHIFT(75),
+  [586] = {.entry = {.count = 1, .reusable = true}}, SHIFT(303),
+  [588] = {.entry = {.count = 1, .reusable = true}}, SHIFT(251),
+  [590] = {.entry = {.count = 1, .reusable = true}}, SHIFT(259),
+  [592] = {.entry = {.count = 1, .reusable = false}}, SHIFT_EXTRA(),
+  [594] = {.entry = {.count = 1, .reusable = false}}, SHIFT(263),
+  [596] = {.entry = {.count = 1, .reusable = false}}, SHIFT(264),
+  [598] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__function_name, 1),
+  [600] = {.entry = {.count = 1, .reusable = true}}, SHIFT(260),
+  [602] = {.entry = {.count = 1, .reusable = true}}, SHIFT(261),
+  [604] = {.entry = {.count = 1, .reusable = true}}, SHIFT(262),
+  [606] = {.entry = {.count = 1, .reusable = true}}, SHIFT(39),
+  [608] = {.entry = {.count = 1, .reusable = true}}, SHIFT(204),
+  [610] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_insert_expression, 4),
+  [612] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__column_list_without_order, 3, .production_id = 9),
+  [614] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_create, 6),
+  [616] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym__multi_table_update, 4),
+  [618] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_statement, 1),
+  [620] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_program, 1),
+  [622] = {.entry = {.count = 1, .reusable = true}}, SHIFT(22),
+  [624] = {.entry = {.count = 1, .reusable = true}}, SHIFT(78),
+  [626] = {.entry = {.count = 1, .reusable = true}},  ACCEPT_INPUT(),
+  [628] = {.entry = {.count = 1, .reusable = true}}, SHIFT(127),
+  [630] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_insert_expression, 3),
+  [632] = {.entry = {.count = 1, .reusable = true}}, SHIFT(18),
+  [634] = {.entry = {.count = 1, .reusable = true}}, SHIFT(212),
+  [636] = {.entry = {.count = 1, .reusable = true}}, SHIFT(113),
+  [638] = {.entry = {.count = 1, .reusable = true}}, SHIFT(4),
+  [640] = {.entry = {.count = 1, .reusable = true}}, SHIFT(133),
+  [642] = {.entry = {.count = 1, .reusable = true}}, SHIFT(148),
+  [644] = {.entry = {.count = 1, .reusable = false}}, SHIFT(312),
+  [646] = {.entry = {.count = 1, .reusable = false}}, SHIFT(313),
+  [648] = {.entry = {.count = 1, .reusable = true}}, SHIFT(314),
+  [650] = {.entry = {.count = 1, .reusable = true}}, SHIFT(118),
+  [652] = {.entry = {.count = 1, .reusable = true}}, SHIFT(323),
+  [654] = {.entry = {.count = 1, .reusable = true}}, SHIFT(324),
+  [656] = {.entry = {.count = 1, .reusable = true}}, SHIFT(325),
+  [658] = {.entry = {.count = 1, .reusable = true}}, SHIFT(326),
 };
 
 #ifdef __cplusplus


Test patch:
diff --git a/test/corpus/subquery.txt b/test/corpus/subquery.txt
new file mode 100644
index 00000000..b91e0645
--- /dev/null
+++ b/test/corpus/subquery.txt
@@ -0,0 +1,36 @@
+==================
+Can parse subquery
+==================
+
+SELECT id
+FROM foo
+WHERE id < (
+  SELECT id
+  FROM bar
+  LIMIT 1);
+
+---
+
+(program
+ (statement
+  (select
+   (keyword_select)
+   (select_expression
+    (field (identifier))))
+  (from
+   (keyword_from)
+   (table_expression (identifier))
+   (where
+    (keyword_where)
+    (where_expression
+     (predicate
+      (field (identifier))
+      (subquery
+       (select
+        (keyword_select)
+        (select_expression
+         (field (identifier))))
+       (from
+        (keyword_from)
+        (table_expression (identifier))
+        (limit (keyword_limit) (literal))))))))))