@@ -739,18 +739,46 @@ func TestProxyLowerCase(t *testing.T) {
739739 fakedbs , proxy , cleanup := MockProxy (log )
740740 defer cleanup ()
741741 address := proxy .Address ()
742- proxy .SetLowerCaseTableNames (true )
742+
743+ r1 := & sqltypes.Result {
744+ Fields : []* querypb.Field {
745+ {
746+ Name : "table" ,
747+ Type : querypb .Type_VARCHAR ,
748+ },
749+ {
750+ Name : "create table" ,
751+ Type : querypb .Type_VARCHAR ,
752+ },
753+ },
754+ Rows : [][]sqltypes.Value {
755+ {
756+ sqltypes .MakeTrusted (querypb .Type_VARCHAR , []byte ("t1" )),
757+ sqltypes .MakeTrusted (querypb .Type_VARCHAR , []byte ("create table t1" )),
758+ },
759+ },
760+ }
743761
744762 // fakedbs.
745763 {
746764 fakedbs .AddQueryPattern ("create .*" , & sqltypes.Result {})
765+ fakedbs .AddQueryPattern ("insert .*" , & sqltypes.Result {})
766+ fakedbs .AddQueryPattern ("delete .*" , & sqltypes.Result {})
767+ fakedbs .AddQueryPattern ("update .*" , & sqltypes.Result {})
747768 fakedbs .AddQueryPattern ("select .*" , & sqltypes.Result {})
769+ fakedbs .AddQueryPattern ("use .*" , & sqltypes.Result {})
770+ fakedbs .AddQueryPattern ("show create .*" , r1 )
771+ }
772+
773+ {
774+ proxy .SetLowerCaseTableNames (1 )
748775 }
749776
750777 // create database.
751778 {
752779 client , err := driver .NewConn ("mock" , "mock" , address , "" , "utf8" )
753780 assert .Nil (t , err )
781+ defer client .Close ()
754782 query := "create database TEST"
755783 _ , err = client .FetchAll (query , - 1 )
756784 assert .Nil (t , err )
@@ -760,17 +788,100 @@ func TestProxyLowerCase(t *testing.T) {
760788 {
761789 client , err := driver .NewConn ("mock" , "mock" , address , "" , "utf8" )
762790 assert .Nil (t , err )
791+ defer client .Close ()
763792 query := "create table test.T1(id int, b int) partition by hash(id)"
764793 _ , err = client .FetchAll (query , - 1 )
765794 assert .Nil (t , err )
766795 }
767796
797+ // insert.
798+ {
799+ client , err := driver .NewConn ("mock" , "mock" , address , "" , "utf8" )
800+ assert .Nil (t , err )
801+ defer client .Close ()
802+ query := "insert into Test.t1(id,b) values(1,1)"
803+ _ , err = client .FetchAll (query , - 1 )
804+ assert .Nil (t , err )
805+ }
806+
807+ // update.
808+ {
809+ client , err := driver .NewConn ("mock" , "mock" , address , "test" , "utf8" )
810+ assert .Nil (t , err )
811+ defer client .Close ()
812+ query := "update t1 set b=2 where id=1"
813+ _ , err = client .FetchAll (query , - 1 )
814+ assert .Nil (t , err )
815+ }
816+
817+ // select.
818+ {
819+ client , err := driver .NewConn ("mock" , "mock" , address , "" , "utf8" )
820+ assert .Nil (t , err )
821+ defer client .Close ()
822+ query := "select * from tEst.t1 as T where t.b=2"
823+ _ , err = client .FetchAll (query , - 1 )
824+ assert .Nil (t , err )
825+ }
826+
827+ // delete.
828+ {
829+ client , err := driver .NewConn ("mock" , "mock" , address , "TEST" , "utf8" )
830+ assert .Nil (t , err )
831+ defer client .Close ()
832+ query := "delete from t1 where T1.id=1"
833+ _ , err = client .FetchAll (query , - 1 )
834+ assert .Nil (t , err )
835+ }
836+
837+ // show.
838+ {
839+ client , err := driver .NewConn ("mock" , "mock" , address , "" , "utf8" )
840+ assert .Nil (t , err )
841+ defer client .Close ()
842+ query := "show create table test.t1"
843+ _ , err = client .FetchAll (query , - 1 )
844+ assert .Nil (t , err )
845+ }
846+
847+ // lower_case_table_names=0
848+ {
849+ proxy .SetLowerCaseTableNames (0 )
850+ }
851+
768852 // select.
769853 {
770854 client , err := driver .NewConn ("mock" , "mock" , address , "" , "utf8" )
771855 assert .Nil (t , err )
772- query := "select * from test.t1"
856+ defer client .Close ()
857+ query := "select * from test.t1 as t where t.b=2"
773858 _ , err = client .FetchAll (query , - 1 )
774859 assert .Nil (t , err )
775860 }
861+
862+ // select error 1.
863+ {
864+ client , err := driver .NewConn ("mock" , "mock" , address , "" , "utf8" )
865+ assert .Nil (t , err )
866+ defer client .Close ()
867+ query := "select * from TEST.T1 as t where t.b=2"
868+ _ , err = client .FetchAll (query , - 1 )
869+ assert .NotNil (t , err )
870+ want := "Table 'TEST.T1' doesn't exist (errno 1146) (sqlstate 42S02)"
871+ got := err .Error ()
872+ assert .Equal (t , want , got )
873+ }
874+
875+ // select error 2.
876+ {
877+ client , err := driver .NewConn ("mock" , "mock" , address , "" , "utf8" )
878+ assert .Nil (t , err )
879+ defer client .Close ()
880+ query := "select * from test.t1 as T where t.b=2"
881+ _ , err = client .FetchAll (query , - 1 )
882+ assert .NotNil (t , err )
883+ want := "unsupported: unknown.column.'t.b'.in.clause (errno 1105) (sqlstate HY000)"
884+ got := err .Error ()
885+ assert .Equal (t , want , got )
886+ }
776887}
0 commit comments