Skip to content

build(deps-dev): Bump dev.hardwood:hardwood-core from 1.1.0.Beta1 to 1.1.0.Beta2 - #540

Merged
dfa1 merged 2 commits into
mainfrom
dependabot/maven/dev.hardwood-hardwood-core-1.1.0.Beta2
Oct 16, 2026
Merged

dfa1 merged 2 commits into
mainfrom
dependabot/maven/dev.hardwood-hardwood-core-1.1.0.Beta2

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 14, 2026

Copy link
Copy Markdown
Contributor

Bumps dev.hardwood:hardwood-core from 1.1.0.Beta1 to 1.1.0.Beta2.

Release notes

Sourced from dev.hardwood:hardwood-core's releases.

Release v1.1.0.Beta2

Highlights of this release:

  • Written files support row-group and page skipping
    • A page index (ColumnIndex and OffsetIndex) per column chunk, with pages of at most WriterConfig.pageTargetRows records
    • Split-block Bloom filters for the columns named in WriterConfig.Builder.bloomFilter(...)
    • encoding_stats, so a reader can prune row groups by their dictionary
  • Further writer additions
    • ParquetFileWriter.endRowGroup() closes a row group at a boundary the caller chooses
    • ParquetFileWriter.abort() abandons a write, and close() after a failed write discards the output instead of publishing a partial file
    • RowWriter.tryWriteRow(...) reports a rejected record without failing the writer
    • OutputFile.inMemory() writes a file to memory
  • Fewer requests on remote reads
    • The page index is fetched for the projected columns only, for several row groups per request
    • Bloom filters are fetched as the read reaches a row group, together with those of the neighbouring row groups
    • Opening a file takes no separate request for the leading magic, and the next row group's first chunk is prefetched
    • A multi-file read opens each file as it reaches it, so time to first row no longer grows with the number of files
  • Parsed footers can be reused across readers
    • A MetadataSource installed through HardwoodContext.builder() supplies the parsed footer of every file a reader opens, so a cached footer spares the footer read and parse
    • InputFile.identity() (the S3 ETag, or size, modification time and file key locally) detects a changed file, which raises StaleMetadataException
  • Dictionary-encoded batches on ColumnReader
    • getDictionaryIds() and getBinaryDictionary() expose each value's dictionary entry for BYTE_ARRAY, FIXED_LEN_BYTE_ARRAY and INT96 columns
    • Binary values are read through per-value views into the batch buffer, built only when read; getStrings() no longer spends most of a read in garbage collection under G1
  • Filter predicates
    • One literal rule for every predicate: a literal must be a value the column's accessors return, adding byte[], LocalDateTime, PqInterval and Instant on INT96 columns, and in for every literal type but boolean
    • isNull and isNotNull on struct, LIST and MAP groups
    • A binary predicate is evaluated once per dictionary entry instead of once per row
    • A filter-only column is not read in row groups whose statistics prove every row matches, and row groups and pages that hold only NaN are skipped
    • in and notIn in the parquet-java compatibility FilterApi
  • A reworked exception model: IOException signals a transport failure only, a corrupt file raises the unchecked ParquetReadException, and read failures name the row group and column they occurred in
  • TIMESTAMP columns over FIXED_LEN_BYTE_ARRAY(12), spanning the years 0001 to 9999 at nanosecond precision, are read, filtered and written
  • Correctness fixes
    • Filters, including parquet-java filters through the compatibility layer, no longer return wrong rows for NaN values, unsigned integers, inverted min/max bounds, statistics in an unknown sort order, and byte literals on DECIMAL and FLOAT16 columns
    • INTERVAL columns written by parquet-java are read as INTERVAL instead of as NULL columns
    • A column whose name contains a dot can be projected
    • byteRange on a multi-file reader applies to every file, not the first one only
    • A statistics value larger than 1 KB no longer fails the read
    • S3 requests to an endpoint that names its default port no longer fail with SignatureDoesNotMatch
    • Metadata lacking a required field raises ParquetReadException instead of being read with default values
  • CLI
    • dive jumps to a given row or row group, and print and convert select the same rows with --skip and --row-group
    • print, convert, inspect and dive render values of a logical type identically; convert --format json writes nested values as JSON objects and arrays
    • schema -F AVRO and -F PROTO emit schemas that Avro and protoc accept
    • The native binary reads ZSTD-compressed files

Breaking Changes:

  • Index-based accessors on ColumnReaders, RowReader and PqStruct follow the order ColumnProjection.columns(...) names the columns in, a nested field is selected by its full path only, and getProjectedColumnNames() returns a List (#1066)
  • A corrupt file raises ParquetReadException (unchecked; SchemaIncompatibleException extends it) instead of IOException, and the reader's build, iteration and close methods declare IOException for transport failures; see Error Handling for every condition and its type (#1104)
  • A filter literal must be a value the column's accessors return, such as a String for text columns only and an Instant for UTC timestamps only; other literals throw IllegalArgumentException when the predicate is resolved. FilterPredicate.SignedBinaryColumnPredicate is removed, and inStrings is deprecated in favour of in(String, String...) (#1198, #1190)

... (truncated)

Commits
  • 29c1af9 [release] Releasing version v1.1.0.Beta2
  • fefb19b [release] Update versions for 1.1.0.Beta2
  • 26ba0a3 #1143 Fix CLI test suite failures on Windows due to URI path resolution and C...
  • d72bf08 #1068 Read dictionary indices of 9 to 16 bits two words per group
  • eb8981a #1287 Keep readInts correct when a call ends inside a group of eight
  • 3548322 #794 Resolve a filtered projection once when it already holds the filter columns
  • 885d04d #837 Resolve a local file's identity only when it is asked for
  • 813ab5b #735 Probe a read's leading row groups before starting its workers
  • 0daf66b [release] Move the 1.1.0.Beta2 release date to 2026-10-11
  • bb88285 #1291 Link the S3 output and parallel encoding stages to their issues
  • Additional commits viewable in compare view

Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options

You can trigger Dependabot actions by commenting on this PR:

  • @dependabot rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
  • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

Bumps [dev.hardwood:hardwood-core](https://github.com/hardwood-hq/hardwood) from 1.1.0.Beta1 to 1.1.0.Beta2.
- [Release notes](https://github.com/hardwood-hq/hardwood/releases)
- [Changelog](https://github.com/hardwood-hq/hardwood/blob/main/release-test-settings.xml)
- [Commits](hardwood-hq/hardwood@v1.1.0.Beta1...v1.1.0.Beta2)

---
updated-dependencies:
- dependency-name: dev.hardwood:hardwood-core
  dependency-version: 1.1.0.Beta2
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file java Pull requests that update java code labels Oct 14, 2026
Beta2 rejects a DECIMAL with scale > precision, so the unsupported-annotation
test swaps its arguments; the long page-header statistics read fix (#1380)
shipped, so the 14 'oracle cannot read' comments and doc sentence go.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@dfa1
dfa1 merged commit 0190621 into main Oct 16, 2026
7 checks passed
@dependabot
dependabot Bot deleted the dependabot/maven/dev.hardwood-hardwood-core-1.1.0.Beta2 branch October 16, 2026 19:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file java Pull requests that update java code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant