Package com.facebook.presto.sql.planner.plan

Examples of com.facebook.presto.sql.planner.plan.ProjectNode


            Expression rewritten = subPlan.rewrite(fieldOrExpression);
            projections.put(symbol, rewritten);
            translations.put(fieldOrExpression, symbol);
        }

        return new PlanBuilder(translations, new ProjectNode(idAllocator.getNextId(), subPlan.getRoot(), projections.build()));
    }
View Full Code Here


        for (Symbol symbol : alreadyCoerced) {
            projections.put(symbol, new QualifiedNameReference(symbol.toQualifiedName()));
        }

        return new PlanBuilder(translations, new ProjectNode(idAllocator.getNextId(), subPlan.getRoot(), projections.build()));
    }
View Full Code Here

        // Now append the new translations into the TranslationMap
        for (Map.Entry<Symbol, Expression> entry : newTranslations.build().entrySet()) {
            translations.put(entry.getValue(), entry.getKey());
        }

        return new PlanBuilder(translations, new ProjectNode(idAllocator.getNextId(), subPlan.getRoot(), projections.build()));
    }
View Full Code Here

        // Now append the new translations into the TranslationMap
        for (Map.Entry<Symbol, Expression> entry : newTranslations.build().entrySet()) {
            translations.put(entry.getValue(), entry.getKey());
        }

        return new PlanBuilder(translations, new ProjectNode(idAllocator.getNextId(), subPlan.getRoot(), projections.build()));
    }
View Full Code Here

                Symbol sampleWeightSymbol = ((MaterializeSampleNode) source).getSampleWeightSymbol();
                Map<Symbol, Expression> outputMap = ImmutableMap.<Symbol, Expression>builder()
                        .putAll(node.getOutputMap())
                        .put(sampleWeightSymbol, new QualifiedNameReference(sampleWeightSymbol.toQualifiedName()))
                        .build();
                ProjectNode projectNode = new ProjectNode(node.getId(), ((MaterializeSampleNode) source).getSource(), outputMap);
                return new MaterializeSampleNode(source.getId(), projectNode, sampleWeightSymbol);
            }
            else {
                return planRewriter.defaultRewrite(node, null);
            }
View Full Code Here

                ImmutableMap.Builder<Symbol, Expression> projections = ImmutableMap.builder();
                for (Symbol symbol : source.getOutputSymbols()) {
                    Expression expression = new QualifiedNameReference(symbol.toQualifiedName());
                    projections.put(symbol, expression);
                }
                source = new ProjectNode(idAllocator.getNextId(), ((MaterializeSampleNode) source).getSource(), projections.build());
                return new DistinctLimitNode(node.getId(), source, node.getLimit());
            }
            else {
                return new DistinctLimitNode(node.getId(), source, node.getLimit());
            }
View Full Code Here

                    ImmutableMap.Builder<Symbol, Expression> projections = ImmutableMap.builder();
                    for (Symbol symbol : source.getOutputSymbols()) {
                        Expression expression = new QualifiedNameReference(symbol.toQualifiedName());
                        projections.put(symbol, expression);
                    }
                    source = new ProjectNode(idAllocator.getNextId(), ((MaterializeSampleNode) source).getSource(), projections.build());
                    return new AggregationNode(node.getId(), source, node.getGroupBy(), node.getAggregations(), node.getFunctions(), node.getMasks(), Optional.<Symbol>absent(), node.getConfidence());
                }
                else {
                    return new AggregationNode(node.getId(), ((MaterializeSampleNode) source).getSource(), node.getGroupBy(), node.getAggregations(), node.getFunctions(), node.getMasks(), Optional.of(((MaterializeSampleNode) source).getSampleWeightSymbol()), node.getConfidence());
                }
View Full Code Here

                    projections.put(outputSampleWeight, sampleWeightExpr);
                    for (Symbol symbol : Iterables.filter(node.getOutputSymbols(), not(in(ImmutableSet.of(leftSampleWeight, rightSampleWeight))))) {
                        Expression expression = new QualifiedNameReference(symbol.toQualifiedName());
                        projections.put(symbol, expression);
                    }
                    joinNode = new ProjectNode(idAllocator.getNextId(), joinNode, projections.build());
                }
                else {
                    outputSampleWeight = leftSampleWeight == null ? rightSampleWeight : leftSampleWeight;
                    if ((node.getType() == JoinNode.Type.LEFT && leftSampleWeight == null) || (node.getType() == JoinNode.Type.RIGHT && rightSampleWeight == null)) {
                        // There could be NULLs in the sample weight, so fix them with a projection
                        ImmutableMap.Builder<Symbol, Expression> projections = ImmutableMap.builder();
                        for (Symbol symbol : Iterables.filter(node.getOutputSymbols(), not(equalTo(outputSampleWeight)))) {
                            Expression expression = new QualifiedNameReference(symbol.toQualifiedName());
                            projections.put(symbol, expression);
                        }
                        Expression sampleWeightExpr = oneIfNull(outputSampleWeight);
                        outputSampleWeight = symbolAllocator.newSymbol(sampleWeightExpr, BIGINT);
                        projections.put(outputSampleWeight, sampleWeightExpr);
                        joinNode = new ProjectNode(idAllocator.getNextId(), joinNode, projections.build());
                    }
                }
                return new MaterializeSampleNode(idAllocator.getNextId(), joinNode, outputSampleWeight);
            }
View Full Code Here

                Expression expression = new QualifiedNameReference(symbol.toQualifiedName());
                projections.put(symbol, expression);
            }
            Expression one = new LongLiteral("1");
            projections.put(sampleWeightSymbol, one);
            return new ProjectNode(idAllocator.getNextId(), source, projections.build());
        }
View Full Code Here

        @Override
        public PlanNode rewriteProject(ProjectNode node, Void context, PlanRewriter<Void> planRewriter)
        {
            PlanNode source = planRewriter.rewrite(node.getSource(), context);
            Map<Symbol, Expression> assignments = ImmutableMap.copyOf(Maps.transformValues(node.getOutputMap(), simplifyExpressionFunction()));
            return new ProjectNode(node.getId(), source, assignments);
        }
View Full Code Here

TOP

Related Classes of com.facebook.presto.sql.planner.plan.ProjectNode

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.