Skip to content

Commit

Permalink
fix: keys composite clause
Browse files Browse the repository at this point in the history
  • Loading branch information
Larkooo committed Dec 12, 2024
1 parent bcd581e commit fcea536
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion crates/torii/grpc/src/server/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1124,7 +1124,7 @@ fn build_keys_pattern(clause: &proto::types::KeysClause) -> Result<String, Error
let mut keys_pattern = format!("^{}", keys.join("/"));

if clause.pattern_matching == proto::types::PatternMatching::VariableLen as i32 {
keys_pattern += &format!("({})*", KEY_PATTERN);
keys_pattern += &format!("/({})*", KEY_PATTERN);

Check warning on line 1127 in crates/torii/grpc/src/server/mod.rs

View check run for this annotation

Codecov / codecov/patch

crates/torii/grpc/src/server/mod.rs#L1127

Added line #L1127 was not covered by tests
}
keys_pattern += "/$";

Expand Down Expand Up @@ -1162,6 +1162,19 @@ fn build_composite_clause(
let keys_pattern = build_keys_pattern(keys)?;
bind_values.push(keys_pattern);
where_clauses.push(format!("{table}.keys REGEXP ?"));

// Add model checks for specified models
for model in &keys.models {
let (namespace, model_name) = model
.split_once('-')
.ok_or(QueryError::InvalidNamespacedModel(model.clone()))?;
let model_id = compute_selector_from_names(namespace, model_name);

having_clauses.push(format!(
"INSTR(group_concat({model_relation_table}.model_id), '{:#x}') > 0",
model_id
));

Check warning on line 1176 in crates/torii/grpc/src/server/mod.rs

View check run for this annotation

Codecov / codecov/patch

crates/torii/grpc/src/server/mod.rs#L1167-L1176

Added lines #L1167 - L1176 were not covered by tests
}
}
ClauseType::Member(member) => {
let comparison_operator = ComparisonOperator::from_repr(member.operator as usize)
Expand Down

0 comments on commit fcea536

Please sign in to comment.