@@ -3416,3 +3416,34 @@ func (s *testSuite) TestSelectHashPartitionTable(c *C) {
3416
3416
" └─TableScan_13 10000.00 cop table:th, partition:, range:[-inf,+inf], keep order:false, stats:pseudo" ,
3417
3417
))
3418
3418
}
3419
+
3420
+ func (s * testSuite ) TestSelectView (c * C ) {
3421
+ tk := testkit .NewTestKit (c , s .store )
3422
+ tk .MustExec ("use test" )
3423
+ tk .MustExec ("create table view_t (a int,b int)" )
3424
+ tk .MustExec ("insert into view_t values(1,2)" )
3425
+ tk .MustExec ("create view view1 as select * from view_t" )
3426
+ tk .MustExec ("create view view2(c,d) as select * from view_t" )
3427
+ tk .MustExec ("create view view3(c,d) as select a,b from view_t" )
3428
+ tk .MustQuery ("select * from view1;" ).Check (testkit .Rows ("1 2" ))
3429
+ tk .MustQuery ("select * from view2;" ).Check (testkit .Rows ("1 2" ))
3430
+ tk .MustQuery ("select * from view3;" ).Check (testkit .Rows ("1 2" ))
3431
+ tk .MustExec ("drop table view_t;" )
3432
+ tk .MustExec ("create table view_t(c int,d int)" )
3433
+ _ , err := tk .Exec ("select * from view1" )
3434
+ c .Assert (err .Error (), Equals , "[planner:1054]Unknown column 'a' in 'field_list'" )
3435
+ _ , err = tk .Exec ("select * from view2" )
3436
+ c .Assert (err .Error (), Equals , "[planner:1054]Unknown column 'a' in 'field_list'" )
3437
+ _ , err = tk .Exec ("select * from view3" )
3438
+ c .Assert (err .Error (), Equals , "[planner:1054]Unknown column 'a' in 'field list'" )
3439
+ tk .MustExec ("drop table view_t;" )
3440
+ tk .MustExec ("create table view_t(a int,b int,c int)" )
3441
+ tk .MustExec ("insert into view_t values(1,2,3)" )
3442
+ _ , err = tk .Exec ("select * from view1" )
3443
+ c .Assert (err .Error (), Equals , "View view1's UnderTable has changed with different column count" )
3444
+ _ , err = tk .Exec ("select * from view2" )
3445
+ c .Assert (err .Error (), Equals , "View view2's UnderTable has changed with different column count" )
3446
+ tk .MustQuery ("select * from view3;" ).Check (testkit .Rows ("1 2" ))
3447
+ defer tk .MustExec ("drop table view_t;" )
3448
+ defer tk .MustExec ("drop view view1,view2,view3;" )
3449
+ }
0 commit comments