Skip to content

Commit

Permalink
Do not use params for RecordIDs
Browse files Browse the repository at this point in the history
  • Loading branch information
creisle committed Jul 19, 2019
1 parent 46897aa commit 45471da
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 28 deletions.
4 changes: 2 additions & 2 deletions app/repo/query/search.js
Original file line number Diff line number Diff line change
Expand Up @@ -157,8 +157,8 @@ const searchByLinkedRecords = (opt) => {
}
} else if (propModel.iterable) {
// Positive intersection of lists
const paramKey = aliasParameter(propModel.validate(values));
clauses.push(`${fieldName} CONTAINSANY :${paramKey}`);
const paramKeys = values.map(value => aliasParameter(propModel.validate(value)));
clauses.push(`${fieldName} CONTAINSANY [${paramKeys.map(p => `:${p}`).join(', ')}]`);
} else {
// in any of the items from the list
const paramKeys = values.map(v => aliasParameter(propModel.validate(v)));
Expand Down
43 changes: 17 additions & 26 deletions app/repo/query/statement.js
Original file line number Diff line number Diff line change
Expand Up @@ -44,35 +44,26 @@ const keywordSearch = (keywordsIn, opt = {}) => {
};

let query = `
SELECT ${DEFAULT_PROJECTION} FROM (SELECT expand(uniqueRecs) FROM (
SELECT distinct(@rid) as uniqueRecs FROM (
SELECT expand($v)
SELECT ${DEFAULT_PROJECTION} FROM (
SELECT expand($statements)
LET $ont = (SELECT * from Ontology WHERE ${
subContainsClause(['sourceId', 'name'])
}),
$variants = (SELECT * FROM Variant WHERE ${
subContainsClause([
'type.name',
'type.sourceId',
'reference1.name',
'reference1.sourceId',
'reference2.name',
'reference2.sourceId'
])
}),
$implicable = (SELECT expand(inE('ImpliedBy').outV()) from (select expand(UNIONALL($ont, $variants)))),
$statements = (SELECT * FROM Statement WHERE ${
subContainsClause([
'appliesTo.name',
'appliesTo.sourceId',
'relevance.name',
'relevance.sourceId'
])
}),
$v = (SELECT expand(UNIONALL($statements, $implicable)))
) WHERE deletedAt IS NULL
))`;
query = postConditionalQueryOptions(query, opt);
$variants = (SELECT * FROM Variant WHERE type IN $ont OR reference1 in $ont OR reference2 IN $ont),
$implicable = (SELECT expand(UNIONALL($ont, $variants))),
$statements = (SELECT * FROM Statement
WHERE
impliedBy CONTAINSANY (SELECT expand($implicable))
OR supportedBy CONTAINSANY (SELECT expand($ont))
OR appliesTo IN (SELECT expand($implicable))
OR relevance IN (SELECT expand($ont))
)
)${
activeOnly
? 'WHERE deletedAt IS NULL'
: ''
}`;
query = postConditionalQueryOptions(query, rest);
return {query, params};
};

Expand Down

0 comments on commit 45471da

Please sign in to comment.