Richard Newman
6ab93208cb
Part 2: implement complex 'or' translation. Fixes #57 . r=nalexander
...
We implement sql-projection-for-simple-variable-list to allow us to add
a projection to subqueries.
2016-09-29 15:46:15 -07:00
Richard Newman
b9b9c37dfa
Part 1: pass in :select when creating a partial subquery from a CC.
2016-09-29 15:44:16 -07:00
Richard Newman
1296b8090f
Allow sets of attributes in fulltext expressions. Fixes #54 . r=nalexander
2016-09-26 16:34:37 -07:00
Richard Newman
32cd08ba13
Add more build instructions to the README.
2016-09-22 16:50:59 -07:00
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