Compare commits

..

2 Commits

Author SHA1 Message Date
Hassan Abedi
b50efd17dc WIP 2026-06-11 16:58:52 +02:00
Hassan Abedi
69d520a983 WIP 2026-06-11 16:58:07 +02:00
6 changed files with 505 additions and 504 deletions

View File

@ -1,114 +1,114 @@
{ {
"_scenario": "cartesian", "_scenario": "cartesian",
"expected_bindings": { "expected_bindings": {
"columns": [ "columns": [
"a", "a",
"b" "b"
], ],
"rows": [ "rows": [
[ [
{ {
"str": "left:1" "str": "left:1"
}, },
{ {
"str": "right:10" "str": "right:10"
} }
],
[
{
"str": "left:1"
},
{
"str": "right:20"
}
],
[
{
"str": "left:2"
},
{
"str": "right:10"
}
],
[
{
"str": "left:2"
},
{
"str": "right:20"
}
]
]
},
"facts": {
"left": [
[
{
"str": "left:1"
}
],
[
{
"str": "left:2"
}
]
],
"right": [
[
{
"str": "right:10"
}
],
[
{
"str": "right:20"
}
]
]
},
"query": {
"nodes": [
{
"action": {
"scan": {
"columns": [
{
"var": "a"
}
], ],
"table": "left" [
} {
}, "str": "left:1"
"id": 1 },
}, {
{ "str": "right:20"
"action": { }
"scan": {
"columns": [
{
"var": "b"
}
], ],
"table": "right" [
} {
}, "str": "left:2"
"id": 2 },
}, {
{ "str": "right:10"
"action": { }
"join": { ],
"left": 1, [
"op": "natural", {
"right": 2 "str": "left:2"
} },
}, {
"id": 3 "str": "right:20"
} }
], ]
"root": 3 ]
}, },
"schema": { "facts": {
"left": 1, "left": [
"right": 1 [
} {
"str": "left:1"
}
],
[
{
"str": "left:2"
}
]
],
"right": [
[
{
"str": "right:10"
}
],
[
{
"str": "right:20"
}
]
]
},
"query": {
"nodes": [
{
"action": {
"scan": {
"columns": [
{
"var": "a"
}
],
"table": "left"
}
},
"id": 1
},
{
"action": {
"scan": {
"columns": [
{
"var": "b"
}
],
"table": "right"
}
},
"id": 2
},
{
"action": {
"join": {
"left": 1,
"op": "natural",
"right": 2
}
},
"id": 3
}
],
"root": 3
},
"schema": {
"left": 1,
"right": 1
}
} }

View File

@ -1,84 +1,84 @@
{ {
"_scenario": "self-loop", "_scenario": "self-loop",
"expected_bindings": { "expected_bindings": {
"columns": [ "columns": [
"x" "x"
], ],
"rows": [ "rows": [
[ [
{ {
"str": "node:2" "str": "node:2"
} }
],
[
{
"str": "node:3"
}
]
]
},
"facts": {
"edge": [
[
{
"str": "node:1"
},
{
"str": "node:2"
},
{
"str": "edge:1"
}
],
[
{
"str": "node:2"
},
{
"str": "node:2"
},
{
"str": "edge:2"
}
],
[
{
"str": "node:3"
},
{
"str": "node:3"
},
{
"str": "edge:3"
}
]
]
},
"query": {
"nodes": [
{
"action": {
"scan": {
"columns": [
{
"var": "x"
},
{
"var": "x"
},
{
"var": "_w0_2"
}
], ],
"table": "edge" [
} {
}, "str": "node:3"
"id": 1 }
} ]
], ]
"root": 1 },
}, "facts": {
"schema": { "edge": [
"edge": 3 [
} {
"str": "node:1"
},
{
"str": "node:2"
},
{
"str": "edge:1"
}
],
[
{
"str": "node:2"
},
{
"str": "node:2"
},
{
"str": "edge:2"
}
],
[
{
"str": "node:3"
},
{
"str": "node:3"
},
{
"str": "edge:3"
}
]
]
},
"query": {
"nodes": [
{
"action": {
"scan": {
"columns": [
{
"var": "x"
},
{
"var": "x"
},
{
"var": "_w0_2"
}
],
"table": "edge"
}
},
"id": 1
}
],
"root": 1
},
"schema": {
"edge": 3
}
} }

View File

