Skip to content

Commit 016d71c

Browse files
YangKeaoti-chi-bot
authored andcommitted
This is an automated cherry-pick of pingcap#50007
Signed-off-by: ti-chi-bot <[email protected]>
1 parent abe9974 commit 016d71c

File tree

5 files changed

+24955
-5
lines changed

5 files changed

+24955
-5
lines changed

parser/parser.y

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7065,14 +7065,17 @@ OnDuplicateKeyUpdate:
70657065
*
70667066
**********************************************************************************/
70677067
ReplaceIntoStmt:
7068-
"REPLACE" PriorityOpt IntoOpt TableName PartitionNameListOpt InsertValues
7068+
"REPLACE" TableOptimizerHintsOpt PriorityOpt IntoOpt TableName PartitionNameListOpt InsertValues
70697069
{
7070-
x := $6.(*ast.InsertStmt)
7070+
x := $7.(*ast.InsertStmt)
7071+
if $2 != nil {
7072+
x.TableHints = $2.([]*ast.TableOptimizerHint)
7073+
}
70717074
x.IsReplace = true
7072-
x.Priority = $2.(mysql.PriorityEnum)
7073-
ts := &ast.TableSource{Source: $4.(*ast.TableName)}
7075+
x.Priority = $3.(mysql.PriorityEnum)
7076+
ts := &ast.TableSource{Source: $5.(*ast.TableName)}
70747077
x.Table = &ast.TableRefsClause{TableRefs: &ast.Join{Left: ts}}
7075-
x.PartitionNames = $5.([]model.CIStr)
7078+
x.PartitionNames = $6.([]model.CIStr)
70767079
$$ = x
70777080
}
70787081

parser/parser_test.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1093,6 +1093,33 @@ AAAAAAAAAAAA5gm5Mg==
10931093
{"calibrate resource workload oltp_read_only", true, "CALIBRATE RESOURCE WORKLOAD OLTP_READ_ONLY"},
10941094
{"calibrate resource workload oltp_write_only", true, "CALIBRATE RESOURCE WORKLOAD OLTP_WRITE_ONLY"},
10951095
{"calibrate resource workload = oltp_read_write START_TIME '2023-04-01 13:00:00'", false, ""},
1096+
<<<<<<< HEAD:parser/parser_test.go
1097+
=======
1098+
1099+
// for query watch
1100+
{"query watch add SQL DIGEST b13858789fce00208f9a262c99621b7045f4869807cd4e6568008ae7ca19a377 ", true, "QUERY WATCH ADD SQL DIGEST `b13858789fce00208f9a262c99621b7045f4869807cd4e6568008ae7ca19a377`"},
1101+
{"query watch add SQL DIGEST b13858789fce00208f9a262c99621b7045f4869807cd4e6568008ae7ca19a377 ", true, "QUERY WATCH ADD SQL DIGEST `b13858789fce00208f9a262c99621b7045f4869807cd4e6568008ae7ca19a377`"},
1102+
{"query watch add SQL DIGEST 'b13858789fce00208f9a262c99621b7045f4869807cd4e6568008ae7ca19a377' ", true, "QUERY WATCH ADD SQL DIGEST _UTF8MB4'b13858789fce00208f9a262c99621b7045f4869807cd4e6568008ae7ca19a377'"},
1103+
{"query watch add PLAN DIGEST `5e3ddd388f6012e328233dbcdda5d48f404e0536c6c54d9618233210f3d5762a` ", true, "QUERY WATCH ADD PLAN DIGEST `5e3ddd388f6012e328233dbcdda5d48f404e0536c6c54d9618233210f3d5762a`"},
1104+
{"query watch add PLAN DIGEST @digest1 ", true, "QUERY WATCH ADD PLAN DIGEST @`digest1`"},
1105+
{"query watch add SQL TEXT SIMILAR to 'select 1'", true, "QUERY WATCH ADD SQL TEXT SIMILAR TO _UTF8MB4'select 1'"},
1106+
{"query watch add SQL TEXT EXACT to 'select 1'", true, "QUERY WATCH ADD SQL TEXT EXACT TO _UTF8MB4'select 1'"},
1107+
{"query watch add SQL TEXT PLAN to 'select 1'", true, "QUERY WATCH ADD SQL TEXT PLAN TO _UTF8MB4'select 1'"},
1108+
{"query watch add resource group `default` SQL TEXT SIMILAR to 'select 1'", true, "QUERY WATCH ADD RESOURCE GROUP `default` SQL TEXT SIMILAR TO _UTF8MB4'select 1'"},
1109+
{"query watch add resource group @rg SQL TEXT SIMILAR to @sql1", true, "QUERY WATCH ADD RESOURCE GROUP @`rg` SQL TEXT SIMILAR TO @`sql1`"},
1110+
{"query watch add resource group rg1 SQL TEXT SIMILAR to 'select 1'", true, "QUERY WATCH ADD RESOURCE GROUP `rg1` SQL TEXT SIMILAR TO _UTF8MB4'select 1'"},
1111+
{"query watch add SQL TEXT SIMILAR to 'select 1' resource group rg1", true, "QUERY WATCH ADD SQL TEXT SIMILAR TO _UTF8MB4'select 1' RESOURCE GROUP `rg1`"},
1112+
{"query watch add ACTION = KILL SQL TEXT SIMILAR to 'select 1'", true, "QUERY WATCH ADD ACTION = KILL SQL TEXT SIMILAR TO _UTF8MB4'select 1'"},
1113+
{"query watch add ACTION COOLDOWN resource group rg1 SQL TEXT SIMILAR to 'select 1'", true, "QUERY WATCH ADD ACTION = COOLDOWN RESOURCE GROUP `rg1` SQL TEXT SIMILAR TO _UTF8MB4'select 1'"},
1114+
{"query watch add resource group `default` resource group `rg1` SQL TEXT SIMILAR to 'select 1'", false, ""},
1115+
{"query watch add SQL SIMILAR to 'select 1'", false, ""},
1116+
{"query watch add SQL TEXT SIMILAR 'select 1'", false, ""},
1117+
{"query watch remove 1", true, "QUERY WATCH REMOVE 1"},
1118+
{"query watch remove", false, ""},
1119+
1120+
// for issue 34325, "replace into" with hints
1121+
{"replace /*+ SET_VAR(sql_mode='ALLOW_INVALID_DATES') */ into t values ('2004-04-31');", true, "REPLACE /*+ SET_VAR(sql_mode = ALLOW_INVALID_DATES)*/ INTO `t` VALUES (_UTF8MB4'2004-04-31')"},
1122+
>>>>>>> 494d9f07698 (parser: support hints in 'REPLACE INTO' statement (#50007)):pkg/parser/parser_test.go
10961123
}
10971124
RunTest(t, table, false)
10981125
}

0 commit comments

Comments
 (0)