dev/changelog/13.0.0.md
Breaking changes:
Result rather than Option) #3584 (tustvold)OptimizerConfig a builder style API #3525 (alamb)Implemented enhancements:
type coercion for ScalarUDF in the physical phase #3734type coercion for case when expr #3673Modulo operator #3664A * 0 and A * null. #3626PreCastLitInComparisonExpressions to unwrap cast rule after #3582 #3622CONCAT_WS(NULL, ..) to NULL #3607cast or try_cast expr. #3565ParquetScanOptions public and expose a reference to the scan options from ParquetExec #3550fetch limit in get_sorted_iter #3544like unlike istrue isfalse isunknown #3509from_proto_binary_op public #3489datafusion::physical_plan::file_format::file_strean::FileStream public #3466ParquetRecordBatchStream when pushing down RowFilter #3456RecordBatch as a table from SessionContext #3426Statement::ShowVariable to show session configs #3364RowFilter in ParquetExec #3360TypeCoercion rule before FilterPushDown #3289get / show timezone #3255filter_push_down panics on semi/anti join with join filters #2888cross join -> inner join optimization from the planner to the optimizer #2859Fixed bugs:
projection_push_down produces invalid aggregate plans in some cases #3738Time With Time Zone should raise error until DataType::Time64 support tz #3715unwrap_cast_in_comparison #3690INTERSECT and EXCEPT don't return an error when 2 sets have the different number of columns #3632union 2 table with different number of columns. #3630col(a) / null is not optimized. #3624s3_build_error test may fail in some environments #3601StringConcat gives inconsistent result with concat when containing null #3569docs.rs cannot build datafusion-proto crate #3538ScalarValue::Dictionary, Binary, LargeBinary, Time64, IntervalMonthDayNano, Struct #3531from_proto_binary_op #3495Documentation updates:
Closed issues:
Merged pull requests:
datafusion_expr::type_coercion and submodules #3728 (alamb)Unsupported SQL type for Time(WithTimeZone) and Time(Tz) #3718 [sql] (waitingkuo)WITH statements #3717 [sql] (isidentical)Expr::canonical_name and improve docs on Expr::name #3706 (andygrove)unwrap_cast_in_comparison: fix bug which can find the field for the schema #3699 (liukun4515)arrow parquet and arrow-flight to 24.0.0 #3691 [sql] (alamb)ScalarValue::new_utf8, clean up creation of literals in casting tests #3680 (alamb)type coercion for case when expr #3676 (liukun4515)between in simplify expression rule #3661 (liukun4515)type coercion to the beginning of the optimizer rule and support type coercion for subquery #3636 (liukun4515)0 and by null #3627 (HaoYang670)regex_replace for scalar patterns #3614 (isidentical)concat_ws(null, ..) to null #3608 (HaoYang670)register_batch and read_batch to SessionContext to register a single RecordBatch as a table #3600 (BaymaxHWY)0.87 --> 0.88 #3586 (alamb)TimeUnit::Millisecond #3575 (alamb)ROWS, RANGE, PRECEDING and FOLLOWING for window functions) #3570 [sql] (metesynnada)datafusion-sql crate #3566 [sql] (mbrobbel)fetch limit in get_sorted_iter #3545 (Dandandan)ScalarValues are the same after round trip serialization #3537 (alamb)ScalarValue::Struct #3536 (alamb)ScalarValue::IntervalMonthDayNano #3535 (alamb)ScalarValue::Binary and ScalarValue::LargeBinary, ScalarValue::Time64 #3534 (alamb)Debug for TableReference and ResolvedTableReference #3533 [sql] (andygrove)ScalarValue::Dictionary to datafusion-proto #3532 (alamb)bool/like/unknown expr #3510 (liukun4515)downcast_value! macro (T --> $T) #3486 (alamb)downcast_value! macro so it does not need to use use std::any::type_name; #3484 (alamb)InList support for timestamp type. (#3449) #3450 (Ted-Jiang)RowFilter in ParquetExec #3380 (thinkharderdev)