SERVER-115523 Update expected output for golden test base_coll_reorder_md.js (#45276)

GitOrigin-RevId: c249693db202164b7062fe81fe900c2ccebb3ce6
This commit is contained in:
Alexander Ignatyev 2025-12-15 20:20:28 +00:00 committed by MongoDB Bot
parent b506d1fe7c
commit 5c075bbb30
4 changed files with 2379 additions and 93 deletions

View File

@ -92,13 +92,81 @@ Execution Engine: sbe
``` ```
### Random reordering with seed 0 ### 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 ### 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 ### 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 ### 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 ## 2. 3-Node graph, base node connected to one node
### No join opt ### No join opt
@ -196,13 +264,81 @@ Execution Engine: sbe
``` ```
### Random reordering with seed 0 ### 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 ### 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 ### 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 ### 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 ## 3. 3-Node graph + potentially inferred edge
### No join opt ### No join opt
@ -295,11 +431,79 @@ Execution Engine: sbe
``` ```
### Random reordering with seed 0 ### 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 ### 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 ### 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 ### 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"
```

View File

@ -98,13 +98,81 @@ Execution Engine: classic
``` ```
### Random reordering with seed 0 ### 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 ### 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 ### 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 ### 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 ## 2. 3-Node graph, base node connected to one node
### No join opt ### No join opt
@ -208,13 +276,81 @@ Execution Engine: classic
``` ```
### Random reordering with seed 0 ### 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 ### 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 ### 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 ### 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 ## 3. 3-Node graph + potentially inferred edge
### No join opt ### No join opt
@ -313,13 +449,81 @@ Execution Engine: classic
``` ```
### Random reordering with seed 0 ### 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 ### 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 ### 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 ### 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 ## 4. 4-Node graph + potentially inferred edges & filters
### No join opt ### No join opt
@ -477,15 +681,145 @@ Execution Engine: classic
``` ```
### Random reordering with seed 0 ### 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 ### 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 ### 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 ### 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 ### 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 ## 5. 5-Node graph + filters
### No join opt ### No join opt
@ -739,23 +1073,383 @@ Execution Engine: classic
``` ```
### Random reordering with seed 0 ### 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 ### 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 ### 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 ### 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 ### 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 ### 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 ### 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 ### 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 ### 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 ### 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"
```

View File

@ -92,13 +92,81 @@ Execution Engine: sbe
``` ```
### Random reordering with seed 0 ### 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 ### 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 ### 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 ### 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 ## 2. 3-Node graph, base node connected to one node
### No join opt ### No join opt
@ -196,13 +264,81 @@ Execution Engine: sbe
``` ```
### Random reordering with seed 0 ### 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 ### 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 ### 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 ### 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 ## 3. 3-Node graph + potentially inferred edge
### No join opt ### No join opt
@ -295,13 +431,81 @@ Execution Engine: sbe
``` ```
### Random reordering with seed 0 ### 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 ### 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 ### 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 ### 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 ## 4. 4-Node graph + potentially inferred edges & filters
### No join opt ### No join opt
@ -455,15 +659,145 @@ Execution Engine: sbe
``` ```
### Random reordering with seed 0 ### 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 ### 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 ### 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 ### 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 ### 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 ## 5. 5-Node graph + filters
### No join opt ### No join opt
@ -717,23 +1051,383 @@ Execution Engine: sbe
``` ```
### Random reordering with seed 0 ### 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 ### 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 ### 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 ### 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 ### 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 ### 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 ### 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 ### 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 ### 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 ### 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"
```

View File

@ -98,13 +98,81 @@ Execution Engine: classic
``` ```
### Random reordering with seed 0 ### 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 ### 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 ### 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 ### 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 ## 2. 3-Node graph, base node connected to one node
### No join opt ### No join opt
@ -208,13 +276,81 @@ Execution Engine: classic
``` ```
### Random reordering with seed 0 ### 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 ### 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 ### 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 ### 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 ## 3. 3-Node graph + potentially inferred edge
### No join opt ### No join opt
@ -313,13 +449,81 @@ Execution Engine: classic
``` ```
### Random reordering with seed 0 ### 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 ### 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 ### 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 ### 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 ## 4. 4-Node graph + potentially inferred edges & filters
### No join opt ### No join opt
@ -477,15 +681,145 @@ Execution Engine: classic
``` ```
### Random reordering with seed 0 ### 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 ### 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 ### 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 ### 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 ### 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 ## 5. 5-Node graph + filters
### No join opt ### No join opt
@ -739,23 +1073,383 @@ Execution Engine: classic
``` ```
### Random reordering with seed 0 ### 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 ### 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 ### 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 ### 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 ### 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 ### 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 ### 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 ### 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 ### 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 ### 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"
```