Richard Newman
99e7fafd1b
Change license to Apache. Fixes #74 .
2016-11-22 11:40:37 -08:00
Richard Newman
97911d86b2
Update README.
2016-11-21 08:51:36 -08:00
Richard Newman
7df48d0599
Add missing Tufte stub function.
2016-11-17 13:28:54 -08:00
Brian Grinstead
f4519a7779
Update CONTRIBUTING.md
...
Use correct URL for cloning
2016-11-17 13:14:11 -08:00
Richard Newman
8a9d59aaf3
Implement schema management proposal. Fixes #95 . r=grisha
2016-11-16 21:05:37 -08:00
Richard Newman
d568977fa9
Implement schema management proposal. Fixes #95 .
2016-11-16 21:04:13 -08:00
Richard Newman
451f13a053
Add :db.schema/version and :db.schema/attribute.
2016-11-16 21:04:13 -08:00
Richard Newman
3212be565c
Allow callers to run functions within the scope of a transaction.
...
This generalizes the transactor loop to allow callers to run
an arbitrary function within an `in-transaction!` body.
Combined with exposing `<report-transact-tx-data!`, this allows
an admittedly sophisticated consumer to conditionally query and
transact in a consistent way -- for example, cleaning up inconsistent
data then transacting a new schema version.
2016-11-16 21:04:13 -08:00
Richard Newman
bd0a56e501
Expose datomish.schema/validate-schema so that schema management can use it.
2016-11-16 21:04:13 -08:00
Richard Newman
5fa26c58a8
Expose id-literal? in the API.
2016-11-16 21:04:13 -08:00
Richard Newman
8e6f8399ae
Add <??, a null-safe variant of <?.
2016-11-16 21:04:13 -08:00
Richard Newman
7e50528788
Add repeated-keys utility.
2016-11-16 21:04:13 -08:00
Richard Newman
df378cee81
Add a simple test that in-memory databases are isolated.
2016-11-16 21:04:12 -08:00
Richard Newman
30023dd939
Move test helpers so they're not included in the built output.
2016-11-16 21:04:12 -08:00
Richard Newman
8ad434574e
Remove dependency on Tufte. Fixes #109 .
2016-11-16 21:03:59 -08:00
Richard Newman
8432e89b97
Bump promise-sqlite and node-sqlite3.
2016-11-16 20:59:27 -08:00
Richard Newman
5f3e84943c
Bump DataScript dependency to 0.15.4.
2016-11-16 20:55:56 -08:00
Richard Newman
327711bb53
Bump ClojureScript dependency to 1.9.293.
2016-11-16 20:55:56 -08:00
Richard Newman
d89ac5fbcd
Bump to latest sqlite libraries on the JVM side.
2016-11-16 20:55:56 -08:00
Richard Newman
9d361055d3
Implement schema alteration. Fixes #78 .
...
Altering uniqueness and cardinality attributes works, with the exception
of enabling uniqueness from nothing.
:db/noHistory and :db/isComponent changes are implemented but untested,
and aren't really supported by Datomish anyway.
2016-10-24 20:01:44 -07:00
Richard Newman
46269fe720
Add db.alter/attribute to the bootstrap schema.
2016-10-24 20:01:44 -07:00
Richard Newman
9d81abace5
Implement ident renaming. Fixes #103 .
2016-10-24 20:01:44 -07:00
Richard Newman
a08dc13480
Reorder test file.
2016-10-24 20:01:44 -07:00
Richard Newman
be5aa5dad9
Add schema-changes-test to cljs test file.
2016-10-24 16:14:01 -07:00
Richard Newman
b20e769abf
Upgrade SQLite, bump version to 0.2.0-SNAPSHOT.
2016-10-24 14:09:45 -07:00
Richard Newman
f68e4b7fdd
.gitignore.
2016-10-19 12:59:14 -07:00
Richard Newman
3cfccc4b81
Implement ground. Fixes #99 .
2016-10-19 12:54:05 -07:00
Nick Alexander
1ddf37163c
Rewrite id-literal resolution to be faster. r=rnewman ( #88 )
2016-10-14 10:20:44 -07:00
Nick Alexander
3670c5cce7
Review comment: save allocations when evolving.
2016-10-14 10:20:43 -07:00
Nick Alexander
679ab8cf7d
Review comment: explain why upserts between generational steps don't conflict.
2016-10-14 10:20:43 -07:00
Nick Alexander
caa9d2d7cb
Review comment: prefer dissoc and update to destructuring.
2016-10-14 10:20:43 -07:00
Nick Alexander
00c72f9188
Review comment: fix "Like {...}" map examples.
2016-10-14 10:20:43 -07:00
Nick Alexander
885a816812
Review comment: style nits.
2016-10-14 10:20:43 -07:00
Nick Alexander
39c909ec32
Rewrite resolve-id-literals to use bulk <avs. ( #88 )
...
The metaphor we use is that of "evolution", where each "evolutionary
step" contains a number of different "generations". Entities in the
process of being resolved are increasingly "evolved" into simpler
generations, until no further evolution is possible.
2016-10-14 10:20:43 -07:00
Nick Alexander
1c83287fcf
Pre: Make <avs handle fulltext datoms correctly.
...
The test would fail because we would have an [a v] pair with a string
value, but we were looking for the fulltext rowid in <avs. Using
all_datoms correctly looks up the string value, at the cost of crippling
the speed of <avs.
2016-10-14 10:20:43 -07:00
Nick Alexander
60c7db4301
Pre: Make testing consistent by sorting fulltext values before inserting.
...
This sorts fulltext values inserted in a single transaction, not across
transactions. This makes the rowids assigned in the fulltext_values
table internally consistent, even as the order of entities and datoms
changes (as the transaction applying algorithm evolves over time). The
test changes simply make the fulltext values sort easily.
In theory, these fulltext values could be very large, and sorting might
be very expensive. In practice, we expect values to differ in their
first few characters, so that this is efficient (i.e., proportional to
the number of fulltext values inserted and not their size).
2016-10-14 10:20:43 -07:00
Nick Alexander
d94dfae01b
Pre: Add multistep upsert example.
2016-10-14 10:20:43 -07:00
Nick Alexander
bc011bbf43
Pre: Add util/group-by-kv.
2016-10-14 10:20:43 -07:00
Richard Newman
8bb0dcfa2e
Upgrade honeysql to org.clojars.rnewman/honeysql 0.8.2 to fix UNION parenthesizing. Fixes #83 .
2016-10-14 10:19:15 -07:00
Richard Newman
feebfd09da
Generate known type for the entity in a fulltext expression, and add a test. Fixes #85 .
2016-10-13 18:19:29 -07:00
Nick Alexander
445364f192
Bump to version 0.1.2-SNAPSHOT.
2016-10-13 16:30:16 -07:00
Nick Alexander
ed545d4a11
Serialize <transact!; add {un}listen{-chan}!. r=rnewman ( #61 , #80 )
2016-10-13 16:29:24 -07:00
Nick Alexander
a4dd7e4e9c
Review comment: make a large-ish dropping buffer for JS listen! consumers.
2016-10-13 16:11:22 -07:00
Nick Alexander
032bfafec2
Review comment: fail pending transactions after closing connection.
...
This is pretty difficult to test robustly, but here's a stab at it.
2016-10-13 16:11:22 -07:00
Nick Alexander
f02d508370
Review comment: ensure <transact! after <close is rejected.
2016-10-13 16:11:22 -07:00
Nick Alexander
b20c70fc2a
Review comment: ensure report is non-nil after in-transaction!.
2016-10-13 16:11:22 -07:00
Nick Alexander
cea0e3d60f
Review comment: return pair-chan; accept a result chan and close? flag.
2016-10-13 16:11:22 -07:00
Nick Alexander
e5917406b4
Add {un}listen{-chan}! to connection. ( #61 )
2016-10-13 16:11:16 -07:00
Nick Alexander
a8ad79d0e6
Make <transact! run in a critical section. ( #80 )
2016-10-11 20:32:35 -07:00
Nick Alexander
2081ca4563
Pre: Add unlimited-buffer and unblocking-chan?.
2016-10-11 20:32:35 -07:00