diff --git a/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/rel/RelJoinNestedLoop.kt b/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/rel/RelJoinNestedLoop.kt index 71080d9fda..2904ce17b3 100644 --- a/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/rel/RelJoinNestedLoop.kt +++ b/partiql-eval/src/main/kotlin/org/partiql/eval/internal/operator/rel/RelJoinNestedLoop.kt @@ -54,6 +54,8 @@ internal abstract class RelJoinNestedLoop : Operator.Relation { val result = condition.eval(input) toReturn = join(result.isTrue(), lhsRecord!!, rhsRecord!!) } + // Move the pointer to the next row for the RHS + if (toReturn == null) rhsRecord = rhs.next() } while (toReturn == null) return toReturn diff --git a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/transforms/Symbols.kt b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/transforms/Symbols.kt index 7a14eb85ce..9aca5cbf02 100644 --- a/partiql-planner/src/main/kotlin/org/partiql/planner/internal/transforms/Symbols.kt +++ b/partiql-planner/src/main/kotlin/org/partiql/planner/internal/transforms/Symbols.kt @@ -49,7 +49,8 @@ internal class Symbols private constructor() { var j = 0 while (j < c.items.size) { if (c.items[j] == item) { - break + // Found existing item in catalog, return the ref + return CatalogRef(i, j) } j++ }