@@ -285,6 +285,49 @@ func (s *testSuite2) TestSetVar(c *C) {
285285 c .Assert (err , NotNil )
286286 _ , err = tk .Exec ("set global tidb_batch_commit = 2" )
287287 c .Assert (err , NotNil )
288+
289+ // test skip isolation level check: init
290+ tk .MustExec ("SET GLOBAL tidb_skip_isolation_level_check = 0" )
291+ tk .MustExec ("SET SESSION tidb_skip_isolation_level_check = 0" )
292+ tk .MustExec ("SET GLOBAL TRANSACTION ISOLATION LEVEL READ COMMITTED" )
293+ tk .MustExec ("SET SESSION TRANSACTION ISOLATION LEVEL READ COMMITTED" )
294+ tk .MustQuery ("select @@global.tx_isolation" ).Check (testkit .Rows ("READ-COMMITTED" ))
295+ tk .MustQuery ("select @@global.transaction_isolation" ).Check (testkit .Rows ("READ-COMMITTED" ))
296+ tk .MustQuery ("select @@session.tx_isolation" ).Check (testkit .Rows ("READ-COMMITTED" ))
297+ tk .MustQuery ("select @@session.transaction_isolation" ).Check (testkit .Rows ("READ-COMMITTED" ))
298+
299+ // test skip isolation level check: error
300+ _ , err = tk .Exec ("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE" )
301+ c .Assert (terror .ErrorEqual (err , variable .ErrUnsupportedIsolationLevel ), IsTrue , Commentf ("err %v" , err ))
302+ tk .MustQuery ("select @@session.tx_isolation" ).Check (testkit .Rows ("READ-COMMITTED" ))
303+ tk .MustQuery ("select @@session.transaction_isolation" ).Check (testkit .Rows ("READ-COMMITTED" ))
304+
305+ _ , err = tk .Exec ("SET GLOBAL TRANSACTION ISOLATION LEVEL SERIALIZABLE" )
306+ c .Assert (terror .ErrorEqual (err , variable .ErrUnsupportedIsolationLevel ), IsTrue , Commentf ("err %v" , err ))
307+ tk .MustQuery ("select @@global.tx_isolation" ).Check (testkit .Rows ("READ-COMMITTED" ))
308+ tk .MustQuery ("select @@global.transaction_isolation" ).Check (testkit .Rows ("READ-COMMITTED" ))
309+
310+ // test skip isolation level check: success
311+ tk .MustExec ("SET GLOBAL tidb_skip_isolation_level_check = 1" )
312+ tk .MustExec ("SET SESSION tidb_skip_isolation_level_check = 1" )
313+ tk .MustExec ("SET SESSION TRANSACTION ISOLATION LEVEL SERIALIZABLE" )
314+ tk .MustQuery ("show warnings" ).Check (testkit .Rows (
315+ "Warning 1105 The isolation level 'SERIALIZABLE' is not supported. Set tidb_skip_isolation_level_check=1 to skip this error" ))
316+ tk .MustQuery ("select @@session.tx_isolation" ).Check (testkit .Rows ("SERIALIZABLE" ))
317+ tk .MustQuery ("select @@session.transaction_isolation" ).Check (testkit .Rows ("SERIALIZABLE" ))
318+
319+ // test skip isolation level check: success
320+ tk .MustExec ("SET GLOBAL tidb_skip_isolation_level_check = 0" )
321+ tk .MustExec ("SET SESSION tidb_skip_isolation_level_check = 1" )
322+ tk .MustExec ("SET GLOBAL TRANSACTION ISOLATION LEVEL READ UNCOMMITTED" )
323+ tk .MustQuery ("show warnings" ).Check (testkit .Rows (
324+ "Warning 1105 The isolation level 'READ-UNCOMMITTED' is not supported. Set tidb_skip_isolation_level_check=1 to skip this error" ))
325+ tk .MustQuery ("select @@global.tx_isolation" ).Check (testkit .Rows ("READ-UNCOMMITTED" ))
326+ tk .MustQuery ("select @@global.transaction_isolation" ).Check (testkit .Rows ("READ-UNCOMMITTED" ))
327+
328+ // test skip isolation level check: reset
329+ tk .MustExec ("SET GLOBAL tidb_skip_isolation_level_check = 0" )
330+ tk .MustExec ("SET SESSION tidb_skip_isolation_level_check = 0" )
288331}
289332
290333func (s * testSuite2 ) TestSetCharset (c * C ) {
@@ -584,6 +627,8 @@ func (s *testSuite2) TestValidateSetVar(c *C) {
584627 result = tk .MustQuery ("select @@tx_isolation;" )
585628 result .Check (testkit .Rows ("REPEATABLE-READ" ))
586629
630+ tk .MustExec ("SET GLOBAL tidb_skip_isolation_level_check = 0" )
631+ tk .MustExec ("SET SESSION tidb_skip_isolation_level_check = 0" )
587632 _ , err = tk .Exec ("set @@tx_isolation='SERIALIZABLE'" )
588633 c .Assert (terror .ErrorEqual (err , variable .ErrUnsupportedValueForVar ), IsTrue , Commentf ("err %v" , err ))
589634}
0 commit comments