|
438 | 438 |
|
439 | 439 | ISearch |
440 | 440 | (-search [db pattern] |
441 | | - (let [[e a v tx] pattern |
442 | | - eavt (.-eavt db) |
443 | | - aevt (.-aevt db) |
444 | | - avet (.-avet db)] |
445 | | - (case-tree [e a (some? v) tx] |
446 | | - [(btset/slice eavt (Datom. e a v tx nil)) ;; e a v tx |
447 | | - (btset/slice eavt (Datom. e a v nil nil)) ;; e a v _ |
448 | | - (->> (btset/slice eavt (Datom. e a nil nil nil)) ;; e a _ tx |
449 | | - (filter (fn [^Datom d] (= tx (.-tx d))))) |
450 | | - (btset/slice eavt (Datom. e a nil nil nil)) ;; e a _ _ |
451 | | - (->> (btset/slice eavt (Datom. e nil nil nil nil)) ;; e _ v tx |
452 | | - (filter (fn [^Datom d] (and (= v (.-v d)) |
453 | | - (= tx (.-tx d)))))) |
454 | | - (->> (btset/slice eavt (Datom. e nil nil nil nil)) ;; e _ v _ |
455 | | - (filter (fn [^Datom d] (= v (.-v d))))) |
456 | | - (->> (btset/slice eavt (Datom. e nil nil nil nil)) ;; e _ _ tx |
457 | | - (filter (fn [^Datom d] (= tx (.-tx d))))) |
458 | | - (btset/slice eavt (Datom. e nil nil nil nil)) ;; e _ _ _ |
459 | | - (if (indexing? db a) ;; _ a v tx |
460 | | - (->> (btset/slice avet (Datom. nil a v nil nil)) |
461 | | - (filter (fn [^Datom d] (= tx (.-tx d))))) |
462 | | - (->> (btset/slice aevt (Datom. nil a nil nil nil)) |
463 | | - (filter (fn [^Datom d] (and (= v (.-v d)) |
464 | | - (= tx (.-tx d))))))) |
465 | | - (if (indexing? db a) ;; _ a v _ |
466 | | - (btset/slice avet (Datom. nil a v nil nil)) |
467 | | - (->> (btset/slice aevt (Datom. nil a nil nil nil)) |
468 | | - (filter (fn [^Datom d] (= v (.-v d)))))) |
469 | | - (->> (btset/slice aevt (Datom. nil a nil nil nil)) ;; _ a _ tx |
470 | | - (filter (fn [^Datom d] (= tx (.-tx d))))) |
471 | | - (btset/slice aevt (Datom. nil a nil nil nil)) ;; _ a _ _ |
472 | | - (filter (fn [^Datom d] (and (= v (.-v d)) |
473 | | - (= tx (.-tx d)))) eavt) ;; _ _ v tx |
474 | | - (filter (fn [^Datom d] (= v (.-v d))) eavt) ;; _ _ v _ |
475 | | - (filter (fn [^Datom d] (= tx (.-tx d))) eavt) ;; _ _ _ tx |
476 | | - eavt]))) ;; _ _ _ _ |
| 441 | + (let [[e a v tx] pattern |
| 442 | + eavt (.-eavt db) |
| 443 | + aevt (.-aevt db) |
| 444 | + avet (.-avet db)] |
| 445 | + (case-tree [e a (some? v) tx] |
| 446 | + [(btset/slice eavt (Datom. e a v tx nil)) ;; e a v tx |
| 447 | + (btset/slice eavt (Datom. e a v nil nil)) ;; e a v _ |
| 448 | + (->> (btset/slice eavt (Datom. e a nil nil nil)) ;; e a _ tx |
| 449 | + (filter (fn [^Datom d] (= tx (.-tx d))))) |
| 450 | + (btset/slice eavt (Datom. e a nil nil nil)) ;; e a _ _ |
| 451 | + (->> (btset/slice eavt (Datom. e nil nil nil nil)) ;; e _ v tx |
| 452 | + (filter (fn [^Datom d] (and (= v (.-v d)) |
| 453 | + (= tx (.-tx d)))))) |
| 454 | + (->> (btset/slice eavt (Datom. e nil nil nil nil)) ;; e _ v _ |
| 455 | + (filter (fn [^Datom d] (= v (.-v d))))) |
| 456 | + (->> (btset/slice eavt (Datom. e nil nil nil nil)) ;; e _ _ tx |
| 457 | + (filter (fn [^Datom d] (= tx (.-tx d))))) |
| 458 | + (btset/slice eavt (Datom. e nil nil nil nil)) ;; e _ _ _ |
| 459 | + (if (indexing? db a) ;; _ a v tx |
| 460 | + (->> (btset/slice avet (Datom. nil a v nil nil)) |
| 461 | + (filter (fn [^Datom d] (= tx (.-tx d))))) |
| 462 | + (->> (btset/slice aevt (Datom. nil a nil nil nil)) |
| 463 | + (filter (fn [^Datom d] (and (= v (.-v d)) |
| 464 | + (= tx (.-tx d))))))) |
| 465 | + (if (indexing? db a) ;; _ a v _ |
| 466 | + (btset/slice avet (Datom. nil a v nil nil)) |
| 467 | + (->> (btset/slice aevt (Datom. nil a nil nil nil)) |
| 468 | + (filter (fn [^Datom d] (= v (.-v d)))))) |
| 469 | + (->> (btset/slice aevt (Datom. nil a nil nil nil)) ;; _ a _ tx |
| 470 | + (filter (fn [^Datom d] (= tx (.-tx d))))) |
| 471 | + (btset/slice aevt (Datom. nil a nil nil nil)) ;; _ a _ _ |
| 472 | + (filter (fn [^Datom d] (and (= v (.-v d)) |
| 473 | + (= tx (.-tx d)))) eavt) ;; _ _ v tx |
| 474 | + (filter (fn [^Datom d] (= v (.-v d))) eavt) ;; _ _ v _ |
| 475 | + (filter (fn [^Datom d] (= tx (.-tx d))) eavt) ;; _ _ _ tx |
| 476 | + eavt]))) ;; _ _ _ _ |
477 | 477 |
|
478 | 478 | IIndexAccess |
479 | 479 | (-datoms [db index cs] |
|
0 commit comments