@@ -1529,7 +1529,8 @@ var InsertScripts = []ScriptTest{
15291529 },
15301530 },
15311531 {
1532- Name : "Try INSERT IGNORE with primary key, non null, and single row violations" ,
1532+ Name : "Try INSERT IGNORE with primary key, non null, and single row violations" ,
1533+ Dialect : "mysql" ,
15331534 SetUpScript : []string {
15341535 "CREATE TABLE y (pk int primary key, c1 int NOT NULL);" ,
15351536 "INSERT IGNORE INTO y VALUES (1, 1), (1,2), (2, 2), (3, 3)" ,
@@ -1546,49 +1547,56 @@ var InsertScripts = []ScriptTest{
15461547 Expected : []sql.Row {
15471548 {types.OkResult {RowsAffected : 1 }},
15481549 },
1549- ExpectedWarning : mysql .ERDupEntry ,
1550+ ExpectedWarningsCount : 1 ,
1551+ ExpectedWarning : mysql .ERDupEntry ,
15501552 },
15511553 {
15521554 Query : "INSERT IGNORE INTO y VALUES (5, NULL)" ,
15531555 Expected : []sql.Row {
15541556 {types.OkResult {RowsAffected : 1 }},
15551557 },
1556- ExpectedWarning : mysql .ERBadNullError ,
1558+ ExpectedWarningsCount : 1 ,
1559+ ExpectedWarning : mysql .ERBadNullError ,
15571560 },
15581561 {
15591562 Query : "INSERT IGNORE INTO y SELECT * FROM y WHERE pk=(SELECT pk+10 FROM y WHERE pk > 1);" ,
15601563 Expected : []sql.Row {
15611564 {types.OkResult {RowsAffected : 0 }},
15621565 },
1563- ExpectedWarning : mysql .ERSubqueryNo1Row ,
1566+ ExpectedWarningsCount : 5 ,
1567+ ExpectedWarning : mysql .ERSubqueryNo1Row ,
15641568 },
15651569 {
15661570 Query : "INSERT IGNORE INTO y SELECT 10, 0 FROM dual WHERE 1=(SELECT 1 FROM dual UNION SELECT 2 FROM dual);" ,
15671571 Expected : []sql.Row {
15681572 {types.OkResult {RowsAffected : 0 }},
15691573 },
1570- ExpectedWarning : mysql .ERSubqueryNo1Row ,
1574+ ExpectedWarningsCount : 1 ,
1575+ ExpectedWarning : mysql .ERSubqueryNo1Row ,
15711576 },
15721577 {
15731578 Query : "INSERT IGNORE INTO y SELECT 11, 0 FROM dual WHERE 1=(SELECT 1 FROM dual UNION SELECT 2 FROM dual) UNION SELECT 12, 0 FROM dual;" ,
15741579 Expected : []sql.Row {
15751580 {types.OkResult {RowsAffected : 1 }},
15761581 },
1577- ExpectedWarning : mysql .ERSubqueryNo1Row ,
1582+ ExpectedWarningsCount : 1 ,
1583+ ExpectedWarning : mysql .ERSubqueryNo1Row ,
15781584 },
15791585 {
15801586 Query : "INSERT IGNORE INTO y SELECT 13, 0 FROM dual UNION SELECT 14, 0 FROM dual WHERE 1=(SELECT 1 FROM dual UNION SELECT 2 FROM dual);" ,
15811587 Expected : []sql.Row {
15821588 {types.OkResult {RowsAffected : 1 }},
15831589 },
1584- ExpectedWarning : mysql .ERSubqueryNo1Row ,
1590+ ExpectedWarningsCount : 1 ,
1591+ ExpectedWarning : mysql .ERSubqueryNo1Row ,
15851592 },
15861593 {
15871594 Query : "INSERT IGNORE INTO y VALUES (3, 8)" ,
15881595 Expected : []sql.Row {
15891596 {types.OkResult {RowsAffected : 0 }},
15901597 },
1591- ExpectedWarning : mysql .ERDupEntry ,
1598+ ExpectedWarningsCount : 1 ,
1599+ ExpectedWarning : mysql .ERDupEntry ,
15921600 },
15931601 },
15941602 },
@@ -2164,7 +2172,8 @@ var InsertScripts = []ScriptTest{
21642172 },
21652173 },
21662174 {
2167- Name : "INSERT IGNORE works with FK Violations" ,
2175+ Name : "INSERT IGNORE works with FK Violations" ,
2176+ Dialect : "mysql" ,
21682177 SetUpScript : []string {
21692178 "CREATE TABLE t1 (id INT PRIMARY KEY, v int);" ,
21702179 "CREATE TABLE t2 (id INT PRIMARY KEY, v2 int, CONSTRAINT mfk FOREIGN KEY (v2) REFERENCES t1(id));" ,
@@ -2176,7 +2185,8 @@ var InsertScripts = []ScriptTest{
21762185 Expected : []sql.Row {
21772186 {types.OkResult {RowsAffected : 0 }},
21782187 },
2179- ExpectedWarning : mysql .ErNoReferencedRow2 ,
2188+ ExpectedWarningsCount : 1 ,
2189+ ExpectedWarning : mysql .ErNoReferencedRow2 ,
21802190 },
21812191 },
21822192 },
@@ -2622,7 +2632,8 @@ var InsertIgnoreScripts = []ScriptTest{
26222632 Expected : []sql.Row {
26232633 {types.OkResult {RowsAffected : 1 }},
26242634 },
2625- ExpectedWarning : mysql .ERBadNullError ,
2635+ ExpectedWarningsCount : 1 ,
2636+ ExpectedWarning : mysql .ERBadNullError ,
26262637 },
26272638 },
26282639 },
@@ -2638,7 +2649,8 @@ var InsertIgnoreScripts = []ScriptTest{
26382649 Expected : []sql.Row {
26392650 {types.OkResult {RowsAffected : 1 }},
26402651 },
2641- ExpectedWarning : mysql .ERTruncatedWrongValueForField ,
2652+ ExpectedWarningsCount : 1 ,
2653+ ExpectedWarning : mysql .ERTruncatedWrongValueForField ,
26422654 },
26432655 {
26442656 Query : "SELECT * FROM t1" ,
@@ -2651,7 +2663,8 @@ var InsertIgnoreScripts = []ScriptTest{
26512663 Expected : []sql.Row {
26522664 {types.OkResult {RowsAffected : 1 }},
26532665 },
2654- ExpectedWarning : mysql .ERUnknownError ,
2666+ ExpectedWarningsCount : 1 ,
2667+ ExpectedWarning : mysql .ERUnknownError ,
26552668 },
26562669 {
26572670 Query : "SELECT * FROM t2" ,
@@ -2675,7 +2688,8 @@ var InsertIgnoreScripts = []ScriptTest{
26752688 Expected : []sql.Row {
26762689 {types.OkResult {RowsAffected : 2 }},
26772690 },
2678- ExpectedWarning : mysql .ERTruncatedWrongValueForField ,
2691+ ExpectedWarningsCount : 1 ,
2692+ ExpectedWarning : mysql .ERTruncatedWrongValueForField ,
26792693 },
26802694 {
26812695 Query : "SELECT * FROM t1" ,
@@ -2688,7 +2702,8 @@ var InsertIgnoreScripts = []ScriptTest{
26882702 Expected : []sql.Row {
26892703 {types.OkResult {RowsAffected : 1 }},
26902704 },
2691- ExpectedWarning : mysql .ERUnknownError ,
2705+ ExpectedWarningsCount : 1 ,
2706+ ExpectedWarning : mysql .ERUnknownError ,
26922707 },
26932708 {
26942709 Query : "SELECT * FROM t2" ,
@@ -2722,7 +2737,8 @@ var InsertIgnoreScripts = []ScriptTest{
27222737 Expected : []sql.Row {
27232738 {types.OkResult {RowsAffected : 3 }},
27242739 },
2725- ExpectedWarning : mysql .ERDupEntry ,
2740+ ExpectedWarningsCount : 1 ,
2741+ ExpectedWarning : mysql .ERDupEntry ,
27262742 },
27272743 {
27282744 Query : "SELECT * from one_uniq;" ,
@@ -2735,7 +2751,8 @@ var InsertIgnoreScripts = []ScriptTest{
27352751 Expected : []sql.Row {
27362752 {types.OkResult {RowsAffected : 8 }},
27372753 },
2738- ExpectedWarning : mysql .ERDupEntry ,
2754+ ExpectedWarningsCount : 1 ,
2755+ ExpectedWarning : mysql .ERDupEntry ,
27392756 },
27402757 {
27412758 Query : "SELECT * from two_uniq;" ,
@@ -2784,7 +2801,8 @@ var IgnoreWithDuplicateUniqueKeyKeylessScripts = []ScriptTest{
27842801 Expected : []sql.Row {
27852802 {types.OkResult {RowsAffected : 3 }},
27862803 },
2787- ExpectedWarning : mysql .ERDupEntry ,
2804+ ExpectedWarningsCount : 1 ,
2805+ ExpectedWarning : mysql .ERDupEntry ,
27882806 },
27892807 {
27902808 Query : "SELECT * from one_uniq;" ,
@@ -2797,7 +2815,8 @@ var IgnoreWithDuplicateUniqueKeyKeylessScripts = []ScriptTest{
27972815 Expected : []sql.Row {
27982816 {types.OkResult {RowsAffected : 8 }},
27992817 },
2800- ExpectedWarning : mysql .ERDupEntry ,
2818+ ExpectedWarningsCount : 1 ,
2819+ ExpectedWarning : mysql .ERDupEntry ,
28012820 },
28022821 {
28032822 Query : "SELECT * from two_uniq;" ,
@@ -2831,9 +2850,10 @@ var IgnoreWithDuplicateUniqueKeyKeylessScripts = []ScriptTest{
28312850 Expected : []sql.Row {{types .NewOkResult (0 )}},
28322851 },
28332852 {
2834- Query : "INSERT IGNORE INTO keyless VALUES (1, 3)" ,
2835- Expected : []sql.Row {{types .NewOkResult (0 )}},
2836- ExpectedWarning : mysql .ERDupEntry ,
2853+ Query : "INSERT IGNORE INTO keyless VALUES (1, 3)" ,
2854+ Expected : []sql.Row {{types .NewOkResult (0 )}},
2855+ ExpectedWarningsCount : 1 ,
2856+ ExpectedWarning : mysql .ERDupEntry ,
28372857 },
28382858 },
28392859 },
@@ -2857,27 +2877,28 @@ var IgnoreWithDuplicateUniqueKeyKeylessScripts = []ScriptTest{
28572877 ExpectedErr : sql .ErrUniqueKeyViolation ,
28582878 },
28592879 {
2860- Query : "UPDATE IGNORE keyless SET val = 1 where pk = 1" ,
2861- Expected : []sql.Row {{newUpdateResult (1 , 1 )}},
2862- ExpectedWarning : mysql .ERDupEntry ,
2880+ Query : "UPDATE IGNORE keyless SET val = 1 where pk = 1" ,
2881+ Expected : []sql.Row {{newUpdateResult (1 , 1 )}},
28632882 },
28642883 {
28652884 Query : "ALTER TABLE keyless ADD CONSTRAINT c UNIQUE(val)" ,
28662885 Expected : []sql.Row {{types .NewOkResult (0 )}},
28672886 },
28682887 {
2869- Query : "UPDATE IGNORE keyless SET val = 3 where pk = 1" ,
2870- Expected : []sql.Row {{newUpdateResult (1 , 0 )}},
2871- ExpectedWarning : mysql .ERDupEntry ,
2888+ Query : "UPDATE IGNORE keyless SET val = 3 where pk = 1" ,
2889+ Expected : []sql.Row {{newUpdateResult (1 , 0 )}},
2890+ ExpectedWarningsCount : 1 ,
2891+ ExpectedWarning : mysql .ERDupEntry ,
28722892 },
28732893 {
28742894 Query : "SELECT * FROM keyless ORDER BY pk" ,
28752895 Expected : []sql.Row {{1 , 1 }, {2 , 2 }, {3 , 3 }},
28762896 },
28772897 {
2878- Query : "UPDATE IGNORE keyless SET val = val + 1 ORDER BY pk" ,
2879- Expected : []sql.Row {{newUpdateResult (3 , 1 )}},
2880- ExpectedWarning : mysql .ERDupEntry ,
2898+ Query : "UPDATE IGNORE keyless SET val = val + 1 ORDER BY pk" ,
2899+ Expected : []sql.Row {{newUpdateResult (3 , 1 )}},
2900+ ExpectedWarningsCount : 2 ,
2901+ ExpectedWarning : mysql .ERDupEntry ,
28812902 },
28822903 {
28832904 Query : "SELECT * FROM keyless ORDER BY pk" ,
@@ -2890,7 +2911,8 @@ var IgnoreWithDuplicateUniqueKeyKeylessScripts = []ScriptTest{
28902911var InsertBrokenScripts = []ScriptTest {
28912912 // TODO: Condense all of our casting logic into a single error.
28922913 {
2893- Name : "Test that INSERT IGNORE assigns the closest dataype correctly" ,
2914+ Name : "Test that INSERT IGNORE assigns the closest dataype correctly" ,
2915+ Dialect : "mysql" ,
28942916 SetUpScript : []string {
28952917 "CREATE TABLE x (pk int primary key, c1 varchar(20) NOT NULL);" ,
28962918 `INSERT IGNORE INTO x VALUES (1, "one"), (2, TRUE), (3, "three")` ,
@@ -2915,7 +2937,8 @@ var InsertBrokenScripts = []ScriptTest{
29152937 Expected : []sql.Row {
29162938 {types.OkResult {RowsAffected : 1 }},
29172939 },
2918- ExpectedWarning : mysql .ERTruncatedWrongValueForField ,
2940+ ExpectedWarningsCount : 1 ,
2941+ ExpectedWarning : mysql .ERTruncatedWrongValueForField ,
29192942 },
29202943 },
29212944 },
0 commit comments