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

                    // Inline our vertex body.
                    super.apply(loweringEnvironment);

                    // 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));
                    }

                    // Build a record constructor from our context to bind to our vertex variable.
                    loweringEnvironment.acceptTransformer(lowerList -> {
                        VariableExpr intermediateVarCopy = graphixDeepCopyVisitor.visit(intermediateVar, null);
                        RecordConstructor recordConstructor1 = buildRecordConstructor();
                        RecordConstructor recordConstructor2 = buildRecordConstructor();
                        LetClause nonRepresentativeBinding = new LetClause(intermediateVarCopy, recordConstructor1);
                        lowerList.addNonRepresentativeClause(nonRepresentativeBinding);
                        lowerList.addVertexBinding(vertexVar, recordConstructor2);
                    });
                    aliasLookupTable.addIterationAlias(vertexVar, iterationVar);
                    aliasLookupTable.addJoinAlias(vertexVar, intermediateVar);
                }
            };

        } else {
            GraphElementDeclaration elementDeclaration = elementLookupTable.getElementDecl(vertexIdentifier);
            return loweringEnvironment -> {
                // Introduce our iteration expression.
                loweringEnvironment.acceptTransformer(lowerList -> {
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



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

                    // Inline our vertex body.
                    super.apply(loweringEnvironment);

                    // 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));
                    }

                    // Build a record constructor from our context to bind to our vertex variable.
                    loweringEnvironment.acceptTransformer(lowerList -> {
                        VariableExpr intermediateVarCopy = graphixDeepCopyVisitor.visit(intermediateVar, null);
                        RecordConstructor recordConstructor1 = buildRecordConstructor();
                        RecordConstructor recordConstructor2 = buildRecordConstructor();
                        LetClause nonRepresentativeBinding = new LetClause(intermediateVarCopy, recordConstructor1);
                        lowerList.addNonRepresentativeClause(nonRepresentativeBinding);
                        lowerList.addVertexBinding(vertexVar, recordConstructor2);
                    });
                    aliasLookupTable.addIterationAlias(vertexVar, iterationVar);
                    aliasLookupTable.addJoinAlias(vertexVar, intermediateVar);
                }
            };

        } else {
            GraphElementDeclaration elementDeclaration = elementLookupTable.getElementDecl(vertexIdentifier);
            return loweringEnvironment -> {
                // Join our vertex body to our edge variable.
                loweringEnvironment.acceptTransformer(lowerList -> {
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



