Richard Newman
8dd15244fa
Update README.
2016-09-22 16:45:52 -07:00
Richard Newman
d6c074830f
Implement a JS interface for Datomish, demonstrating it with a small Firefox add-on. Fixes #53 . r=nalexander
2016-09-22 16:42:18 -07:00
Richard Newman
9587311412
Include deps.cljs giving externs for Node.js consumers; normalize build output.
...
cljsbuild using leiningen projects that depend on Datomish will
automatically include the externs.
2016-09-22 16:24:37 -07:00
Richard Newman
d0a04a5e56
Review comment: extracted shared go-promise.
2016-09-22 16:24:37 -07:00
Richard Newman
03d8d178fb
Add CREDITS file for the icon the add-on uses.
2016-09-22 16:24:37 -07:00
Richard Newman
155f9b6d98
Add Public Domain license to addon code.
2016-09-22 16:24:37 -07:00
Richard Newman
548340c655
Copy the built datomish.js when building the add-on.
2016-09-22 16:24:37 -07:00
Richard Newman
17d7eaec7b
Add a babelified test file, Webpack the add-on, and make the JS API work.
...
We concatenate a simple setTimeout monkeypatch onto the add-on itself.
2016-09-22 15:59:15 -07:00
Richard Newman
360f7622e8
Add handling of simple schemas. Fixes #53 .
2016-09-22 15:59:15 -07:00
Richard Newman
bae1cfdc77
Alter release node config to be a bit more human-readable.
2016-09-22 15:59:15 -07:00
Richard Newman
4f37a86039
Use cljify in promise-sqlite.
2016-09-22 15:59:15 -07:00
Richard Newman
ea027e8cea
Implement cljify.
2016-09-22 15:59:15 -07:00
Richard Newman
1d53d547b8
Externs.
2016-09-22 12:43:36 -07:00
Richard Newman
330433a45c
Add externs file for Node's use of promise_sqlite.
2016-09-22 12:43:35 -07:00
Richard Newman
d178c53dcb
Use normal sqlite3 and promise_sqlite.
2016-09-22 12:43:35 -07:00
Richard Newman
77fb997785
Fix source paths.
2016-09-22 12:43:35 -07:00
Nick Alexander
2e9a0f089c
Include src/node in global source-paths. r=me
...
When consuming Datomish from another leiningen project, the .cljs files
need to be included as well.
2016-09-21 13:47:20 -07:00
Nick Alexander
1a30306314
Move datomish.api into exported namespace.
2016-09-19 12:03:09 -07:00
Richard Newman
b5aec2e890
Move src-node and src-browser into subdirectories of src.
2016-09-09 12:07:03 -07:00
Richard Newman
ac253bfea0
Make Datomish work in a Firefox add-on on top of Sqlite.jsm. Fixes #48 . r=nalexander
2016-09-09 09:26:19 -07:00
Richard Newman
ee2dca05d0
Add a restartless add-on to load Datomish in Firefox.
2016-09-08 19:11:44 -07:00
Richard Newman
418bb34d57
Add is-node?.
2016-09-08 19:11:44 -07:00
Richard Newman
5ccc725b56
Flesh out JS API.
2016-09-08 19:11:44 -07:00
Richard Newman
d755cd860e
Add externs file for Sqlite.jsm.
2016-09-08 19:11:44 -07:00
Richard Newman
97bc90ae30
Add a preload script to set up console.log for browser use as println.
2016-09-08 19:11:44 -07:00
Richard Newman
113cff42aa
Add a stub datomish.core for browser code.
2016-09-08 19:11:44 -07:00
Richard Newman
9e4e95ce51
Default SQLite's user_version to zero.
...
I saw nil here with Sqlite.jsm.
2016-09-08 19:11:44 -07:00
Richard Newman
b11b6c92d9
Implement js-sqlite for browser code.
2016-09-08 19:11:44 -07:00
Richard Newman
1cfbf8498c
Introduce js-sqlite as an abstraction wrapper around Sqlite.jsm and promise-sqlite.
2016-09-08 19:11:44 -07:00
Richard Newman
cc25ce33e2
Move platform-specific code into src-node.
2016-09-08 19:11:44 -07:00
Richard Newman
c4f5564b35
We need to monkey-patch setTimeout for Sandbox contexts.
2016-09-08 19:11:44 -07:00
Richard Newman
e76d7305d1
Split release-js into release-node and release-browser.
...
Also expand our clean targets, and rewrite our build targets to generate
different code for Node and Firefox.
2016-09-08 19:11:43 -07:00
Richard Newman
9dbda3d9d8
Pre: remove exec_repl.cljc.
2016-09-08 19:04:15 -07:00
Richard Newman
fb8d46a4d7
Pre: bump to the latest ClojureScript release.
2016-09-08 19:04:15 -07:00
Richard Newman
687fddf709
Pre: .gitignore.
2016-09-08 19:04:15 -07:00
Richard Newman
53322d8389
Pre: @arg -> @param to quiet cljsbuild warnings.
2016-09-08 19:04:15 -07:00
Nick Alexander
21f672f921
Serialize and de-serialize non-keyword schema values correctly. Fixes #52 . r=rnewman
2016-09-07 17:31:59 -07:00
Nick Alexander
659c26339c
Serialize and de-serialize non-keyword schema values correctly. Fixes #52 .
2016-09-07 17:31:30 -07:00
Nick Alexander
562ced372d
Add :db.fn/retractAttribute and :db.fn/retractEntity. Fixes #46 . r=rnewman
2016-09-06 13:13:30 -07:00
Nick Alexander
362bdb2028
Add :db.fn/retractAttribute and :db.fn/retractEntity. Fixes #46 .
...
There's no distinction made for fulltext attributes, since the values
found by the retractAttributes SELECT are already rowids into the
fulltext_values table and therefore need no additional mapping.
2016-09-06 13:13:20 -07:00
Nick Alexander
94bac9704b
Pre: Use SQLite temp files in deftest-db.
...
These temp files will almost certainly live in memory only, speeding our
test suite evaluation significantly. Before this patch, in a warmed
REPL environment I get:
Testing datomish.db-test
Ran 19 tests containing 97 assertions.
0 failures, 0 errors.
"Elapsed time: 1408.720681 msecs"
"Elapsed time: 1343.986464 msecs"
"Elapsed time: 1338.660762 msecs"
After this patch, in a warmed REPL environment I get:
Testing datomish.db-test
Ran 19 tests containing 97 assertions.
0 failures, 0 errors.
"Elapsed time: 587.605168 msecs"
"Elapsed time: 569.522333 msecs"
"Elapsed time: 589.080282 msecs"
2016-09-06 13:13:20 -07:00
Nick Alexander
cfdce12c1a
Pre: Use deftest-db in tests.
2016-09-06 13:13:20 -07:00
Richard Newman
8e8dd21164
Implement :limit and :order-by-vars. Fixes #37 . r=nalexander
2016-09-02 16:24:10 -07:00
Richard Newman
5424e61be4
Review comment: args -> inputs.
2016-09-02 16:23:30 -07:00
Richard Newman
1197764949
Implement :limit and :order-by-vars. Fixes #37 .
...
We'd like this to be part of the query syntax itself, but doing so
requires extending DataScript's parser.
Instead we generalize our `args` to `options`, and take `:limit`
and `:order-by-vars`. The former must be an integer or nil, and the
latter is an array of `[var direction]` pairs.
This commit includes descriptive error messages and tests for success
and failure.
2016-09-02 08:32:45 -07:00
Nick Alexander
e48f58f5f4
Cache partition map and update materialized partition view once. Fixes #47 . r=rnewman
2016-09-01 14:46:10 -07:00
Nick Alexander
d92016166a
Cache partition map and update materialized partition view once. Fixes #47 .
...
This caches a partition map per DB, which is helpful because it exposes
what the point in time DB partition state is, but is unhelpful because
the partition state can advance underneath the DB cache. This is
generally true of the approach -- this can happen to the ident/entid
maps, and the datoms themselves -- so we'll roll with it for now.
This reduces the number of SQL UPDATE operations from linear in the
number of id-literals used to constant in the number of known
partitions.
2016-09-01 14:46:04 -07:00
Nick Alexander
d419554361
Revert "Add Datomic, for testing."
...
This reverts commit 1b1cc6f18e
.
This should never have escaped the lab; Datomic is not a dependency of
Datomish.
2016-08-31 16:17:08 -07:00
Richard Newman
b2a1af30ed
Implement type-aware querying, fulltext searching, fast importing, and much besides. Fixes #14 , #30 , #35 , #39 , #40 , #42 . r=nalexander
2016-08-30 18:24:12 -07:00
Richard Newman
7486c2a8ba
Hacking on exec-repl.
2016-08-30 18:22:23 -07:00