Repository navigation
Update the docs for TuringDB 3.0.2 - #20
Merged
Merged
Conversation
Brings the query language, CLI, HTTP API and SDK pages in line with
turingdb 3.0.2. Every cypher example in query/ was run against a 3.0.2
server.
Query language:
- label expressions, NEXT, WHEN ... THEN ... ELSE, COLLECT {}, CALL (*),
FOREACH and conditional writes, multi-hop quantified path patterns;
- query parameters for labels and edge types;
- the new string functions, keys(), properties(), the OrNull
conversions, stDev/stDevP/percentileCont/percentileDisc, and
case-insensitive function names;
- map keys readable everywhere, including maps stored as properties;
- Integer = Double compares by value, unmatched OPTIONAL MATCH nodes
are null, MERGE sees earlier writes of the change.
Node ID lookups: id(n) = 123 and ID batches from any list, including two
IDs per row, are direct lookups, so the batch-shape rules are gone and
writing.mdx gains a recipe for edges between existing nodes.
CLI, HTTP and SDK: JSON request body with parameters, decimal change
IDs, 1 MiB request limit and new error codes, -no-vector-mmap instead of
-start-timeout, shell :param, full-precision Doubles, turingdb>=3.0.2.
This was referenced Oct 26, 2026
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.
What
Brings the docs in line with TuringDB 3.0.2. #19 documented 3.0.1, and this is the delta since then, mostly in the query language.
Query language (
query/)query/composition, in the nav after Results and aggregation). It covers:NEXT: passing nodes on, longer chains, after aUNION, braced chains asUNIONsides, insideCALL/EXISTS/COUNT, writes, scoping rulesWHEN ... THEN ... ELSE: several branches, subquery conditions, per row afterNEXTand inCALL, noELSE,NEXTchains in a branch,UNION, writes, rules:A|B,:!A,:A&B), in patterns,OPTIONAL MATCHandWHERECOLLECT { }, withWHERE,DISTINCT, top-k,UNION, collected nodes and its limits;UNIONandNEXTbodies forEXISTS/COUNT;CALL (*) { }, andCALLbodies that write and returnFOREACH: edges off a matched node, several clauses, list properties, conditional writes with theCASEtrick,RETURNafter it[r IN e | r.since]), andreduceto sum along a route$nameworks for labels and edge types (MATCH (n:$label),CREATE (n:$label)). Value parameters are still listed as not yet supported.substring,left,right,split,replace,char_length,normalize/IS NORMALIZED,keys,properties, theOrNullconversions,stDev,stDevP,percentileCont,percentileDiscminandmaxwork over lists and mixed typescoalescebranches can mix typesm.key,m[k]), including maps stored as properties (n.meta.level).Double = Doubleis still steered to ranges.OPTIONAL MATCHnode isnull.MERGEsees what earlier queries of the change wrote.nullkey inCREATEis skipped.CREATEis reported.list + xappends an element.id(n) = 123is now a direct lookup, and so are ID batches from any list source, including two IDs from one row. The old "exact shape" and "never two IDs per row" rules are gone.UNWINDtoString()/toInteger(), replacing the parallel-lists workaroundOther pages
commands:-start-timeoutremoved,-no-vector-mmapadded, and start errors described:param/SHOW PARAMETERS{"query", "parameters"}, decimalchange=, a 1 MiB limit (REQUEST_TOO_BIG), full-precision Doubles, andGRAPH_NOT_FOUNDpythonsdk/reference:turingdb>=3.0.2, upgrading SDK and server togetherquery(q, query_parameters)shortestPathpathcan't yet be read over the native backendtroubles: new entries forThe request body must be a JSON objectandREQUEST_TOO_BIG, and the function-name entry updatedimport_data/csv:OPTIONAL MATCHreadingrow.xworks, so the workaround is goneimport_data/jsonl: load errors name the linevector-search: HNSW indexes are memory-mapped, and re-loading IDs replaces their vectorsshortest-path,graph_dev/create_nodes_edges,claude-skill: small updates to matchHow it was checked
cypherexample inquery/(332 statements) was run against a server built from the 3.0.2 engine, on the sample graph from the matching page. Writes ran in a change that was deleted afterwards.my_index,knows.csvand thegreeterextension. Two blocks list several commands without blank lines between them.NEXT,WHENandCOLLECTaccept and reject, the exact error messages) were probed on the same server.:param, native backend,LOAD JSONLerrors, vector reloads) were probed on 3.0.2.npm run buildpasses (43 pages), anchor parity is 293/293, and every new internal link resolves.