@@ -39,45 +39,43 @@ fn parse_literal_string() {
3939 r#"'''triple-single'unescaped''', "# ,
4040 r#""double\"escaped", "# ,
4141 r#""""triple-double\"escaped""", "# ,
42- r#""""triple-double"unescaped""", "# ,
43- r#""""triple-double'unescaped""", "# ,
44- r#"'''triple-single"unescaped'''"# ,
42+ r#""""triple-double"unescaped""""# ,
4543 ) ;
4644 let dialect = TestedDialects :: new_with_options (
4745 vec ! [ Box :: new( BigQueryDialect { } ) ] ,
4846 ParserOptions :: new ( ) . with_unescape ( false ) ,
4947 ) ;
5048 let select = dialect. verified_only_select ( sql) ;
51- assert_eq ! ( 12 , select. projection. len( ) ) ;
49+ assert_eq ! ( 10 , select. projection. len( ) ) ;
5250 assert_eq ! (
53- & Expr :: Value ( Value :: SingleQuotedString ( "single" . into ( ) ) ) ,
51+ & Expr :: Value ( Value :: SingleQuotedString ( "single" . to_string ( ) ) ) ,
5452 expr_from_projection( & select. projection[ 0 ] )
5553 ) ;
5654 assert_eq ! (
57- & Expr :: Value ( Value :: DoubleQuotedString ( "double" . into ( ) ) ) ,
55+ & Expr :: Value ( Value :: DoubleQuotedString ( "double" . to_string ( ) ) ) ,
5856 expr_from_projection( & select. projection[ 1 ] )
5957 ) ;
6058 assert_eq ! (
61- & Expr :: Value ( Value :: TripleSingleQuotedString ( "triple-single" . into ( ) ) ) ,
59+ & Expr :: Value ( Value :: TripleSingleQuotedString ( "triple-single" . to_string ( ) ) ) ,
6260 expr_from_projection( & select. projection[ 2 ] )
6361 ) ;
6462 assert_eq ! (
65- & Expr :: Value ( Value :: TripleDoubleQuotedString ( "triple-double" . into ( ) ) ) ,
63+ & Expr :: Value ( Value :: TripleDoubleQuotedString ( "triple-double" . to_string ( ) ) ) ,
6664 expr_from_projection( & select. projection[ 3 ] )
6765 ) ;
6866 assert_eq ! (
69- & Expr :: Value ( Value :: SingleQuotedString ( r#"single\'escaped"# . into ( ) ) ) ,
67+ & Expr :: Value ( Value :: SingleQuotedString ( r#"single\'escaped"# . to_string ( ) ) ) ,
7068 expr_from_projection( & select. projection[ 4 ] )
7169 ) ;
7270 assert_eq ! (
7371 & Expr :: Value ( Value :: TripleSingleQuotedString (
74- r#"triple-single\'escaped"# . into ( )
72+ r#"triple-single\'escaped"# . to_string ( )
7573 ) ) ,
7674 expr_from_projection( & select. projection[ 5 ] )
7775 ) ;
7876 assert_eq ! (
7977 & Expr :: Value ( Value :: TripleSingleQuotedString (
80- r#"triple-single'unescaped"# . into ( )
78+ r#"triple-single'unescaped"# . to_string ( )
8179 ) ) ,
8280 expr_from_projection( & select. projection[ 6 ] )
8381 ) ;
@@ -97,18 +95,6 @@ fn parse_literal_string() {
9795 ) ) ,
9896 expr_from_projection( & select. projection[ 9 ] )
9997 ) ;
100- assert_eq ! (
101- & Expr :: Value ( Value :: TripleDoubleQuotedString (
102- r#"triple-double'unescaped"# . to_string( )
103- ) ) ,
104- expr_from_projection( & select. projection[ 10 ] )
105- ) ;
106- assert_eq ! (
107- & Expr :: Value ( Value :: TripleSingleQuotedString (
108- r#"triple-single"unescaped"# . to_string( )
109- ) ) ,
110- expr_from_projection( & select. projection[ 11 ] )
111- ) ;
11298}
11399
114100#[ test]
@@ -602,7 +588,7 @@ fn parse_tuple_struct_literal() {
602588 & Expr :: Tuple ( vec![
603589 Expr :: Value ( number( "1" ) ) ,
604590 Expr :: Value ( number( "1.0" ) ) ,
605- Expr :: Value ( Value :: SingleQuotedString ( "123" . into ( ) ) ) ,
591+ Expr :: Value ( Value :: SingleQuotedString ( "123" . to_string ( ) ) ) ,
606592 Expr :: Value ( Value :: Boolean ( true ) )
607593 ] ) ,
608594 expr_from_projection( & select. projection[ 1 ] )
@@ -630,7 +616,7 @@ fn parse_typeless_struct_syntax() {
630616
631617 assert_eq ! (
632618 & Expr :: Struct {
633- values: vec![ Expr :: Value ( Value :: SingleQuotedString ( "abc" . into ( ) ) ) , ] ,
619+ values: vec![ Expr :: Value ( Value :: SingleQuotedString ( "abc" . to_string ( ) ) ) , ] ,
634620 fields: Default :: default ( )
635621 } ,
636622 expr_from_projection( & select. projection[ 1 ] )
@@ -653,7 +639,7 @@ fn parse_typeless_struct_syntax() {
653639 name: Ident :: from( "a" )
654640 } ,
655641 Expr :: Named {
656- expr: Expr :: Value ( Value :: SingleQuotedString ( "abc" . into ( ) ) ) . into( ) ,
642+ expr: Expr :: Value ( Value :: SingleQuotedString ( "abc" . to_string ( ) ) ) . into( ) ,
657643 name: Ident :: from( "b" )
658644 } ,
659645 ] ,
@@ -818,7 +804,9 @@ fn parse_typed_struct_syntax_bigquery() {
818804 assert_eq ! ( 4 , select. projection. len( ) ) ;
819805 assert_eq ! (
820806 & Expr :: Struct {
821- values: vec![ Expr :: Value ( Value :: DoubleQuotedString ( "2011-05-05" . into( ) ) ) , ] ,
807+ values: vec![ Expr :: Value ( Value :: DoubleQuotedString (
808+ "2011-05-05" . to_string( )
809+ ) ) , ] ,
822810 fields: vec![ StructField {
823811 field_name: None ,
824812 field_type: DataType :: Date
@@ -830,7 +818,7 @@ fn parse_typed_struct_syntax_bigquery() {
830818 & Expr :: Struct {
831819 values: vec![ Expr :: TypedString {
832820 data_type: DataType :: Datetime ( None ) ,
833- value: Value :: SingleQuotedString ( "1999-01-01 01:23:34.45" . into ( ) )
821+ value: "1999-01-01 01:23:34.45" . to_string ( )
834822 } , ] ,
835823 fields: vec![ StructField {
836824 field_name: None ,
@@ -866,7 +854,7 @@ fn parse_typed_struct_syntax_bigquery() {
866854 assert_eq ! (
867855 & Expr :: Struct {
868856 values: vec![ Expr :: Interval ( Interval {
869- value: Box :: new( Expr :: Value ( Value :: SingleQuotedString ( "2" . into ( ) ) ) ) ,
857+ value: Box :: new( Expr :: Value ( Value :: SingleQuotedString ( "2" . to_string ( ) ) ) ) ,
870858 leading_field: Some ( DateTimeField :: Hour ) ,
871859 leading_precision: None ,
872860 last_field: None ,
@@ -883,9 +871,7 @@ fn parse_typed_struct_syntax_bigquery() {
883871 & Expr :: Struct {
884872 values: vec![ Expr :: TypedString {
885873 data_type: DataType :: JSON ,
886- value: Value :: SingleQuotedString (
887- r#"{"class" : {"students" : [{"name" : "Jane"}]}}"# . into( )
888- )
874+ value: r#"{"class" : {"students" : [{"name" : "Jane"}]}}"# . to_string( )
889875 } , ] ,
890876 fields: vec![ StructField {
891877 field_name: None ,
@@ -900,7 +886,7 @@ fn parse_typed_struct_syntax_bigquery() {
900886 assert_eq ! ( 3 , select. projection. len( ) ) ;
901887 assert_eq ! (
902888 & Expr :: Struct {
903- values: vec![ Expr :: Value ( Value :: DoubleQuotedString ( "foo" . into ( ) ) ) , ] ,
889+ values: vec![ Expr :: Value ( Value :: DoubleQuotedString ( "foo" . to_string ( ) ) ) , ] ,
904890 fields: vec![ StructField {
905891 field_name: None ,
906892 field_type: DataType :: String ( Some ( 42 ) )
@@ -912,7 +898,7 @@ fn parse_typed_struct_syntax_bigquery() {
912898 & Expr :: Struct {
913899 values: vec![ Expr :: TypedString {
914900 data_type: DataType :: Timestamp ( None , TimezoneInfo :: None ) ,
915- value: Value :: SingleQuotedString ( "2008-12-25 15:30:00 America/Los_Angeles" . into ( ) )
901+ value: "2008-12-25 15:30:00 America/Los_Angeles" . to_string ( )
916902 } , ] ,
917903 fields: vec![ StructField {
918904 field_name: None ,
@@ -926,7 +912,7 @@ fn parse_typed_struct_syntax_bigquery() {
926912 & Expr :: Struct {
927913 values: vec![ Expr :: TypedString {
928914 data_type: DataType :: Time ( None , TimezoneInfo :: None ) ,
929- value: Value :: SingleQuotedString ( "15:30:00" . into ( ) )
915+ value: "15:30:00" . to_string ( )
930916 } , ] ,
931917 fields: vec![ StructField {
932918 field_name: None ,
@@ -943,7 +929,7 @@ fn parse_typed_struct_syntax_bigquery() {
943929 & Expr :: Struct {
944930 values: vec![ Expr :: TypedString {
945931 data_type: DataType :: Numeric ( ExactNumberInfo :: None ) ,
946- value: Value :: SingleQuotedString ( "1" . into ( ) )
932+ value: "1" . to_string ( )
947933 } , ] ,
948934 fields: vec![ StructField {
949935 field_name: None ,
@@ -956,7 +942,7 @@ fn parse_typed_struct_syntax_bigquery() {
956942 & Expr :: Struct {
957943 values: vec![ Expr :: TypedString {
958944 data_type: DataType :: BigNumeric ( ExactNumberInfo :: None ) ,
959- value: Value :: SingleQuotedString ( "1" . into ( ) )
945+ value: "1" . to_string ( )
960946 } , ] ,
961947 fields: vec![ StructField {
962948 field_name: None ,
@@ -1133,7 +1119,9 @@ fn parse_typed_struct_syntax_bigquery_and_generic() {
11331119 assert_eq ! ( 4 , select. projection. len( ) ) ;
11341120 assert_eq ! (
11351121 & Expr :: Struct {
1136- values: vec![ Expr :: Value ( Value :: SingleQuotedString ( "2011-05-05" . into( ) ) ) , ] ,
1122+ values: vec![ Expr :: Value ( Value :: SingleQuotedString (
1123+ "2011-05-05" . to_string( )
1124+ ) ) , ] ,
11371125 fields: vec![ StructField {
11381126 field_name: None ,
11391127 field_type: DataType :: Date
@@ -1145,7 +1133,7 @@ fn parse_typed_struct_syntax_bigquery_and_generic() {
11451133 & Expr :: Struct {
11461134 values: vec![ Expr :: TypedString {
11471135 data_type: DataType :: Datetime ( None ) ,
1148- value: Value :: SingleQuotedString ( "1999-01-01 01:23:34.45" . into ( ) )
1136+ value: "1999-01-01 01:23:34.45" . to_string ( )
11491137 } , ] ,
11501138 fields: vec![ StructField {
11511139 field_name: None ,
@@ -1181,7 +1169,7 @@ fn parse_typed_struct_syntax_bigquery_and_generic() {
11811169 assert_eq ! (
11821170 & Expr :: Struct {
11831171 values: vec![ Expr :: Interval ( Interval {
1184- value: Box :: new( Expr :: Value ( Value :: SingleQuotedString ( "1" . into ( ) ) ) ) ,
1172+ value: Box :: new( Expr :: Value ( Value :: SingleQuotedString ( "1" . to_string ( ) ) ) ) ,
11851173 leading_field: Some ( DateTimeField :: Month ) ,
11861174 leading_precision: None ,
11871175 last_field: None ,
@@ -1198,9 +1186,7 @@ fn parse_typed_struct_syntax_bigquery_and_generic() {
11981186 & Expr :: Struct {
11991187 values: vec![ Expr :: TypedString {
12001188 data_type: DataType :: JSON ,
1201- value: Value :: SingleQuotedString (
1202- r#"{"class" : {"students" : [{"name" : "Jane"}]}}"# . into( )
1203- )
1189+ value: r#"{"class" : {"students" : [{"name" : "Jane"}]}}"# . to_string( )
12041190 } , ] ,
12051191 fields: vec![ StructField {
12061192 field_name: None ,
@@ -1215,7 +1201,7 @@ fn parse_typed_struct_syntax_bigquery_and_generic() {
12151201 assert_eq ! ( 3 , select. projection. len( ) ) ;
12161202 assert_eq ! (
12171203 & Expr :: Struct {
1218- values: vec![ Expr :: Value ( Value :: SingleQuotedString ( "foo" . into ( ) ) ) , ] ,
1204+ values: vec![ Expr :: Value ( Value :: SingleQuotedString ( "foo" . to_string ( ) ) ) , ] ,
12191205 fields: vec![ StructField {
12201206 field_name: None ,
12211207 field_type: DataType :: String ( Some ( 42 ) )
@@ -1227,7 +1213,7 @@ fn parse_typed_struct_syntax_bigquery_and_generic() {
12271213 & Expr :: Struct {
12281214 values: vec![ Expr :: TypedString {
12291215 data_type: DataType :: Timestamp ( None , TimezoneInfo :: None ) ,
1230- value: Value :: SingleQuotedString ( "2008-12-25 15:30:00 America/Los_Angeles" . into ( ) )
1216+ value: "2008-12-25 15:30:00 America/Los_Angeles" . to_string ( )
12311217 } , ] ,
12321218 fields: vec![ StructField {
12331219 field_name: None ,
@@ -1241,7 +1227,7 @@ fn parse_typed_struct_syntax_bigquery_and_generic() {
12411227 & Expr :: Struct {
12421228 values: vec![ Expr :: TypedString {
12431229 data_type: DataType :: Time ( None , TimezoneInfo :: None ) ,
1244- value: Value :: SingleQuotedString ( "15:30:00" . into ( ) )
1230+ value: "15:30:00" . to_string ( )
12451231 } , ] ,
12461232 fields: vec![ StructField {
12471233 field_name: None ,
@@ -1258,7 +1244,7 @@ fn parse_typed_struct_syntax_bigquery_and_generic() {
12581244 & Expr :: Struct {
12591245 values: vec![ Expr :: TypedString {
12601246 data_type: DataType :: Numeric ( ExactNumberInfo :: None ) ,
1261- value: Value :: SingleQuotedString ( "1" . into ( ) )
1247+ value: "1" . to_string ( )
12621248 } , ] ,
12631249 fields: vec![ StructField {
12641250 field_name: None ,
@@ -1271,7 +1257,7 @@ fn parse_typed_struct_syntax_bigquery_and_generic() {
12711257 & Expr :: Struct {
12721258 values: vec![ Expr :: TypedString {
12731259 data_type: DataType :: BigNumeric ( ExactNumberInfo :: None ) ,
1274- value: Value :: SingleQuotedString ( "1" . into ( ) )
1260+ value: "1" . to_string ( )
12751261 } , ] ,
12761262 fields: vec![ StructField {
12771263 field_name: None ,
@@ -1299,7 +1285,7 @@ fn parse_typed_struct_with_field_name_bigquery() {
12991285 ) ;
13001286 assert_eq ! (
13011287 & Expr :: Struct {
1302- values: vec![ Expr :: Value ( Value :: DoubleQuotedString ( "foo" . into ( ) ) ) , ] ,
1288+ values: vec![ Expr :: Value ( Value :: DoubleQuotedString ( "foo" . to_string ( ) ) ) , ] ,
13031289 fields: vec![ StructField {
13041290 field_name: Some ( Ident :: from( "y" ) ) ,
13051291 field_type: DataType :: String ( None )
@@ -1346,7 +1332,7 @@ fn parse_typed_struct_with_field_name_bigquery_and_generic() {
13461332 ) ;
13471333 assert_eq ! (
13481334 & Expr :: Struct {
1349- values: vec![ Expr :: Value ( Value :: SingleQuotedString ( "foo" . into ( ) ) ) , ] ,
1335+ values: vec![ Expr :: Value ( Value :: SingleQuotedString ( "foo" . to_string ( ) ) ) , ] ,
13501336 fields: vec![ StructField {
13511337 field_name: Some ( Ident :: from( "y" ) ) ,
13521338 field_type: DataType :: String ( None )
@@ -2248,20 +2234,6 @@ fn test_select_as_value() {
22482234 assert_eq ! ( Some ( ValueTableMode :: AsValue ) , select. value_table_mode) ;
22492235}
22502236
2251- #[ test]
2252- fn test_triple_quote_typed_strings ( ) {
2253- bigquery ( ) . verified_expr ( r#"JSON '''{"foo":"bar's"}'''"# ) ;
2254-
2255- let expr = bigquery ( ) . verified_expr ( r#"JSON """{"foo":"bar's"}""""# ) ;
2256- assert_eq ! (
2257- Expr :: TypedString {
2258- data_type: DataType :: JSON ,
2259- value: Value :: TripleDoubleQuotedString ( r#"{"foo":"bar's"}"# . into( ) )
2260- } ,
2261- expr
2262- ) ;
2263- }
2264-
22652237#[ test]
22662238fn test_array_agg ( ) {
22672239 bigquery_and_generic ( ) . verified_expr ( "ARRAY_AGG(state)" ) ;
0 commit comments