18
18
mod test_utils;
19
19
use test_utils:: * ;
20
20
21
+ use sqlparser:: ast:: Value :: Boolean ;
21
22
use sqlparser:: ast:: * ;
22
23
use sqlparser:: dialect:: { GenericDialect , PostgreSqlDialect } ;
23
24
use sqlparser:: parser:: ParserError ;
@@ -780,7 +781,7 @@ fn parse_set() {
780
781
Statement :: SetVariable {
781
782
local: false ,
782
783
hivevar: false ,
783
- variable: "a" . into ( ) ,
784
+ variable: ObjectName ( vec! [ Ident :: new ( "a" ) ] ) ,
784
785
value: vec![ SetVariableValue :: Ident ( "b" . into( ) ) ] ,
785
786
}
786
787
) ;
@@ -791,7 +792,7 @@ fn parse_set() {
791
792
Statement :: SetVariable {
792
793
local: false ,
793
794
hivevar: false ,
794
- variable: "a" . into ( ) ,
795
+ variable: ObjectName ( vec! [ Ident :: new ( "a" ) ] ) ,
795
796
value: vec![ SetVariableValue :: Literal ( Value :: SingleQuotedString (
796
797
"b" . into( )
797
798
) ) ] ,
@@ -804,7 +805,7 @@ fn parse_set() {
804
805
Statement :: SetVariable {
805
806
local: false ,
806
807
hivevar: false ,
807
- variable: "a" . into ( ) ,
808
+ variable: ObjectName ( vec! [ Ident :: new ( "a" ) ] ) ,
808
809
value: vec![ SetVariableValue :: Literal ( number( "0" ) ) ] ,
809
810
}
810
811
) ;
@@ -815,7 +816,7 @@ fn parse_set() {
815
816
Statement :: SetVariable {
816
817
local: false ,
817
818
hivevar: false ,
818
- variable: "a" . into ( ) ,
819
+ variable: ObjectName ( vec! [ Ident :: new ( "a" ) ] ) ,
819
820
value: vec![ SetVariableValue :: Ident ( "DEFAULT" . into( ) ) ] ,
820
821
}
821
822
) ;
@@ -826,11 +827,42 @@ fn parse_set() {
826
827
Statement :: SetVariable {
827
828
local: true ,
828
829
hivevar: false ,
829
- variable: "a" . into ( ) ,
830
+ variable: ObjectName ( vec! [ Ident :: new ( "a" ) ] ) ,
830
831
value: vec![ SetVariableValue :: Ident ( "b" . into( ) ) ] ,
831
832
}
832
833
) ;
833
834
835
+ let stmt = pg_and_generic ( ) . verified_stmt ( "SET a.b.c = b" ) ;
836
+ assert_eq ! (
837
+ stmt,
838
+ Statement :: SetVariable {
839
+ local: false ,
840
+ hivevar: false ,
841
+ variable: ObjectName ( vec![ Ident :: new( "a" ) , Ident :: new( "b" ) , Ident :: new( "c" ) ] ) ,
842
+ value: vec![ SetVariableValue :: Ident ( "b" . into( ) ) ] ,
843
+ }
844
+ ) ;
845
+
846
+ let stmt = pg_and_generic ( ) . one_statement_parses_to (
847
+ "SET hive.tez.auto.reducer.parallelism=false" ,
848
+ "SET hive.tez.auto.reducer.parallelism = false" ,
849
+ ) ;
850
+ assert_eq ! (
851
+ stmt,
852
+ Statement :: SetVariable {
853
+ local: false ,
854
+ hivevar: false ,
855
+ variable: ObjectName ( vec![
856
+ Ident :: new( "hive" ) ,
857
+ Ident :: new( "tez" ) ,
858
+ Ident :: new( "auto" ) ,
859
+ Ident :: new( "reducer" ) ,
860
+ Ident :: new( "parallelism" )
861
+ ] ) ,
862
+ value: vec![ SetVariableValue :: Literal ( Boolean ( false ) ) ] ,
863
+ }
864
+ ) ;
865
+
834
866
pg_and_generic ( ) . one_statement_parses_to ( "SET a TO b" , "SET a = b" ) ;
835
867
pg_and_generic ( ) . one_statement_parses_to ( "SET SESSION a = b" , "SET a = b" ) ;
836
868
0 commit comments