@@ -28,7 +28,8 @@ import org.apache.spark.sql.catalyst.analysis.TableAlreadyExistsException
28
28
import org .apache .spark .sql .catalyst .plans .logical .{AppendData , CreateTableAsSelect , LogicalPlan , ReplaceTableAsSelect }
29
29
import org .apache .spark .sql .connector .catalog .{Column , ColumnDefaultValue , DefaultValue , Identifier , InMemoryTableCatalog , TableInfo }
30
30
import org .apache .spark .sql .connector .catalog .TableChange .{AddColumn , UpdateColumnDefaultValue }
31
- import org .apache .spark .sql .connector .expressions .{ApplyTransform , Cast => V2Cast , GeneralScalarExpression , LiteralValue , Transform }
31
+ import org .apache .spark .sql .connector .expressions .{ApplyTransform , GeneralScalarExpression , LiteralValue , Transform }
32
+ import org .apache .spark .sql .connector .expressions .filter .{AlwaysFalse , AlwaysTrue }
32
33
import org .apache .spark .sql .execution .{QueryExecution , SparkPlan }
33
34
import org .apache .spark .sql .execution .ExplainUtils .stripAQEPlan
34
35
import org .apache .spark .sql .execution .datasources .v2 .{AlterTableExec , CreateTableExec , DataSourceV2Relation , ReplaceTableExec }
@@ -371,21 +372,15 @@ class DataSourceV2DataFrameSuite
371
372
null ,
372
373
new ColumnDefaultValue (
373
374
" (100 + 23)" ,
374
- new GeneralScalarExpression (
375
- " +" ,
376
- Array (LiteralValue (100 , IntegerType ), LiteralValue (23 , IntegerType ))),
375
+ LiteralValue (123 , IntegerType ),
377
376
LiteralValue (123 , IntegerType )),
378
377
new ColumnDefaultValue (
379
378
" ('h' || 'r')" ,
380
- new GeneralScalarExpression (
381
- " CONCAT" ,
382
- Array (
383
- LiteralValue (UTF8String .fromString(" h" ), StringType ),
384
- LiteralValue (UTF8String .fromString(" r" ), StringType ))),
379
+ LiteralValue (UTF8String .fromString(" hr" ), StringType ),
385
380
LiteralValue (UTF8String .fromString(" hr" ), StringType )),
386
381
new ColumnDefaultValue (
387
382
" CAST(1 AS BOOLEAN)" ,
388
- new V2Cast ( LiteralValue ( 1 , IntegerType ), IntegerType , BooleanType ) ,
383
+ new AlwaysTrue ,
389
384
LiteralValue (true , BooleanType ))))
390
385
391
386
val df1 = Seq (1 ).toDF(" id" )
@@ -420,21 +415,15 @@ class DataSourceV2DataFrameSuite
420
415
null ,
421
416
new ColumnDefaultValue (
422
417
" (50 * 2)" ,
423
- new GeneralScalarExpression (
424
- " *" ,
425
- Array (LiteralValue (50 , IntegerType ), LiteralValue (2 , IntegerType ))),
418
+ LiteralValue (100 , IntegerType ),
426
419
LiteralValue (100 , IntegerType )),
427
420
new ColumnDefaultValue (
428
421
" ('un' || 'known')" ,
429
- new GeneralScalarExpression (
430
- " CONCAT" ,
431
- Array (
432
- LiteralValue (UTF8String .fromString(" un" ), StringType ),
433
- LiteralValue (UTF8String .fromString(" known" ), StringType ))),
422
+ LiteralValue (UTF8String .fromString(" unknown" ), StringType ),
434
423
LiteralValue (UTF8String .fromString(" unknown" ), StringType )),
435
424
new ColumnDefaultValue (
436
425
" CAST(0 AS BOOLEAN)" ,
437
- new V2Cast ( LiteralValue ( 0 , IntegerType ), IntegerType , BooleanType ) ,
426
+ new AlwaysFalse ,
438
427
LiteralValue (false , BooleanType ))))
439
428
440
429
val df3 = Seq (1 ).toDF(" id" )
@@ -469,21 +458,15 @@ class DataSourceV2DataFrameSuite
469
458
Array (
470
459
new ColumnDefaultValue (
471
460
" (100 + 23)" ,
472
- new GeneralScalarExpression (
473
- " +" ,
474
- Array (LiteralValue (100 , IntegerType ), LiteralValue (23 , IntegerType ))),
461
+ LiteralValue (123 , IntegerType ),
475
462
LiteralValue (123 , IntegerType )),
476
463
new ColumnDefaultValue (
477
464
" ('h' || 'r')" ,
478
- new GeneralScalarExpression (
479
- " CONCAT" ,
480
- Array (
481
- LiteralValue (UTF8String .fromString(" h" ), StringType ),
482
- LiteralValue (UTF8String .fromString(" r" ), StringType ))),
465
+ LiteralValue (UTF8String .fromString(" hr" ), StringType ),
483
466
LiteralValue (UTF8String .fromString(" hr" ), StringType )),
484
467
new ColumnDefaultValue (
485
468
" CAST(1 AS BOOLEAN)" ,
486
- new V2Cast ( LiteralValue ( 1 , IntegerType ), IntegerType , BooleanType ) ,
469
+ new AlwaysTrue ,
487
470
LiteralValue (true , BooleanType ))))
488
471
}
489
472
}
@@ -514,19 +497,13 @@ class DataSourceV2DataFrameSuite
514
497
Array (
515
498
new DefaultValue (
516
499
" (123 + 56)" ,
517
- new GeneralScalarExpression (
518
- " +" ,
519
- Array (LiteralValue (123 , IntegerType ), LiteralValue (56 , IntegerType )))),
500
+ LiteralValue (179 , IntegerType )),
520
501
new DefaultValue (
521
502
" ('r' || 'l')" ,
522
- new GeneralScalarExpression (
523
- " CONCAT" ,
524
- Array (
525
- LiteralValue (UTF8String .fromString(" r" ), StringType ),
526
- LiteralValue (UTF8String .fromString(" l" ), StringType )))),
503
+ LiteralValue (UTF8String .fromString(" rl" ), StringType )),
527
504
new DefaultValue (
528
505
" CAST(0 AS BOOLEAN)" ,
529
- new V2Cast ( LiteralValue ( 0 , IntegerType ), IntegerType , BooleanType ) )))
506
+ new AlwaysFalse )))
530
507
}
531
508
}
532
509
@@ -692,7 +669,7 @@ class DataSourceV2DataFrameSuite
692
669
LiteralValue (1542490413000000L , TimestampType )),
693
670
new ColumnDefaultValue (
694
671
" 1" ,
695
- new V2Cast ( LiteralValue (1 , IntegerType ), IntegerType , DoubleType ),
672
+ LiteralValue (1.0 , DoubleType ),
696
673
LiteralValue (1.0 , DoubleType ))))
697
674
698
675
val replaceExec = executeAndKeepPhysicalPlan[ReplaceTableExec ] {
@@ -714,11 +691,7 @@ class DataSourceV2DataFrameSuite
714
691
LiteralValue (1645624555000000L , TimestampType )),
715
692
new ColumnDefaultValue (
716
693
" (1 + 1)" ,
717
- new V2Cast (
718
- new GeneralScalarExpression (" +" , Array (LiteralValue (1 , IntegerType ),
719
- LiteralValue (1 , IntegerType ))),
720
- IntegerType ,
721
- DoubleType ),
694
+ LiteralValue (2.0 , DoubleType ),
722
695
LiteralValue (2.0 , DoubleType ))))
723
696
}
724
697
}
@@ -746,7 +719,7 @@ class DataSourceV2DataFrameSuite
746
719
LiteralValue (1542490413000000L , TimestampType )),
747
720
new ColumnDefaultValue (
748
721
" 1" ,
749
- new V2Cast ( LiteralValue (1 , IntegerType ), IntegerType , DoubleType ),
722
+ LiteralValue (1.0 , DoubleType ),
750
723
LiteralValue (1.0 , DoubleType ))))
751
724
752
725
val alterCol1 = executeAndKeepPhysicalPlan[AlterTableExec ] {
@@ -764,11 +737,7 @@ class DataSourceV2DataFrameSuite
764
737
LiteralValue (1645624555000000L , TimestampType )),
765
738
new DefaultValue (
766
739
" (1 + 1)" ,
767
- new V2Cast (
768
- new GeneralScalarExpression (" +" , Array (LiteralValue (1 , IntegerType ),
769
- LiteralValue (1 , IntegerType ))),
770
- IntegerType ,
771
- DoubleType ))))
740
+ LiteralValue (2.0 , DoubleType ))))
772
741
}
773
742
}
774
743
0 commit comments