|
| 1 | +--- |
| 2 | +layout: news_item |
| 3 | +title: "ORC 2.3.0 Released" |
| 4 | +date: "2026-03-02 01:00:00 -0800" |
| 5 | +author: dongjoon |
| 6 | +version: 2.3.0 |
| 7 | +categories: [release] |
| 8 | +--- |
| 9 | + |
| 10 | +The ORC team is excited to announce the release of ORC v2.3.0. |
| 11 | + |
| 12 | +{% assign releaseName = "2.3.0" %} |
| 13 | +{% include release_description.md %} |
| 14 | + |
| 15 | +New features: |
| 16 | +- [ORC-2119]({{site.jira}}/ORC-2119): Support Java 25 |
| 17 | +- [ORC-2075]({{site.jira}}/ORC-2075): Support new Lz4Codec based on lz4-java |
| 18 | +- [ORC-2083]({{site.jira}}/ORC-2083): Support XerialSnappyCodec |
| 19 | +- [ORC-1986]({{site.jira}}/ORC-1986): Trigger flush stripe for large input rows |
| 20 | +- [ORC-2000]({{site.jira}}/ORC-2000): [C++] Add support to prefetch small stripes |
| 21 | +- [ORC-2002]({{site.jira}}/ORC-2002): [C++] Improve stripe prefetch |
| 22 | +- [ORC-1969]({{site.jira}}/ORC-1969): [C++] Support async I/O prefetch of next stripe |
| 23 | +- [ORC-2013]({{site.jira}}/ORC-2013): [C++] Bump CMake minimum requirement to 3.25 to leverage FetchContent |
| 24 | + |
| 25 | +The improvements: |
| 26 | +- [ORC-1994]({{site.jira}}/ORC-1994): [C++] Improve CMake by extracting OrcSanitizers.cmake |
| 27 | +- [ORC-2008]({{site.jira}}/ORC-2008): [C++] Simplify CMake flags and compile options |
| 28 | +- [ORC-2009]({{site.jira}}/ORC-2009): Remove unused code for CMake 3.6 and older |
| 29 | +- [ORC-2014]({{site.jira}}/ORC-2014): Rename variables and configurations for periodic stripe size and dictionary size checks |
| 30 | +- [ORC-2021]({{site.jira}}/ORC-2021): Fallback to UTC when /etc/localtime does not exist |
| 31 | +- [ORC-2022]({{site.jira}}/ORC-2022): [C++] Add support to use dictionary for IN expression |
| 32 | +- [ORC-2029]({{site.jira}}/ORC-2029): support Float fast read by memcpy in DoubleColumnReader |
| 33 | +- [ORC-2031]({{site.jira}}/ORC-2031): Document orc.dictionary.max.size.bytes and orc.stripe.size.check.ratio |
| 34 | +- [ORC-2036]({{site.jira}}/ORC-2036): optimize SortedStringDictionary performance |
| 35 | +- [ORC-2038]({{site.jira}}/ORC-2038): Improve error message in TypeDescription.withPrecision() |
| 36 | +- [ORC-2048]({{site.jira}}/ORC-2048): Use Java `InputStream.skipNBytes` instead of `IOUtils.skipFully` |
| 37 | +- [ORC-2049]({{site.jira}}/ORC-2049): Move `MAX_ARRAY_SIZE` to `RecordReaderUtils` from `IOUtils` |
| 38 | +- [ORC-2052]({{site.jira}}/ORC-2052): Remove unused `IOUtils` class |
| 39 | +- [ORC-2053]({{site.jira}}/ORC-2053): Use Java `Set.of` instead of `Collections.emptySet` |
| 40 | +- [ORC-2055]({{site.jira}}/ORC-2055): Use Java `ArrayList` constructors instead of `Lists.newArrayList` |
| 41 | +- [ORC-2077]({{site.jira}}/ORC-2077): Introduce `NullOptions` class for `CompressionCodec` |
| 42 | +- [ORC-2081]({{site.jira}}/ORC-2081): Support ORC LZ4 in bench module |
| 43 | +- [ORC-2082]({{site.jira}}/ORC-2082): Support Parquet LZ4 in bench module |
| 44 | +- [ORC-2085]({{site.jira}}/ORC-2085): Set `strategy.max-parrallel` to 20 for all GitHub Action jobs |
| 45 | +- [ORC-2089]({{site.jira}}/ORC-2089): Disable Maven Parallel PUT |
| 46 | +- [ORC-2090]({{site.jira}}/ORC-2090): Add a new label rule for `MESON` build |
| 47 | +- [ORC-2091]({{site.jira}}/ORC-2091): Use HTTPS instead of HTTP |
| 48 | +- [ORC-2111]({{site.jira}}/ORC-2111): Ensure `Annotation Processing` in Java compilation for Java 23+ |
| 49 | + |
| 50 | +The bug fixes: |
| 51 | +- [ORC-1921]({{site.jira}}/ORC-1921): Upgrade Hadoop to 3.4.2 |
| 52 | +- [ORC-1966]({{site.jira}}/ORC-1966): ZSTD compress/decompress needs handle error properly |
| 53 | +- [ORC-1967]({{site.jira}}/ORC-1967): C++ compilation issue with VS2022 |
| 54 | +- [ORC-1972]({{site.jira}}/ORC-1972): Upgrade `ORC Format` to 1.1.1 |
| 55 | +- [ORC-1973]({{site.jira}}/ORC-1973): Use `int64_t` instead of `google::protobuf::int64` for Protobuf v22+ |
| 56 | +- [ORC-1974]({{site.jira}}/ORC-1974): Use `google::protobuf::TextFormat` instead of `DebugString` for Protobuf v30+ |
| 57 | +- [ORC-1977]({{site.jira}}/ORC-1977): Add `Deprecated` annotations for all deprecated APIs |
| 58 | +- [ORC-2007]({{site.jira}}/ORC-2007): Upgrade `gson` to 2.13.2 |
| 59 | +- [ORC-2010]({{site.jira}}/ORC-2010): Use `IANA` Identifier `America/Los_Angeles` instead of `US/Pacific` in Java |
| 60 | +- [ORC-2011]({{site.jira}}/ORC-2011): Fix `Timezone` to support legacy `US` TimeZone identifiers |
| 61 | +- [ORC-2024]({{site.jira}}/ORC-2024): Upgrade `zstd-jni` to 1.5.7-5 |
| 62 | +- [ORC-2027]({{site.jira}}/ORC-2027): Undefined behavior in DoubleColumnReader::readFloat() |
| 63 | +- [ORC-2028]({{site.jira}}/ORC-2028): evictEntriesBefore has deleted buffers used in unfinished coroutines causes panic |
| 64 | +- [ORC-2032]({{site.jira}}/ORC-2032): Upgrade `zstd-jni` to 1.5.7-6 |
| 65 | +- [ORC-2042]({{site.jira}}/ORC-2042): Upgrade maven version to 3.9.12 |
| 66 | +- [ORC-2051]({{site.jira}}/ORC-2051): Fix `Meson` build to use `ORC Format` 1.1.1 |
| 67 | +- [ORC-2054]({{site.jira}}/ORC-2054): Fix `Meson` build version string to `2.3.0-SNAPSHOT` |
| 68 | +- [ORC-2069]({{site.jira}}/ORC-2069): Fix convert tool failed to read csv |
| 69 | +- [ORC-2078]({{site.jira}}/ORC-2078): Fix `TestConverter` to respect `test.tmp.dir` |
| 70 | +- [ORC-2087]({{site.jira}}/ORC-2087): Upgrade `zstd-jni` to 1.5.7-7 |
| 71 | +- [ORC-2103]({{site.jira}}/ORC-2103): Update CMake requirements to 3.25+ consistently |
| 72 | +- [ORC-2105]({{site.jira}}/ORC-2105): Fix `orc-format.wrap` to use ORC Format 1.1.1 |
| 73 | + |
| 74 | +The test changes: |
| 75 | +- [ORC-2112]({{site.jira}}/ORC-2112): Use `Java 25` for `Ubuntu 26.04` docker test |
| 76 | +- [ORC-1968]({{site.jira}}/ORC-1968): Upgrade `commons-cli` to 1.10.0 |
| 77 | +- [ORC-1982]({{site.jira}}/ORC-1982): Upgrade `brotli4j` to 1.20.0 |
| 78 | +- [ORC-1992]({{site.jira}}/ORC-1992): Bump `opencsv` to 5.12.0 |
| 79 | +- [ORC-2040]({{site.jira}}/ORC-2040): Upgrade `commons-cli` to 1.11.0 |
| 80 | +- [ORC-2068]({{site.jira}}/ORC-2068): Upgrade Hadoop to 3.4.3 |
| 81 | +- [ORC-2084]({{site.jira}}/ORC-2084): Upgrade `mockito` to 5.21.0 |
| 82 | +- [ORC-1924]({{site.jira}}/ORC-1924): Add `Windows 2025` GitHub Action job |
| 83 | +- [ORC-1964]({{site.jira}}/ORC-1964): [CI] Fix CI ubsan-test with GNU |
| 84 | +- [ORC-1965]({{site.jira}}/ORC-1965): Ban `org.apache.commons.lang` package |
| 85 | +- [ORC-1970]({{site.jira}}/ORC-1970): [CI] Update cpp-linter-action to f91c446a32ae3eb9f98fef8c9ed4c7cb613a4f8a |
| 86 | +- [ORC-1979]({{site.jira}}/ORC-1979): Upgrade `commons-csv` to 1.14.1 |
| 87 | +- [ORC-1980]({{site.jira}}/ORC-1980): Upgrade `junit` to 5.13.4 |
| 88 | +- [ORC-1983]({{site.jira}}/ORC-1983): Upgrade `gtest` to 1.17.0 |
| 89 | +- [ORC-1984]({{site.jira}}/ORC-1984): Add `debian13` to docker tests, docs, and GitHub Action |
| 90 | +- [ORC-1987]({{site.jira}}/ORC-1987): Upgrade Spark to 4.0.1 in `bench` module |
| 91 | +- [ORC-1988]({{site.jira}}/ORC-1988): Upgrade `Parquet` to 1.16.0 in `bench` module |
| 92 | +- [ORC-1989]({{site.jira}}/ORC-1989): Upgrade Hive to 4.1.0 in `bench` module |
| 93 | +- [ORC-1990]({{site.jira}}/ORC-1990): Upgrade `bcpkix-jdk18on` to 1.81 |
| 94 | +- [ORC-1991]({{site.jira}}/ORC-1991): Upgrade `snappy-java` to 1.1.10.8 in `bench` module |
| 95 | +- [ORC-1993]({{site.jira}}/ORC-1993): Upgrade spotless-maven-plugin to 2.46.1 |
| 96 | +- [ORC-1995]({{site.jira}}/ORC-1995): Add `MacOS 26` to GitHub Action CI and docs |
| 97 | +- [ORC-1996]({{site.jira}}/ORC-1996): Remove `MacOS 13` from GitHub Action CI and docs |
| 98 | +- [ORC-1997]({{site.jira}}/ORC-1997): Add a daily build-and-test GitHub Action Job for `main` branch |
| 99 | +- [ORC-1998]({{site.jira}}/ORC-1998): Use Java 25 instead of 25-ea |
| 100 | +- [ORC-1999]({{site.jira}}/ORC-1999): Upgrade `Checkstyle` to 11.0.1 |
| 101 | +- [ORC-2003]({{site.jira}}/ORC-2003): Upgrade `guava` to 33.5.0-jre |
| 102 | +- [ORC-2004]({{site.jira}}/ORC-2004): Upgrade `bouncycastle` to 1.82 |
| 103 | +- [ORC-2005]({{site.jira}}/ORC-2005): Upgrade `spotbugs-maven-plugin` to 4.9.6 |
| 104 | +- [ORC-2006]({{site.jira}}/ORC-2006): Upgrade `maven-shade-plugin` to 3.6.1 |
| 105 | +- [ORC-2012]({{site.jira}}/ORC-2012): Remove `US` timezone workaround from `Debian 13` Docker image |
| 106 | +- [ORC-2015]({{site.jira}}/ORC-2015): Remove `Debian 11` Support |
| 107 | +- [ORC-2016]({{site.jira}}/ORC-2016): Upgrade `CMake` to 3.26.0 in `amazonlinux:2023` |
| 108 | +- [ORC-2017]({{site.jira}}/ORC-2017): Upgrade `checkstyle` to 11.1.0 |
| 109 | +- [ORC-2018]({{site.jira}}/ORC-2018): Upgrade `spotless-maven-plugin` to 3.0.0 |
| 110 | +- [ORC-2019]({{site.jira}}/ORC-2019): Upgrade `commons-lang3` to 3.19.0 |
| 111 | +- [ORC-2020]({{site.jira}}/ORC-2020): Upgrade `junit` to 6.0.0 |
| 112 | +- [ORC-2026]({{site.jira}}/ORC-2026): Upgrade `maven-enforcer-plugin` to 3.6.2 |
| 113 | +- [ORC-2034]({{site.jira}}/ORC-2034): Upgrade `Checkstyle` to 12.1.0 |
| 114 | +- [ORC-2037]({{site.jira}}/ORC-2037): Upgrade Spark to 4.1.0 and Scala to 2.13.17 |
| 115 | +- [ORC-2039]({{site.jira}}/ORC-2039): Upgrade `junit` to 6.0.1 |
| 116 | +- [ORC-2045]({{site.jira}}/ORC-2045): Upgrade `checkstyle` to 12.3.0 |
| 117 | +- [ORC-2050]({{site.jira}}/ORC-2050): Add `MacOS 26` to `meson/macos-cpp-check` and use mainly in `build` |
| 118 | +- [ORC-2056]({{site.jira}}/ORC-2056): Remove `MacOS 14` from GitHub Action CI and docs |
| 119 | +- [ORC-2058]({{site.jira}}/ORC-2058): Upgrade `commons-lang3` to 3.20.0 |
| 120 | +- [ORC-2059]({{site.jira}}/ORC-2059): Upgrade `spotless-maven-plugin` to 3.1.0 |
| 121 | +- [ORC-2061]({{site.jira}}/ORC-2061): Upgrade `byte-buddy` to 1.18.4 |
| 122 | +- [ORC-2062]({{site.jira}}/ORC-2062): Upgrade `objenesis` to 3.5 |
| 123 | +- [ORC-2063]({{site.jira}}/ORC-2063): Upgrade `Spark` to 4.1.1 |
| 124 | +- [ORC-2064]({{site.jira}}/ORC-2064): Update `oraclelinux9` to use `dnf` instead of `yum` |
| 125 | +- [ORC-2065]({{site.jira}}/ORC-2065): Bump `parquet` to 1.17.0 |
| 126 | +- [ORC-2066]({{site.jira}}/ORC-2066): Upgrade `spotbugs-maven-plugin` to 4.9.8.2 |
| 127 | +- [ORC-2067]({{site.jira}}/ORC-2067): Upgrade `junit` to 6.0.2 |
| 128 | +- [ORC-2070]({{site.jira}}/ORC-2070): Add `oraclelinux10` to docker tests and GitHub Action |
| 129 | +- [ORC-2071]({{site.jira}}/ORC-2071): Upgrade `spotless-maven-plugin` to 3.2.1 |
| 130 | +- [ORC-2072]({{site.jira}}/ORC-2072): Remove `OracleLinux 8` Support |
| 131 | +- [ORC-2073]({{site.jira}}/ORC-2073): Fix `JSONArgsRecommended` warnings of `Dockerfile` |
| 132 | +- [ORC-2074]({{site.jira}}/ORC-2074): Reduce GitHub Action concurrency |
| 133 | +- [ORC-2076]({{site.jira}}/ORC-2076): Use `license-check` to check `java` directory |
| 134 | +- [ORC-2079]({{site.jira}}/ORC-2079): Add `lz4` codec pool test coverage |
| 135 | +- [ORC-2086]({{site.jira}}/ORC-2086): Upgrade Spark to 4.2.0-preview2 and Netty to 4.2.10.Final |
| 136 | +- [ORC-2088]({{site.jira}}/ORC-2088): Upgrade `maven-dependency-plugin` to 3.10.0 |
| 137 | +- [ORC-2092]({{site.jira}}/ORC-2092): Add `ubuntu26` to docker tests and GitHub Action |
| 138 | +- [ORC-2097]({{site.jira}}/ORC-2097): Make `actions/*` GitHub Actions jobs up-to-date |
| 139 | +- [ORC-2098]({{site.jira}}/ORC-2098): Exclude `.mvn/maven.config` for `apache-rat-plugin` |
| 140 | +- [ORC-2099]({{site.jira}}/ORC-2099): Remove `Ubuntu 24.04` Support |
| 141 | +- [ORC-2101]({{site.jira}}/ORC-2101): Enable GitHub Action CI in `branch-2.3` |
| 142 | +- [ORC-2104]({{site.jira}}/ORC-2104): Update `amazonlinux` with `2023.10.20260202.2` and use `dnf` |
| 143 | +- [ORC-2110]({{site.jira}}/ORC-2110): Enable `Java 25` to build and verify all tests |
| 144 | + |
| 145 | +The tasks: |
| 146 | +- [ORC-1891]({{site.jira}}/ORC-1891): Upgrade to Apache parent pom 34 along with maven plugins |
| 147 | +- [ORC-1951]({{site.jira}}/ORC-1951): Setting version to 2.3.0-SNAPSHOT |
| 148 | +- [ORC-1975]({{site.jira}}/ORC-1975): Improve `merge_orc_pr.py` to accept PR numbers as a CLI argument |
| 149 | +- [ORC-1978]({{site.jira}}/ORC-1978): Upgrade `maven-enforcer-plugin` to 3.6.1 |
| 150 | +- [ORC-1981]({{site.jira}}/ORC-1981): Upgrade `build-helper-maven-plugin` to 3.6.1 |
| 151 | +- [ORC-1985]({{site.jira}}/ORC-1985): Upgrade `actions/checkout` to v5 |
| 152 | +- [ORC-2001]({{site.jira}}/ORC-2001): Add method descriptions to all public Java interfaces |
| 153 | +- [ORC-2023]({{site.jira}}/ORC-2023): Upgrade `maven-dependency-plugin` to 3.9.0 |
| 154 | +- [ORC-2025]({{site.jira}}/ORC-2025): Upgrade `extra-enforcer-rules` to 1.11.0 |
| 155 | +- [ORC-2043]({{site.jira}}/ORC-2043): Upgrade `maven-jar-plugin` to 3.5.0 |
| 156 | +- [ORC-2044]({{site.jira}}/ORC-2044): Upgrade `maven-assembly-plugin` to 3.8.0 |
| 157 | +- [ORC-2047]({{site.jira}}/ORC-2047): Add `.vscode` to `.gitignore` |
| 158 | +- [ORC-2057]({{site.jira}}/ORC-2057): Add `Pandas` page at `Using in Python` section |
| 159 | +- [ORC-2060]({{site.jira}}/ORC-2060): Upgrade `bouncycastle` to 1.83 |
| 160 | +- [ORC-2080]({{site.jira}}/ORC-2080): Add `create_orc_jira.py` script |
| 161 | +- [ORC-2093]({{site.jira}}/ORC-2093): Remove `labeler` GitHub Action job |
| 162 | +- [ORC-2096]({{site.jira}}/ORC-2096): Remove `doc` dependency from `build` GitHub Actions job |
0 commit comments