@@ -39,45 +39,43 @@ fn parse_literal_string() {
39
39
r#"'''triple-single'unescaped''', "# ,
40
40
r#""double\"escaped", "# ,
41
41
r#""""triple-double\"escaped""", "# ,
42
- r#""""triple-double"unescaped""", "# ,
43
- r#""""triple-double'unescaped""", "# ,
44
- r#"'''triple-single"unescaped'''"# ,
42
+ r#""""triple-double"unescaped""""# ,
45
43
) ;
46
44
let dialect = TestedDialects :: new_with_options (
47
45
vec ! [ Box :: new( BigQueryDialect { } ) ] ,
48
46
ParserOptions :: new ( ) . with_unescape ( false ) ,
49
47
) ;
50
48
let select = dialect. verified_only_select ( sql) ;
51
- assert_eq ! ( 12 , select. projection. len( ) ) ;
49
+ assert_eq ! ( 10 , select. projection. len( ) ) ;
52
50
assert_eq ! (
53
- & Expr :: Value ( Value :: SingleQuotedString ( "single" . into ( ) ) ) ,
51
+ & Expr :: Value ( Value :: SingleQuotedString ( "single" . to_string ( ) ) ) ,
54
52
expr_from_projection( & select. projection[ 0 ] )
55
53
) ;
56
54
assert_eq ! (
57
- & Expr :: Value ( Value :: DoubleQuotedString ( "double" . into ( ) ) ) ,
55
+ & Expr :: Value ( Value :: DoubleQuotedString ( "double" . to_string ( ) ) ) ,
58
56
expr_from_projection( & select. projection[ 1 ] )
59
57
) ;
60
58
assert_eq ! (
61
- & Expr :: Value ( Value :: TripleSingleQuotedString ( "triple-single" . into ( ) ) ) ,
59
+ & Expr :: Value ( Value :: TripleSingleQuotedString ( "triple-single" . to_string ( ) ) ) ,
62
60
expr_from_projection( & select. projection[ 2 ] )
63
61
) ;
64
62
assert_eq ! (
65
- & Expr :: Value ( Value :: TripleDoubleQuotedString ( "triple-double" . into ( ) ) ) ,
63
+ & Expr :: Value ( Value :: TripleDoubleQuotedString ( "triple-double" . to_string ( ) ) ) ,
66
64
expr_from_projection( & select. projection[ 3 ] )
67
65
) ;
68
66
assert_eq ! (
69
- & Expr :: Value ( Value :: SingleQuotedString ( r#"single\'escaped"# . into ( ) ) ) ,
67
+ & Expr :: Value ( Value :: SingleQuotedString ( r#"single\'escaped"# . to_string ( ) ) ) ,
70
68
expr_from_projection( & select. projection[ 4 ] )
71
69
) ;
72
70
assert_eq ! (
73
71
& Expr :: Value ( Value :: TripleSingleQuotedString (
74
- r#"triple-single\'escaped"# . into ( )
72
+ r#"triple-single\'escaped"# . to_string ( )
75
73
) ) ,
76
74
expr_from_projection( & select. projection[ 5 ] )
77
75
) ;
78
76
assert_eq ! (
79
77
& Expr :: Value ( Value :: TripleSingleQuotedString (
80
- r#"triple-single'unescaped"# . into ( )
78
+ r#"triple-single'unescaped"# . to_string ( )
81
79
) ) ,
82
80
expr_from_projection( & select. projection[ 6 ] )
83
81
) ;
@@ -97,18 +95,6 @@ fn parse_literal_string() {
97
95
) ) ,
98
96
expr_from_projection( & select. projection[ 9 ] )
99
97
) ;
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
- ) ;
112
98
}
113
99
114
100
#[ test]
@@ -602,7 +588,7 @@ fn parse_tuple_struct_literal() {
602
588
& Expr :: Tuple ( vec![
603
589
Expr :: Value ( number( "1" ) ) ,
604
590
Expr :: Value ( number( "1.0" ) ) ,
605
- Expr :: Value ( Value :: SingleQuotedString ( "123" . into ( ) ) ) ,
591
+ Expr :: Value ( Value :: SingleQuotedString ( "123" . to_string ( ) ) ) ,
606
592
Expr :: Value ( Value :: Boolean ( true ) )
607
593
] ) ,
608
594
expr_from_projection( & select. projection[ 1 ] )
@@ -630,7 +616,7 @@ fn parse_typeless_struct_syntax() {
630
616
631
617
assert_eq ! (
632
618
& Expr :: Struct {
633
- values: vec![ Expr :: Value ( Value :: SingleQuotedString ( "abc" . into ( ) ) ) , ] ,
619
+ values: vec![ Expr :: Value ( Value :: SingleQuotedString ( "abc" . to_string ( ) ) ) , ] ,
634
620
fields: Default :: default ( )
635
621
} ,
636
622
expr_from_projection( & select. projection[ 1 ] )
@@ -653,7 +639,7 @@ fn parse_typeless_struct_syntax() {
653
639
name: Ident :: from( "a" )
654
640
} ,
655
641
Expr :: Named {
656
- expr: Expr :: Value ( Value :: SingleQuotedString ( "abc" . into ( ) ) ) . into( ) ,
642
+ expr: Expr :: Value ( Value :: SingleQuotedString ( "abc" . to_string ( ) ) ) . into( ) ,
657
643
name: Ident :: from( "b" )
658
644
} ,
659
645
] ,
@@ -818,7 +804,9 @@ fn parse_typed_struct_syntax_bigquery() {
818
804
assert_eq ! ( 4 , select. projection. len( ) ) ;
819
805
assert_eq ! (
820
806
& 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
+ ) ) , ] ,
822
810
fields: vec![ StructField {
823
811
field_name: None ,
824
812
field_type: DataType :: Date
@@ -830,7 +818,7 @@ fn parse_typed_struct_syntax_bigquery() {
830
818
& Expr :: Struct {
831
819
values: vec![ Expr :: TypedString {
832
820
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 ( )
834
822
} , ] ,
835
823
fields: vec![ StructField {
836
824
field_name: None ,
@@ -866,7 +854,7 @@ fn parse_typed_struct_syntax_bigquery() {
866
854
assert_eq ! (
867
855
& Expr :: Struct {
868
856
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 ( ) ) ) ) ,
870
858
leading_field: Some ( DateTimeField :: Hour ) ,
871
859
leading_precision: None ,
872
860
last_field: None ,
@@ -883,9 +871,7 @@ fn parse_typed_struct_syntax_bigquery() {
883
871
& Expr :: Struct {
884
872
values: vec![ Expr :: TypedString {
885
873
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( )
889
875
} , ] ,
890
876
fields: vec![ StructField {
891
877
field_name: None ,
@@ -900,7 +886,7 @@ fn parse_typed_struct_syntax_bigquery() {
900
886
assert_eq ! ( 3 , select. projection. len( ) ) ;
901
887
assert_eq ! (
902
888
& Expr :: Struct {
903
- values: vec![ Expr :: Value ( Value :: DoubleQuotedString ( "foo" . into ( ) ) ) , ] ,
889
+ values: vec![ Expr :: Value ( Value :: DoubleQuotedString ( "foo" . to_string ( ) ) ) , ] ,
904
890
fields: vec![ StructField {
905
891
field_name: None ,
906
892
field_type: DataType :: String ( Some ( 42 ) )
@@ -912,7 +898,7 @@ fn parse_typed_struct_syntax_bigquery() {
912
898
& Expr :: Struct {
913
899
values: vec![ Expr :: TypedString {
914
900
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 ( )
916
902
} , ] ,
917
903
fields: vec![ StructField {
918
904
field_name: None ,
@@ -926,7 +912,7 @@ fn parse_typed_struct_syntax_bigquery() {
926
912
& Expr :: Struct {
927
913
values: vec![ Expr :: TypedString {
928
914
data_type: DataType :: Time ( None , TimezoneInfo :: None ) ,
929
- value: Value :: SingleQuotedString ( "15:30:00" . into ( ) )
915
+ value: "15:30:00" . to_string ( )
930
916
} , ] ,
931
917
fields: vec![ StructField {
932
918
field_name: None ,
@@ -943,7 +929,7 @@ fn parse_typed_struct_syntax_bigquery() {
943
929
& Expr :: Struct {
944
930
values: vec![ Expr :: TypedString {
945
931
data_type: DataType :: Numeric ( ExactNumberInfo :: None ) ,
946
- value: Value :: SingleQuotedString ( "1" . into ( ) )
932
+ value: "1" . to_string ( )
947
933
} , ] ,
948
934
fields: vec![ StructField {
949
935
field_name: None ,
@@ -956,7 +942,7 @@ fn parse_typed_struct_syntax_bigquery() {
956
942
& Expr :: Struct {
957
943
values: vec![ Expr :: TypedString {
958
944
data_type: DataType :: BigNumeric ( ExactNumberInfo :: None ) ,
959
- value: Value :: SingleQuotedString ( "1" . into ( ) )
945
+ value: "1" . to_string ( )
960
946
} , ] ,
961
947
fields: vec![ StructField {
962
948
field_name: None ,
@@ -1133,7 +1119,9 @@ fn parse_typed_struct_syntax_bigquery_and_generic() {
1133
1119
assert_eq ! ( 4 , select. projection. len( ) ) ;
1134
1120
assert_eq ! (
1135
1121
& 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
+ ) ) , ] ,
1137
1125
fields: vec![ StructField {
1138
1126
field_name: None ,
1139
1127
field_type: DataType :: Date
@@ -1145,7 +1133,7 @@ fn parse_typed_struct_syntax_bigquery_and_generic() {
1145
1133
& Expr :: Struct {
1146
1134
values: vec![ Expr :: TypedString {
1147
1135
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 ( )
1149
1137
} , ] ,
1150
1138
fields: vec![ StructField {
1151
1139
field_name: None ,
@@ -1181,7 +1169,7 @@ fn parse_typed_struct_syntax_bigquery_and_generic() {
1181
1169
assert_eq ! (
1182
1170
& Expr :: Struct {
1183
1171
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 ( ) ) ) ) ,
1185
1173
leading_field: Some ( DateTimeField :: Month ) ,
1186
1174
leading_precision: None ,
1187
1175
last_field: None ,
@@ -1198,9 +1186,7 @@ fn parse_typed_struct_syntax_bigquery_and_generic() {
1198
1186
& Expr :: Struct {
1199
1187
values: vec![ Expr :: TypedString {
1200
1188
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( )
1204
1190
} , ] ,
1205
1191
fields: vec![ StructField {
1206
1192
field_name: None ,
@@ -1215,7 +1201,7 @@ fn parse_typed_struct_syntax_bigquery_and_generic() {
1215
1201
assert_eq ! ( 3 , select. projection. len( ) ) ;
1216
1202
assert_eq ! (
1217
1203
& Expr :: Struct {
1218
- values: vec![ Expr :: Value ( Value :: SingleQuotedString ( "foo" . into ( ) ) ) , ] ,
1204
+ values: vec![ Expr :: Value ( Value :: SingleQuotedString ( "foo" . to_string ( ) ) ) , ] ,
1219
1205
fields: vec![ StructField {
1220
1206
field_name: None ,
1221
1207
field_type: DataType :: String ( Some ( 42 ) )
@@ -1227,7 +1213,7 @@ fn parse_typed_struct_syntax_bigquery_and_generic() {
1227
1213
& Expr :: Struct {
1228
1214
values: vec![ Expr :: TypedString {
1229
1215
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 ( )
1231
1217
} , ] ,
1232
1218
fields: vec![ StructField {
1233
1219
field_name: None ,
@@ -1241,7 +1227,7 @@ fn parse_typed_struct_syntax_bigquery_and_generic() {
1241
1227
& Expr :: Struct {
1242
1228
values: vec![ Expr :: TypedString {
1243
1229
data_type: DataType :: Time ( None , TimezoneInfo :: None ) ,
1244
- value: Value :: SingleQuotedString ( "15:30:00" . into ( ) )
1230
+ value: "15:30:00" . to_string ( )
1245
1231
} , ] ,
1246
1232
fields: vec![ StructField {
1247
1233
field_name: None ,
@@ -1258,7 +1244,7 @@ fn parse_typed_struct_syntax_bigquery_and_generic() {
1258
1244
& Expr :: Struct {
1259
1245
values: vec![ Expr :: TypedString {
1260
1246
data_type: DataType :: Numeric ( ExactNumberInfo :: None ) ,
1261
- value: Value :: SingleQuotedString ( "1" . into ( ) )
1247
+ value: "1" . to_string ( )
1262
1248
} , ] ,
1263
1249
fields: vec![ StructField {
1264
1250
field_name: None ,
@@ -1271,7 +1257,7 @@ fn parse_typed_struct_syntax_bigquery_and_generic() {
1271
1257
& Expr :: Struct {
1272
1258
values: vec![ Expr :: TypedString {
1273
1259
data_type: DataType :: BigNumeric ( ExactNumberInfo :: None ) ,
1274
- value: Value :: SingleQuotedString ( "1" . into ( ) )
1260
+ value: "1" . to_string ( )
1275
1261
} , ] ,
1276
1262
fields: vec![ StructField {
1277
1263
field_name: None ,
@@ -1299,7 +1285,7 @@ fn parse_typed_struct_with_field_name_bigquery() {
1299
1285
) ;
1300
1286
assert_eq ! (
1301
1287
& Expr :: Struct {
1302
- values: vec![ Expr :: Value ( Value :: DoubleQuotedString ( "foo" . into ( ) ) ) , ] ,
1288
+ values: vec![ Expr :: Value ( Value :: DoubleQuotedString ( "foo" . to_string ( ) ) ) , ] ,
1303
1289
fields: vec![ StructField {
1304
1290
field_name: Some ( Ident :: from( "y" ) ) ,
1305
1291
field_type: DataType :: String ( None )
@@ -1346,7 +1332,7 @@ fn parse_typed_struct_with_field_name_bigquery_and_generic() {
1346
1332
) ;
1347
1333
assert_eq ! (
1348
1334
& Expr :: Struct {
1349
- values: vec![ Expr :: Value ( Value :: SingleQuotedString ( "foo" . into ( ) ) ) , ] ,
1335
+ values: vec![ Expr :: Value ( Value :: SingleQuotedString ( "foo" . to_string ( ) ) ) , ] ,
1350
1336
fields: vec![ StructField {
1351
1337
field_name: Some ( Ident :: from( "y" ) ) ,
1352
1338
field_type: DataType :: String ( None )
@@ -2248,20 +2234,6 @@ fn test_select_as_value() {
2248
2234
assert_eq ! ( Some ( ValueTableMode :: AsValue ) , select. value_table_mode) ;
2249
2235
}
2250
2236
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
-
2265
2237
#[ test]
2266
2238
fn test_array_agg ( ) {
2267
2239
bigquery_and_generic ( ) . verified_expr ( "ARRAY_AGG(state)" ) ;
0 commit comments