@@ -315,18 +315,28 @@ fn test_select_wildcard_with_except() {
315
315
316
316
#[ test]
317
317
fn test_select_wildcard_with_replace ( ) {
318
+ let select = bigquery_and_generic ( )
319
+ . verified_only_select ( r#"SELECT * REPLACE 'widget' AS item_name FROM orders"# ) ;
320
+ let expected = SelectItem :: Wildcard ( WildcardAdditionalOptions {
321
+ opt_replace : Some ( ReplaceSelectItem :: Single ( Box :: new (
322
+ SelectItem :: ExprWithAlias {
323
+ expr : Expr :: Value ( Value :: SingleQuotedString ( "widget" . to_owned ( ) ) ) ,
324
+ alias : Ident :: new ( "item_name" ) ,
325
+ } ,
326
+ ) ) ) ,
327
+ ..Default :: default ( )
328
+ } ) ;
329
+ assert_eq ! ( expected, select. projection[ 0 ] ) ;
330
+
318
331
let select = bigquery_and_generic ( )
319
332
. verified_only_select ( r#"SELECT * REPLACE (quantity / 2 AS quantity) FROM orders"# ) ;
320
333
let expected = SelectItem :: Wildcard ( WildcardAdditionalOptions {
321
334
opt_replace : Some ( ReplaceSelectItem :: Multiple ( vec ! [ Box :: new(
322
335
SelectItem :: ExprWithAlias {
323
336
expr: Expr :: BinaryOp {
324
- left: Box :: new( sqlparser :: ast :: Expr :: Identifier ( Ident :: new( "quantity" ) ) ) ,
337
+ left: Box :: new( Expr :: Identifier ( Ident :: new( "quantity" ) ) ) ,
325
338
op: BinaryOperator :: Divide ,
326
- right: Box :: new( sqlparser:: ast:: Expr :: Value ( Value :: Number (
327
- "2" . to_string( ) ,
328
- false ,
329
- ) ) ) ,
339
+ right: Box :: new( Expr :: Value ( Value :: Number ( "2" . to_string( ) , false ) ) ) ,
330
340
} ,
331
341
alias: Ident :: new( "quantity" ) ,
332
342
} ,
0 commit comments