datahike 0.7.1630

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (282) hide show
  1. package/README.md +226 -0
  2. package/cljs.analyzer.api.js +427 -0
  3. package/cljs.analyzer.api.js.map +1 -0
  4. package/cljs.analyzer.impl.js +86 -0
  5. package/cljs.analyzer.impl.js.map +1 -0
  6. package/cljs.analyzer.impl.namespaces.js +219 -0
  7. package/cljs.analyzer.impl.namespaces.js.map +1 -0
  8. package/cljs.analyzer.js +7186 -0
  9. package/cljs.analyzer.js.map +1 -0
  10. package/cljs.analyzer.passes.and_or.js +141 -0
  11. package/cljs.analyzer.passes.and_or.js.map +1 -0
  12. package/cljs.analyzer.passes.js +104 -0
  13. package/cljs.analyzer.passes.js.map +1 -0
  14. package/cljs.cache.js +1145 -0
  15. package/cljs.cache.js.map +1 -0
  16. package/cljs.cache.wrapped.js +352 -0
  17. package/cljs.cache.wrapped.js.map +1 -0
  18. package/cljs.core.async.impl.buffers.js +489 -0
  19. package/cljs.core.async.impl.buffers.js.map +1 -0
  20. package/cljs.core.async.impl.channels.js +711 -0
  21. package/cljs.core.async.impl.channels.js.map +1 -0
  22. package/cljs.core.async.impl.dispatch.js +81 -0
  23. package/cljs.core.async.impl.dispatch.js.map +1 -0
  24. package/cljs.core.async.impl.ioc_helpers.js +192 -0
  25. package/cljs.core.async.impl.ioc_helpers.js.map +1 -0
  26. package/cljs.core.async.impl.protocols.js +368 -0
  27. package/cljs.core.async.impl.protocols.js.map +1 -0
  28. package/cljs.core.async.impl.timers.js +510 -0
  29. package/cljs.core.async.impl.timers.js.map +1 -0
  30. package/cljs.core.async.js +8813 -0
  31. package/cljs.core.async.js.map +1 -0
  32. package/cljs.core.js +38764 -0
  33. package/cljs.core.js.map +1 -0
  34. package/cljs.env.js +60 -0
  35. package/cljs.env.js.map +1 -0
  36. package/cljs.nodejs.js +80 -0
  37. package/cljs.nodejs.js.map +1 -0
  38. package/cljs.reader.js +462 -0
  39. package/cljs.reader.js.map +1 -0
  40. package/cljs.spec.alpha.js +5312 -0
  41. package/cljs.spec.alpha.js.map +1 -0
  42. package/cljs.spec.gen.alpha.js +2020 -0
  43. package/cljs.spec.gen.alpha.js.map +1 -0
  44. package/cljs.tagged_literals.js +103 -0
  45. package/cljs.tagged_literals.js.map +1 -0
  46. package/cljs.tools.reader.edn.js +960 -0
  47. package/cljs.tools.reader.edn.js.map +1 -0
  48. package/cljs.tools.reader.impl.commons.js +217 -0
  49. package/cljs.tools.reader.impl.commons.js.map +1 -0
  50. package/cljs.tools.reader.impl.errors.js +441 -0
  51. package/cljs.tools.reader.impl.errors.js.map +1 -0
  52. package/cljs.tools.reader.impl.inspect.js +182 -0
  53. package/cljs.tools.reader.impl.inspect.js.map +1 -0
  54. package/cljs.tools.reader.impl.utils.js +429 -0
  55. package/cljs.tools.reader.impl.utils.js.map +1 -0
  56. package/cljs.tools.reader.js +1830 -0
  57. package/cljs.tools.reader.js.map +1 -0
  58. package/cljs.tools.reader.reader_types.js +838 -0
  59. package/cljs.tools.reader.reader_types.js.map +1 -0
  60. package/cljs_env.js +18192 -0
  61. package/cljs_node_io.core.js +1278 -0
  62. package/cljs_node_io.core.js.map +1 -0
  63. package/cljs_node_io.file.js +918 -0
  64. package/cljs_node_io.file.js.map +1 -0
  65. package/cljs_node_io.fs.js +3911 -0
  66. package/cljs_node_io.fs.js.map +1 -0
  67. package/clojure.data.js +319 -0
  68. package/clojure.data.js.map +1 -0
  69. package/clojure.edn.js +119 -0
  70. package/clojure.edn.js.map +1 -0
  71. package/clojure.set.js +406 -0
  72. package/clojure.set.js.map +1 -0
  73. package/clojure.string.js +502 -0
  74. package/clojure.string.js.map +1 -0
  75. package/clojure.walk.js +156 -0
  76. package/clojure.walk.js.map +1 -0
  77. package/datahike.api.impl.js +621 -0
  78. package/datahike.api.impl.js.map +1 -0
  79. package/datahike.api.specification.js +85 -0
  80. package/datahike.api.specification.js.map +1 -0
  81. package/datahike.array.js +275 -0
  82. package/datahike.array.js.map +1 -0
  83. package/datahike.config.js +437 -0
  84. package/datahike.config.js.map +1 -0
  85. package/datahike.connections.js +55 -0
  86. package/datahike.connections.js.map +1 -0
  87. package/datahike.connector.js +1248 -0
  88. package/datahike.connector.js.map +1 -0
  89. package/datahike.constants.js +66 -0
  90. package/datahike.constants.js.map +1 -0
  91. package/datahike.core.js +628 -0
  92. package/datahike.core.js.map +1 -0
  93. package/datahike.datom.js +963 -0
  94. package/datahike.datom.js.map +1 -0
  95. package/datahike.db.interface.js +819 -0
  96. package/datahike.db.interface.js.map +1 -0
  97. package/datahike.db.js +3095 -0
  98. package/datahike.db.js.map +1 -0
  99. package/datahike.db.search.js +1004 -0
  100. package/datahike.db.search.js.map +1 -0
  101. package/datahike.db.transaction.js +1904 -0
  102. package/datahike.db.transaction.js.map +1 -0
  103. package/datahike.db.utils.js +642 -0
  104. package/datahike.db.utils.js.map +1 -0
  105. package/datahike.gc.js +1618 -0
  106. package/datahike.gc.js.map +1 -0
  107. package/datahike.impl.entity.js +604 -0
  108. package/datahike.impl.entity.js.map +1 -0
  109. package/datahike.index.interface.js +484 -0
  110. package/datahike.index.interface.js.map +1 -0
  111. package/datahike.index.js +50 -0
  112. package/datahike.index.js.map +1 -0
  113. package/datahike.index.persistent_set.js +1250 -0
  114. package/datahike.index.persistent_set.js.map +1 -0
  115. package/datahike.js.api.js +2211 -0
  116. package/datahike.js.api.js.map +1 -0
  117. package/datahike.lru.js +404 -0
  118. package/datahike.lru.js.map +1 -0
  119. package/datahike.pull_api.js +533 -0
  120. package/datahike.pull_api.js.map +1 -0
  121. package/datahike.query.js +11891 -0
  122. package/datahike.query.js.map +1 -0
  123. package/datahike.query_stats.js +152 -0
  124. package/datahike.query_stats.js.map +1 -0
  125. package/datahike.readers.js +166 -0
  126. package/datahike.readers.js.map +1 -0
  127. package/datahike.schema.js +251 -0
  128. package/datahike.schema.js.map +1 -0
  129. package/datahike.schema_cache.js +66 -0
  130. package/datahike.schema_cache.js.map +1 -0
  131. package/datahike.spec.js +70 -0
  132. package/datahike.spec.js.map +1 -0
  133. package/datahike.store.js +514 -0
  134. package/datahike.store.js.map +1 -0
  135. package/datahike.tools.js +436 -0
  136. package/datahike.tools.js.map +1 -0
  137. package/datahike.writer.js +3463 -0
  138. package/datahike.writer.js.map +1 -0
  139. package/datahike.writing.js +3168 -0
  140. package/datahike.writing.js.map +1 -0
  141. package/datalog.parser.impl.js +1421 -0
  142. package/datalog.parser.impl.js.map +1 -0
  143. package/datalog.parser.impl.proto.js +213 -0
  144. package/datalog.parser.impl.proto.js.map +1 -0
  145. package/datalog.parser.impl.util.js +117 -0
  146. package/datalog.parser.impl.util.js.map +1 -0
  147. package/datalog.parser.js +47 -0
  148. package/datalog.parser.js.map +1 -0
  149. package/datalog.parser.pull.js +2603 -0
  150. package/datalog.parser.pull.js.map +1 -0
  151. package/datalog.parser.type.js +7502 -0
  152. package/datalog.parser.type.js.map +1 -0
  153. package/datalog.parser.util.js +60 -0
  154. package/datalog.parser.util.js.map +1 -0
  155. package/environ.core.js +263 -0
  156. package/environ.core.js.map +1 -0
  157. package/fress.api.js +607 -0
  158. package/fress.api.js.map +1 -0
  159. package/fress.impl.adler32.js +435 -0
  160. package/fress.impl.adler32.js.map +1 -0
  161. package/fress.impl.bigint.js +185 -0
  162. package/fress.impl.bigint.js.map +1 -0
  163. package/fress.impl.buffer.js +1087 -0
  164. package/fress.impl.buffer.js.map +1 -0
  165. package/fress.impl.codes.js +105 -0
  166. package/fress.impl.codes.js.map +1 -0
  167. package/fress.impl.hopmap.js +603 -0
  168. package/fress.impl.hopmap.js.map +1 -0
  169. package/fress.impl.ranges.js +49 -0
  170. package/fress.impl.ranges.js.map +1 -0
  171. package/fress.impl.raw_input.js +837 -0
  172. package/fress.impl.raw_input.js.map +1 -0
  173. package/fress.impl.raw_output.js +653 -0
  174. package/fress.impl.raw_output.js.map +1 -0
  175. package/fress.impl.table.js +133 -0
  176. package/fress.impl.table.js.map +1 -0
  177. package/fress.reader.js +2312 -0
  178. package/fress.reader.js.map +1 -0
  179. package/fress.util.js +458 -0
  180. package/fress.util.js.map +1 -0
  181. package/fress.writer.js +2141 -0
  182. package/fress.writer.js.map +1 -0
  183. package/geheimnis.aes.js +132 -0
  184. package/geheimnis.aes.js.map +1 -0
  185. package/hasch.base64.js +42 -0
  186. package/hasch.base64.js.map +1 -0
  187. package/hasch.benc.js +201 -0
  188. package/hasch.benc.js.map +1 -0
  189. package/hasch.core.js +188 -0
  190. package/hasch.core.js.map +1 -0
  191. package/hasch.platform.js +221 -0
  192. package/hasch.platform.js.map +1 -0
  193. package/incognito.base.js +276 -0
  194. package/incognito.base.js.map +1 -0
  195. package/incognito.edn.js +54 -0
  196. package/incognito.edn.js.map +1 -0
  197. package/incognito.fressian.js +330 -0
  198. package/incognito.fressian.js.map +1 -0
  199. package/index.d.ts +660 -0
  200. package/is.simm.partial_cps.async.js +142 -0
  201. package/is.simm.partial_cps.async.js.map +1 -0
  202. package/is.simm.partial_cps.runtime.js +65 -0
  203. package/is.simm.partial_cps.runtime.js.map +1 -0
  204. package/is.simm.partial_cps.sequence.js +1255 -0
  205. package/is.simm.partial_cps.sequence.js.map +1 -0
  206. package/konserve.cache.js +2519 -0
  207. package/konserve.cache.js.map +1 -0
  208. package/konserve.compressor.js +502 -0
  209. package/konserve.compressor.js.map +1 -0
  210. package/konserve.core.js +8052 -0
  211. package/konserve.core.js.map +1 -0
  212. package/konserve.encryptor.js +553 -0
  213. package/konserve.encryptor.js.map +1 -0
  214. package/konserve.gc.js +541 -0
  215. package/konserve.gc.js.map +1 -0
  216. package/konserve.impl.defaults.js +8290 -0
  217. package/konserve.impl.defaults.js.map +1 -0
  218. package/konserve.impl.storage_layout.js +849 -0
  219. package/konserve.impl.storage_layout.js.map +1 -0
  220. package/konserve.memory.js +2102 -0
  221. package/konserve.memory.js.map +1 -0
  222. package/konserve.node_filestore.js +2951 -0
  223. package/konserve.node_filestore.js.map +1 -0
  224. package/konserve.protocols.js +590 -0
  225. package/konserve.protocols.js.map +1 -0
  226. package/konserve.serializers.js +562 -0
  227. package/konserve.serializers.js.map +1 -0
  228. package/konserve.store.js +2245 -0
  229. package/konserve.store.js.map +1 -0
  230. package/konserve.tiered.js +9574 -0
  231. package/konserve.tiered.js.map +1 -0
  232. package/konserve.utils.js +180 -0
  233. package/konserve.utils.js.map +1 -0
  234. package/me.tonsky.persistent_sorted_set.arrays.js +66 -0
  235. package/me.tonsky.persistent_sorted_set.arrays.js.map +1 -0
  236. package/me.tonsky.persistent_sorted_set.branch.js +2779 -0
  237. package/me.tonsky.persistent_sorted_set.branch.js.map +1 -0
  238. package/me.tonsky.persistent_sorted_set.btset.js +14196 -0
  239. package/me.tonsky.persistent_sorted_set.btset.js.map +1 -0
  240. package/me.tonsky.persistent_sorted_set.impl.node.js +324 -0
  241. package/me.tonsky.persistent_sorted_set.impl.node.js.map +1 -0
  242. package/me.tonsky.persistent_sorted_set.impl.storage.js +123 -0
  243. package/me.tonsky.persistent_sorted_set.impl.storage.js.map +1 -0
  244. package/me.tonsky.persistent_sorted_set.js +890 -0
  245. package/me.tonsky.persistent_sorted_set.js.map +1 -0
  246. package/me.tonsky.persistent_sorted_set.leaf.js +561 -0
  247. package/me.tonsky.persistent_sorted_set.leaf.js.map +1 -0
  248. package/me.tonsky.persistent_sorted_set.util.js +402 -0
  249. package/me.tonsky.persistent_sorted_set.util.js.map +1 -0
  250. package/medley.core.js +1857 -0
  251. package/medley.core.js.map +1 -0
  252. package/package.json +38 -0
  253. package/spec_tools.core.js +1925 -0
  254. package/spec_tools.core.js.map +1 -0
  255. package/spec_tools.data_spec.js +1291 -0
  256. package/spec_tools.data_spec.js.map +1 -0
  257. package/spec_tools.form.js +185 -0
  258. package/spec_tools.form.js.map +1 -0
  259. package/spec_tools.impl.js +362 -0
  260. package/spec_tools.impl.js.map +1 -0
  261. package/spec_tools.parse.js +427 -0
  262. package/spec_tools.parse.js.map +1 -0
  263. package/spec_tools.transform.js +288 -0
  264. package/spec_tools.transform.js.map +1 -0
  265. package/superv.async.js +8617 -0
  266. package/superv.async.js.map +1 -0
  267. package/tailrecursion.priority_map.js +994 -0
  268. package/tailrecursion.priority_map.js.map +1 -0
  269. package/taoensso.encore.js +12385 -0
  270. package/taoensso.encore.js.map +1 -0
  271. package/taoensso.timbre.appenders.core.js +239 -0
  272. package/taoensso.timbre.appenders.core.js.map +1 -0
  273. package/taoensso.timbre.js +1264 -0
  274. package/taoensso.timbre.js.map +1 -0
  275. package/taoensso.truss.impl.js +442 -0
  276. package/taoensso.truss.impl.js.map +1 -0
  277. package/taoensso.truss.js +743 -0
  278. package/taoensso.truss.js.map +1 -0
  279. package/test-config-keys.js +33 -0
  280. package/test-final.js +36 -0
  281. package/test-key-duplication.js +67 -0
  282. package/test.js +557 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["datahike/db/search.cljc"],"mappings":"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","names":["datahike.db.search/db-caches","cljs.cache.wrapped.lru_cache_factory","environ.core/env","datahike.db.search/memoize-for","db","key","f","or__5002__auto__","db-cache","cljs.cache.wrapped.lookup_or_miss","_","datahike.lru.lru_datom_cache_factory","datahike.db.search/validate-pattern","pattern","can-have-vars","vec__107544","cljs.core.nth","bound-var?","cljs.core/symbol?","e","a","v","tx","added?","cljs.core/vector?","cljs.core._EQ_","cljs.core/count","G__107548","cljs.core.ex_info","fexpr__107547","taoensso.timbre._log_BANG_","taoensso.timbre/*config*","cljs.core/Delay","cljs.core/Keyword","G__107550","fexpr__107549","G__107552","fexpr__107551","G__107554","fexpr__107553","cljs.core/boolean?","G__107556","fexpr__107555","datahike.db.search/short-hand->strat-symbol","x","G__107557","js/Error","p__107558","p__107559","vec__107560","vec__107563","datahike.db.search/datom-expr","esym","asym","vsym","tsym","e-strat","a-strat","v-strat","t-strat","e-bound","tx-bound","cljs.core.sequence","cljs.core/seq","cljs.core.concat","cljs.core/List","subst","expr","strategy","bound","G__107567","datahike.db.search/lookup-strategy-sub","index-key","eavt-symbols","eavt-strats","vec__107573","vec__107576","cljs.core.apply","cljs.core/array-map","cljs.core/vec","v-sym","t-sym","strat-set","cljs.core/set","has-substitution","cljs.core/contains?","index-expr","cljs.core.symbol","lower-datom","upper-datom","lookup-expr","dexpr","datahike.datom/type-hint-datom","cljs.core.gensym","equalities","cljs.core.remove","cljs.core/nil?","added","datahike.db.search/get-search-strategy-impl","t","i","vec__107584","G__107579","G__107580","G__107581","G__107582","G__107583","eavt","G__107588","G__107589","G__107590","datahike.datom.datom","G__107591","G__107592","datahike.index/-slice","p__107593","vec__107594","G__107597","G__107598","G__107599","G__107600","G__107602","G__107603","G__107604","datahike.constants/tx0","G__107605","datahike.constants/txmax","G__107606","p__107607","vec__107608","G__107611","G__107612","G__107613","G__107614","G__107616","G__107617","G__107618","G__107619","G__107620","p__107621","vec__107622","cljs.core.filter","G__107615","G__107625","G__107626","G__107627","G__107628","G__107630","G__107631","G__107632","G__107633","G__107634","p__107635","vec__107636","G__107639","G__107640","G__107641","G__107642","G__107644","G__107645","G__107646","G__107647","G__107648","p__107649","vec__107650","G__107643","datahike.array/a=","G__107653","G__107654","G__107655","G__107656","G__107658","G__107659","G__107660","G__107661","G__107662","p__107663","vec__107664","G__107657","G__107667","G__107668","G__107669","G__107670","G__107672","G__107673","G__107674","G__107675","G__107676","p__107677","vec__107678","G__107671","G__107681","G__107682","G__107683","G__107684","G__107686","G__107687","G__107688","G__107689","G__107690","p__107691","vec__107692","G__107695","G__107696","G__107697","G__107698","avet","G__107700","G__107701","G__107702","datahike.constants/e0","G__107703","datahike.constants/emax","G__107704","p__107705","vec__107706","G__107699","G__107709","G__107710","G__107711","G__107712","aevt","G__107714","G__107716","G__107717","G__107718","G__107719","p__107721","vec__107722","G__107713","G__107725","G__107726","G__107727","G__107728","G__107730","G__107731","G__107732","G__107733","G__107734","p__107735","vec__107737","G__107740","G__107741","G__107742","G__107743","G__107746","G__107747","G__107748","G__107749","G__107750","p__107751","vec__107752","G__107745","G__107755","G__107756","G__107757","G__107758","G__107761","G__107763","G__107764","G__107765","G__107766","p__107767","vec__107768","G__107760","G__107772","G__107773","G__107774","G__107775","G__107777","G__107778","G__107779","G__107780","G__107781","p__107783","vec__107784","G__107787","G__107788","G__107789","G__107790","G__107792","datahike.index/-all","p__107793","vec__107794","G__107791","G__107798","p__107799","vec__107800","G__107797","G__107804","p__107805","vec__107806","G__107803","G__107812","p__107813","vec__107814","var_args","G__107820","datahike.db.search/empty-lookup-fn","p__107822","vec__107823","p__107827","vec__107828","_db-index","_e","_a","_v","_tx","_batch-fn","datahike.db.search/get-search-strategy","indexed?","temporal-db?","vec__107831","cljs.core/not","cljs.core/boolean","datahike.db.search/resolve-db-index","index-map","cljs.core.assoc","cljs.core.get","datahike.db.search/indexing-for-pattern?","vec__107837","datahike.db.utils/indexing?","datahike.db.search/search-strategy-with-index","temporal?","G__107842","datahike.db.search/search-current-indices","temp__5802__auto__","map__107845","cljs.core/--destructure-map","db-index","lookup-fn","batch-fn","map__107846","strategy-vec","backend-fn","G__107853","G__107854","G__107855","cljs.core/identity","p__107859","vec__107860","datahike.db.search/added?","G__107864","datahike.db.search/filter-by-added","G__107865","datahike.datom/datom-added","result","G__107868","G__107872","datahike.db.search/search-temporal-indices","map__107874","datahike.db.search.filter_by_added","map__107878","G__107880","G__107881","G__107882","datahike.db.search/index-type","idx","b","G__107893","datahike.db.search/temporal-search","datahike.db.utils/distinct-datoms","datahike.db.search.search_current_indices","datahike.db.search.search_temporal_indices","datahike.db.search/temporal-seek-datoms","index-type","cs","index","temporal-index","cljs.core.keyword","cljs.core/name","from","datahike.db.utils/components->pattern","to","datahike.db.search/temporal-rseek-datoms","cljs.core/rseq","datahike.db.search/temporal-index-range","current-db","attr","start","end","G__107922","cljs.core.pr_str","fexpr__107921","datahike.db.utils/validate-attr","datahike.db.utils/resolve-datom","G__107925","G__107926","G__107927","G__107928","G__107929","G__107930","G__107931","G__107932"],"sourcesContent":["(ns datahike.db.search\n (:require\n #?(:clj [clojure.core.cache.wrapped :as cw]\n :cljs [cljs.cache.wrapped :as cw])\n [datahike.array :refer [a=]]\n [datahike.constants :refer [e0 tx0 emax txmax]]\n [datahike.datom :refer [datom datom-tx datom-added type-hint-datom]]\n [datahike.db.utils :as dbu]\n [datahike.index :as di]\n [datahike.lru :refer [lru-datom-cache-factory]]\n [datahike.tools :refer [raise match-vector]]\n [environ.core :refer [env]])\n #?(:cljs (:require-macros [datahike.db.search :refer [lookup-strategy]]))\n #?(:clj (:import [datahike.datom Datom])))\n\n(def db-caches (cw/lru-cache-factory {} :threshold (:datahike-max-db-caches env 5)))\n\n(defn memoize-for [db key f]\n (if (or (zero? (or (:cache-size (:config db)) 0))\n (zero? (:hash db))) ;; empty db\n (f)\n (let [db-cache (cw/lookup-or-miss db-caches\n (:hash db)\n (fn [_] (lru-datom-cache-factory {} :threshold (:cache-size (:config db)))))]\n (cw/lookup-or-miss db-cache key (fn [_] (f))))))\n\n(defn validate-pattern\n \"Checks if database pattern is valid\"\n [pattern can-have-vars]\n (let [bound-var? (if can-have-vars symbol? (fn [_] false))\n [e a v tx added?] pattern]\n\n (when-not (or (number? e)\n (nil? e)\n (bound-var? e)\n (and (vector? e) (= 2 (count e))))\n (raise \"Bad format for entity-id in pattern, must be a number, nil or vector of two elements.\"\n {:error :search/pattern :e e :pattern pattern}))\n\n (when-not (or (number? a)\n (keyword? a)\n (bound-var? a)\n (nil? a))\n (raise \"Bad format for attribute in pattern, must be a number, nil or a keyword.\"\n {:error :search/pattern :a a :pattern pattern}))\n\n (when-not (or (not (vector? v))\n (nil? v)\n (bound-var? v)\n (and (vector? v) (= 2 (count v))))\n (raise \"Bad format for value in pattern, must be a scalar, nil or a vector of two elements.\"\n {:error :search/pattern :v v :pattern pattern}))\n\n (when-not (or (nil? tx)\n (bound-var? tx)\n (number? tx))\n (raise \"Bad format for transaction ID in pattern, must be a number or nil.\"\n {:error :search/pattern :tx tx :pattern pattern}))\n\n (when-not (or (nil? added?)\n (boolean? added?)\n (bound-var? added?))\n (raise \"Bad format for added? in pattern, must be a boolean value or nil.\"\n {:error :search/pattern :added? added? :pattern pattern}))))\n\n(defn short-hand->strat-symbol [x]\n (case x\n 1 :substitute\n f :filter\n _ nil\n :substitute :substitute\n :filter :filter\n nil nil))\n\n(defn datom-expr [[esym asym vsym tsym]\n [e-strat a-strat v-strat t-strat]\n e-bound\n tx-bound]\n (let [subst (fn [expr strategy bound]\n (case strategy\n :substitute expr\n bound))]\n `(datom ~(subst esym e-strat e-bound)\n ~(subst asym a-strat nil)\n ~(subst vsym v-strat nil)\n ~(subst tsym t-strat tx-bound))))\n\n(defn lookup-strategy-sub [index-key eavt-symbols eavt-strats]\n (let [[_ _ v-strat t-strat] eavt-strats\n [_ _ v-sym t-sym] eavt-symbols\n strat-set (set eavt-strats)\n has-substitution (contains? strat-set :substitute)\n index-expr (symbol index-key)\n\n lower-datom (datom-expr eavt-symbols eavt-strats 'e0 'tx0)\n upper-datom (datom-expr eavt-symbols eavt-strats 'emax 'txmax)\n\n ;; Either get all datoms or a subset where some values in the\n ;; datom are fixed.\n lookup-expr (if has-substitution\n `(di/-slice ~index-expr\n ~lower-datom\n ~upper-datom\n ~index-key)\n `(di/-all ~index-expr))\n\n ;; Symbol type-hinted as Datom.\n dexpr (type-hint-datom (gensym))\n\n ;; Equalities used for filtering (in conjunction)\n equalities (remove nil? [(when (= :filter v-strat)\n `(a= ~v-sym (.-v ~dexpr)))\n (when (= :filter t-strat)\n `(= ~t-sym (datom-tx ~dexpr)))])\n added (gensym)]\n `{:index-key ~index-key\n :strategy-vec ~(vec eavt-strats)\n :lookup-fn (fn [~index-expr ~eavt-symbols]\n ~(if (seq equalities)\n `(filter (fn [~dexpr] (and ~@equalities)) ~lookup-expr)\n lookup-expr))\n :backend-fn (fn [~index-expr]\n (fn [~@eavt-symbols ~added]\n ~lookup-expr))}))\n\n(defmacro lookup-strategy [index-key & eavt-strats]\n {:pre [(keyword? index-key)]}\n (let [pattern-symbols '[e a v tx]]\n (lookup-strategy-sub index-key\n pattern-symbols\n (map short-hand->strat-symbol eavt-strats))))\n\n(defn- get-search-strategy-impl [e a v t i]\n (match-vector [e a v t i]\n [e a v t *] (lookup-strategy :eavt 1 1 1 1)\n [e a v _ *] (lookup-strategy :eavt 1 1 1 _)\n [e a _ t *] (lookup-strategy :eavt 1 1 _ f)\n [e a _ _ *] (lookup-strategy :eavt 1 1 _ _)\n [e _ v t *] (lookup-strategy :eavt 1 _ f f)\n [e _ v _ *] (lookup-strategy :eavt 1 _ f _)\n [e _ _ t *] (lookup-strategy :eavt 1 _ _ f)\n [e _ _ _ *] (lookup-strategy :eavt 1 _ _ _)\n [_ a v t i] (lookup-strategy :avet _ 1 1 f)\n [_ a v t _] (lookup-strategy :aevt _ 1 f f)\n [_ a v _ i] (lookup-strategy :avet _ 1 1 _)\n [_ a v _ _] (lookup-strategy :aevt _ 1 f _)\n [_ a _ t *] (lookup-strategy :aevt _ 1 _ f)\n [_ a _ _ *] (lookup-strategy :aevt _ 1 _ _)\n [_ _ v t *] (lookup-strategy :eavt _ _ f f)\n [_ _ v _ *] (lookup-strategy :eavt _ _ f _)\n [_ _ _ t *] (lookup-strategy :eavt _ _ _ f)\n [_ _ _ _ *] (lookup-strategy :eavt _ _ _ _)))\n\n(defn empty-lookup-fn\n ([_db-index [_e _a _v _tx]]\n [])\n ([_db-index [_e _a _v _tx] _batch-fn]\n []))\n\n(defn- get-search-strategy [pattern indexed? temporal-db?]\n (validate-pattern pattern true)\n (let [[e a v tx added?] pattern]\n (when-not (and (not temporal-db?) (false? added?))\n (get-search-strategy-impl\n (boolean e)\n (boolean a)\n (some? v)\n (boolean tx)\n (boolean indexed?)))))\n\n(defn- resolve-db-index [strategy index-map]\n (when strategy\n (assoc strategy\n :db-index\n (get index-map (:index-key strategy)))))\n\n(defn- indexing-for-pattern? [db pattern]\n (let [[_ a _ _] pattern]\n (dbu/indexing? db a)))\n\n(defn search-strategy-with-index [db pattern temporal?]\n (-> pattern\n (get-search-strategy (indexing-for-pattern? db pattern)\n temporal?)\n (resolve-db-index (if temporal?\n {:eavt (:temporal-eavt db)\n :aevt (:temporal-aevt db)\n :avet (:temporal-avet db)}\n db))))\n\n(defn search-current-indices\n ([db pattern]\n (memoize-for\n db [:search pattern]\n #(if-let [{:keys [db-index lookup-fn]}\n (search-strategy-with-index db pattern false)]\n (lookup-fn db-index pattern)\n [])))\n\n ;; For batches\n ([db pattern batch-fn]\n (if-let [{:keys [db-index strategy-vec backend-fn]}\n (search-strategy-with-index db pattern false)]\n (batch-fn strategy-vec (backend-fn db-index) identity)\n [])))\n\n(defn added? [[_ _ _ _ added]]\n added)\n\n(defn filter-by-added\n ([pattern]\n (case (added? pattern)\n true (filter datom-added)\n false (remove datom-added)\n identity))\n ([pattern result]\n (case (added? pattern)\n true (filter datom-added result)\n false (remove datom-added result)\n result)))\n\n(defn search-temporal-indices\n ([db pattern]\n (validate-pattern pattern false)\n (memoize-for db [:temporal-search pattern]\n #(if-let [{:keys [db-index lookup-fn]}\n (search-strategy-with-index\n db pattern true)]\n (let [result (lookup-fn db-index pattern)]\n (filter-by-added pattern result))\n [])))\n ([db pattern batch-fn]\n (validate-pattern pattern true)\n (if-let [{:keys [db-index strategy-vec backend-fn]}\n (search-strategy-with-index\n db pattern true)]\n (batch-fn strategy-vec (backend-fn db-index)\n (filter-by-added pattern))\n [])))\n\n(defn index-type [db pattern]\n (let [idx (indexing-for-pattern? db pattern)\n a (:index-key (get-search-strategy pattern idx false))\n b (:index-key (get-search-strategy pattern idx true))]\n (assert (or (nil? a) (keyword? a)))\n (assert (or (nil? b) (keyword? b)))\n (when (= a b)\n a)))\n\n(defn temporal-search\n ([db pattern]\n (validate-pattern pattern false)\n (dbu/distinct-datoms\n db\n (index-type db pattern)\n (search-current-indices db pattern)\n (search-temporal-indices db pattern)))\n ([db pattern batch-fn]\n (validate-pattern pattern true)\n (dbu/distinct-datoms\n db\n (index-type db pattern)\n (search-current-indices db pattern batch-fn)\n (search-temporal-indices db pattern batch-fn))))\n\n(defn temporal-seek-datoms [db index-type cs]\n (let [index (get db index-type)\n temporal-index (get db (keyword (str \"temporal-\" (name index-type))))\n from (dbu/components->pattern db index-type cs e0 tx0)\n to (datom emax nil nil txmax)]\n (dbu/distinct-datoms db\n index-type\n (di/-slice index from to index-type)\n (di/-slice temporal-index from to index-type))))\n\n(defn temporal-rseek-datoms [db index-type cs]\n (let [index (get db index-type)\n temporal-index (get db (keyword (str \"temporal-\" (name index-type))))\n from (dbu/components->pattern db index-type cs e0 tx0)\n to (datom emax nil nil txmax)]\n (concat\n (-> (dbu/distinct-datoms db\n index-type\n (di/-slice index from to index-type)\n (di/-slice temporal-index from to index-type))\n vec\n rseq))))\n\n(defn temporal-index-range [db current-db attr start end]\n (when-not (dbu/indexing? db attr)\n (raise \"Attribute\" attr \"should be marked as :db/index true\" {}))\n (dbu/validate-attr attr (list '-index-range 'db attr start end) db)\n (let [from (dbu/resolve-datom current-db nil attr start nil e0 tx0)\n to (dbu/resolve-datom current-db nil attr end nil emax txmax)]\n (dbu/distinct-datoms db\n :avet\n (di/-slice (:avet db) from to :avet)\n (di/-slice (:temporal-avet db) from to :avet))))\n\n\n"]}