Skip to content

Commit 6800731

Browse files
authored
Merge pull request #308 from matthias-stemmler/bugfix/meta-query-multiple-alternatives
Fix regression parsing legacy meta queries with multiple alternatives
2 parents 7b77e50 + 159e609 commit 6800731

2 files changed

Lines changed: 19 additions & 1 deletion

File tree

graphannis/src/annis/db/aql/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -499,7 +499,7 @@ pub fn parse(query_as_aql: &str, quirks_mode: bool) -> Result<Disjunction> {
499499

500500
if quirks_mode {
501501
// apply the meta constraints to first node of all conjunctions
502-
let first_node_var = mapped.get_variable_by_node_nr(0);
502+
let first_node_var = mapped.get_variable_by_node_nr(var_idx_offset);
503503
add_legacy_metadata_constraints(
504504
&mut mapped,
505505
legacy_meta_search.clone(),

graphannis/tests/searchtest.rs

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -388,3 +388,21 @@ fn no_error_on_large_token_distance() {
388388

389389
assert_eq!(0, result.len());
390390
}
391+
392+
#[ignore]
393+
#[test]
394+
fn legacy_meta_query_with_multiple_alternatives() {
395+
let cs = CORPUS_STORAGE.as_ref().unwrap();
396+
397+
// "buy" and "favorite" each appear exactly once in type="interview" and once in type="news"
398+
let query = SearchQuery {
399+
corpus_names: &["GUM"],
400+
query: "\"buy\" | \"favorite\" & meta::type=\"interview\"",
401+
query_language: QueryLanguage::AQLQuirksV3,
402+
timeout: None,
403+
};
404+
405+
let count = cs.count(query).unwrap();
406+
407+
assert_eq!(count, 2);
408+
}

0 commit comments

Comments
 (0)