diff --git a/go/vt/sqlparser/ast.go b/go/vt/sqlparser/ast.go index 889fff62d67..3e20fdb5d8b 100644 --- a/go/vt/sqlparser/ast.go +++ b/go/vt/sqlparser/ast.go @@ -177,11 +177,12 @@ type ( // DBDDL represents a CREATE, DROP, or ALTER database statement. DBDDL struct { - Action string - DBName string - IfExists bool - Collate string - Charset string + Action string + DBName string + IfExists bool + IfNotExists bool + Collate string + Charset string } // DDL represents a CREATE, ALTER, DROP, RENAME, TRUNCATE or ANALYZE statement. @@ -359,16 +360,16 @@ type ColumnType struct { Type string // Generic field options. - NotNull BoolVal - Autoincrement BoolVal + NotNull bool + Autoincrement bool Default Expr OnUpdate Expr Comment *Literal // Numeric field options Length *Literal - Unsigned BoolVal - Zerofill BoolVal + Unsigned bool + Zerofill bool Scale *Literal // Text field options @@ -991,7 +992,13 @@ func (node *SetTransaction) Format(buf *TrackedBuffer) { // Format formats the node. func (node *DBDDL) Format(buf *TrackedBuffer) { switch node.Action { - case CreateStr, AlterStr: + case CreateStr: + notExists := "" + if node.IfNotExists { + notExists = " if not exists" + } + buf.WriteString(fmt.Sprintf("%s database%s %v", node.Action, notExists, node.DBName)) + case AlterStr: buf.WriteString(fmt.Sprintf("%s database %s", node.Action, node.DBName)) case DropStr: exists := "" diff --git a/go/vt/sqlparser/parse_test.go b/go/vt/sqlparser/parse_test.go index 4ceccb55b82..ae410da7c68 100644 --- a/go/vt/sqlparser/parse_test.go +++ b/go/vt/sqlparser/parse_test.go @@ -1610,16 +1610,17 @@ var ( input: "create schema test_db", output: "create database test_db", }, { - input: "create database if not exists test_db", - output: "create database test_db", + input: "create database if not exists test_db", + }, { + input: "create schema if not exists test_db", + output: "create database if not exists test_db", }, { input: "drop database test_db", }, { input: "drop schema test_db", output: "drop database test_db", }, { - input: "drop database if exists test_db", - output: "drop database test_db", + input: "drop database if exists test_db", }, { input: "delete a.*, b.* from tbl_a a, tbl_b b where a.id = b.id and b.name = 'test'", output: "delete a, b from tbl_a as a, tbl_b as b where a.id = b.id and b.name = 'test'", diff --git a/go/vt/sqlparser/rewriter.go b/go/vt/sqlparser/rewriter.go index 02c328695c9..b9fe61e156e 100644 --- a/go/vt/sqlparser/rewriter.go +++ b/go/vt/sqlparser/rewriter.go @@ -98,10 +98,6 @@ func replaceColumnDefinitionName(newNode, parent SQLNode) { parent.(*ColumnDefinition).Name = newNode.(ColIdent) } -func replaceColumnTypeAutoincrement(newNode, parent SQLNode) { - parent.(*ColumnType).Autoincrement = newNode.(BoolVal) -} - func replaceColumnTypeComment(newNode, parent SQLNode) { parent.(*ColumnType).Comment = newNode.(*Literal) } @@ -114,10 +110,6 @@ func replaceColumnTypeLength(newNode, parent SQLNode) { parent.(*ColumnType).Length = newNode.(*Literal) } -func replaceColumnTypeNotNull(newNode, parent SQLNode) { - parent.(*ColumnType).NotNull = newNode.(BoolVal) -} - func replaceColumnTypeOnUpdate(newNode, parent SQLNode) { parent.(*ColumnType).OnUpdate = newNode.(Expr) } @@ -126,14 +118,6 @@ func replaceColumnTypeScale(newNode, parent SQLNode) { parent.(*ColumnType).Scale = newNode.(*Literal) } -func replaceColumnTypeUnsigned(newNode, parent SQLNode) { - parent.(*ColumnType).Unsigned = newNode.(BoolVal) -} - -func replaceColumnTypeZerofill(newNode, parent SQLNode) { - parent.(*ColumnType).Zerofill = newNode.(BoolVal) -} - type replaceColumnsItems int func (r *replaceColumnsItems) replace(newNode, container SQLNode) { @@ -967,15 +951,11 @@ func (a *application) apply(parent, node SQLNode, replacer replacerFunc) { a.apply(node, n.Name, replaceColumnDefinitionName) case *ColumnType: - a.apply(node, n.Autoincrement, replaceColumnTypeAutoincrement) a.apply(node, n.Comment, replaceColumnTypeComment) a.apply(node, n.Default, replaceColumnTypeDefault) a.apply(node, n.Length, replaceColumnTypeLength) - a.apply(node, n.NotNull, replaceColumnTypeNotNull) a.apply(node, n.OnUpdate, replaceColumnTypeOnUpdate) a.apply(node, n.Scale, replaceColumnTypeScale) - a.apply(node, n.Unsigned, replaceColumnTypeUnsigned) - a.apply(node, n.Zerofill, replaceColumnTypeZerofill) case Columns: replacer := replaceColumnsItems(0) diff --git a/go/vt/sqlparser/sql.go b/go/vt/sqlparser/sql.go index 7bd224b61a1..e3929ed5dc1 100644 --- a/go/vt/sqlparser/sql.go +++ b/go/vt/sqlparser/sql.go @@ -65,6 +65,7 @@ type yySymType struct { expr Expr exprs Exprs boolVal BoolVal + boolean bool literal *Literal colTuple ColTuple values Values @@ -992,13 +993,13 @@ var yyAct = [...]int{ 1, 1148, 1597, 1080, 1081, 1082, 1139, 1410, 1480, 1100, 286, 1564, 1513, 1381, 1051, 1042, 1176, 81, 559, 80, 1555, 286, 286, 286, 286, 286, 1181, 394, 1147, 873, - 1202, 604, 409, 286, 1050, 1049, 1521, 286, 1470, 1062, - 1253, 286, 1165, 1163, 1065, 286, 410, 1388, 1250, 1560, - 790, 1193, 788, 406, 407, 412, 789, 411, 1180, 1178, - 1179, 732, 1236, 787, 92, 1197, 1189, 792, 392, 1191, - 1190, 1239, 791, 1242, 786, 299, 886, 1247, 1247, 1226, - 313, 1228, 1012, 1229, 778, 1219, 1204, 1205, 1215, 1207, - 1203, 1090, 742, 1206, 84, 1225, 1289, 1248, 1288, 1096, + 1202, 604, 409, 286, 1050, 1049, 1521, 286, 1253, 1065, + 1470, 286, 1165, 1163, 1388, 286, 410, 1250, 1560, 790, + 788, 1193, 789, 406, 407, 412, 787, 411, 1180, 1178, + 1179, 732, 1236, 792, 92, 1197, 1189, 791, 392, 1191, + 1190, 1239, 786, 1242, 299, 886, 313, 1247, 1247, 1226, + 1012, 1228, 778, 1229, 1090, 1219, 1204, 1205, 1215, 1207, + 1203, 742, 84, 1206, 1289, 1225, 1288, 1248, 1096, 1062, 883, 1231, 296, 612, 1045, 1227, 613, 93, 301, 668, 1182, 287, 92, 92, 287, 1232, 434, 427, 1353, 93, 1258, 287, 1260, 1261, 1262, 979, 730, 1442, 1244, 1245, @@ -2857,11 +2858,11 @@ var yyPgo = [...]int{ 1106, 59, 1105, 38, 23, 1098, 12, 75, 29, 21, 6, 1097, 1096, 17, 72, 47, 73, 1095, 1090, 416, 1089, 1088, 37, 1086, 1083, 1082, 20, 1080, 95, 364, - 1079, 1078, 1076, 1074, 30, 1048, 1843, 40, 81, 1072, - 1071, 1064, 2751, 42, 54, 16, 1062, 1060, 1056, 41, - 1229, 36, 415, 1055, 31, 1054, 1052, 1047, 1043, 1036, - 1032, 1030, 173, 1029, 1028, 1027, 89, 26, 1024, 1020, - 63, 25, 1019, 1018, 1016, 50, 74, 1015, 1014, 52, + 1079, 1078, 1076, 1074, 1072, 30, 1048, 1843, 40, 81, + 1071, 1064, 1062, 2751, 42, 54, 16, 1060, 1056, 1055, + 41, 1229, 36, 415, 1054, 31, 1052, 1047, 1043, 1036, + 1032, 1030, 1029, 173, 1028, 1027, 1024, 89, 26, 63, + 25, 1020, 1019, 1018, 1016, 50, 74, 1015, 1014, 52, 1011, 1009, 19, 1000, 999, 998, 997, 995, 22, 7, 994, 15, 993, 8, 992, 27, 991, 4, 989, 9, 988, 3, 0, 987, 5, 44, 1, 982, 2, 980, @@ -2876,18 +2877,18 @@ var yyR1 = [...]int{ 8, 9, 4, 5, 5, 10, 10, 36, 36, 11, 12, 12, 12, 12, 213, 213, 59, 59, 60, 60, 107, 107, 13, 14, 14, 116, 116, 115, 115, 115, - 117, 117, 117, 117, 152, 152, 15, 15, 15, 15, + 117, 117, 117, 117, 153, 153, 15, 15, 15, 15, 15, 15, 15, 204, 204, 203, 201, 201, 200, 200, 199, 22, 184, 186, 186, 185, 185, 185, 185, 176, - 155, 155, 155, 155, 158, 158, 156, 156, 156, 156, - 156, 156, 156, 156, 156, 157, 157, 157, 157, 157, - 159, 159, 159, 159, 159, 160, 160, 160, 160, 160, - 160, 160, 160, 160, 160, 160, 160, 160, 160, 160, - 161, 161, 161, 161, 161, 161, 161, 161, 175, 175, - 162, 162, 170, 170, 171, 171, 171, 168, 168, 169, - 169, 172, 172, 172, 164, 164, 165, 165, 173, 173, - 166, 166, 166, 167, 167, 167, 174, 174, 174, 174, - 174, 163, 163, 177, 177, 194, 194, 193, 193, 193, + 156, 156, 156, 156, 159, 159, 157, 157, 157, 157, + 157, 157, 157, 157, 157, 158, 158, 158, 158, 158, + 160, 160, 160, 160, 160, 161, 161, 161, 161, 161, + 161, 161, 161, 161, 161, 161, 161, 161, 161, 161, + 162, 162, 162, 162, 162, 162, 162, 162, 175, 175, + 163, 163, 169, 169, 170, 170, 170, 172, 172, 173, + 173, 130, 130, 130, 165, 165, 166, 166, 171, 171, + 167, 167, 167, 168, 168, 168, 174, 174, 174, 174, + 174, 164, 164, 177, 177, 194, 194, 193, 193, 193, 183, 183, 190, 190, 190, 190, 190, 180, 180, 180, 181, 181, 179, 179, 182, 182, 192, 192, 191, 178, 178, 195, 195, 195, 195, 207, 208, 206, 206, 206, @@ -2901,17 +2902,17 @@ var yyR1 = [...]int{ 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 25, 123, 123, 125, 125, 121, 121, 124, 124, 122, 122, 122, 126, 126, 126, 127, - 127, 153, 153, 153, 26, 26, 28, 28, 29, 30, - 30, 147, 147, 148, 148, 31, 32, 37, 37, 37, + 127, 154, 154, 154, 26, 26, 28, 28, 29, 30, + 30, 148, 148, 149, 149, 31, 32, 37, 37, 37, 37, 37, 37, 39, 39, 39, 7, 7, 7, 7, 38, 38, 38, 6, 6, 27, 27, 27, 27, 20, 214, 33, 34, 34, 35, 35, 35, 41, 41, 41, 40, 40, 40, 46, 46, 48, 48, 48, 48, 48, 49, 49, 49, 49, 49, 49, 45, 45, 47, 47, - 47, 47, 139, 139, 139, 138, 138, 51, 51, 52, + 47, 47, 140, 140, 140, 139, 139, 51, 51, 52, 52, 53, 53, 54, 54, 54, 91, 68, 68, 106, 106, 108, 108, 55, 55, 55, 55, 56, 56, 57, - 57, 58, 58, 146, 146, 145, 145, 145, 144, 144, + 57, 58, 58, 147, 147, 146, 146, 146, 145, 145, 61, 61, 61, 63, 62, 62, 62, 62, 64, 64, 66, 66, 65, 65, 67, 69, 69, 69, 69, 69, 70, 70, 50, 50, 50, 50, 50, 50, 50, 50, @@ -2926,32 +2927,20 @@ var yyR1 = [...]int{ 78, 78, 78, 78, 78, 78, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 79, 215, 215, 82, 81, 81, 81, 81, 81, - 81, 81, 42, 42, 42, 42, 42, 151, 151, 154, - 154, 154, 154, 154, 154, 154, 154, 154, 154, 154, - 154, 154, 95, 95, 43, 43, 93, 93, 94, 96, + 81, 81, 42, 42, 42, 42, 42, 152, 152, 155, + 155, 155, 155, 155, 155, 155, 155, 155, 155, 155, + 155, 155, 95, 95, 43, 43, 93, 93, 94, 96, 96, 92, 92, 92, 75, 75, 75, 75, 75, 75, 75, 75, 77, 77, 77, 97, 97, 98, 98, 99, 99, 100, 100, 101, 102, 102, 102, 103, 103, 103, 103, 104, 104, 104, 74, 74, 74, 74, 105, 105, 105, 105, 109, 109, 86, 86, 88, 88, 87, 89, 110, 110, 113, 111, 111, 114, 114, 114, 114, 114, - 112, 112, 112, 141, 141, 141, 118, 118, 128, 128, - 129, 129, 119, 119, 130, 130, 130, 130, 130, 130, - 130, 130, 130, 130, 131, 131, 131, 132, 132, 133, - 133, 133, 140, 140, 136, 136, 137, 137, 142, 142, - 143, 143, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 134, 134, 134, 134, 134, 134, 134, 134, 134, - 134, 135, 135, 135, 135, 135, 135, 135, 135, 135, + 112, 112, 112, 142, 142, 142, 118, 118, 128, 128, + 129, 129, 119, 119, 131, 131, 131, 131, 131, 131, + 131, 131, 131, 131, 132, 132, 132, 133, 133, 134, + 134, 134, 141, 141, 137, 137, 138, 138, 143, 143, + 144, 144, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, @@ -2963,13 +2952,25 @@ var yyR1 = [...]int{ 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 135, 135, 135, 135, - 135, 135, 135, 135, 135, 135, 211, 212, 149, 150, - 150, 150, + 135, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 136, 136, 136, 136, + 136, 136, 136, 136, 136, 136, 211, 212, 150, 151, + 151, 151, } var yyR2 = [...]int{ @@ -3085,8 +3086,8 @@ var yyChk = [...]int{ 179, 180, -39, 158, 159, 32, 33, 130, 35, 58, 9, 263, 155, 154, 26, -210, 365, -35, 5, -99, 16, -3, -33, -214, -33, -33, -33, -33, -33, -33, - -184, -186, 58, 97, -133, 134, 78, 255, 131, 132, - 138, -136, -202, -135, 61, 62, 63, 273, 146, 305, + -184, -186, 58, 97, -134, 134, 78, 255, 131, 132, + 138, -137, -202, -136, 61, 62, 63, 273, 146, 305, 306, 174, 188, 182, 209, 201, 274, 307, 147, 199, 202, 242, 144, 308, 229, 236, 72, 177, 251, 309, 156, 197, 193, 310, 282, 191, 28, 311, 238, 214, @@ -3105,22 +3106,22 @@ var yyChk = [...]int{ 167, 160, 358, 252, 227, 279, 203, 200, 171, 359, 168, 169, 360, 363, 232, 233, 172, 276, 248, 198, 228, -119, 134, 255, 131, 233, 136, 132, 132, 133, - 134, 255, 131, 132, -65, -142, -202, -135, 134, 132, - 115, 202, 242, 124, 230, 238, -125, 239, 166, -153, + 134, 255, 131, 132, -65, -143, -202, -136, 134, 132, + 115, 202, 242, 124, 230, 238, -125, 239, 166, -154, 132, -121, 229, 232, 233, 172, -202, 240, 244, 243, - 234, -142, 176, -147, 181, -136, 179, -65, -37, 361, - 128, -149, -149, 231, 231, -149, -85, -50, -71, 81, + 234, -143, 176, -148, 181, -137, 179, -65, -37, 361, + 128, -150, -150, 231, 231, -150, -85, -50, -71, 81, -76, 30, 24, -75, -72, -92, -89, -90, 115, 116, 118, 117, 119, 104, 105, 112, 82, 120, -80, -78, -79, -81, 65, 64, 73, 66, 67, 68, 69, 74, - 75, 76, -136, -142, -87, -211, 48, 49, 264, 265, + 75, 76, -137, -143, -87, -211, 48, 49, 264, 265, 266, 267, 272, 268, 84, 37, 254, 262, 261, 260, 258, 259, 256, 257, 270, 271, 137, 255, 131, 110, - 263, -202, -135, -5, -4, -211, 6, 21, 22, -103, + 263, -202, -136, -5, -4, -211, 6, 21, 22, -103, 18, 17, -212, 60, -41, -48, 43, 44, -49, 22, - 36, 47, 45, -34, -47, 106, -50, -142, -47, -119, - -119, 12, -59, -60, -65, -67, -142, -111, -152, 176, - -114, 244, 243, -137, -112, -136, -134, 242, 202, 241, + 36, 47, 45, -34, -47, 106, -50, -143, -47, -119, + -119, 12, -59, -60, -65, -67, -143, -111, -153, 176, + -114, 244, 243, -138, -112, -137, -135, 242, 202, 241, 129, 280, 80, 23, 25, 224, 83, 115, 17, 84, 114, 264, 124, 52, 281, 256, 257, 254, 266, 267, 255, 230, 30, 11, 283, 26, 154, 22, 36, 108, @@ -3137,10 +3138,10 @@ var yyChk = [...]int{ -129, 132, -65, -202, -202, 124, 126, 129, 56, -23, -65, -128, 137, -202, -128, -128, -128, -65, 121, -65, -202, 31, -126, 97, 13, 255, -202, 166, 132, 167, - 134, -150, -211, -137, -180, 133, 34, 145, -150, 170, - 171, -150, -124, -123, 236, 237, 231, 235, 13, 171, - 231, 169, -150, 135, -136, -38, -136, 65, -7, -3, - -11, -10, -12, 89, -149, -149, 59, 80, 78, 79, + 134, -151, -211, -138, -180, 133, 34, 145, -151, 170, + 171, -151, -124, -123, 236, 237, 231, 235, 13, 171, + 231, 169, -151, 135, -137, -38, -137, 65, -7, -3, + -11, -10, -12, 89, -150, -150, 59, 80, 78, 79, 96, -50, -73, 99, 81, 97, 98, 83, 101, 100, 111, 104, 105, 106, 107, 108, 109, 110, 102, 103, 114, 89, 90, 91, 92, 93, 94, 95, -120, -211, @@ -3151,46 +3152,46 @@ var yyChk = [...]int{ -82, -215, -82, -215, -215, -82, -211, -211, -211, -211, -211, -211, -211, -99, -3, -33, -104, 20, 32, -50, -100, -101, -50, -99, 39, -45, -47, -49, 43, 44, - 71, 12, -139, -138, 23, -136, 65, 121, 12, -66, + 71, 12, -140, -139, 23, -137, 65, 121, 12, -66, 27, -65, -52, -53, -54, -55, -68, -91, -211, -65, -65, -59, -213, 59, 12, 57, -213, 59, 121, 59, - 176, -114, -152, -116, -115, 245, 247, 89, -141, -136, - 65, 30, 31, 60, 59, -65, -155, -158, -160, -159, - -161, -156, -157, 199, 200, 115, 203, 205, 206, 207, + 176, -114, -153, -116, -115, 245, 247, 89, -142, -137, + 65, 30, 31, 60, 59, -65, -156, -159, -161, -160, + -162, -157, -158, 199, 200, 115, 203, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 31, 156, 195, 196, 197, 198, 215, 216, 217, 218, 219, 220, 221, 222, 182, 201, 274, 183, 184, 185, 186, 187, 188, - 190, 191, 192, 193, 194, -202, -150, 134, -202, 81, - -202, -65, -65, -150, -150, -150, 168, 168, 132, 132, + 190, 191, 192, 193, 194, -202, -151, 134, -202, 81, + -202, -65, -65, -151, -151, -151, 168, 168, 132, 132, 173, -65, 59, 135, -59, 24, 56, -65, -202, -202, - -143, -142, -134, -150, -126, 65, -50, -150, -150, -150, - -65, -150, -150, -181, 12, 99, -150, -150, 12, -122, - 12, 99, -50, -127, 97, 56, -148, 179, 213, 362, + -144, -143, -135, -151, -126, 65, -50, -151, -151, -151, + -65, -151, -151, -181, 12, 99, -151, -151, 12, -122, + 12, 99, -50, -127, 97, 56, -149, 179, 213, 362, 363, 364, -50, -50, -50, -50, -83, 74, 81, 75, 76, -76, -84, -87, -90, 70, 99, 97, 98, 83, -76, -76, -76, -76, -76, -76, -76, -76, -76, -76, - -76, -76, -76, -76, -76, -151, -202, 65, -202, -75, - -75, -136, -46, 22, 36, -45, -137, -143, -134, -35, + -76, -76, -76, -76, -76, -152, -202, 65, -202, -75, + -75, -137, -46, 22, 36, -45, -138, -144, -135, -35, -212, -212, -99, -45, -45, -50, -50, -92, 65, -45, -92, 65, -45, -45, -40, 22, 36, -93, -94, 85, - -92, -136, -142, -212, -76, -136, -136, -45, -46, -46, + -92, -137, -143, -212, -76, -137, -137, -45, -46, -46, -45, -45, -103, -212, 10, 99, 59, 19, 59, -102, - 25, 26, -103, -77, -136, 66, 69, -51, 59, 12, - -49, -65, -138, 106, -143, -65, -107, 162, -65, 31, + 25, 26, -103, -77, -137, 66, 69, -51, 59, 12, + -49, -65, -139, 106, -144, -65, -107, 162, -65, 31, 59, -61, -63, -62, -64, 46, 50, 52, 47, 48, - 49, 53, -146, 23, -52, -3, -211, -145, 162, -144, - 23, -142, 65, -107, 57, -52, -65, -52, -67, -142, + 49, 53, -147, 23, -52, -3, -211, -146, 162, -145, + 23, -143, 65, -107, 57, -52, -65, -52, -67, -143, 106, -114, -116, 59, 246, 248, 249, 56, 77, -50, - -167, 114, -187, -188, -189, -137, 65, 66, -176, -177, + -168, 114, -187, -188, -189, -138, 65, 66, -176, -177, -178, -190, 148, -195, 139, 141, 138, -179, 149, 133, - 29, 60, -172, 74, 81, -168, 227, -162, 58, -162, - -162, -162, -162, -166, 202, -166, -166, -166, 58, 58, - -162, -162, -162, -170, 58, -170, -170, -171, 58, -171, - -140, 57, -65, -150, 24, -150, -130, 129, 126, 127, + 29, 60, -130, 74, 81, -172, 227, -163, 58, -163, + -163, -163, -163, -167, 202, -167, -167, -167, 58, 58, + -163, -163, -163, -169, 58, -169, -169, -170, 58, -170, + -141, 57, -65, -151, 24, -151, -131, 129, 126, 127, -198, 125, 224, 202, 72, 30, 16, 264, 162, 279, -202, 163, -65, -65, -65, -65, -65, 129, 126, -65, - -65, -65, -150, -65, -65, -126, -142, -142, 65, -65, - -136, 74, 75, 76, -84, -76, -76, -76, -44, 157, + -65, -65, -151, -65, -65, -126, -143, -143, 65, -65, + -137, 74, 75, 76, -84, -76, -76, -76, -44, 157, 80, -212, -212, -45, -45, -211, 121, -5, -103, -212, -212, 59, 57, 23, 12, 12, -212, 12, 12, -212, -212, -45, -96, -94, 87, -50, -212, 121, -212, 59, @@ -3198,44 +3199,44 @@ var yyChk = [...]int{ -101, -104, -118, 20, 12, 37, 37, -70, 13, -47, -52, -49, 121, -70, -74, 31, 37, -3, -211, -211, -110, -113, -92, -53, -54, -54, -53, -54, 46, 46, - 46, 51, 46, 51, 46, -62, -142, -212, -212, -3, - -69, 54, 136, 55, -211, -144, -70, -52, -70, -70, + 46, 51, 46, 51, 46, -62, -143, -212, -212, -3, + -69, 54, 136, 55, -211, -145, -70, -52, -70, -70, 121, -115, -117, 250, 247, 253, -202, 65, 59, -189, 89, 58, -202, 29, -179, -179, -182, -202, -182, 29, - -164, 30, 74, -169, 228, 66, -166, -166, -167, 31, - -167, -167, -167, -175, 65, -175, 66, 66, 56, -136, - -150, -149, -205, 144, 140, 148, 149, 142, 61, 62, - 63, 133, 29, 139, 141, 162, 138, -205, -131, -132, + -165, 30, 74, -173, 228, 66, -167, -167, -168, 31, + -168, -168, -168, -175, 65, -175, 66, 66, 56, -137, + -151, -150, -205, 144, 140, 148, 149, 142, 61, 62, + 63, 133, 29, 139, 141, 162, 138, -205, -132, -133, 135, 23, 133, 29, 162, -204, 57, 168, 224, 168, - 135, -150, -122, -122, -44, 80, -76, -76, -212, -212, - -46, -137, -99, -104, -154, 115, 199, 156, 197, 193, - 213, 204, 226, 195, 227, -151, -154, -76, -76, -76, - -76, 273, -99, 88, -50, 86, -137, -76, -76, 42, + 135, -151, -122, -122, -44, 80, -76, -76, -212, -212, + -46, -138, -99, -104, -155, 115, 199, 156, 197, 193, + 213, 204, 226, 195, 227, -152, -155, -76, -76, -76, + -76, 273, -99, 88, -50, 86, -138, -76, -76, 42, -65, -97, 14, -50, 106, -103, -109, 56, -110, -86, - -88, -87, -211, -105, -136, -108, -136, -70, 59, 89, + -88, -87, -211, -105, -137, -108, -137, -70, 59, 89, -57, -56, 56, 57, -58, 56, -56, 46, 46, -212, 133, 133, 133, -108, -99, -70, 247, 251, 252, -188, - -189, -192, -191, -136, -195, -182, -182, 58, -165, 56, - -76, 60, -167, -167, -202, 115, 60, 59, 60, 59, - 60, 59, -65, -149, -149, -65, -149, -136, -201, 276, - -203, -202, -136, -136, -136, -65, -126, -126, -76, -212, - -103, -212, -162, -162, -162, -171, -162, 187, -162, 187, + -189, -192, -191, -137, -195, -182, -182, 58, -166, 56, + -76, 60, -168, -168, -202, 115, 60, 59, 60, 59, + 60, 59, -65, -150, -150, -65, -150, -137, -201, 276, + -203, -202, -137, -137, -137, -65, -126, -126, -76, -212, + -103, -212, -163, -163, -163, -170, -163, 187, -163, 187, -212, -212, 20, 20, 20, 20, -211, -43, 269, -50, 59, 59, -98, 15, 17, 28, -109, 59, -212, -212, 59, 121, -212, 59, -99, -113, -50, -50, 58, -50, - -211, -211, -211, -212, -103, 60, 59, -162, -106, -136, - -173, 224, 10, -166, 65, -166, 66, 66, -150, 27, - -200, -199, -137, 58, 57, -104, -166, -202, -76, -76, + -211, -211, -211, -212, -103, 60, 59, -163, -106, -137, + -171, 224, 10, -167, 65, -167, 66, 66, -151, 27, + -200, -199, -138, 58, 57, -104, -167, -202, -76, -76, -76, -76, -76, -103, 65, -76, -76, -50, -85, 29, - -88, 37, -3, -136, -136, -136, -103, -106, -106, -212, - -106, -106, -145, -194, -193, 57, 143, 72, -191, 60, - 59, -174, 139, 29, 138, -79, -167, -167, 60, 60, + -88, 37, -3, -137, -137, -137, -103, -106, -106, -212, + -106, -106, -146, -194, -193, 57, 143, 72, -191, 60, + 59, -174, 139, 29, 138, -79, -168, -168, 60, 60, -211, 59, 89, -106, -65, -212, -212, -212, -212, -42, 99, 276, -212, -212, -212, 10, -86, 121, 60, -212, - -212, -212, -69, -193, -202, -183, 89, 65, 151, -136, - -163, 72, 29, 29, -196, -197, 162, -199, -189, 60, - -212, 274, 53, 277, -110, -136, 66, -65, 65, -212, - 59, -136, -204, 42, 275, 278, 58, -197, 37, -201, + -212, -212, -69, -193, -202, -183, 89, 65, 151, -137, + -164, 72, 29, 29, -196, -197, 162, -199, -189, 60, + -212, 274, 53, 277, -110, -137, 66, -65, 65, -212, + 59, -137, -204, 42, 275, 278, 58, -197, 37, -201, 42, -106, 164, 276, 60, 165, 277, -207, -208, 56, -211, 278, -208, 56, 11, 10, -76, 161, -206, 152, 147, 150, 31, -206, -212, -212, 146, 30, 74, @@ -4171,13 +4172,13 @@ yydefault: yyDollar = yyS[yypt-5 : yypt+1] //line sql.y:668 { - yyVAL.statement = &DBDDL{Action: CreateStr, DBName: string(yyDollar[4].colIdent.String())} + yyVAL.statement = &DBDDL{Action: CreateStr, DBName: string(yyDollar[4].colIdent.String()), IfNotExists: yyDollar[3].boolean} } case 82: yyDollar = yyS[yypt-5 : yypt+1] //line sql.y:672 { - yyVAL.statement = &DBDDL{Action: CreateStr, DBName: string(yyDollar[4].colIdent.String())} + yyVAL.statement = &DBDDL{Action: CreateStr, DBName: string(yyDollar[4].colIdent.String()), IfNotExists: yyDollar[3].boolean} } case 83: yyDollar = yyS[yypt-0 : yypt+1] @@ -4284,10 +4285,10 @@ yydefault: yyDollar = yyS[yypt-8 : yypt+1] //line sql.y:763 { - yyDollar[2].columnType.NotNull = yyDollar[3].boolVal + yyDollar[2].columnType.NotNull = yyDollar[3].boolean yyDollar[2].columnType.Default = yyDollar[4].optVal yyDollar[2].columnType.OnUpdate = yyDollar[5].optVal - yyDollar[2].columnType.Autoincrement = yyDollar[6].boolVal + yyDollar[2].columnType.Autoincrement = yyDollar[6].boolean yyDollar[2].columnType.KeyOpt = yyDollar[7].colKeyOpt yyDollar[2].columnType.Comment = yyDollar[8].literal yyVAL.columnDefinition = &ColumnDefinition{Name: yyDollar[1].colIdent, Type: yyDollar[2].columnType} @@ -4297,8 +4298,8 @@ yydefault: //line sql.y:774 { yyVAL.columnType = yyDollar[1].columnType - yyVAL.columnType.Unsigned = yyDollar[2].boolVal - yyVAL.columnType.Zerofill = yyDollar[3].boolVal + yyVAL.columnType.Unsigned = yyDollar[2].boolean + yyVAL.columnType.Zerofill = yyDollar[3].boolean } case 104: yyDollar = yyS[yypt-2 : yypt+1] @@ -4642,43 +4643,43 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:1034 { - yyVAL.boolVal = BoolVal(false) + yyVAL.boolean = false } case 158: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1038 { - yyVAL.boolVal = BoolVal(true) + yyVAL.boolean = true } case 159: yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:1043 { - yyVAL.boolVal = BoolVal(false) + yyVAL.boolean = false } case 160: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1047 { - yyVAL.boolVal = BoolVal(true) + yyVAL.boolean = true } case 161: yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:1053 { - yyVAL.boolVal = BoolVal(false) + yyVAL.boolean = false } case 162: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1057 { - yyVAL.boolVal = BoolVal(false) + yyVAL.boolean = false } case 163: yyDollar = yyS[yypt-2 : yypt+1] //line sql.y:1061 { - yyVAL.boolVal = BoolVal(true) + yyVAL.boolean = true } case 164: yyDollar = yyS[yypt-0 : yypt+1] @@ -4708,13 +4709,13 @@ yydefault: yyDollar = yyS[yypt-0 : yypt+1] //line sql.y:1084 { - yyVAL.boolVal = BoolVal(false) + yyVAL.boolean = false } case 169: yyDollar = yyS[yypt-1 : yypt+1] //line sql.y:1088 { - yyVAL.boolVal = BoolVal(true) + yyVAL.boolean = true } case 170: yyDollar = yyS[yypt-0 : yypt+1] @@ -5277,168 +5278,160 @@ yydefault: yyDollar = yyS[yypt-4 : yypt+1] //line sql.y:1551 { - var exists bool - if yyDollar[3].byt != 0 { - exists = true - } - yyVAL.statement = &DDL{Action: DropStr, FromTables: yyDollar[4].tableNames, IfExists: exists} + yyVAL.statement = &DDL{Action: DropStr, FromTables: yyDollar[4].tableNames, IfExists: yyDollar[3].boolean} } case 271: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:1559 +//line sql.y:1555 { // Change this to an alter statement yyVAL.statement = &DDL{Action: AlterStr, Table: yyDollar[5].tableName} } case 272: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1564 +//line sql.y:1560 { - var exists bool - if yyDollar[3].byt != 0 { - exists = true - } - yyVAL.statement = &DDL{Action: DropStr, FromTables: TableNames{yyDollar[4].tableName.ToViewName()}, IfExists: exists} + yyVAL.statement = &DDL{Action: DropStr, FromTables: TableNames{yyDollar[4].tableName.ToViewName()}, IfExists: yyDollar[3].boolean} } case 273: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1572 +//line sql.y:1564 { - yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].colIdent.String())} + yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].colIdent.String()), IfExists: yyDollar[3].boolean} } case 274: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1576 +//line sql.y:1568 { - yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].colIdent.String())} + yyVAL.statement = &DBDDL{Action: DropStr, DBName: string(yyDollar[4].colIdent.String()), IfExists: yyDollar[3].boolean} } case 275: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1582 +//line sql.y:1574 { yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[3].tableName} } case 276: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1586 +//line sql.y:1578 { yyVAL.statement = &DDL{Action: TruncateStr, Table: yyDollar[2].tableName} } case 277: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1591 +//line sql.y:1583 { yyVAL.statement = &OtherRead{} } case 278: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1597 +//line sql.y:1589 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].colIdent.String())} } case 279: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1602 +//line sql.y:1594 { showTablesOpt := &ShowTablesOpt{Filter: yyDollar[4].showFilter} yyVAL.statement = &Show{Type: CharsetStr, ShowTablesOpt: showTablesOpt} } case 280: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1607 +//line sql.y:1599 { showTablesOpt := &ShowTablesOpt{Filter: yyDollar[3].showFilter} yyVAL.statement = &Show{Type: string(yyDollar[2].bytes), ShowTablesOpt: showTablesOpt} } case 281: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1612 +//line sql.y:1604 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 282: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1617 +//line sql.y:1609 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].colIdent.String())} } case 283: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1621 +//line sql.y:1613 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 284: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1625 +//line sql.y:1617 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes), Table: yyDollar[4].tableName} } case 285: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1629 +//line sql.y:1621 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 286: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1633 +//line sql.y:1625 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 287: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1637 +//line sql.y:1629 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 288: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1641 +//line sql.y:1633 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 289: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:1645 +//line sql.y:1637 { showTablesOpt := &ShowTablesOpt{DbName: yyDollar[6].str, Filter: yyDollar[7].showFilter} yyVAL.statement = &Show{Extended: string(yyDollar[2].str), Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt, OnTable: yyDollar[5].tableName} } case 290: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1650 +//line sql.y:1642 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 291: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1654 +//line sql.y:1646 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 292: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1658 +//line sql.y:1650 { yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} } case 293: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1662 +//line sql.y:1654 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 294: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:1666 +//line sql.y:1658 { showTablesOpt := &ShowTablesOpt{Full: yyDollar[2].str, DbName: yyDollar[6].str, Filter: yyDollar[7].showFilter} yyVAL.statement = &Show{Type: string(yyDollar[3].str), ShowTablesOpt: showTablesOpt, OnTable: yyDollar[5].tableName} } case 295: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1671 +//line sql.y:1663 { // this is ugly, but I couldn't find a better way for now if yyDollar[3].str == "processlist" { @@ -5450,843 +5443,843 @@ yydefault: } case 296: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1681 +//line sql.y:1673 { yyVAL.statement = &Show{Scope: yyDollar[2].str, Type: string(yyDollar[3].bytes)} } case 297: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1685 +//line sql.y:1677 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 298: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1689 +//line sql.y:1681 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes), ShowCollationFilterOpt: yyDollar[4].expr} } case 299: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:1693 +//line sql.y:1685 { showTablesOpt := &ShowTablesOpt{Filter: yyDollar[4].showFilter} yyVAL.statement = &Show{Scope: string(yyDollar[2].bytes), Type: string(yyDollar[3].bytes), ShowTablesOpt: showTablesOpt} } case 300: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1698 +//line sql.y:1690 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 301: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1702 +//line sql.y:1694 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes)} } case 302: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1706 +//line sql.y:1698 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes) + " " + string(yyDollar[3].bytes), OnTable: yyDollar[5].tableName} } case 303: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1710 +//line sql.y:1702 { yyVAL.statement = &Show{Type: string(yyDollar[2].bytes)} } case 304: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1724 +//line sql.y:1716 { yyVAL.statement = &Show{Type: string(yyDollar[2].colIdent.String())} } case 305: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1730 +//line sql.y:1722 { yyVAL.str = string(yyDollar[1].bytes) } case 306: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1734 +//line sql.y:1726 { yyVAL.str = string(yyDollar[1].bytes) } case 307: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1740 +//line sql.y:1732 { yyVAL.str = "" } case 308: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1744 +//line sql.y:1736 { yyVAL.str = "extended " } case 309: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1750 +//line sql.y:1742 { yyVAL.str = "" } case 310: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1754 +//line sql.y:1746 { yyVAL.str = "full " } case 311: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1760 +//line sql.y:1752 { yyVAL.str = string(yyDollar[1].bytes) } case 312: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1764 +//line sql.y:1756 { yyVAL.str = string(yyDollar[1].bytes) } case 313: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1770 +//line sql.y:1762 { yyVAL.str = "" } case 314: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1774 +//line sql.y:1766 { yyVAL.str = yyDollar[2].tableIdent.v } case 315: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1778 +//line sql.y:1770 { yyVAL.str = yyDollar[2].tableIdent.v } case 316: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1784 +//line sql.y:1776 { yyVAL.showFilter = nil } case 317: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1788 +//line sql.y:1780 { yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)} } case 318: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1792 +//line sql.y:1784 { yyVAL.showFilter = &ShowFilter{Filter: yyDollar[2].expr} } case 319: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1798 +//line sql.y:1790 { yyVAL.showFilter = nil } case 320: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1802 +//line sql.y:1794 { yyVAL.showFilter = &ShowFilter{Like: string(yyDollar[2].bytes)} } case 321: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1808 +//line sql.y:1800 { yyVAL.str = "" } case 322: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1812 +//line sql.y:1804 { yyVAL.str = SessionStr } case 323: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1816 +//line sql.y:1808 { yyVAL.str = GlobalStr } case 324: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1822 +//line sql.y:1814 { yyVAL.statement = &Use{DBName: yyDollar[2].tableIdent} } case 325: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1826 +//line sql.y:1818 { yyVAL.statement = &Use{DBName: TableIdent{v: ""}} } case 326: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1832 +//line sql.y:1824 { yyVAL.statement = &Begin{} } case 327: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1836 +//line sql.y:1828 { yyVAL.statement = &Begin{} } case 328: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1842 +//line sql.y:1834 { yyVAL.statement = &Commit{} } case 329: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1848 +//line sql.y:1840 { yyVAL.statement = &Rollback{} } case 330: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:1852 +//line sql.y:1844 { yyVAL.statement = &SRollback{Name: yyDollar[5].colIdent} } case 331: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1857 +//line sql.y:1849 { yyVAL.empty = struct{}{} } case 332: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1859 +//line sql.y:1851 { yyVAL.empty = struct{}{} } case 333: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1862 +//line sql.y:1854 { yyVAL.empty = struct{}{} } case 334: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1864 +//line sql.y:1856 { yyVAL.empty = struct{}{} } case 335: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1869 +//line sql.y:1861 { yyVAL.statement = &Savepoint{Name: yyDollar[2].colIdent} } case 336: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1875 +//line sql.y:1867 { yyVAL.statement = &Release{Name: yyDollar[3].colIdent} } case 337: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1880 +//line sql.y:1872 { yyVAL.str = "" } case 338: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1884 +//line sql.y:1876 { yyVAL.str = JSONStr } case 339: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1888 +//line sql.y:1880 { yyVAL.str = TreeStr } case 340: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1892 +//line sql.y:1884 { yyVAL.str = VitessStr } case 341: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1896 +//line sql.y:1888 { yyVAL.str = TraditionalStr } case 342: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1900 +//line sql.y:1892 { yyVAL.str = AnalyzeStr } case 343: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1906 +//line sql.y:1898 { yyVAL.bytes = yyDollar[1].bytes } case 344: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1910 +//line sql.y:1902 { yyVAL.bytes = yyDollar[1].bytes } case 345: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1914 +//line sql.y:1906 { yyVAL.bytes = yyDollar[1].bytes } case 346: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1920 +//line sql.y:1912 { yyVAL.statement = yyDollar[1].selStmt } case 347: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1924 +//line sql.y:1916 { yyVAL.statement = yyDollar[1].statement } case 348: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1928 +//line sql.y:1920 { yyVAL.statement = yyDollar[1].statement } case 349: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1932 +//line sql.y:1924 { yyVAL.statement = yyDollar[1].statement } case 350: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1937 +//line sql.y:1929 { yyVAL.str = "" } case 351: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1941 +//line sql.y:1933 { yyVAL.str = "" } case 352: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:1945 +//line sql.y:1937 { yyVAL.str = "" } case 353: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1951 +//line sql.y:1943 { yyVAL.statement = &OtherRead{} } case 354: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1955 +//line sql.y:1947 { yyVAL.statement = &Explain{Type: yyDollar[2].str, Statement: yyDollar[3].statement} } case 355: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1961 +//line sql.y:1953 { yyVAL.statement = &OtherAdmin{} } case 356: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1965 +//line sql.y:1957 { yyVAL.statement = &OtherAdmin{} } case 357: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1969 +//line sql.y:1961 { yyVAL.statement = &OtherAdmin{} } case 358: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:1973 +//line sql.y:1965 { yyVAL.statement = &OtherAdmin{} } case 359: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1979 +//line sql.y:1971 { yyVAL.statement = &DDL{Action: FlushStr} } case 360: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1983 +//line sql.y:1975 { setAllowComments(yylex, true) } case 361: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1987 +//line sql.y:1979 { yyVAL.bytes2 = yyDollar[2].bytes2 setAllowComments(yylex, false) } case 362: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:1993 +//line sql.y:1985 { yyVAL.bytes2 = nil } case 363: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:1997 +//line sql.y:1989 { yyVAL.bytes2 = append(yyDollar[1].bytes2, yyDollar[2].bytes) } case 364: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2003 +//line sql.y:1995 { yyVAL.str = UnionStr } case 365: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2007 +//line sql.y:1999 { yyVAL.str = UnionAllStr } case 366: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2011 +//line sql.y:2003 { yyVAL.str = UnionDistinctStr } case 367: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2016 +//line sql.y:2008 { yyVAL.str = "" } case 368: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2020 +//line sql.y:2012 { yyVAL.str = SQLNoCacheStr } case 369: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2024 +//line sql.y:2016 { yyVAL.str = SQLCacheStr } case 370: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2029 +//line sql.y:2021 { yyVAL.str = "" } case 371: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2033 +//line sql.y:2025 { yyVAL.str = DistinctStr } case 372: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2037 +//line sql.y:2029 { yyVAL.str = DistinctStr } case 373: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2042 +//line sql.y:2034 { yyVAL.selectExprs = nil } case 374: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2046 +//line sql.y:2038 { yyVAL.selectExprs = yyDollar[1].selectExprs } case 375: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2051 +//line sql.y:2043 { yyVAL.strs = nil } case 376: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2055 +//line sql.y:2047 { yyVAL.strs = []string{yyDollar[1].str} } case 377: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2059 +//line sql.y:2051 { // TODO: This is a hack since I couldn't get it to work in a nicer way. I got 'conflicts: 8 shift/reduce' yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str} } case 378: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2063 +//line sql.y:2055 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str} } case 379: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2067 +//line sql.y:2059 { yyVAL.strs = []string{yyDollar[1].str, yyDollar[2].str, yyDollar[3].str, yyDollar[4].str} } case 380: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2073 +//line sql.y:2065 { yyVAL.str = SQLNoCacheStr } case 381: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2077 +//line sql.y:2069 { yyVAL.str = SQLCacheStr } case 382: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2081 +//line sql.y:2073 { yyVAL.str = DistinctStr } case 383: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2085 +//line sql.y:2077 { yyVAL.str = DistinctStr } case 384: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2089 +//line sql.y:2081 { yyVAL.str = StraightJoinHint } case 385: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2093 +//line sql.y:2085 { yyVAL.str = SQLCalcFoundRowsStr } case 386: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2099 +//line sql.y:2091 { yyVAL.selectExprs = SelectExprs{yyDollar[1].selectExpr} } case 387: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2103 +//line sql.y:2095 { yyVAL.selectExprs = append(yyVAL.selectExprs, yyDollar[3].selectExpr) } case 388: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2109 +//line sql.y:2101 { yyVAL.selectExpr = &StarExpr{} } case 389: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2113 +//line sql.y:2105 { yyVAL.selectExpr = &AliasedExpr{Expr: yyDollar[1].expr, As: yyDollar[2].colIdent} } case 390: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2117 +//line sql.y:2109 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Name: yyDollar[1].tableIdent}} } case 391: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2121 +//line sql.y:2113 { yyVAL.selectExpr = &StarExpr{TableName: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}} } case 392: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2126 +//line sql.y:2118 { yyVAL.colIdent = ColIdent{} } case 393: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2130 +//line sql.y:2122 { yyVAL.colIdent = yyDollar[1].colIdent } case 394: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2134 +//line sql.y:2126 { yyVAL.colIdent = yyDollar[2].colIdent } case 396: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2141 +//line sql.y:2133 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 397: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2146 +//line sql.y:2138 { yyVAL.tableExprs = TableExprs{&AliasedTableExpr{Expr: TableName{Name: NewTableIdent("dual")}}} } case 398: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2150 +//line sql.y:2142 { yyVAL.tableExprs = yyDollar[2].tableExprs } case 399: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2156 +//line sql.y:2148 { yyVAL.tableExprs = TableExprs{yyDollar[1].tableExpr} } case 400: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2160 +//line sql.y:2152 { yyVAL.tableExprs = append(yyVAL.tableExprs, yyDollar[3].tableExpr) } case 403: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2170 +//line sql.y:2162 { yyVAL.tableExpr = yyDollar[1].aliasedTableName } case 404: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2174 +//line sql.y:2166 { yyVAL.tableExpr = &AliasedTableExpr{Expr: yyDollar[1].subquery, As: yyDollar[3].tableIdent} } case 405: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2178 +//line sql.y:2170 { yyVAL.tableExpr = &ParenTableExpr{Exprs: yyDollar[2].tableExprs} } case 406: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2184 +//line sql.y:2176 { yyVAL.subquery = &Subquery{yyDollar[2].selStmt} } case 407: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2190 +//line sql.y:2182 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, As: yyDollar[2].tableIdent, Hints: yyDollar[3].indexHints} } case 408: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:2194 +//line sql.y:2186 { yyVAL.aliasedTableName = &AliasedTableExpr{Expr: yyDollar[1].tableName, Partitions: yyDollar[4].partitions, As: yyDollar[6].tableIdent, Hints: yyDollar[7].indexHints} } case 409: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2200 +//line sql.y:2192 { yyVAL.columns = Columns{yyDollar[1].colIdent} } case 410: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2204 +//line sql.y:2196 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } case 411: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2210 +//line sql.y:2202 { yyVAL.partitions = Partitions{yyDollar[1].colIdent} } case 412: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2214 +//line sql.y:2206 { yyVAL.partitions = append(yyVAL.partitions, yyDollar[3].colIdent) } case 413: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2227 +//line sql.y:2219 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 414: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2231 +//line sql.y:2223 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 415: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2235 +//line sql.y:2227 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr, Condition: yyDollar[4].joinCondition} } case 416: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2239 +//line sql.y:2231 { yyVAL.tableExpr = &JoinTableExpr{LeftExpr: yyDollar[1].tableExpr, Join: yyDollar[2].str, RightExpr: yyDollar[3].tableExpr} } case 417: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2245 +//line sql.y:2237 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } case 418: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2247 +//line sql.y:2239 { yyVAL.joinCondition = JoinCondition{Using: yyDollar[3].columns} } case 419: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2251 +//line sql.y:2243 { yyVAL.joinCondition = JoinCondition{} } case 420: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2253 +//line sql.y:2245 { yyVAL.joinCondition = yyDollar[1].joinCondition } case 421: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2257 +//line sql.y:2249 { yyVAL.joinCondition = JoinCondition{} } case 422: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2259 +//line sql.y:2251 { yyVAL.joinCondition = JoinCondition{On: yyDollar[2].expr} } case 423: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2262 +//line sql.y:2254 { yyVAL.empty = struct{}{} } case 424: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2264 +//line sql.y:2256 { yyVAL.empty = struct{}{} } case 425: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2267 +//line sql.y:2259 { yyVAL.tableIdent = NewTableIdent("") } case 426: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2271 +//line sql.y:2263 { yyVAL.tableIdent = yyDollar[1].tableIdent } case 427: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2275 +//line sql.y:2267 { yyVAL.tableIdent = yyDollar[2].tableIdent } case 429: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2282 +//line sql.y:2274 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } case 430: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2288 +//line sql.y:2280 { yyVAL.str = JoinStr } case 431: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2292 +//line sql.y:2284 { yyVAL.str = JoinStr } case 432: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2296 +//line sql.y:2288 { yyVAL.str = JoinStr } case 433: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2302 +//line sql.y:2294 { yyVAL.str = StraightJoinStr } case 434: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2308 +//line sql.y:2300 { yyVAL.str = LeftJoinStr } case 435: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2312 +//line sql.y:2304 { yyVAL.str = LeftJoinStr } case 436: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2316 +//line sql.y:2308 { yyVAL.str = RightJoinStr } case 437: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2320 +//line sql.y:2312 { yyVAL.str = RightJoinStr } case 438: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2326 +//line sql.y:2318 { yyVAL.str = NaturalJoinStr } case 439: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2330 +//line sql.y:2322 { if yyDollar[2].str == LeftJoinStr { yyVAL.str = NaturalLeftJoinStr @@ -6296,487 +6289,487 @@ yydefault: } case 440: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2340 +//line sql.y:2332 { yyVAL.tableName = yyDollar[2].tableName } case 441: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2344 +//line sql.y:2336 { yyVAL.tableName = yyDollar[1].tableName } case 442: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2350 +//line sql.y:2342 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } case 443: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2354 +//line sql.y:2346 { yyVAL.tableName = TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent} } case 444: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2360 +//line sql.y:2352 { yyVAL.tableName = TableName{Name: yyDollar[1].tableIdent} } case 445: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2365 +//line sql.y:2357 { yyVAL.indexHints = nil } case 446: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2369 +//line sql.y:2361 { yyVAL.indexHints = &IndexHints{Type: UseStr, Indexes: yyDollar[4].columns} } case 447: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2373 +//line sql.y:2365 { yyVAL.indexHints = &IndexHints{Type: UseStr} } case 448: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2377 +//line sql.y:2369 { yyVAL.indexHints = &IndexHints{Type: IgnoreStr, Indexes: yyDollar[4].columns} } case 449: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2381 +//line sql.y:2373 { yyVAL.indexHints = &IndexHints{Type: ForceStr, Indexes: yyDollar[4].columns} } case 450: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2386 +//line sql.y:2378 { yyVAL.expr = nil } case 451: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2390 +//line sql.y:2382 { yyVAL.expr = yyDollar[2].expr } case 452: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2396 +//line sql.y:2388 { yyVAL.expr = yyDollar[1].expr } case 453: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2400 +//line sql.y:2392 { yyVAL.expr = &AndExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } case 454: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2404 +//line sql.y:2396 { yyVAL.expr = &OrExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } case 455: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2408 +//line sql.y:2400 { yyVAL.expr = &XorExpr{Left: yyDollar[1].expr, Right: yyDollar[3].expr} } case 456: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2412 +//line sql.y:2404 { yyVAL.expr = &NotExpr{Expr: yyDollar[2].expr} } case 457: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2416 +//line sql.y:2408 { yyVAL.expr = &IsExpr{Operator: yyDollar[3].str, Expr: yyDollar[1].expr} } case 458: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2420 +//line sql.y:2412 { yyVAL.expr = yyDollar[1].expr } case 459: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2424 +//line sql.y:2416 { yyVAL.expr = &Default{ColName: yyDollar[2].str} } case 460: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2430 +//line sql.y:2422 { yyVAL.str = "" } case 461: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2434 +//line sql.y:2426 { yyVAL.str = string(yyDollar[2].colIdent.String()) } case 462: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2440 +//line sql.y:2432 { yyVAL.boolVal = BoolVal(true) } case 463: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2444 +//line sql.y:2436 { yyVAL.boolVal = BoolVal(false) } case 464: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2450 +//line sql.y:2442 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: yyDollar[2].str, Right: yyDollar[3].expr} } case 465: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2454 +//line sql.y:2446 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: InStr, Right: yyDollar[3].colTuple} } case 466: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2458 +//line sql.y:2450 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotInStr, Right: yyDollar[4].colTuple} } case 467: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2462 +//line sql.y:2454 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: LikeStr, Right: yyDollar[3].expr, Escape: yyDollar[4].expr} } case 468: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2466 +//line sql.y:2458 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotLikeStr, Right: yyDollar[4].expr, Escape: yyDollar[5].expr} } case 469: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2470 +//line sql.y:2462 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: RegexpStr, Right: yyDollar[3].expr} } case 470: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2474 +//line sql.y:2466 { yyVAL.expr = &ComparisonExpr{Left: yyDollar[1].expr, Operator: NotRegexpStr, Right: yyDollar[4].expr} } case 471: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2478 +//line sql.y:2470 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: BetweenStr, From: yyDollar[3].expr, To: yyDollar[5].expr} } case 472: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2482 +//line sql.y:2474 { yyVAL.expr = &RangeCond{Left: yyDollar[1].expr, Operator: NotBetweenStr, From: yyDollar[4].expr, To: yyDollar[6].expr} } case 473: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2486 +//line sql.y:2478 { yyVAL.expr = &ExistsExpr{Subquery: yyDollar[2].subquery} } case 474: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2492 +//line sql.y:2484 { yyVAL.str = IsNullStr } case 475: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2496 +//line sql.y:2488 { yyVAL.str = IsNotNullStr } case 476: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2500 +//line sql.y:2492 { yyVAL.str = IsTrueStr } case 477: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2504 +//line sql.y:2496 { yyVAL.str = IsNotTrueStr } case 478: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2508 +//line sql.y:2500 { yyVAL.str = IsFalseStr } case 479: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2512 +//line sql.y:2504 { yyVAL.str = IsNotFalseStr } case 480: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2518 +//line sql.y:2510 { yyVAL.str = EqualStr } case 481: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2522 +//line sql.y:2514 { yyVAL.str = LessThanStr } case 482: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2526 +//line sql.y:2518 { yyVAL.str = GreaterThanStr } case 483: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2530 +//line sql.y:2522 { yyVAL.str = LessEqualStr } case 484: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2534 +//line sql.y:2526 { yyVAL.str = GreaterEqualStr } case 485: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2538 +//line sql.y:2530 { yyVAL.str = NotEqualStr } case 486: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2542 +//line sql.y:2534 { yyVAL.str = NullSafeEqualStr } case 487: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2547 +//line sql.y:2539 { yyVAL.expr = nil } case 488: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2551 +//line sql.y:2543 { yyVAL.expr = yyDollar[2].expr } case 489: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2557 +//line sql.y:2549 { yyVAL.colTuple = yyDollar[1].valTuple } case 490: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2561 +//line sql.y:2553 { yyVAL.colTuple = yyDollar[1].subquery } case 491: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2565 +//line sql.y:2557 { yyVAL.colTuple = ListArg(yyDollar[1].bytes) } case 492: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2571 +//line sql.y:2563 { yyVAL.subquery = &Subquery{yyDollar[2].selStmt} } case 493: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2577 +//line sql.y:2569 { yyVAL.exprs = Exprs{yyDollar[1].expr} } case 494: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2581 +//line sql.y:2573 { yyVAL.exprs = append(yyDollar[1].exprs, yyDollar[3].expr) } case 495: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2587 +//line sql.y:2579 { yyVAL.expr = yyDollar[1].expr } case 496: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2591 +//line sql.y:2583 { yyVAL.expr = yyDollar[1].boolVal } case 497: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2595 +//line sql.y:2587 { yyVAL.expr = yyDollar[1].colName } case 498: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2599 +//line sql.y:2591 { yyVAL.expr = yyDollar[1].expr } case 499: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2603 +//line sql.y:2595 { yyVAL.expr = yyDollar[1].subquery } case 500: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2607 +//line sql.y:2599 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitAndStr, Right: yyDollar[3].expr} } case 501: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2611 +//line sql.y:2603 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitOrStr, Right: yyDollar[3].expr} } case 502: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2615 +//line sql.y:2607 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: BitXorStr, Right: yyDollar[3].expr} } case 503: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2619 +//line sql.y:2611 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: PlusStr, Right: yyDollar[3].expr} } case 504: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2623 +//line sql.y:2615 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MinusStr, Right: yyDollar[3].expr} } case 505: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2627 +//line sql.y:2619 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: MultStr, Right: yyDollar[3].expr} } case 506: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2631 +//line sql.y:2623 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: DivStr, Right: yyDollar[3].expr} } case 507: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2635 +//line sql.y:2627 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: IntDivStr, Right: yyDollar[3].expr} } case 508: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2639 +//line sql.y:2631 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } case 509: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2643 +//line sql.y:2635 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ModStr, Right: yyDollar[3].expr} } case 510: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2647 +//line sql.y:2639 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftLeftStr, Right: yyDollar[3].expr} } case 511: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2651 +//line sql.y:2643 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].expr, Operator: ShiftRightStr, Right: yyDollar[3].expr} } case 512: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2655 +//line sql.y:2647 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONExtractOp, Right: yyDollar[3].expr} } case 513: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2659 +//line sql.y:2651 { yyVAL.expr = &BinaryExpr{Left: yyDollar[1].colName, Operator: JSONUnquoteExtractOp, Right: yyDollar[3].expr} } case 514: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2663 +//line sql.y:2655 { yyVAL.expr = &CollateExpr{Expr: yyDollar[1].expr, Charset: yyDollar[3].str} } case 515: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2667 +//line sql.y:2659 { yyVAL.expr = &UnaryExpr{Operator: BinaryStr, Expr: yyDollar[2].expr} } case 516: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2671 +//line sql.y:2663 { yyVAL.expr = &UnaryExpr{Operator: UBinaryStr, Expr: yyDollar[2].expr} } case 517: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2675 +//line sql.y:2667 { yyVAL.expr = &UnaryExpr{Operator: Utf8Str, Expr: yyDollar[2].expr} } case 518: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2679 +//line sql.y:2671 { yyVAL.expr = &UnaryExpr{Operator: Utf8mb4Str, Expr: yyDollar[2].expr} } case 519: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2683 +//line sql.y:2675 { yyVAL.expr = &UnaryExpr{Operator: Latin1Str, Expr: yyDollar[2].expr} } case 520: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2687 +//line sql.y:2679 { if num, ok := yyDollar[2].expr.(*Literal); ok && num.Type == IntVal { yyVAL.expr = num @@ -6786,7 +6779,7 @@ yydefault: } case 521: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2695 +//line sql.y:2687 { if num, ok := yyDollar[2].expr.(*Literal); ok && num.Type == IntVal { // Handle double negative @@ -6802,19 +6795,19 @@ yydefault: } case 522: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2709 +//line sql.y:2701 { yyVAL.expr = &UnaryExpr{Operator: TildaStr, Expr: yyDollar[2].expr} } case 523: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2713 +//line sql.y:2705 { yyVAL.expr = &UnaryExpr{Operator: BangStr, Expr: yyDollar[2].expr} } case 524: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2717 +//line sql.y:2709 { // This rule prevents the usage of INTERVAL // as a function. If support is needed for that, @@ -6824,325 +6817,325 @@ yydefault: } case 529: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2735 +//line sql.y:2727 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Exprs: yyDollar[3].selectExprs} } case 530: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2739 +//line sql.y:2731 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs} } case 531: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2743 +//line sql.y:2735 { yyVAL.expr = &FuncExpr{Name: yyDollar[1].colIdent, Distinct: true, Exprs: yyDollar[4].selectExprs} } case 532: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2747 +//line sql.y:2739 { yyVAL.expr = &FuncExpr{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].colIdent, Exprs: yyDollar[5].selectExprs} } case 533: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2757 +//line sql.y:2749 { yyVAL.expr = &FuncExpr{Name: NewColIdent("left"), Exprs: yyDollar[3].selectExprs} } case 534: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2761 +//line sql.y:2753 { yyVAL.expr = &FuncExpr{Name: NewColIdent("right"), Exprs: yyDollar[3].selectExprs} } case 535: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2765 +//line sql.y:2757 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } case 536: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2769 +//line sql.y:2761 { yyVAL.expr = &ConvertExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].convertType} } case 537: yyDollar = yyS[yypt-6 : yypt+1] -//line sql.y:2773 +//line sql.y:2765 { yyVAL.expr = &ConvertUsingExpr{Expr: yyDollar[3].expr, Type: yyDollar[5].str} } case 538: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:2777 +//line sql.y:2769 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 539: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:2781 +//line sql.y:2773 { yyVAL.expr = &SubstrExpr{Name: yyDollar[3].colName, From: yyDollar[5].expr, To: yyDollar[7].expr} } case 540: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:2785 +//line sql.y:2777 { yyVAL.expr = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].bytes), From: yyDollar[5].expr, To: yyDollar[7].expr} } case 541: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:2789 +//line sql.y:2781 { yyVAL.expr = &SubstrExpr{StrVal: NewStrLiteral(yyDollar[3].bytes), From: yyDollar[5].expr, To: yyDollar[7].expr} } case 542: yyDollar = yyS[yypt-9 : yypt+1] -//line sql.y:2793 +//line sql.y:2785 { yyVAL.expr = &MatchExpr{Columns: yyDollar[3].selectExprs, Expr: yyDollar[7].expr, Option: yyDollar[8].str} } case 543: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:2797 +//line sql.y:2789 { yyVAL.expr = &GroupConcatExpr{Distinct: yyDollar[3].str, Exprs: yyDollar[4].selectExprs, OrderBy: yyDollar[5].orderBy, Separator: yyDollar[6].str, Limit: yyDollar[7].limit} } case 544: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:2801 +//line sql.y:2793 { yyVAL.expr = &CaseExpr{Expr: yyDollar[2].expr, Whens: yyDollar[3].whens, Else: yyDollar[4].expr} } case 545: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2805 +//line sql.y:2797 { yyVAL.expr = &ValuesFuncExpr{Name: yyDollar[3].colName} } case 546: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2815 +//line sql.y:2807 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_timestamp")} } case 547: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2819 +//line sql.y:2811 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_timestamp")} } case 548: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2823 +//line sql.y:2815 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_time")} } case 549: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2828 +//line sql.y:2820 { yyVAL.expr = &FuncExpr{Name: NewColIdent("utc_date")} } case 550: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2833 +//line sql.y:2825 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtime")} } case 551: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2838 +//line sql.y:2830 { yyVAL.expr = &FuncExpr{Name: NewColIdent("localtimestamp")} } case 552: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2844 +//line sql.y:2836 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_date")} } case 553: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2849 +//line sql.y:2841 { yyVAL.expr = &FuncExpr{Name: NewColIdent("current_time")} } case 554: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2854 +//line sql.y:2846 { yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent("current_timestamp"), Fsp: yyDollar[2].expr} } case 555: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2858 +//line sql.y:2850 { yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent("utc_timestamp"), Fsp: yyDollar[2].expr} } case 556: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2862 +//line sql.y:2854 { yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent("utc_time"), Fsp: yyDollar[2].expr} } case 557: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2867 +//line sql.y:2859 { yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent("localtime"), Fsp: yyDollar[2].expr} } case 558: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2872 +//line sql.y:2864 { yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent("localtimestamp"), Fsp: yyDollar[2].expr} } case 559: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2877 +//line sql.y:2869 { yyVAL.expr = &CurTimeFuncExpr{Name: NewColIdent("current_time"), Fsp: yyDollar[2].expr} } case 560: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:2881 +//line sql.y:2873 { yyVAL.expr = &TimestampFuncExpr{Name: string("timestampadd"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].expr, Expr2: yyDollar[7].expr} } case 561: yyDollar = yyS[yypt-8 : yypt+1] -//line sql.y:2885 +//line sql.y:2877 { yyVAL.expr = &TimestampFuncExpr{Name: string("timestampdiff"), Unit: yyDollar[3].colIdent.String(), Expr1: yyDollar[5].expr, Expr2: yyDollar[7].expr} } case 564: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2895 +//line sql.y:2887 { yyVAL.expr = yyDollar[2].expr } case 565: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2905 +//line sql.y:2897 { yyVAL.expr = &FuncExpr{Name: NewColIdent("if"), Exprs: yyDollar[3].selectExprs} } case 566: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2909 +//line sql.y:2901 { yyVAL.expr = &FuncExpr{Name: NewColIdent("database"), Exprs: yyDollar[3].selectExprs} } case 567: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2913 +//line sql.y:2905 { yyVAL.expr = &FuncExpr{Name: NewColIdent("schema"), Exprs: yyDollar[3].selectExprs} } case 568: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2917 +//line sql.y:2909 { yyVAL.expr = &FuncExpr{Name: NewColIdent("mod"), Exprs: yyDollar[3].selectExprs} } case 569: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2921 +//line sql.y:2913 { yyVAL.expr = &FuncExpr{Name: NewColIdent("replace"), Exprs: yyDollar[3].selectExprs} } case 570: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2925 +//line sql.y:2917 { yyVAL.expr = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprs} } case 571: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2929 +//line sql.y:2921 { yyVAL.expr = &FuncExpr{Name: NewColIdent("substr"), Exprs: yyDollar[3].selectExprs} } case 572: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:2935 +//line sql.y:2927 { yyVAL.str = "" } case 573: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2939 +//line sql.y:2931 { yyVAL.str = BooleanModeStr } case 574: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:2943 +//line sql.y:2935 { yyVAL.str = NaturalLanguageModeStr } case 575: yyDollar = yyS[yypt-7 : yypt+1] -//line sql.y:2947 +//line sql.y:2939 { yyVAL.str = NaturalLanguageModeWithQueryExpansionStr } case 576: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2951 +//line sql.y:2943 { yyVAL.str = QueryExpansionStr } case 577: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2957 +//line sql.y:2949 { yyVAL.str = string(yyDollar[1].colIdent.String()) } case 578: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2961 +//line sql.y:2953 { yyVAL.str = string(yyDollar[1].bytes) } case 579: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2967 +//line sql.y:2959 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].literal} } case 580: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2971 +//line sql.y:2963 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].literal, Charset: yyDollar[3].str, Operator: CharacterSetStr} } case 581: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:2975 +//line sql.y:2967 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].literal, Charset: string(yyDollar[3].colIdent.String())} } case 582: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2979 +//line sql.y:2971 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 583: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2983 +//line sql.y:2975 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].literal} } case 584: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2987 +//line sql.y:2979 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} yyVAL.convertType.Length = yyDollar[2].LengthScaleOption.Length @@ -7150,169 +7143,169 @@ yydefault: } case 585: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:2993 +//line sql.y:2985 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 586: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:2997 +//line sql.y:2989 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].literal} } case 587: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3001 +//line sql.y:2993 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 588: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3005 +//line sql.y:2997 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 589: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3009 +//line sql.y:3001 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes), Length: yyDollar[2].literal} } case 590: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3013 +//line sql.y:3005 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 591: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3017 +//line sql.y:3009 { yyVAL.convertType = &ConvertType{Type: string(yyDollar[1].bytes)} } case 592: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3022 +//line sql.y:3014 { yyVAL.expr = nil } case 593: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3026 +//line sql.y:3018 { yyVAL.expr = yyDollar[1].expr } case 594: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3031 +//line sql.y:3023 { yyVAL.str = string("") } case 595: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3035 +//line sql.y:3027 { yyVAL.str = " separator '" + string(yyDollar[2].bytes) + "'" } case 596: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3041 +//line sql.y:3033 { yyVAL.whens = []*When{yyDollar[1].when} } case 597: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3045 +//line sql.y:3037 { yyVAL.whens = append(yyDollar[1].whens, yyDollar[2].when) } case 598: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3051 +//line sql.y:3043 { yyVAL.when = &When{Cond: yyDollar[2].expr, Val: yyDollar[4].expr} } case 599: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3056 +//line sql.y:3048 { yyVAL.expr = nil } case 600: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3060 +//line sql.y:3052 { yyVAL.expr = yyDollar[2].expr } case 601: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3066 +//line sql.y:3058 { yyVAL.colName = &ColName{Name: yyDollar[1].colIdent} } case 602: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3070 +//line sql.y:3062 { yyVAL.colName = &ColName{Qualifier: TableName{Name: yyDollar[1].tableIdent}, Name: yyDollar[3].colIdent} } case 603: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3074 +//line sql.y:3066 { yyVAL.colName = &ColName{Qualifier: TableName{Qualifier: yyDollar[1].tableIdent, Name: yyDollar[3].tableIdent}, Name: yyDollar[5].colIdent} } case 604: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3080 +//line sql.y:3072 { yyVAL.expr = NewStrLiteral(yyDollar[1].bytes) } case 605: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3084 +//line sql.y:3076 { yyVAL.expr = NewHexLiteral(yyDollar[1].bytes) } case 606: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3088 +//line sql.y:3080 { yyVAL.expr = NewBitLiteral(yyDollar[1].bytes) } case 607: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3092 +//line sql.y:3084 { yyVAL.expr = NewIntLiteral(yyDollar[1].bytes) } case 608: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3096 +//line sql.y:3088 { yyVAL.expr = NewFloatLiteral(yyDollar[1].bytes) } case 609: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3100 +//line sql.y:3092 { yyVAL.expr = NewHexNumLiteral(yyDollar[1].bytes) } case 610: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3104 +//line sql.y:3096 { yyVAL.expr = NewArgument(yyDollar[1].bytes) } case 611: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3108 +//line sql.y:3100 { yyVAL.expr = &NullVal{} } case 612: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3114 +//line sql.y:3106 { // TODO(sougou): Deprecate this construct. if yyDollar[1].colIdent.Lowered() != "value" { @@ -7323,223 +7316,223 @@ yydefault: } case 613: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3123 +//line sql.y:3115 { yyVAL.expr = NewIntLiteral(yyDollar[1].bytes) } case 614: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3127 +//line sql.y:3119 { yyVAL.expr = NewArgument(yyDollar[1].bytes) } case 615: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3132 +//line sql.y:3124 { yyVAL.exprs = nil } case 616: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3136 +//line sql.y:3128 { yyVAL.exprs = yyDollar[3].exprs } case 617: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3141 +//line sql.y:3133 { yyVAL.expr = nil } case 618: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3145 +//line sql.y:3137 { yyVAL.expr = yyDollar[2].expr } case 619: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3150 +//line sql.y:3142 { yyVAL.orderBy = nil } case 620: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3154 +//line sql.y:3146 { yyVAL.orderBy = yyDollar[3].orderBy } case 621: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3160 +//line sql.y:3152 { yyVAL.orderBy = OrderBy{yyDollar[1].order} } case 622: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3164 +//line sql.y:3156 { yyVAL.orderBy = append(yyDollar[1].orderBy, yyDollar[3].order) } case 623: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3170 +//line sql.y:3162 { yyVAL.order = &Order{Expr: yyDollar[1].expr, Direction: yyDollar[2].str} } case 624: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3175 +//line sql.y:3167 { yyVAL.str = AscScr } case 625: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3179 +//line sql.y:3171 { yyVAL.str = AscScr } case 626: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3183 +//line sql.y:3175 { yyVAL.str = DescScr } case 627: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3188 +//line sql.y:3180 { yyVAL.limit = nil } case 628: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3192 +//line sql.y:3184 { yyVAL.limit = &Limit{Rowcount: yyDollar[2].expr} } case 629: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3196 +//line sql.y:3188 { yyVAL.limit = &Limit{Offset: yyDollar[2].expr, Rowcount: yyDollar[4].expr} } case 630: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3200 +//line sql.y:3192 { yyVAL.limit = &Limit{Offset: yyDollar[4].expr, Rowcount: yyDollar[2].expr} } case 631: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3205 +//line sql.y:3197 { yyVAL.str = "" } case 632: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3209 +//line sql.y:3201 { yyVAL.str = ForUpdateStr } case 633: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3213 +//line sql.y:3205 { yyVAL.str = ShareModeStr } case 634: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3226 +//line sql.y:3218 { yyVAL.ins = &Insert{Rows: yyDollar[2].values} } case 635: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3230 +//line sql.y:3222 { yyVAL.ins = &Insert{Rows: yyDollar[1].selStmt} } case 636: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3234 +//line sql.y:3226 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[5].values} } case 637: yyDollar = yyS[yypt-4 : yypt+1] -//line sql.y:3238 +//line sql.y:3230 { yyVAL.ins = &Insert{Columns: yyDollar[2].columns, Rows: yyDollar[4].selStmt} } case 638: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3244 +//line sql.y:3236 { yyVAL.columns = Columns{yyDollar[1].colIdent} } case 639: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3248 +//line sql.y:3240 { yyVAL.columns = Columns{yyDollar[3].colIdent} } case 640: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3252 +//line sql.y:3244 { yyVAL.columns = append(yyVAL.columns, yyDollar[3].colIdent) } case 641: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3256 +//line sql.y:3248 { yyVAL.columns = append(yyVAL.columns, yyDollar[5].colIdent) } case 642: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3261 +//line sql.y:3253 { yyVAL.updateExprs = nil } case 643: yyDollar = yyS[yypt-5 : yypt+1] -//line sql.y:3265 +//line sql.y:3257 { yyVAL.updateExprs = yyDollar[5].updateExprs } case 644: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3271 +//line sql.y:3263 { yyVAL.values = Values{yyDollar[1].valTuple} } case 645: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3275 +//line sql.y:3267 { yyVAL.values = append(yyDollar[1].values, yyDollar[3].valTuple) } case 646: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3281 +//line sql.y:3273 { yyVAL.valTuple = yyDollar[1].valTuple } case 647: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3285 +//line sql.y:3277 { yyVAL.valTuple = ValTuple{} } case 648: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3291 +//line sql.y:3283 { yyVAL.valTuple = ValTuple(yyDollar[2].exprs) } case 649: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3297 +//line sql.y:3289 { if len(yyDollar[1].valTuple) == 1 { yyVAL.expr = yyDollar[1].valTuple[0] @@ -7549,284 +7542,284 @@ yydefault: } case 650: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3307 +//line sql.y:3299 { yyVAL.updateExprs = UpdateExprs{yyDollar[1].updateExpr} } case 651: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3311 +//line sql.y:3303 { yyVAL.updateExprs = append(yyDollar[1].updateExprs, yyDollar[3].updateExpr) } case 652: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3317 +//line sql.y:3309 { yyVAL.updateExpr = &UpdateExpr{Name: yyDollar[1].colName, Expr: yyDollar[3].expr} } case 653: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3323 +//line sql.y:3315 { yyVAL.setExprs = SetExprs{yyDollar[1].setExpr} } case 654: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3327 +//line sql.y:3319 { yyVAL.setExprs = append(yyDollar[1].setExprs, yyDollar[3].setExpr) } case 655: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3333 +//line sql.y:3325 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrLiteral([]byte("on"))} } case 656: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3337 +//line sql.y:3329 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: NewStrLiteral([]byte("off"))} } case 657: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3341 +//line sql.y:3333 { yyVAL.setExpr = &SetExpr{Name: yyDollar[1].colIdent, Expr: yyDollar[3].expr} } case 658: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3345 +//line sql.y:3337 { yyVAL.setExpr = &SetExpr{Name: NewColIdent(string(yyDollar[1].bytes)), Expr: yyDollar[2].expr} } case 659: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3349 +//line sql.y:3341 { yyDollar[2].setExpr.Scope = yyDollar[1].str yyVAL.setExpr = yyDollar[2].setExpr } case 661: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3357 +//line sql.y:3349 { yyVAL.bytes = []byte("charset") } case 663: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3364 +//line sql.y:3356 { yyVAL.expr = NewStrLiteral([]byte(yyDollar[1].colIdent.String())) } case 664: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3368 +//line sql.y:3360 { yyVAL.expr = NewStrLiteral(yyDollar[1].bytes) } case 665: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3372 +//line sql.y:3364 { yyVAL.expr = &Default{} } case 668: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3381 +//line sql.y:3373 { - yyVAL.byt = 0 + yyVAL.boolean = false } case 669: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3383 +//line sql.y:3375 { - yyVAL.byt = 1 + yyVAL.boolean = true } case 670: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3386 +//line sql.y:3378 { - yyVAL.empty = struct{}{} + yyVAL.boolean = false } case 671: yyDollar = yyS[yypt-3 : yypt+1] -//line sql.y:3388 +//line sql.y:3380 { - yyVAL.empty = struct{}{} + yyVAL.boolean = true } case 672: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3391 +//line sql.y:3383 { yyVAL.str = "" } case 673: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3393 +//line sql.y:3385 { yyVAL.str = IgnoreStr } case 674: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3397 +//line sql.y:3389 { yyVAL.empty = struct{}{} } case 675: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3399 +//line sql.y:3391 { yyVAL.empty = struct{}{} } case 676: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3401 +//line sql.y:3393 { yyVAL.empty = struct{}{} } case 677: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3403 +//line sql.y:3395 { yyVAL.empty = struct{}{} } case 678: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3405 +//line sql.y:3397 { yyVAL.empty = struct{}{} } case 679: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3407 +//line sql.y:3399 { yyVAL.empty = struct{}{} } case 680: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3409 +//line sql.y:3401 { yyVAL.empty = struct{}{} } case 681: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3411 +//line sql.y:3403 { yyVAL.empty = struct{}{} } case 682: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3413 +//line sql.y:3405 { yyVAL.empty = struct{}{} } case 683: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3415 +//line sql.y:3407 { yyVAL.empty = struct{}{} } case 684: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3418 +//line sql.y:3410 { yyVAL.empty = struct{}{} } case 685: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3420 +//line sql.y:3412 { yyVAL.empty = struct{}{} } case 686: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3422 +//line sql.y:3414 { yyVAL.empty = struct{}{} } case 687: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3426 +//line sql.y:3418 { yyVAL.empty = struct{}{} } case 688: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3428 +//line sql.y:3420 { yyVAL.empty = struct{}{} } case 689: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3431 +//line sql.y:3423 { yyVAL.empty = struct{}{} } case 690: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3433 +//line sql.y:3425 { yyVAL.empty = struct{}{} } case 691: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3435 +//line sql.y:3427 { yyVAL.empty = struct{}{} } case 692: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3438 +//line sql.y:3430 { yyVAL.colIdent = ColIdent{} } case 693: yyDollar = yyS[yypt-2 : yypt+1] -//line sql.y:3440 +//line sql.y:3432 { yyVAL.colIdent = yyDollar[2].colIdent } case 694: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3444 +//line sql.y:3436 { yyVAL.colIdent = yyDollar[1].colIdent } case 695: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3448 +//line sql.y:3440 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 697: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3455 +//line sql.y:3447 { yyVAL.colIdent = NewColIdent(string(yyDollar[1].bytes)) } case 698: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3461 +//line sql.y:3453 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].colIdent.String())) } case 699: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3465 +//line sql.y:3457 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } case 701: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3472 +//line sql.y:3464 { yyVAL.tableIdent = NewTableIdent(string(yyDollar[1].bytes)) } case 996: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3792 +//line sql.y:3784 { if incNesting(yylex) { yylex.Error("max nesting level reached") @@ -7835,31 +7828,31 @@ yydefault: } case 997: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3801 +//line sql.y:3793 { decNesting(yylex) } case 998: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3806 +//line sql.y:3798 { skipToEnd(yylex) } case 999: yyDollar = yyS[yypt-0 : yypt+1] -//line sql.y:3811 +//line sql.y:3803 { skipToEnd(yylex) } case 1000: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3815 +//line sql.y:3807 { skipToEnd(yylex) } case 1001: yyDollar = yyS[yypt-1 : yypt+1] -//line sql.y:3819 +//line sql.y:3811 { skipToEnd(yylex) } diff --git a/go/vt/sqlparser/sql.y b/go/vt/sqlparser/sql.y index ba30a3de151..3fc15d3a2ee 100644 --- a/go/vt/sqlparser/sql.y +++ b/go/vt/sqlparser/sql.y @@ -75,6 +75,7 @@ func skipToEnd(yylex interface{}) { expr Expr exprs Exprs boolVal BoolVal + boolean bool literal *Literal colTuple ColTuple values Values @@ -283,8 +284,8 @@ func skipToEnd(yylex interface{}) { %type ignore_opt default_opt %type full_opt from_database_opt tables_or_processlist columns_or_fields extended_opt %type like_or_where_opt like_opt -%type exists_opt -%type not_exists_opt non_add_drop_or_rename_operation to_opt index_opt constraint_opt +%type exists_opt not_exists_opt null_opt +%type non_add_drop_or_rename_operation to_opt index_opt constraint_opt %type reserved_keyword non_reserved_keyword %type sql_id reserved_sql_id col_alias as_ci_opt using_opt %type charset_value @@ -299,9 +300,8 @@ func skipToEnd(yylex interface{}) { %type length_opt column_comment_opt %type column_default_opt on_update_opt %type charset_opt collate_opt -%type unsigned_opt zero_fill_opt %type float_length_opt decimal_length_opt -%type null_opt auto_increment_opt +%type auto_increment_opt unsigned_opt zero_fill_opt %type column_key_opt %type enum_values %type column_definition @@ -666,11 +666,11 @@ create_statement: } | CREATE DATABASE not_exists_opt id_or_var ddl_skip_to_end { - $$ = &DBDDL{Action: CreateStr, DBName: string($4.String())} + $$ = &DBDDL{Action: CreateStr, DBName: string($4.String()), IfNotExists: $3} } | CREATE SCHEMA not_exists_opt id_or_var ddl_skip_to_end { - $$ = &DBDDL{Action: CreateStr, DBName: string($4.String())} + $$ = &DBDDL{Action: CreateStr, DBName: string($4.String()), IfNotExists: $3} } vindex_type_opt: @@ -1032,34 +1032,34 @@ decimal_length_opt: unsigned_opt: { - $$ = BoolVal(false) + $$ = false } | UNSIGNED { - $$ = BoolVal(true) + $$ = true } zero_fill_opt: { - $$ = BoolVal(false) + $$ = false } | ZEROFILL { - $$ = BoolVal(true) + $$ = true } // Null opt returns false to mean NULL (i.e. the default) and true for NOT NULL null_opt: { - $$ = BoolVal(false) + $$ = false } | NULL { - $$ = BoolVal(false) + $$ = false } | NOT NULL { - $$ = BoolVal(true) + $$ = true } column_default_opt: @@ -1082,11 +1082,11 @@ on_update_opt: auto_increment_opt: { - $$ = BoolVal(false) + $$ = false } | AUTO_INCREMENT { - $$ = BoolVal(true) + $$ = true } charset_opt: @@ -1549,11 +1549,7 @@ rename_list: drop_statement: DROP TABLE exists_opt table_name_list { - var exists bool - if $3 != 0 { - exists = true - } - $$ = &DDL{Action: DropStr, FromTables: $4, IfExists: exists} + $$ = &DDL{Action: DropStr, FromTables: $4, IfExists: $3} } | DROP INDEX id_or_var ON table_name ddl_skip_to_end { @@ -1562,19 +1558,15 @@ drop_statement: } | DROP VIEW exists_opt table_name ddl_skip_to_end { - var exists bool - if $3 != 0 { - exists = true - } - $$ = &DDL{Action: DropStr, FromTables: TableNames{$4.ToViewName()}, IfExists: exists} + $$ = &DDL{Action: DropStr, FromTables: TableNames{$4.ToViewName()}, IfExists: $3} } | DROP DATABASE exists_opt id_or_var { - $$ = &DBDDL{Action: DropStr, DBName: string($4.String())} + $$ = &DBDDL{Action: DropStr, DBName: string($4.String()), IfExists: $3} } | DROP SCHEMA exists_opt id_or_var { - $$ = &DBDDL{Action: DropStr, DBName: string($4.String())} + $$ = &DBDDL{Action: DropStr, DBName: string($4.String()), IfExists: $3} } truncate_statement: @@ -3378,14 +3370,14 @@ for_from: | FROM exists_opt: - { $$ = 0 } + { $$ = false } | IF EXISTS - { $$ = 1 } + { $$ = true } not_exists_opt: - { $$ = struct{}{} } + { $$ = false } | IF NOT EXISTS - { $$ = struct{}{} } + { $$ = true } ignore_opt: { $$ = "" }