dev/changelog/8.0.0.md
Breaking changes:
ROLLUP and CUBE grouping set expressions #2446 (andygrove)ExecutionPlan::execute Sync #2434 (tustvold)DataFusionError::SchemaError type #2371 (andygrove)Expr::InSubquery and Expr::ScalarSubquery #2342 (andygrove)Expr::Exists to represent EXISTS subquery expression #2339 (andygrove)LogicalPlan enum to datafusion-expr crate #2294 (andygrove)LogicalPlan::TableScan to ExecutionPlan #2284 (andygrove)physical-expr crate to expr crate #2257 (andygrove)ExecutionContext to SessionContext, ExecutionContextState to SessionState, add TaskContext to support multi-tenancy configurations - Part 1 #1987 (mingmwang)Implemented enhancements:
Expr to datafusion::prelude #2347Serialization API for DataFusion #2340power function #1493lit python function to support boolean and other types #1136CREATE VIEW #2279 (matthewmturner)write_json, read_json, register_json, and JsonFormat to CREATE EXTERNAL TABLE functionality #2023 (matthewmturner)Fixed bugs:
'WHEN expression did not return a BooleanArray' #1189round function with two arguments #2503 (andygrove)ExecutionContex and ExecutionConfig with SessionContext and SessionConfig #2030 (xudong963)Documentation updates:
datafusion-cli when connect the ballista #1866 (liukun4515)Performance improvements:
Closed issues:
fn aggregate() in aggregate expression tests #2399distinct_expression.rs into count_distinct.rs and array_agg_distinct.rs #2385context.rs to corresponding test files in datafustion/core/tests/sql #2328Merged pull requests:
sqlparser 0.17.0 #2500 (alamb)grouping() aggregate expressions #2486 (andygrove)NULL #2481 (WinkerDu)null literal #2478 (WinkerDu)context.rs into sql_integration #2473 (alamb)read_from_registered_table_with_glob_path fails if path contains // #2465 #2468 (timvw)aggregate/mod.rs, etc #2458 (WinkerDu)IN and NOT IN Subqueries by rewriting them to SEMI / ANTI Join #2421 (korowa)format_state_name() #2414 (WinkerDu)sum(distinct) support #2405 (WinkerDu)fn aggregate() in aggregate expression tests #2400 (WinkerDu)distinct_expressions.rs and split into count_distinct.rs and array_agg_distinct.rs #2386 (WinkerDu)null literal by introducing ScalarValue::Null #2364 (WinkerDu)Expr to prelude #2348 (alamb)Expr to/from bytes #2341 (alamb)context.rs to corresponding test files in tests/sql #2329 (WinkerDu)index_of and make index_of_column_by_name public #2320 (jdye64)physical-expr crate to expr crate #2250 (andygrove)sql_integ, add negative cases, Debug for DataFrame #2243 (alamb)debug! log in some execution operators #2231 (NGA-TRAN)filter (filter_record_batch) instead of take to avoid using indices #2218 (Dandandan)case when supports NULL constant #2197 (WinkerDu)prepare_select_exprs #2190 (jackwener)NULL in advance to avoid value copy in string_concat #2183 (WinkerDu)EXTRACT week and add test (after sqlparser update to 0.16) #2157 (Ted-Jiang)IN for large lists using InSet #2156 (Ted-Jiang)not(null) with constant null #2144 (WinkerDu)CREATE TABLE and CREATE EXTERNAL TABLE #2143 (matthewmturner)CaseWhen #2068 (yjshen)CatalogProvider::register_catalog to return an error #2052 (alamb)// to // ) #2047 (jackwener)println! with logger macros #2020 (silence-coding)if_exists name change, wildcard field for logical plan, etc. #1951 [sql] (xudong963)@@var) rather than just string #1943 [sql] (maxburke)DataFrame #1940 (matthewmturner)~/.datafusionrc and cli option for overriding it to datafusion-cli #1875 (matthewmturner)register_listing_table #1863 (matthewmturner)datafusion-physical-expr module #1843 (Jimexist)Error when parquet reader fails rather than no data with println! #1837 (alamb)total_byte_size instead of num_rows #1831 (xudong963)eq_dyn, neq_dyn, lt_dyn, lt_eq_dyn, gt_dyn, gt_eq_dyn kernels from arrow #1475 (alamb)