Releases: tonsky/datascript
Releases · tonsky/datascript
0.15.0
- Better error messages for upsert conflicts
- Backtracking of tempids when redefining them later with upserts (issue #76)
- Upsert works in vector form too (issue #99, #109)
- Can specify transaction number in
:db/add - Can put datoms into transaction directly (issue #121: supports both addition and retration datoms, keeps tx number)
- Added all
datascript.coresymbols to externs so they can be called directly from JS (e.g. in combination with mori, issue #139) - Added
reset-conn,conn-from-datomsandconn-from-db(issue #45)
0.14.0
- Unify fn binding results with existing relations (PR #138, issue #141, thx Aaron Brooks)
- [ BREAKING ]
get-somereturns[attr value]instead of justvalue(#143, same as Datomic) - Returning nil from query function filters out tuple from result
- Throw when calling unbound predicate/function inside a query (#111)
- Added several built-ins, including
count(#142) andsubs(#111) - Lookups with nil value (
[<attr> nil]) resolve to nil (#140) - Allow pull-pattern to be specified with a input variable without
?prefix (#136, #122) - Retract functions do not fail if lookup ref is pointing nowhere (#131)
- Fixed BTSet implementation of IReduceInit (#124)
0.13.3
0.13.2
0.13.1
0.13.0
- [ BREAKING ] Main namespace to include is now
datascript.core, notdatascript - [ BREAKING ] Old
datascript.core(internal namespace) was renamed todatascript.db - [ BREAKING ]
datascript.shim(internal namespace) was renamed todatascript.arrays
Motivations:
- Usage of top-level namespaces is discouraged and even generates a warning in CLJS.
- Better sooner than later.
- 0.13 seems like a great number for this sort of release.
Migration procedure:
- Just change
(require '[datascript :as d])to(require '[datascript.core :as d])and you’re good to go.
For the sake of easy migration, there’re no other changes in this release. Just renamings.
0.12.2
0.12.1
0.12.0
[ BREAKING ] Introducing new :db/index schema attribute:
- Attributes are not put to AVET by default anymore
- Following attributes are put to AVET:
:db/index true:db/unique :db.unique/identity:db/unique :db.unique/value:db/valueType :db.type/ref
- All attributes put to AVET should be comparable. Note: maps and list are not comparable by default, vectors are compared value-by-value
- [ BREAKING ] Min/max aggregation functions will only work on a comaparable values
0.11.6
- msec argument to squuid (#95, #97)
- lookup refs in JS API
pull,pull_many,entity(#94, thx Matt Senior) - fix in Pull API for reverse non-component attributes (#91, thx Matt Senior)
- Node.js and Browser repls for dev profile (#93)
- Preconditions to validate db/conn arguments (#101)
- Id allocation bug (#66)