Repository navigation
Docs for 26.11.1: query language, find_nearest width and distance, read-only open, single-pass results, server mode, and fixes from the audit - #264
Merged
Conversation
databases-and-queries.adoc gets a short 'Which query language' paragraph: openCypher for graph patterns and traversals, SQL for documents, tables, schema, inserts, filters, aggregates and pagination, the older SQL graph syntax (MATCH {...}, out(), TRAVERSE) supported but not recommended for new code, with links to the main SQL and openCypher references instead of repeating them. Example 02 runs and prints its openCypher section first and describes SQL MATCH as the older syntax; plain SQL stays for documents and tables. Examples 05 and 06 are left for a follow-up after their run on the small dataset (docs audit 2026-11-04, item M3).
Closes #263
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… of the default width With ef_search=None the width comes from the index's efSearch metadata, else from the engine: max(k, 100) under 10,000 vectors, max(2k, 100) from 10,000 on (ArcadeData/arcadedb#10704, in 26.11.1; before max(2k, 20), SIFT 100k recall@10 0.929 vs 0.998). A search on a large index is more accurate and slower than on earlier releases; ef_search trades it back. Found while answering ArcadeData/arcadedb#11323. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…efuses, no speed claim Both builds implement and test it (tests/test_open_read_only.py: reads, INSERT, CREATE DOCUMENT TYPE and save() refused with 'read only', commit/rollback of a read transaction returns from 26.11.1, DatabaseFactory.open(read_only=True)); no page described it. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- jvm_kwargs on the native build: create_database and open_database accept it and ignore it with a logged warning (_native/database.py NativeDatabaseFactory), they do not 'not exist'. installation.adoc and which-package.adoc said so. - Studio: the native pom has no arcadedb-studio, so the native server has none; installation.adoc's shared 'What is included' list now says Studio is JVM only. - Docstrings pointed to pages that do not exist (docs/api/graph_batch.md, 'the Python functions guide', 'the performance guide'). graph_batch.py now points to the bulk-loads page, the other two drop the pointer. - README: 29 example scripts (was 27), Python range per package (native tested on 3.11 to 3.14 and installs on 3.15, JVM is >=3.11,<3.15), the polars extra of arcadedb-jvm. - bulk-loads.adoc: append_samples exists on both packages; the address path is the native fast path. - concurrency.adoc: the native row said 'alpha quality'; the package is beta (README, classifiers). Sample outputs that need a real rerun (installation.adoc, quickstart.adoc, concurrency.adoc) are left as they are; the pre-release notes change on release day. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ns (#267) databases-and-queries.adoc, 'A result set is read once': a second pass over a set read to its end returns nothing; first(), one(), close() and leaving a with block close it, and a set closed before its end raises ArcadeDBError when read again; count() consumes it; statement errors can surface while rows are read; an unclosed set keeps the parallel scan threads parked for arcadedb.parallelScanAbandonedTimeout; to_list() when the rows are needed twice. Rests on results.py (class docstring, count, first, one, close, __enter__) and the same states in _native/database.py (NativeResultSet._readable, close, first, one, count). quickstart.adoc, server mode: host defaults to localhost and covers the HTTP server and every enabled wire protocol (server.py and _native/server.py, ArcadeNative.serverStart), http_port and mode are read by the bindings, any other key becomes arcadedb.<key with _ as .>, Postgres/Redis/Bolt plugins are opt-in through server_plugins and are in both builds (native/pom.xml), the native server has no Studio. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…earest_by_key (#267) vectors.adoc: openCypher creates (CREATE VECTOR INDEX) and searches (SEARCH ... IN (VECTOR INDEX ...)) vector indexes from 26.11.1, with links to the main manual's cypher-clauses page (anchors cypher-create-vector-index, cypher-search, checked on docs.arcadedb.com). The second element of a find_nearest tuple is a distance, lower is closer, for every similarity function (VectorIndex._sort_results; the native index reads the distance column of vectorNeighbors); find_nearest_by_key(key, k, ef_search, allowed_rids) uses the stored vector of the record whose id property equals key (vector.py _lookup_query_vector_by_key). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… matrices (#267) The install table had each uv add line twice (left over from the pip-to-uv replacement). The README said CI tests 3.11 to 3.14 on every platform for main, nightly and releases; per scripts/select_native_matrix.py and select_matrix.py, main and nightly run native 3.12 and 3.14 on every platform (pyver subset on 3.11, 3.13, 3.15) and the JVM build 3.11 to 3.14 on Linux x86-64 plus 3.11 and 3.14 elsewhere. A release runs 3.11 to 3.14 on all four platforms for both builds once the JVM release matrix is full (ci/jvm-full-matrix-on-release, to merge before this PR). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tae898
added a commit
that referenced
this pull request
Nov 5, 2026
…t can be saved (#266) A hit of find_nearest(include_vector=True) carries the row's RID as its rid, and the native record wrappers wrap their rid again (RID(self._rid) in save, the update, delete, new_edge and the edge reads). RID.__init__ kept its argument as is, so .text was an RID and the fast named-parameter path of codec.encode_params raised 'Object of type RID is not JSON serializable' (test_vector_hit_records::test_a_hit_can_be_modified_and_saved[True], found on #264's parity leg); the slower paths sent a nested tag. RID now unwraps an RID argument. test_native_rid_params.py (native only) checks the constructor and that a wrapped RID encodes byte for byte like the RID on the fast and the hook paths; both tests fail on the previous codec.py and pass on this one (checked engine-free). Closes #265 Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
…uage Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Closes #263. Part of #267 (the before-release items of the docs audit; the larger pages follow after 26.11.1).
how-to/databases-and-queries.adocopen_database(path, read_only=True), what it refuses, no speed claim. "A result set is read once": lazy single-pass cursor, what closes it,count()consumes it, errors can surface while reading, close or exhaust it so the engine releases its scan,to_list()for two passeshow-to/vectors.adocfind_nearest(ef_search=None)does and the 26.11.1 default width (max(k, 100)under 10,000 vectors,max(2k, 100)from 10,000 on; ArcadeData/arcadedb#10704); the second tuple element is a distance, lower is closer;find_nearest_by_key; openCypherCREATE VECTOR INDEXandSEARCH ... IN (VECTOR INDEX ...)linked to the main manualquickstart.adochostdefaults tolocalhost(Docker and LAN clients need0.0.0.0), how other keys map toarcadedb.*settings, the Postgres, Redis and Bolt plugins viaserver_plugins, no Studio on the native serverinstallation.adoc,which-package.adocjvm_kwargsis accepted and ignored with a warning on native (it was described as not existing); Studio is JVM only; one install command per package in the table (each was listed twice)how-to/bulk-loads.adoc,how-to/concurrency.adocappend_samplesexists on both packages, the address path is native; the native row is no longer labelled alphaREADME.mdpolarsextra ofarcadedb-jvm; the CI sentence matches the matrices (assumes #269, which merges first)src/arcadedb/core.py,graph_batch.py,results.pyexamples/02_social_network_graph.py,examples/README.mdMATCHdescribed as the older syntaxEvery new statement rests on the code or on the engine commit it names (file:line in #267). Sample outputs from older versions (
installation.adocverify output,quickstart.adoc26.10.2 notes, theconcurrency.adocprobe tables) still need a real rerun and are listed in #267; the pre-release notes change on release day. Checks:compile()and pyflakes on the changed Python files (the two pyflakes warnings incore.pyare onmainalready, #270), pre-commit on the range, nopip installand no em dash in the diff.🤖 Generated with Claude Code