@@ -297,18 +297,28 @@ fn test_select_wildcard_with_except() {
297
297
298
298
#[ test]
299
299
fn test_select_wildcard_with_replace ( ) {
300
+ let select = bigquery_and_generic ( )
301
+ . verified_only_select ( r#"SELECT * REPLACE 'widget' AS item_name FROM orders"# ) ;
302
+ let expected = SelectItem :: Wildcard ( WildcardAdditionalOptions {
303
+ opt_replace : Some ( ReplaceSelectItem :: Single ( Box :: new (
304
+ SelectItem :: ExprWithAlias {
305
+ expr : Expr :: Value ( Value :: SingleQuotedString ( "widget" . to_owned ( ) ) ) ,
306
+ alias : Ident :: new ( "item_name" ) ,
307
+ } ,
308
+ ) ) ) ,
309
+ ..Default :: default ( )
310
+ } ) ;
311
+ assert_eq ! ( expected, select. projection[ 0 ] ) ;
312
+
300
313
let select = bigquery_and_generic ( )
301
314
. verified_only_select ( r#"SELECT * REPLACE (quantity / 2 AS quantity) FROM orders"# ) ;
302
315
let expected = SelectItem :: Wildcard ( WildcardAdditionalOptions {
303
316
opt_replace : Some ( ReplaceSelectItem :: Multiple ( vec ! [ Box :: new(
304
317
SelectItem :: ExprWithAlias {
305
318
expr: Expr :: BinaryOp {
306
- left: Box :: new( sqlparser :: ast :: Expr :: Identifier ( Ident :: new( "quantity" ) ) ) ,
319
+ left: Box :: new( Expr :: Identifier ( Ident :: new( "quantity" ) ) ) ,
307
320
op: BinaryOperator :: Divide ,
308
- right: Box :: new( sqlparser:: ast:: Expr :: Value ( Value :: Number (
309
- "2" . to_string( ) ,
310
- false ,
311
- ) ) ) ,
321
+ right: Box :: new( Expr :: Value ( Value :: Number ( "2" . to_string( ) , false ) ) ) ,
312
322
} ,
313
323
alias: Ident :: new( "quantity" ) ,
314
324
} ,
0 commit comments