Skip to content

Commit 8910aef

Browse files
committed
Add Guillaume's use case
1 parent 4725f14 commit 8910aef

File tree

1 file changed

+58
-0
lines changed

1 file changed

+58
-0
lines changed

tests/query_tests.rs

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -212,3 +212,61 @@ fn parameters() {
212212
assert_eq!(query.execute().unwrap().count(), 1);
213213
});
214214
}
215+
216+
#[test]
217+
fn guillaume() {
218+
utils::with_db(|db| {
219+
assert!(db
220+
.create_index(
221+
"good_index",
222+
&ValueIndexConfiguration::new(
223+
QueryLanguage::JSON,
224+
r#"[[".type"],[".session_id"]]"#
225+
),
226+
)
227+
.unwrap());
228+
229+
assert!(db
230+
.create_index(
231+
"bad_index",
232+
&ValueIndexConfiguration::new(QueryLanguage::JSON, r#"[[".type"]]"#),
233+
)
234+
.unwrap());
235+
236+
let mut doc = Document::new_with_id("id1");
237+
let mut props = doc.mutable_properties();
238+
props.at("type").put_string("HardcodedType");
239+
props.at("session_id").put_string("session1");
240+
db.save_document_with_concurency_control(&mut doc, ConcurrencyControl::FailOnConflict)
241+
.expect("save");
242+
243+
let query = Query::new(
244+
db,
245+
QueryLanguage::N1QL,
246+
"SELECT _.* FROM _ \
247+
WHERE _.type = 'HardcodedType' \
248+
AND ARRAY_CONTAINS($sessionIds, _.session_id)",
249+
)
250+
.expect("create query");
251+
252+
let mut params = MutableDict::new();
253+
let mut session_ids = MutableArray::new();
254+
session_ids.append().put_string("session1");
255+
session_ids.append().put_string("session2");
256+
params.at("sessionIds").put_value(&session_ids);
257+
query.set_parameters(&params);
258+
259+
let params = query.parameters();
260+
assert_eq!(
261+
params.get("sessionIds").as_array().get(0).as_string(),
262+
Some("session1")
263+
);
264+
assert_eq!(
265+
params.get("sessionIds").as_array().get(1).as_string(),
266+
Some("session2")
267+
);
268+
269+
println!("Explain: {:?}", query.explain());
270+
assert_eq!(query.execute().unwrap().count(), 1);
271+
});
272+
}

0 commit comments

Comments
 (0)