@ -1,186 +1,186 @@
{ {
"_scenario": "three-atom-chain", "_scenario": "three-atom-chain",
"expected_bindings": { "expected_bindings": {
"columns": [ "columns": [
"a", "a",
"b", "b",
"c" "c"
], ],
"rows": [ "rows": [
[ [
{ {
"str": "node:1" "str": "node:1"
}, },
{ {
"str": "node:2" "str": "node:2"
}, },
{ {
"str": "node:3" "str": "node:3"
} }
] ]
] ]
}, },
"facts": { "facts": {
"edge": [ "edge": [
[ [
{ {
"str": "node:1" "str": "node:1"
}, },
{ {
"str": "node:2" "str": "node:2"
}, },
{ {
"str": "edge:1" "str": "edge:1"
} }
],
[
{
"str": "node:2"
},
{
"str": "node:3"
},
{
"str": "edge:2"
}
]
],
"node": [
[
{
"str": "node:1"
}
],
[
{
"str": "node:2"
}
],
[
{
"str": "node:3"
}
]
]
},
"query": {
"nodes": [
{
"action": {
"scan": {
"columns": [
{
"var": "a"
},
{
"var": "b"
},
{
"var": "_w0_2"
}
], ],
"table": "edge" [
} {
}, "str": "node:2"
"id": 1 },
}, {
{ "str": "node:3"
"action": { },
"scan": { {
"columns": [ "str": "edge:2"
{ }
"var": "b" ]
}, ],
{ "node": [
"var": "c" [
}, {
{ "str": "node:1"
"var": "_w1_2" }
}
], ],
"table": "edge" [
} {
}, "str": "node:2"
"id": 2 }
},
{
"action": {
"scan": {
"columns": [
{
"var": "a"
}
], ],
"table": "node" [
} {
}, "str": "node:3"
"id": 3 }
}, ]
{ ]
"action": { },
"join": { "query": {
"left": 1, "nodes": [
"op": "left", {
"right": 3 "action": {
} "scan": {
}, "columns": [
"id": 4 {
}, "var": "a"
{ },
"action": { {
"join": { "var": "b"
"left": 2, },
"op": "left", {
"right": 4 "var": "_w0_2"
} }
}, ],
"id": 5 "table": "edge"
}, }
{ },
"action": { "id": 1
"join": { },
"left": 5, {
"op": "right", "action": {
"right": 4 "scan": {
} "columns": [
}, {
"id": 6 "var": "b"
}, },
{ {
"action": { "var": "c"
"join": { },
"left": 6, {
"op": "right", "var": "_w1_2"
"right": 3 }
} ],
}, "table": "edge"
"id": 7 }
}, },
{ "id": 2
"action": { },
"join": { {
"left": 6, "action": {
"op": "natural", "scan": {
"right": 7 "columns": [
} {
}, "var": "a"
"id": 8 }
}, ],
{ "table": "node"
"action": { }
"join": { },
"left": 5, "id": 3
"op": "natural", },
"right": 8 {
} "action": {
}, "join": {
"id": 9 "left": 1,
} "op": "left",
], "right": 3
"root": 9 }
}, },
"schema": { "id": 4
"edge": 3, },
"node": 1 {
} "action": {
"join": {
"left": 2,
"op": "left",
"right": 4
}
},
"id": 5
},
{
"action": {
"join": {
"left": 5,
"op": "right",
"right": 4
}
},
"id": 6
},
{
"action": {
"join": {
"left": 6,
"op": "right",
"right": 3
}
},
"id": 7
},
{
"action": {
"join": {
"left": 6,
"op": "natural",
"right": 7
}
},
"id": 8
},
{
"action": {
"join": {
"left": 5,
"op": "natural",
"right": 8
}
},
"id": 9
}
],
"root": 9
},
"schema": {
"edge": 3,
"node": 1
}
} }

View File

@ -1,136 +1,136 @@
{ {
"_scenario": "two-atom-join", "_scenario": "two-atom-join",
"expected_bindings": { "expected_bindings": {
"columns": [ "columns": [
"a", "a",
"b" "b"
], ],
"rows": [ "rows": [
[ [
{ {
"str": "node:1" "str": "node:1"
}, },
{ {
"str": "node:2" "str": "node:2"
} }
],
[
{
"str": "node:2"
},
{
"str": "node:1"
}
]
]
},
"facts": {
"edge": [
[
{
"str": "node:1"
},
{
"str": "node:2"
},
{
"str": "edge:1"
}
],
[
{
"str": "node:2"
},
{
"str": "node:1"
},
{
"str": "edge:2"
}
]
],
"node": [
[
{
"str": "node:1"
}
],
[
{
"str": "node:2"
}
]
]
},
"query": {
"nodes": [
{
"action": {
"scan": {
"columns": [
{
"var": "a"
},
{
"var": "b"
},
{
"var": "_w0_2"
}
], ],
"table": "edge" [
} {
}, "str": "node:2"
"id": 1 },
}, {
{ "str": "node:1"
"action": { }
"scan": { ]
"columns": [ ]
{ },
"var": "a" "facts": {
} "edge": [
[
{
"str": "node:1"
},
{
"str": "node:2"
},
{
"str": "edge:1"
}
], ],
"table": "node" [
} {
}, "str": "node:2"
"id": 2 },
}, {
{ "str": "node:1"
"action": { },
"join": { {
"left": 1, "str": "edge:2"
"op": "left", }
"right": 2 ]
} ],
}, "node": [
"id": 3 [
}, {
{ "str": "node:1"
"action": { }
"join": { ],
"left": 3, [
"op": "right", {
"right": 2 "str": "node:2"
} }
}, ]
"id": 4 ]
}, },
{ "query": {
"action": { "nodes": [
"join": { {
"left": 3, "action": {
"op": "natural", "scan": {
"right": 4 "columns": [
} {
}, "var": "a"
"id": 5 },
} {
], "var": "b"
"root": 5 },
}, {
"schema": { "var": "_w0_2"
"edge": 3, }
"node": 1 ],
} "table": "edge"
}
},
"id": 1
},
{
"action": {
"scan": {
"columns": [
{
"var": "a"
}
],
"table": "node"
}
},
"id": 2
},
{
"action": {
"join": {
"left": 1,
"op": "left",
"right": 2
}
},
"id": 3
},
{
"action": {
"join": {
"left": 3,
"op": "right",
"right": 2
}
},
"id": 4
},
{
"action": {
"join": {
"left": 3,
"op": "natural",
"right": 4
}
},
"id": 5
}
],
"root": 5
},
"schema": {
"edge": 3,
"node": 1
}
} }

View File

@ -9,6 +9,7 @@ Open [`index.html`](index.html) in a browser, then drop a JSON file from [`crate
Alternatively, you can run the commands below to serve the viewer locally: Alternatively, you can run the commands below to serve the viewer locally:
```sh ```sh
make shell # Go into the Nix shells
make viewer make viewer
``` ```

Binary file not shown.