|
|
@ -929,7 +929,9 @@ fn filtering() {
|
|
|
|
.unwrap();
|
|
|
|
.unwrap();
|
|
|
|
assert_eq!(0, res.rows.len());
|
|
|
|
assert_eq!(0, res.rows.len());
|
|
|
|
|
|
|
|
|
|
|
|
let res = db.run_default(r"
|
|
|
|
let res = db
|
|
|
|
|
|
|
|
.run_default(
|
|
|
|
|
|
|
|
r"
|
|
|
|
{
|
|
|
|
{
|
|
|
|
?[x, u, y] <- [[1, 0, 2]]
|
|
|
|
?[x, u, y] <- [[1, 0, 2]]
|
|
|
|
:create _rel {x, u => y}
|
|
|
|
:create _rel {x, u => y}
|
|
|
@ -938,7 +940,8 @@ fn filtering() {
|
|
|
|
{
|
|
|
|
{
|
|
|
|
?[x, y] := x = 1, *_rel{x, y: 3}, y = 2
|
|
|
|
?[x, y] := x = 1, *_rel{x, y: 3}, y = 2
|
|
|
|
}
|
|
|
|
}
|
|
|
|
")
|
|
|
|
",
|
|
|
|
|
|
|
|
)
|
|
|
|
.unwrap();
|
|
|
|
.unwrap();
|
|
|
|
assert_eq!(0, res.rows.len());
|
|
|
|
assert_eq!(0, res.rows.len());
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -1187,20 +1190,29 @@ fn deletion() {
|
|
|
|
fn into_payload() {
|
|
|
|
fn into_payload() {
|
|
|
|
let db = DbInstance::new("mem", "", "").unwrap();
|
|
|
|
let db = DbInstance::new("mem", "", "").unwrap();
|
|
|
|
db.run_default(r":create a {x => y}").unwrap();
|
|
|
|
db.run_default(r":create a {x => y}").unwrap();
|
|
|
|
db.run_default(r"?[x, y] <- [[1, 2], [3, 4]] :insert a {x => y}",).unwrap();
|
|
|
|
db.run_default(r"?[x, y] <- [[1, 2], [3, 4]] :insert a {x => y}")
|
|
|
|
|
|
|
|
.unwrap();
|
|
|
|
|
|
|
|
|
|
|
|
let mut res = db.run_default(r"?[x, y] := *a[x, y]").unwrap();
|
|
|
|
let mut res = db.run_default(r"?[x, y] := *a[x, y]").unwrap();
|
|
|
|
assert_eq!(res.rows.len(), 2);
|
|
|
|
assert_eq!(res.rows.len(), 2);
|
|
|
|
|
|
|
|
|
|
|
|
let delete = res.clone().into_payload("a", "rm");
|
|
|
|
let delete = res.clone().into_payload("a", "rm");
|
|
|
|
db.run_script(delete.0.as_str(), delete.1, ScriptMutability::Mutable).unwrap();
|
|
|
|
db.run_script(delete.0.as_str(), delete.1, ScriptMutability::Mutable)
|
|
|
|
assert_eq!(db.run_default(r"?[x, y] := *a[x, y]").unwrap().rows.len(), 0);
|
|
|
|
.unwrap();
|
|
|
|
|
|
|
|
assert_eq!(
|
|
|
|
|
|
|
|
db.run_default(r"?[x, y] := *a[x, y]").unwrap().rows.len(),
|
|
|
|
|
|
|
|
0
|
|
|
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
db.run_default(r":create b {m => n}").unwrap();
|
|
|
|
db.run_default(r":create b {m => n}").unwrap();
|
|
|
|
res.headers = vec!["m".into(), "n".into()];
|
|
|
|
res.headers = vec!["m".into(), "n".into()];
|
|
|
|
let put = res.into_payload("b", "put");
|
|
|
|
let put = res.into_payload("b", "put");
|
|
|
|
db.run_script(put.0.as_str(), put.1, ScriptMutability::Mutable).unwrap();
|
|
|
|
db.run_script(put.0.as_str(), put.1, ScriptMutability::Mutable)
|
|
|
|
assert_eq!(db.run_default(r"?[m, n] := *b[m, n]").unwrap().rows.len(), 2);
|
|
|
|
.unwrap();
|
|
|
|
|
|
|
|
assert_eq!(
|
|
|
|
|
|
|
|
db.run_default(r"?[m, n] := *b[m, n]").unwrap().rows.len(),
|
|
|
|
|
|
|
|
2
|
|
|
|
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
#[test]
|
|
|
@ -1416,6 +1428,29 @@ fn sysop_in_imperatives() {
|
|
|
|
db.run_default(script).unwrap();
|
|
|
|
db.run_default(script).unwrap();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
|
|
|
|
fn bad_parse() {
|
|
|
|
|
|
|
|
let db = DbInstance::default();
|
|
|
|
|
|
|
|
db.run_default(
|
|
|
|
|
|
|
|
r"
|
|
|
|
|
|
|
|
:create named_hero_history {
|
|
|
|
|
|
|
|
name: String,
|
|
|
|
|
|
|
|
value: Bool,
|
|
|
|
|
|
|
|
when: Int
|
|
|
|
|
|
|
|
}",
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
.unwrap();
|
|
|
|
|
|
|
|
db.run_default(r"
|
|
|
|
|
|
|
|
last_named_hero[first, first, max(hist)] := *named_hero_history[first, first, value, hist], hist <= 1;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
some_named_hero[first, first, value] := last_named_hero[first, first, last], *named_hero_history[first, first, value, last];
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
named_hero[first, first, value] := cast[first], value = false, not some_named_hero[first, first, _];
|
|
|
|
|
|
|
|
named_hero[first, first, value] := some_named_hero[first, first, value];
|
|
|
|
|
|
|
|
?[hero] :=
|
|
|
|
|
|
|
|
").expect_err("should fail");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
#[test]
|
|
|
|
#[test]
|
|
|
|
fn puts() {
|
|
|
|
fn puts() {
|
|
|
|
let db = DbInstance::default();
|
|
|
|
let db = DbInstance::default();
|
|
|
@ -1570,7 +1605,10 @@ fn fts_drop() {
|
|
|
|
"#,
|
|
|
|
"#,
|
|
|
|
)
|
|
|
|
)
|
|
|
|
.unwrap();
|
|
|
|
.unwrap();
|
|
|
|
db.run_default(r#"
|
|
|
|
db.run_default(
|
|
|
|
|
|
|
|
r#"
|
|
|
|
::fts drop entity:fts_index
|
|
|
|
::fts drop entity:fts_index
|
|
|
|
"#).unwrap();
|
|
|
|
"#,
|
|
|
|
|
|
|
|
)
|
|
|
|
|
|
|
|
.unwrap();
|
|
|
|
}
|
|
|
|
}
|
|
|
|