|
| 1 | +<!-- |
| 2 | +Licensed to the Apache Software Foundation (ASF) under one |
| 3 | +or more contributor license agreements. See the NOTICE file |
| 4 | +distributed with this work for additional information |
| 5 | +regarding copyright ownership. The ASF licenses this file |
| 6 | +to you under the Apache License, Version 2.0 (the |
| 7 | +"License"); you may not use this file except in compliance |
| 8 | +with the License. You may obtain a copy of the License at |
| 9 | +
|
| 10 | + http://www.apache.org/licenses/LICENSE-2.0 |
| 11 | +
|
| 12 | +Unless required by applicable law or agreed to in writing, |
| 13 | +software distributed under the License is distributed on an |
| 14 | +"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| 15 | +KIND, either express or implied. See the License for the |
| 16 | +specific language governing permissions and limitations |
| 17 | +under the License. |
| 18 | +--> |
| 19 | + |
| 20 | +# DataFusion Java 0.1.0 Changelog |
| 21 | + |
| 22 | +This release consists of 48 commits from 2 contributors. See credits at the end of this changelog for more information. |
| 23 | + |
| 24 | +**Breaking changes:** |
| 25 | + |
| 26 | +- feat(udf)!: switch ScalarFunction.evaluate to ColumnarValue API (closes #62) [#64](https://github.com/apache/datafusion-java/pull/64) (andygrove) |
| 27 | + |
| 28 | +**Fixed bugs:** |
| 29 | + |
| 30 | +- fix(udf): declare scalar UDF signatures with Field, not ArrowType [#59](https://github.com/apache/datafusion-java/pull/59) (LantaoJin) |
| 31 | + |
| 32 | +**Implemented enhancements:** |
| 33 | + |
| 34 | +- feat: initial seed of Apache DataFusion Java bindings [#1](https://github.com/apache/datafusion-java/pull/1) (andygrove) |
| 35 | +- feat(proto): generate datafusion-proto Java classes at build time [#9](https://github.com/apache/datafusion-java/pull/9) (andygrove) |
| 36 | +- feat(parquet): expose ParquetReadOptions via registerParquet and readParquet [#18](https://github.com/apache/datafusion-java/pull/18) (andygrove) |
| 37 | +- feat(dataframe): add select/filter/count/show methods [#19](https://github.com/apache/datafusion-java/pull/19) (andygrove) |
| 38 | +- feat(proto): execute Java-built protobuf plans via SessionContext [#13](https://github.com/apache/datafusion-java/pull/13) (andygrove) |
| 39 | +- feat(csv): expose CsvReadOptions via registerCsv and readCsv [#21](https://github.com/apache/datafusion-java/pull/21) (LantaoJin) |
| 40 | +- feat(write): add DataFrame.writeParquet with ParquetWriteOptions [#27](https://github.com/apache/datafusion-java/pull/27) (andygrove) |
| 41 | +- feat: configure SessionContext and RuntimeEnv via builder [#28](https://github.com/apache/datafusion-java/pull/28) (andygrove) |
| 42 | +- feat(dataframe): add limit, distinct, dropColumns, withColumnRenamed [#30](https://github.com/apache/datafusion-java/pull/30) (andygrove) |
| 43 | +- feat(builder): expose ConfigOptions.set/get as setOption / setOptions / getOption [#49](https://github.com/apache/datafusion-java/pull/49) (LantaoJin) |
| 44 | +- feat(json): expose NdJsonReadOptions via registerJson and readJson [#47](https://github.com/apache/datafusion-java/pull/47) (LantaoJin) |
| 45 | +- feat(dataframe): expose withColumn and unnestColumns [#54](https://github.com/apache/datafusion-java/pull/54) (LantaoJin) |
| 46 | +- feat: add Java scalar UDF support [#46](https://github.com/apache/datafusion-java/pull/46) (andygrove) |
| 47 | +- feat(arrow): expose Arrow IPC reader via registerArrow and readArrow [#52](https://github.com/apache/datafusion-java/pull/52) (LantaoJin) |
| 48 | +- feat(dataframe): add writeCsv with CsvWriteOptions [#53](https://github.com/apache/datafusion-java/pull/53) (LantaoJin) |
| 49 | +- feat(dataframe): add executeStream(allocator) for incremental batch iteration [#51](https://github.com/apache/datafusion-java/pull/51) (LantaoJin) |
| 50 | +- feat(avro): expose Avro reader via registerAvro and readAvro [#60](https://github.com/apache/datafusion-java/pull/60) (LantaoJin) |
| 51 | +- feat(dataframe): add writeJson with JsonWriteOptions [#61](https://github.com/apache/datafusion-java/pull/61) (LantaoJin) |
| 52 | +- feat(datasource): add Java-implemented data sources [#65](https://github.com/apache/datafusion-java/pull/65) (andygrove) |
| 53 | +- feat(dataframe): add schema, explain, cache, and describe introspection methods [#71](https://github.com/apache/datafusion-java/pull/71) (LantaoJin) |
| 54 | +- feat(session): register object_store backends on SessionContextBuilder [#73](https://github.com/apache/datafusion-java/pull/73) (LantaoJin) |
| 55 | +- feat(dataframe): add join, joinOn, and JoinType [#72](https://github.com/apache/datafusion-java/pull/72) (LantaoJin) |
| 56 | +- feat(dataframe): expose sort and repartition [#66](https://github.com/apache/datafusion-java/pull/66) (LantaoJin) |
| 57 | +- feat: typed DataFusionException hierarchy across the JNI boundary [#81](https://github.com/apache/datafusion-java/pull/81) (LantaoJin) |
| 58 | +- feat(session): configure DataFusion's built-in CacheManager from Java [#78](https://github.com/apache/datafusion-java/pull/78) (LantaoJin) |
| 59 | +- feat(metrics): add SessionContext.memoryUsage and runtimeStats [#85](https://github.com/apache/datafusion-java/pull/85) (LantaoJin) |
| 60 | +- feat(loader): bundle native library inside the JAR [#77](https://github.com/apache/datafusion-java/pull/77) (andygrove) |
| 61 | + |
| 62 | +**Documentation updates:** |
| 63 | + |
| 64 | +- docs: replace roadmap with project-status checklist [#20](https://github.com/apache/datafusion-java/pull/20) (andygrove) |
| 65 | +- docs: add GitHub issue and PR templates [#23](https://github.com/apache/datafusion-java/pull/23) (andygrove) |
| 66 | +- docs: add Sphinx documentation site with user and contributor guides [#24](https://github.com/apache/datafusion-java/pull/24) (andygrove) |
| 67 | +- docs: publish Javadoc as part of the User Guide [#31](https://github.com/apache/datafusion-java/pull/31) (andygrove) |
| 68 | +- docs: remove project-status checklist [#34](https://github.com/apache/datafusion-java/pull/34) (andygrove) |
| 69 | + |
| 70 | +**Other:** |
| 71 | + |
| 72 | +- chore: remove protected_branches block and format workflow [#7](https://github.com/apache/datafusion-java/pull/7) (andygrove) |
| 73 | +- chore(.asf.yaml): null out main branch protection to clear stale rules [#11](https://github.com/apache/datafusion-java/pull/11) (andygrove) |
| 74 | +- ci: add build workflow that runs make test [#15](https://github.com/apache/datafusion-java/pull/15) (andygrove) |
| 75 | +- ci: replace disallowed third-party actions in build workflow [#16](https://github.com/apache/datafusion-java/pull/16) (andygrove) |
| 76 | +- ci: publish docs site to datafusion.apache.org/java/ [#26](https://github.com/apache/datafusion-java/pull/26) (andygrove) |
| 77 | +- refactor: pass csv and parquet read options via protobuf [#29](https://github.com/apache/datafusion-java/pull/29) (andygrove) |
| 78 | +- build: add examples module on a multi-module Maven build [#32](https://github.com/apache/datafusion-java/pull/32) (andygrove) |
| 79 | +- chore(release): add ASF release scripts for source tarballs [#76](https://github.com/apache/datafusion-java/pull/76) (andygrove) |
| 80 | +- chore(release): add multi-platform release JAR build pipeline [#87](https://github.com/apache/datafusion-java/pull/87) (andygrove) |
| 81 | + |
| 82 | +## Credits |
| 83 | + |
| 84 | +Thank you to everyone who contributed to this release. Here is a breakdown of commits (PRs merged) per contributor. |
| 85 | + |
| 86 | +``` |
| 87 | + 31 Andy Grove |
| 88 | + 17 Lantao Jin |
| 89 | +``` |
| 90 | + |
| 91 | +Thank you also to everyone who contributed in other ways such as filing issues, reviewing PRs, and providing feedback on this release. |
| 92 | + |
0 commit comments