Releases: cozodb/cozo
v0.7.6
What's Changed
- update doc comments for cozo_run_query by @michaelsbradleyjr in #190
New Contributors
- @michaelsbradleyjr made their first contribution in #190
Full Changelog: v0.7.5...v0.7.6
v0.7.5
What's Changed
- Add into_iter for NamedRows by @dcz-self in #134
- Revert "Add into_iter for NamedRows" by @zh217 in #137
- Update README.md with link to Lisp api by @pegesund in #151
- Missing
immutable_query
arg in lib-c example by @turnerdev in #145 - make examples execute in order by @CrowdHailer in #164
- Update README.md - We can has Smalltalk ;-) by @Mr-Dispatch in #180
New Contributors
- @dcz-self made their first contribution in #134
- @pegesund made their first contribution in #151
- @turnerdev made their first contribution in #145
- @CrowdHailer made their first contribution in #164
- @Mr-Dispatch made their first contribution in #180
Full Changelog: v0.7.2...v0.7.5
v0.7.3-beta1
This release contains the accumulation of various small improvements and fixes.
Notable improvements:
- The addition of the function
slice_string(s, start, end)
, which makes working with strings easier. Counting is done with unicode codepoints (same as python, but not the same as JS which uses UTF-16). - In imperative scripts, you can use
%return _rel1, rel2, ...
to return multiple relations. However, client support is not available yet. - Functions
starts_with
andends_with
now work with bytes. - In imperative scripts, you can use
{ ... } as _relname
to make an ephemeral relation. This saves quite a lot of typing. - You can now use base64 strings when putting into a field of Vec. The base64 must decode into bytes that can be interpreted as a C-array of little-endian float32/float64, according to the definition of the Vec.
- Except when using
:create
or:replace
, whether you write=>
in the field list of mutations is immaterial. - Parameters: the
$var
syntax in script denotes named parameters. These should be passed in together with the script when calling the database. - When doing mutations on stored relations, you can omit the fields if they are exactly the same as the program entry, i.e.
?[x, y, z] := ... :put rel {}
is equivalent to?[x, y, z] := ... :put {x, y, z}
- When using constant relation and only a single row is present, the program entry can be deduced, i.e.
?[] <- [[$x, $y, $z]]
is equivalent to?[x, y, z] <- [[$x, $y, $z]]
. This works together with the last item to allow writing?[] <- [[$x, $y, $z]] :put rel {}
- A new set of mutation operators in addition to
:put
and:rm
: these are:insert
,:update
, and:delete
, and these checks for the existence of rows already in the database with the same semantics as in SQL. When doing:update
s, you only need to specify the keys and the fields you want to update. - Mutations now support a
:returning
option which, if present, will return the changes applied by the mutation instead of the status code. - Most sysops such as
::index create
can be used in imperative scripts now. - The standalone server now supports a token relation: https://github.com/cozodb/cozo/blob/cd840e687c5bde9dc3c95968f07bbed1b3669a65/cozo-bin/src/server.rs#L65-L67. Contents in this relation can be used as bearer tokens to access the API remotely.
v0.7.2
What's Changed
- Fixes for various small and not-so-small bugs
- Fix rocksb non optimized build warning by @Avi-D-coder in #107
New Contributors
- @Avi-D-coder made their first contribution in #107
Full Changelog: v0.7.1...v0.7.2
v0.7.1
What's Changed
- Thanks to the community, especially @DerZc, for finding bugs so that they can be fixed
- Wasm demo improvements by @chuanqisun in #93
Full Changelog: v0.7.0...v0.7.1
v0.7.0
After HNSW vector search from 0.6, in 0.7 we bring to you MinHash-LSH for near-duplicate search, full-text
search, Json value support and more! See here for more details.
New Contributors
- @chuanqisun made their first contribution in #63
Full Changelog: v0.6.0...v0.7.0
v0.6.0
Full Changelog: v0.5.1...v0.6.0
v0.5.1
Fixes a problem when importing JSON data
What's Changed
- Doc: Update Readme.md, fix typo 'stop to stop by @redbar0n in #38
- Add FixedRulePayload::inputs_count() by @GoldsteinE in #39
New Contributors
- @redbar0n made their first contribution in #38
- @GoldsteinE made their first contribution in #39
Full Changelog: v0.5.0...v0.5.1
v0.5.0
Cozo 0.5: the versatile embeddable graph database with Datalog is half-way 1.0
It's been a quarter of a year since Cozo's initial release and today we are glad to present to you the "half-way 1.0" version.
This marks the completion of all the features we envisaged for Cozo when we first started but weren't present in the initial release:
- User-defined fixed rules (added in v0.5)
- Callbacks for mutation (added in v0.5)
- Multi-statement transaction (added in v0.5)
- Indices (added in v0.5)
- Imperative mini-language (added in v0.5)
- Time-travelling (added in v0.4)
- Swappable backend (added in v0.2)
In addition, v0.5 brings major behind-the-scene changes that has big performance benefits:
- The semi-naive algorithm for executing queries is now executed in parallel for each Horn-clause (now it is even more advisable to split your queries into smaller pieces--better readability and performance!)
- The evaluation of expressions is no longer interpreted but instead through stack-based bytecodes (a few percent improvements for filter-heavy queries--the improvement mainly comes from the avoidance of memory allocations)
From now on, until version 1.0, development will "shift-gear" to focus on:
- stability
- performance
- interoperability with other software, e.g.:
If you find Cozo to be useful in your work, please send us feedbacks so that we can make Cozo better still!
v0.4.1
- Fixes a panic when running PageRank on empty graphs
- Server now supports REPL mode
- Updated RocksDB dependency
Full Changelog: v0.4.0...v0.4.1