a | b/inst/queries/sparseDataMatchFieldSlow.xq | ||
---|---|---|---|
1 | ; sparseDataMatchFieldSlow |
||
2 | (fn [field dataset names] |
||
3 | (let [getfield (fn [field] |
||
4 | (:id (car (query {:select [:field.id] |
||
5 | :from [:dataset] |
||
6 | :join [:field [:= :dataset.id :field.dataset_id]] |
||
7 | :where [:and [:= :field.name field] [:= :dataset.name dataset]]})))) |
||
8 | genes (getfield field)] |
||
9 | (map :gene (query {:select [:%distinct.gene] |
||
10 | :from [:field_gene] |
||
11 | :where [:and |
||
12 | [:= :field_gene.field_id genes] |
||
13 | [:in :%lower.gene names]]})))) |
||
14 |