Skip to content

Releases: replikativ/datahike

0.7.1642

30 Jan 06:20
99763d2

Choose a tag to compare

Fix tuple value validation in search patterns (#774)

Fixes retraction operations on entities with tuple attributes containing
3+ elements. Previously, retractEntity and explicit retracts would fail
with validation errors when tuple values had more than 2 elements.

The issue was reported on Slack by users trying to:
- Retract entities with homogeneous tuples (e.g., string tuples with 3+ elements)
- Retract entities with heterogeneous tuples (e.g., [instant, float, float])
- Perform database branch merges involving tuple value updates

Root cause:
The validate-pattern function in db/search.cljc only allowed vectors of
exactly 2 elements in the value position, assuming they were lookup refs
for :db.type/ref attributes. This rejected tuple values with 3+ elements.

Fix:
- Updated validate-pattern to accept db parameter for schema access
- Added tuple-aware validation: vectors of any length are allowed when
  the attribute is a tuple type (checked via dbu/tuple?)
- Updated all validate-pattern call sites to pass db
- Updated get-search-strategy and search-strategy-with-index accordingly

Testing:
Added comprehensive tests for:
- retractEntity with homogeneous tuples (3+ string elements)
- retractEntity with heterogeneous tuples (instant + 2 floats)
- Explicit retract operations with tuple values

All tuple tests pass, and the fix enables the previously failing use cases
from the Slack reports.

0.7.1641

30 Jan 06:05
2b1acc7

Choose a tag to compare

chore(deps-dev): bump lodash from 4.17.21 to 4.17.23 (#771)

Bumps [lodash](https://github.com/lodash/lodash) from 4.17.21 to 4.17.23.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.21...4.17.23)

---
updated-dependencies:
- dependency-name: lodash
  dependency-version: 4.17.23
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

0.7.1640

30 Jan 06:00
a5804a3

Choose a tag to compare

Fix tuple schema transaction failing when :db/ident comes last (#773)

Fixes #754 where tuple attribute schema transactions would fail with
ClassCastException when :db/ident was positioned last in the attribute map.

The issue was in attrTuples function (db/utils.cljc:321) which used the
threading macro (-> schema tuple-attr :db/tupleAttrs). This expands to
(tuple-attr schema), attempting to call the numeric temporary entity ID
as a function when :db/ident is processed after other attributes.

Changed to use get-in for safe map lookup instead of threading macro.
Added regression test to verify tuple schemas work regardless of
attribute ordering.

0.7.1639

30 Jan 05:02

Choose a tag to compare

Use konserve version with fixed release in tiered store.

0.7.1638

21 Jan 10:51

Choose a tag to compare

Use python3/pip3 explicitly in Python tests to fix CI PATH issues

0.7.1637

21 Jan 10:33

Choose a tag to compare

Add required store :id to libdatahike C++ test config

0.7.1635

21 Jan 08:33
954fa19

Choose a tag to compare

Make database-exists? throw if store config is invalid (#770)

* Make database-exists? throw if store config is invalid

Fixes issue #769

* FIXUP require necessary deps

* FIXUP try to make it work in clj and cljs

* FIXUP improve readability

---------

Co-authored-by: Jonas Östlund <[email protected]>

0.7.1634

21 Jan 08:31
29f77f7

Choose a tag to compare

Autogen pod API (#765)

* Fix libdatahike C++ test to use correct function name

The exported function is `q` (matching the API specification), not `query`.
The test was calling an undeclared `query` function.

* Refactor pod to use codegen from API specification

- Add src/datahike/codegen/pod.clj with overlay pattern for pod-specific config
- Generate pod functions at compile-time via macros instead of hand-written
- Use create-commit-id for unique db IDs (fixes db-with cache collision)
- Support variadic args (fix datoms spec to use [:* :any])
- Add :custom-fn overlay key for operations needing special handling (q)
- Add comprehensive Clojure integration tests in test/datahike/test/pod_test.clj
- Update bb pod tests to use variadic datoms syntax

* Fix format.

* Remove dead code from pod codegen

- Remove unused resolve-db-in-args (q has inline implementation)
- Remove unused make-resolver-bindings
- Remove unused let bindings in generate-var-entry
- Add missing clojure.set require with alias

0.7.1633

20 Jan 10:37
7832fe2

Choose a tag to compare

ci: fix pod examples readme (#767)

* docs: fix cljdoc src-kabel

* ci: update pod readme and examples with correct release

ci: only make releases when native-image worked

0.7.1632

20 Jan 10:36
6d51262

Choose a tag to compare

docs: fix cljdoc src-kabel (#766)