Some queries behave differently depending on whether the transactor is remote or not.
The "alternative query" (QUERY2
on code) not show this bug. But QUERY1
do.
$ ./bin/transactor config/samples/free-transactor-template.properties
# Launching with Java options -server -Xms1g -Xmx1g -XX:+UseG1GC -XX:MaxGCPauseMillis=50
# Starting datomic:free://localhost:4334/<DB-NAME>, storing data in: data ...
# System started datomic:free://localhost:4334/<DB-NAME>, storing data in: data
- with a memory db
(no bugs)
$ clj -Sdeps '{:deps {datomic-issue {:git/url "https://gist.github.com/souenzzo/c7b5a5434d4c04efcc58802c81b46023" :sha "55e2ed827416487dc2ba302de2756c270a1d8753"}}}' -m datomic-issue 'datomic:mem://bug'
# start test using ["datomic:mem://bug" [:find ?e :in $ ?ignore :where [?e :db/ident ?ident] (not [(contains? ?ignore ?ident)])]]
# end test using ["datomic:mem://bug" [:find ?e :in $ ?ignore :where [?e :db/ident ?ident] (not [(contains? ?ignore ?ident)])]]
- with free db
(bugs!!!!)
$ clj -Sdeps '{:deps {datomic-issue {:git/url "https://gist.github.com/souenzzo/c7b5a5434d4c04efcc58802c81b46023" :sha "55e2ed827416487dc2ba302de2756c270a1d8753"}}}' -m datomic-issue 'datomic:free://localhost:4334/bug'
# start test using ["datomic:free://localhost:4334/bug" [:find ?e :in $ ?ignore :where [?e :db/ident ?ident] (not [(contains? ?ignore ?ident)])]]
#
# FAIL in (check-for-bugs) (datomic_issue.clj:51)
# # as at conn, db = db-after, the transaction should fail
# expected: (thrown? ExecutionException (clojure.core/deref (d/transact conn tx-data)))
# actual: nil
# end test using ["datomic:free://localhost:4334/bug" [:find ?e :in $ ?ignore :where [?e :db/ident ?ident] (not [(contains? ?ignore ?ident)])]]
- with a memory db + alternative query
(no bugs)
$ clj -Sdeps '{:deps {datomic-issue {:git/url "https://gist.github.com/souenzzo/c7b5a5434d4c04efcc58802c81b46023" :sha "55e2ed827416487dc2ba302de2756c270a1d8753"}}}' -m datomic-issue 'datomic:mem://bug' true
# start test using ["datomic:mem://bug" [:find ?e :in $ ?ignore :where [?e :db/ident ?ident] [(contains? ?ignore ?ident) ?q] [(ground false) ?q]]]
# end test using ["datomic:mem://bug" [:find ?e :in $ ?ignore :where [?e :db/ident ?ident] [(contains? ?ignore ?ident) ?q] [(ground false) ?q]]]
- with a free db + alternative query
(no bugs)
$ clj -Sdeps '{:deps {datomic-issue {:git/url "https://gist.github.com/souenzzo/c7b5a5434d4c04efcc58802c81b46023" :sha "55e2ed827416487dc2ba302de2756c270a1d8753"}}}' -m datomic-issue 'datomic:free://localhost:4334/bug' true
# start test using ["datomic:free://localhost:4334/bug" [:find ?e :in $ ?ignore :where [?e :db/ident ?ident] [(contains? ?ignore ?ident) ?q] [(ground false) ?q]]]
# end test using ["datomic:free://localhost:4334/bug" [:find ?e :in $ ?ignore :where [?e :db/ident ?ident] [(contains? ?ignore ?ident) ?q] [(ground false) ?q]]]