The GitHub Actions job "GraphAr C++ CI Nightly" on incubator-graphar.git/main 
has failed.
Run started by GitHub user acezen (triggered by acezen).

Head commit for run:
6f97f015719ee2586b50116092f59db9fa1945d5 / alex <[email protected]>
feat(java): make a declined pushdown visible instead of silent (#972)

* feat(java): let a read request name what it wants pushed down

A physical read is not only a URI. A caller knows which columns it needs,
which source rows, which values, and how many rows are enough - and a backend
that learns all four up front can skip work that a caller would otherwise have
to discard after the fact.

Add the request half of the read API: an ordered projection, a half-open row
range, an AND conjunction of row predicates over immutable scalars, and a row
limit. A request also reports which of those hints it actually carries, so a
backend can answer for each one instead of guessing.

A column is addressed through ColumnRef, not a bare String. A reference is
unresolved by construction because a request exists before its file is opened;
a backend binds it with Schema.resolve, which matches the exact name and
refuses an unknown or ambiguous column instead of picking the first hit.

A Filter is a closed predicate tree: a column comparison, or AND, OR and NOT
over predicates, built through one named factory per operator so a null check
cannot be handed a value and a comparison cannot be handed null. A backend walks
the tree through a Visitor with one callback per node kind, so adding a node
kind is a compile error in every reader rather than a silently skipped branch.

Constraint: filter literals stay immutable and lossless. NaN, infinity, and
sub-millisecond timestamps are refused rather than silently compared against a
value a stored format cannot represent.

* feat(java): make a declined pushdown visible instead of silent

A backend that cannot apply a hint must still return the same rows as one that
can. That leaves a caller unable to tell an applied filter from an ignored one,
which matters: an ignored row range or limit changes cost, not results.

Add the reader half of the read API. A read returns a cursor together with a
report that names every requested hint as applied or declined, and the result
refuses to be built unless the report accounts for exactly the hints the
request carried - no gaps, no invented ones.

Directive: declining a pushdown must not change the rows or the schema a read
returns. The contract test asserts that a reader declining everything produces
the same output as one applying everything.

Report URL: https://github.com/apache/incubator-graphar/actions/runs/35463098698

With regards,
GitHub Actions via GitBox


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to