mirror of https://github.com/mongodb/mongo
SERVER-115523 Update expected output for golden test base_coll_reorder_md.js (#45276)
GitOrigin-RevId: c249693db202164b7062fe81fe900c2ccebb3ce6
This commit is contained in:
parent
b506d1fe7c
commit
5c075bbb30
|
|
@ -92,13 +92,81 @@ Execution Engine: sbe
|
|||
```
|
||||
|
||||
### Random reordering with seed 0
|
||||
`(HJ _ = (HJ y = COLLSCAN, _ = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "y"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 1
|
||||
`(HJ _ = (HJ x = COLLSCAN, _ = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 2
|
||||
`(HJ _ = (HJ _ = COLLSCAN, x = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 7
|
||||
`(HJ _ = (HJ _ = COLLSCAN, y = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
|
||||
## 2. 3-Node graph, base node connected to one node
|
||||
### No join opt
|
||||
|
|
@ -196,13 +264,81 @@ Execution Engine: sbe
|
|||
```
|
||||
|
||||
### Random reordering with seed 0
|
||||
`(HJ _ = (HJ y = COLLSCAN, x = COLLSCAN), _ = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [x.a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "y"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 1
|
||||
`(HJ _ = (HJ x = COLLSCAN, _ = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [x.b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 2
|
||||
`(HJ _ = (HJ _ = COLLSCAN, x = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [x.b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 3
|
||||
`(HJ _ = (HJ x = COLLSCAN, y = COLLSCAN), _ = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [x.a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
|
||||
## 3. 3-Node graph + potentially inferred edge
|
||||
### No join opt
|
||||
|
|
@ -295,11 +431,79 @@ Execution Engine: sbe
|
|||
```
|
||||
|
||||
### Random reordering with seed 0
|
||||
`(HJ _ = (HJ y = COLLSCAN, _ = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "y"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 1
|
||||
`(HJ _ = (HJ x = COLLSCAN, _ = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 2
|
||||
`(HJ _ = (HJ _ = COLLSCAN, x = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 7
|
||||
`(HJ _ = (HJ _ = COLLSCAN, y = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -98,13 +98,81 @@ Execution Engine: classic
|
|||
```
|
||||
|
||||
### Random reordering with seed 0
|
||||
`(HJ _ = (HJ y = COLLSCAN, _ = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "y"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 1
|
||||
`(HJ _ = (HJ x = COLLSCAN, _ = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 2
|
||||
`(HJ _ = (HJ _ = COLLSCAN, x = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 7
|
||||
`(HJ _ = (HJ _ = COLLSCAN, y = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
|
||||
## 2. 3-Node graph, base node connected to one node
|
||||
### No join opt
|
||||
|
|
@ -208,13 +276,81 @@ Execution Engine: classic
|
|||
```
|
||||
|
||||
### Random reordering with seed 0
|
||||
`(HJ _ = (HJ y = COLLSCAN, x = COLLSCAN), _ = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [x.a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "y"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 1
|
||||
`(HJ _ = (HJ x = COLLSCAN, _ = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [x.b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 2
|
||||
`(HJ _ = (HJ _ = COLLSCAN, x = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [x.b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 3
|
||||
`(HJ _ = (HJ x = COLLSCAN, y = COLLSCAN), _ = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [x.a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
|
||||
## 3. 3-Node graph + potentially inferred edge
|
||||
### No join opt
|
||||
|
|
@ -313,13 +449,81 @@ Execution Engine: classic
|
|||
```
|
||||
|
||||
### Random reordering with seed 0
|
||||
`(HJ _ = (HJ y = COLLSCAN, _ = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "y"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 1
|
||||
`(HJ _ = (HJ x = COLLSCAN, _ = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 2
|
||||
`(HJ _ = (HJ _ = COLLSCAN, x = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 7
|
||||
`(HJ _ = (HJ _ = COLLSCAN, y = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
|
||||
## 4. 4-Node graph + potentially inferred edges & filters
|
||||
### No join opt
|
||||
|
|
@ -477,15 +681,145 @@ Execution Engine: classic
|
|||
```
|
||||
|
||||
### Random reordering with seed 0
|
||||
`(HJ _ = (HJ _ = (HJ _ = COLLSCAN, x = COLLSCAN), y = COLLSCAN), z = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [y.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "z"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "base" : { "$gt" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$eq" : 3 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 1
|
||||
`(HJ _ = (HJ _ = (HJ x = COLLSCAN, _ = COLLSCAN), y = COLLSCAN), z = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [y.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "z"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "base" : { "$gt" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 3
|
||||
`(HJ _ = (HJ _ = (HJ y = COLLSCAN, z = COLLSCAN), _ = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [y.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "y"
|
||||
rightEmbeddingField: "z"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "base" : { "$gt" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 5
|
||||
`(HJ _ = (HJ _ = (HJ z = COLLSCAN, y = COLLSCAN), _ = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [y.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "z"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "base" : { "$gt" : 3 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 6
|
||||
`(HJ _ = (HJ _ = (HJ y = COLLSCAN, _ = COLLSCAN), x = COLLSCAN), z = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [y.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "z"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "base" : { "$gt" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "y"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
direction: "forward"
|
||||
```
|
||||
|
||||
## 5. 5-Node graph + filters
|
||||
### No join opt
|
||||
|
|
@ -739,23 +1073,383 @@ Execution Engine: classic
|
|||
```
|
||||
|
||||
### Random reordering with seed 0
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ ddd = COLLSCAN, _ = COLLSCAN), aaa = COLLSCAN), ccc = COLLSCAN), bbb = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "ddd"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
filter: { "b" : { "$gt" : 0 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 1
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ _ = COLLSCAN, aaa = COLLSCAN), ccc = COLLSCAN), bbb = COLLSCAN), ddd = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$eq" : 3 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 2
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ ccc = COLLSCAN, aaa = COLLSCAN), _ = COLLSCAN), bbb = COLLSCAN), ddd = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "ccc"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$lt" : 0 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 3
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ aaa = COLLSCAN, ccc = COLLSCAN), _ = COLLSCAN), bbb = COLLSCAN), ddd = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "aaa"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 4
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ _ = COLLSCAN, bbb = COLLSCAN), aaa = COLLSCAN), ccc = COLLSCAN), ddd = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$eq" : 3 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 7
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ _ = COLLSCAN, ddd = COLLSCAN), aaa = COLLSCAN), ccc = COLLSCAN), bbb = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$eq" : 3 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 8
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ ccc = COLLSCAN, aaa = COLLSCAN), _ = COLLSCAN), ddd = COLLSCAN), bbb = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "ccc"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$lt" : 0 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 9
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ _ = COLLSCAN, ddd = COLLSCAN), bbb = COLLSCAN), aaa = COLLSCAN), ccc = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$eq" : 3 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 10
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ bbb = COLLSCAN, _ = COLLSCAN), aaa = COLLSCAN), ccc = COLLSCAN), ddd = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "bbb"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
filter: { "base" : { "$gt" : 20 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 11
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ aaa = COLLSCAN, _ = COLLSCAN), ddd = COLLSCAN), bbb = COLLSCAN), ccc = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "aaa"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
direction: "forward"
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -92,13 +92,81 @@ Execution Engine: sbe
|
|||
```
|
||||
|
||||
### Random reordering with seed 0
|
||||
`(HJ _ = (HJ y = COLLSCAN, _ = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "y"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 1
|
||||
`(HJ _ = (HJ x = COLLSCAN, _ = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 2
|
||||
`(HJ _ = (HJ _ = COLLSCAN, x = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 7
|
||||
`(HJ _ = (HJ _ = COLLSCAN, y = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
|
||||
## 2. 3-Node graph, base node connected to one node
|
||||
### No join opt
|
||||
|
|
@ -196,13 +264,81 @@ Execution Engine: sbe
|
|||
```
|
||||
|
||||
### Random reordering with seed 0
|
||||
`(HJ _ = (HJ y = COLLSCAN, x = COLLSCAN), _ = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [x.a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "y"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 1
|
||||
`(HJ _ = (HJ x = COLLSCAN, _ = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [x.b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 2
|
||||
`(HJ _ = (HJ _ = COLLSCAN, x = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [x.b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 3
|
||||
`(HJ _ = (HJ x = COLLSCAN, y = COLLSCAN), _ = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [x.a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
|
||||
## 3. 3-Node graph + potentially inferred edge
|
||||
### No join opt
|
||||
|
|
@ -295,13 +431,81 @@ Execution Engine: sbe
|
|||
```
|
||||
|
||||
### Random reordering with seed 0
|
||||
`(HJ _ = (HJ y = COLLSCAN, _ = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "y"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 1
|
||||
`(HJ _ = (HJ x = COLLSCAN, _ = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 2
|
||||
`(HJ _ = (HJ _ = COLLSCAN, x = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 7
|
||||
`(HJ _ = (HJ _ = COLLSCAN, y = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
|
||||
## 4. 4-Node graph + potentially inferred edges & filters
|
||||
### No join opt
|
||||
|
|
@ -455,15 +659,145 @@ Execution Engine: sbe
|
|||
```
|
||||
|
||||
### Random reordering with seed 0
|
||||
`(HJ _ = (HJ _ = (HJ _ = COLLSCAN, x = COLLSCAN), y = COLLSCAN), z = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [y.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "z"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "base" : { "$gt" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$eq" : 3 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 1
|
||||
`(HJ _ = (HJ _ = (HJ x = COLLSCAN, _ = COLLSCAN), y = COLLSCAN), z = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [y.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "z"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "base" : { "$gt" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 3
|
||||
`(HJ _ = (HJ _ = (HJ y = COLLSCAN, z = COLLSCAN), _ = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [y.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "y"
|
||||
rightEmbeddingField: "z"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "base" : { "$gt" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 5
|
||||
`(HJ _ = (HJ _ = (HJ z = COLLSCAN, y = COLLSCAN), _ = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [y.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "z"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "base" : { "$gt" : 3 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 6
|
||||
`(HJ _ = (HJ _ = (HJ y = COLLSCAN, _ = COLLSCAN), x = COLLSCAN), z = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [y.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "z"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "base" : { "$gt" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "y"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
direction: "forward"
|
||||
```
|
||||
|
||||
## 5. 5-Node graph + filters
|
||||
### No join opt
|
||||
|
|
@ -717,23 +1051,383 @@ Execution Engine: sbe
|
|||
```
|
||||
|
||||
### Random reordering with seed 0
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ ddd = COLLSCAN, _ = COLLSCAN), aaa = COLLSCAN), ccc = COLLSCAN), bbb = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "ddd"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
filter: { "b" : { "$gt" : 0 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 1
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ _ = COLLSCAN, aaa = COLLSCAN), ccc = COLLSCAN), bbb = COLLSCAN), ddd = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$eq" : 3 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 2
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ ccc = COLLSCAN, aaa = COLLSCAN), _ = COLLSCAN), bbb = COLLSCAN), ddd = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "ccc"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$lt" : 0 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 3
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ aaa = COLLSCAN, ccc = COLLSCAN), _ = COLLSCAN), bbb = COLLSCAN), ddd = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "aaa"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 4
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ _ = COLLSCAN, bbb = COLLSCAN), aaa = COLLSCAN), ccc = COLLSCAN), ddd = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$eq" : 3 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 7
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ _ = COLLSCAN, ddd = COLLSCAN), aaa = COLLSCAN), ccc = COLLSCAN), bbb = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$eq" : 3 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 8
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ ccc = COLLSCAN, aaa = COLLSCAN), _ = COLLSCAN), ddd = COLLSCAN), bbb = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "ccc"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$lt" : 0 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 9
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ _ = COLLSCAN, ddd = COLLSCAN), bbb = COLLSCAN), aaa = COLLSCAN), ccc = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$eq" : 3 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 10
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ bbb = COLLSCAN, _ = COLLSCAN), aaa = COLLSCAN), ccc = COLLSCAN), ddd = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "bbb"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
filter: { "base" : { "$gt" : 20 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 11
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ aaa = COLLSCAN, _ = COLLSCAN), ddd = COLLSCAN), bbb = COLLSCAN), ccc = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "aaa"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
direction: "forward"
|
||||
```
|
||||
|
||||
|
|
|
|||
|
|
@ -98,13 +98,81 @@ Execution Engine: classic
|
|||
```
|
||||
|
||||
### Random reordering with seed 0
|
||||
`(HJ _ = (HJ y = COLLSCAN, _ = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "y"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 1
|
||||
`(HJ _ = (HJ x = COLLSCAN, _ = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 2
|
||||
`(HJ _ = (HJ _ = COLLSCAN, x = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 7
|
||||
`(HJ _ = (HJ _ = COLLSCAN, y = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
|
||||
## 2. 3-Node graph, base node connected to one node
|
||||
### No join opt
|
||||
|
|
@ -208,13 +276,81 @@ Execution Engine: classic
|
|||
```
|
||||
|
||||
### Random reordering with seed 0
|
||||
`(HJ _ = (HJ y = COLLSCAN, x = COLLSCAN), _ = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [x.a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "y"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 1
|
||||
`(HJ _ = (HJ x = COLLSCAN, _ = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [x.b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 2
|
||||
`(HJ _ = (HJ _ = COLLSCAN, x = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [x.b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 3
|
||||
`(HJ _ = (HJ x = COLLSCAN, y = COLLSCAN), _ = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [x.a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
|
||||
## 3. 3-Node graph + potentially inferred edge
|
||||
### No join opt
|
||||
|
|
@ -313,13 +449,81 @@ Execution Engine: classic
|
|||
```
|
||||
|
||||
### Random reordering with seed 0
|
||||
`(HJ _ = (HJ y = COLLSCAN, _ = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "y"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 1
|
||||
`(HJ _ = (HJ x = COLLSCAN, _ = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 2
|
||||
`(HJ _ = (HJ _ = COLLSCAN, x = COLLSCAN), y = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 7
|
||||
`(HJ _ = (HJ _ = COLLSCAN, y = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
direction: "forward"
|
||||
```
|
||||
|
||||
## 4. 4-Node graph + potentially inferred edges & filters
|
||||
### No join opt
|
||||
|
|
@ -477,15 +681,145 @@ Execution Engine: classic
|
|||
```
|
||||
|
||||
### Random reordering with seed 0
|
||||
`(HJ _ = (HJ _ = (HJ _ = COLLSCAN, x = COLLSCAN), y = COLLSCAN), z = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [y.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "z"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "base" : { "$gt" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$eq" : 3 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 1
|
||||
`(HJ _ = (HJ _ = (HJ x = COLLSCAN, _ = COLLSCAN), y = COLLSCAN), z = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [y.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "z"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "base" : { "$gt" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "x"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 3
|
||||
`(HJ _ = (HJ _ = (HJ y = COLLSCAN, z = COLLSCAN), _ = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [y.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "y"
|
||||
rightEmbeddingField: "z"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "base" : { "$gt" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 5
|
||||
`(HJ _ = (HJ _ = (HJ z = COLLSCAN, y = COLLSCAN), _ = COLLSCAN), x = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [y.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "z"
|
||||
rightEmbeddingField: "y"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "base" : { "$gt" : 3 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 6
|
||||
`(HJ _ = (HJ _ = (HJ y = COLLSCAN, _ = COLLSCAN), x = COLLSCAN), z = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [y.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "z"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "base" : { "$gt" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "x"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "y"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
direction: "forward"
|
||||
```
|
||||
|
||||
## 5. 5-Node graph + filters
|
||||
### No join opt
|
||||
|
|
@ -739,23 +1073,383 @@ Execution Engine: classic
|
|||
```
|
||||
|
||||
### Random reordering with seed 0
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ ddd = COLLSCAN, _ = COLLSCAN), aaa = COLLSCAN), ccc = COLLSCAN), bbb = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "ddd"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
filter: { "b" : { "$gt" : 0 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 1
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ _ = COLLSCAN, aaa = COLLSCAN), ccc = COLLSCAN), bbb = COLLSCAN), ddd = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$eq" : 3 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 2
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ ccc = COLLSCAN, aaa = COLLSCAN), _ = COLLSCAN), bbb = COLLSCAN), ddd = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "ccc"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$lt" : 0 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 3
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ aaa = COLLSCAN, ccc = COLLSCAN), _ = COLLSCAN), bbb = COLLSCAN), ddd = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "aaa"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 4
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ _ = COLLSCAN, bbb = COLLSCAN), aaa = COLLSCAN), ccc = COLLSCAN), ddd = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$eq" : 3 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 7
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ _ = COLLSCAN, ddd = COLLSCAN), aaa = COLLSCAN), ccc = COLLSCAN), bbb = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$eq" : 3 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 8
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ ccc = COLLSCAN, aaa = COLLSCAN), _ = COLLSCAN), ddd = COLLSCAN), bbb = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "ccc"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$lt" : 0 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 9
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ _ = COLLSCAN, ddd = COLLSCAN), bbb = COLLSCAN), aaa = COLLSCAN), ccc = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_base]
|
||||
filter: { "b" : { "$eq" : 3 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 10
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ bbb = COLLSCAN, _ = COLLSCAN), aaa = COLLSCAN), ccc = COLLSCAN), ddd = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "aaa"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_a]
|
||||
| filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "bbb"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_b]
|
||||
filter: { "base" : { "$gt" : 20 } }
|
||||
direction: "forward"
|
||||
```
|
||||
### Random reordering with seed 11
|
||||
`(HJ _ = (HJ _ = (HJ _ = (HJ aaa = COLLSCAN, _ = COLLSCAN), ddd = COLLSCAN), bbb = COLLSCAN), ccc = COLLSCAN)`
|
||||
```
|
||||
HASH_JOIN_EMBEDDING [aaa.base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ccc"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$lt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [b = b]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "bbb"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "base" : { "$gt" : 20 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [base = base]
|
||||
leftEmbeddingField: "none"
|
||||
rightEmbeddingField: "ddd"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_b]
|
||||
| filter: { "b" : { "$gt" : 0 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
HASH_JOIN_EMBEDDING [a = a]
|
||||
leftEmbeddingField: "aaa"
|
||||
rightEmbeddingField: "none"
|
||||
| |
|
||||
| COLLSCAN [test.base_coll_reorder_md_base]
|
||||
| filter: { "b" : { "$eq" : 3 } }
|
||||
| direction: "forward"
|
||||
|
|
||||
COLLSCAN [test.base_coll_reorder_md_a]
|
||||
filter: { "base" : { "$in" : [ 22, 33 ] } }
|
||||
direction: "forward"
|
||||
```
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue