asterix-graphix/src/main/java/org/apache/asterix/graphix/lang/rewrite/lower/EnvironmentActionFactory.java [235:256]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                    joinClause.setSourceLocation(vertexPatternExpr.getSourceLocation());
                    lowerList.addNonRepresentativeClause(joinClause);
                });

                // If we have a filter expression, add it as a WHERE clause here.
                final Expression filterExpr = vertexPatternExpr.getFilterExpr();
                if (filterExpr != null) {
                    loweringEnvironment.acceptAction(buildFilterExprAction(filterExpr, vertexVar, iterationVar));
                }

                // Bind our intermediate (join) variable and vertex variable.
                loweringEnvironment.acceptTransformer(lowerList -> {
                    VariableExpr iterationVarCopy1 = graphixDeepCopyVisitor.visit(iterationVar, null);
                    VariableExpr iterationVarCopy2 = graphixDeepCopyVisitor.visit(iterationVar, null);
                    VariableExpr intermediateVarCopy = graphixDeepCopyVisitor.visit(intermediateVar, null);
                    LetClause nonRepresentativeBinding = new LetClause(intermediateVarCopy, iterationVarCopy1);
                    lowerList.addNonRepresentativeClause(nonRepresentativeBinding);
                    lowerList.addVertexBinding(vertexVar, iterationVarCopy2);
                });
                aliasLookupTable.addIterationAlias(vertexVar, iterationVar);
                aliasLookupTable.addJoinAlias(vertexVar, intermediateVar);
            };
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



asterix-graphix/src/main/java/org/apache/asterix/graphix/lang/rewrite/lower/EnvironmentActionFactory.java [668:689]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
                    joinClause.setSourceLocation(vertexPatternExpr.getSourceLocation());
                    lowerList.addNonRepresentativeClause(joinClause);
                });

                // If we have a filter expression, add it as a WHERE clause here.
                final Expression filterExpr = vertexPatternExpr.getFilterExpr();
                if (filterExpr != null) {
                    loweringEnvironment.acceptAction(buildFilterExprAction(filterExpr, vertexVar, iterationVar));
                }

                // Bind our intermediate (join) variable and vertex variable.
                loweringEnvironment.acceptTransformer(lowerList -> {
                    VariableExpr iterationVarCopy1 = graphixDeepCopyVisitor.visit(iterationVar, null);
                    VariableExpr iterationVarCopy2 = graphixDeepCopyVisitor.visit(iterationVar, null);
                    VariableExpr intermediateVarCopy = graphixDeepCopyVisitor.visit(intermediateVar, null);
                    LetClause nonRepresentativeBinding = new LetClause(intermediateVarCopy, iterationVarCopy1);
                    lowerList.addNonRepresentativeClause(nonRepresentativeBinding);
                    lowerList.addVertexBinding(vertexVar, iterationVarCopy2);
                });
                aliasLookupTable.addIterationAlias(vertexVar, iterationVar);
                aliasLookupTable.addJoinAlias(vertexVar, intermediateVar);
            };
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



