Skip to content

Releases: tonsky/datascript

0.11.5

28 Jun 21:16

Choose a tag to compare

  • Ported BTSet to JVM
  • BTSet and BTSetIter implement ChunkedSeq
  • New benchmark runner

This release brings a significant performance boost for JVM version of DataScript (numbers are in comparison to JS/v8 version):

  • queries with single clause, no join: ~5–6 times faster
  • queries with joins: ~3–4.5 times faster
  • transact: ~3 times faster
  • init-db: ~3–4 times faster
  • rules: ~3-4 times faster

0.11.4

28 Jun 21:18

Choose a tag to compare

Experimental support for Clojure on JVM:

  • sorted-set instead of BTSet
  • polymorphic get lookup in query
  • no sorting optimisation for init-db
    Performance numbers so far (raw data):
    • queries with single clause, no join: 30–50% faster
    • queries with joins: ~50% slower
    • transact: ~3.5–4 times faster
    • init-db: ~2–2.5 times slower
    • rules: ~2–5 times faster
    • db equiv: ~5 times slower
    • db hash: ~10 times slower

0.11.3

28 Jun 21:18

Choose a tag to compare

  • Fixed UUID constructor warning under CLJS 0.0-3291 and later

0.11.2

28 Jun 21:18

Choose a tag to compare

  • Support reverse attribute refs in combination with wildcards (issue #80)
  • *.cljc sources do not conflict with Clojure now. Code compiles under [lein-cljsbuild "1.0.6"]

0.11.1

03 May 08:21

Choose a tag to compare

  • Return nil from entity when passed nil eid (issue #75)

0.11.0

30 Apr 17:39

Choose a tag to compare

  • Fixed init_db in js (issue #73)
  • Preliminary work for Clojure port (PR #70, #71)
  • [ BREAKING ] DS now requires CLJS 0.0-3196 or later

0.10.0

23 Mar 08:46

Choose a tag to compare

  • New parser for query and rules
  • Added a lot of meaningful error messages and validations to query parser
  • Support for _ (ignore binding) in :in and fn-clause bindings
  • Fixed id allocation bug when nested maps are used for referenced entities (issue #59)
  • Fixed squuids omitting leading zeros (issue #60)
  • Fixed a bug when cross-referencing components caused infinite loop in Pull API (isuue #58, pull request #61)
  • Pull API handles recursion more like Datomic does (issue #62)
  • Exposed DB filter API to js (pull request #65)
  • Added ICounted, ISequable, IEmptyableCollection to datascript.core/DB
  • Force put Datom and DB tag readers to cljs.reader/*tag-table*, do not rely on data_readers.clj

0.9.0

03 Feb 22:21

Choose a tag to compare

  • Lookup refs can be inlined in query :where patterns (issue #53)
  • Pull API (issue #37, pull request #51) by David Thomas Hume
  • pull form in :find clause

0.8.1

27 Jan 15:12

Choose a tag to compare

  • :db/unique constraints
  • Upserts
  • Lookup refs
  • entid function

0.8.0

19 Jan 13:08

Choose a tag to compare

  • Find specifications: collection :find [?e ...], tuple :find [?e ?v], and scalar :find ?e .
  • Support for :db/isComponent (issue #3)
  • Support for nested maps in transact! (also fixes #38)
  • [ BREAKING ] Custom aggregate fns must be called via special syntax (aggregate keyword): (q '[:find (aggregate ?myfn ?e) :in $ ?myfn ...]). Built-in aggregates work as before: (q '[:find (count ?e) ...]
  • Return nil from entity when passed nil eid (issue #47)
  • Transaction data is now validated, with proper error messages (also fixes #48)