Repository navigation
Conversation
…ouble, as on the native wheel (refs #314) (#320) RowBatcher.keepNonFinite now widens a Float to a Double and a float[] to a double[] before the engine's JSONObject writes it, so the JSON text is the exact float64 widening of the float32 (0.10000000149011612, not the shortest float32 text 0.1). NaN and infinity keep their tag. tests/test_cross_wheel_golden.py is one fixed table with committed golden literals for to_list, to_json_list and to_columns (FLOAT, DOUBLE, float32 float[] of 3 and 9, DECIMAL, LONG beyond 2**53, DATE, DATETIME, NULL, embedded list), run unchanged on both wheels. Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com> (cherry picked from commit 551dee9) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…r-row steps, one _kind per column (refs #312) (#321) * Native columnar readers: infer Arrow types first, skip per-key and per-row steps, one _kind per column (refs #312) Bindings-only, Python in arcadedb._native, no image rebuild. Output is meant to be identical to before: - columns.to_arrow tries pa.array(values) first and keeps the old per-value rules for a column that inference cannot type (ArrowInvalid, ArrowTypeError) or types differently (temporal types, unsigned ints). - columns._names tests each row's keys against the known ones in C instead of a Python step per key. - columns.to_columns calls _kind once per column instead of twice. - NativeResultSet._fill can hand a reply's rows straight to _drain_dicts, which no longer builds a tuple and a generator step per row. The float32-tail view in codec.loads_tagged is not done: a vector must stay a list of floats for the row API. tests/test_native_columns_reference.py keeps the old rules as a private reference and compares tables, columns, names and the drain on mixed, null-heavy, ragged and vector inputs. No speed is claimed here. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> * Native columns: a failed inference of any kind falls to the old rules; tests compare NaN tables by value (refs #312) pa.array([2**63]) raises OverflowError, not ArrowInvalid, so an int above int64 next to floats would have raised where the old explicit-type call fell back to exact text. _inferred now leaves every failed inference to the rules, so the outcome of such a column is decided by the old code. Four reference cases cover it. Table.equals is False for a NaN next to the same NaN, so the comparison is the schema plus the repr of the values. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> --------- Co-authored-by: Claude Sonnet 5.5 <noreply@anthropic.com> (cherry picked from commit 6c6a5a1) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This is the preparation PR for
26.11.1.post1. The baserelease/26.11.1is the tag26.11.1(2f28a32) and nothing else, so the release differs from 26.11.1 only in the bindings glue I chose to fix. I do not merge this PR and I do not tag anything from it.In, as
git cherry-pick -xof the squash commits of main, in this order:76f94b2from JVM to_json_list: a FLOAT and a float32 float[] arrive as the exact double, as on the native wheel (refs #314) #320 (551dee9): JVMto_json_listsends aFLOATand a float32float[]as the exact double, as the native wheel does, plustests/test_cross_wheel_golden.py. Applies cleanly.946dfdafrom Native columnar readers: infer Arrow types first, skip per-key and per-row steps, one _kind per column (refs #312) #321 (6c6a5a1): native columnar read assembly, plustests/test_native_columns_reference.py. One conflict insrc/arcadedb/_native/database.py: the context ofNativeResultSet._fillon main also holds the facets lines from Expose the facets of a result set in both packages (closes #290) #299 and Facet kinds from Python: HIERARCHY, DISTINCT, STATS, AFTER and facet.searchValues (closes #291) #301, which are not in the tag. I kept only the Native columnar readers: infer Arrow types first, skip per-key and per-row steps, one _kind per column (refs #312) #321 change (return has_rows or self._pending_error is not None) and dropped the facets lines. Nothing else of the diff differs from Native columnar readers: infer Arrow types first, skip per-key and per-row steps, one _kind per column (refs #312) #321.The whole diff against the tag is 6 files:
src/arcadedb/_native/columns.py,src/arcadedb/_native/database.py,src/java/com/arcadedb/python/RowBatcher.java,tests/conftest.py,tests/test_cross_wheel_golden.pyandtests/test_native_columns_reference.py. No workflow, no script, nopyproject.toml,setup.py,native/build file, jar list or engine pin is touched.No workflow or script commit was needed to accept
.post1. At the tag,release-jvm.ymlandrelease-native.ymlalready validate^[0-9]+\.[0-9]+\.[0-9]+(\.(dev|post)[0-9]+)?$,scripts/check_version.pyhas thepostNrule,test-native.ymlresolvesengine = basefor a post version, andscripts/after_tag_verify.shstrips.postN.scripts/verify_wheel_engine_pin.pydoes not exist at the tag, so there is nothing to adapt.Left out on purpose, all in main since 26.11.1: the facets API (#299, #301), COLUMNAR index reflection (#300),
Document.get_type_name()returningstron the JVM build (#287), the docs commits, the dev-release engine pin (#305, #308, #310), the native lane against the 26.12.1-SNAPSHOT engine (#298), the CI and release workflow changes, and the Dependabot bump (#311). The ingest fixes #318, #324 and #325 are not here yet: each comes as its own PR intorelease/26.11.1.Engine source of a tag build of
26.11.1.post1with this branch: JVM jars come from the imagearcadedata/arcadedb:26.11.1(the tag minus.post1, and the build fails when the image holds another version), the native library is built from the Maven Central 26.11.1 engine. No snapshot path exists at the tag. The guardpost1_identity_check.py(engine jar sha256 and engine commit stampa3a5d12457against the released 26.11.1 wheels) runs on the wheels of the release, not here.CI note: the
pull_requestworkflows have no base branch filter, so they run for this base. A pull request run oftest-jvm.ymltakes the jars fromarcadedata/arcadedb:latest, not 26.11.1, and a draft skips the platform legs. The evidence on the 26.11.1 engine therefore comes fromworkflow_dispatchruns on this branch witharcadedb-tag=26.11.1(JVM and examples) andversion=26.11.1.post1(native), linked in a comment below.🤖 Generated with Claude Code