Examples of ColumnExpression


Examples of com.foundationdb.sql.optimizer.plan.ColumnExpression

                    parentSource = generateTableSource(key.getReferencedTable());
                    sources.put(key.getReferencedTable(), parentSource);
                }
                checkFKParents (key.getReferencedTable(), parentSource, sources, equivelances);
                for (int i = 0; i < key.getReferencedColumns().size(); i++) {
                    ColumnExpression one = expressionFromColumn(key.getReferencingColumns().get(i), tableSource);
                    ColumnExpression two = expressionFromColumn(key.getReferencedColumns().get(i), parentSource);
                    equivelances.markEquivalent(one, two);
                }
            }
        }
    }
View Full Code Here

Examples of com.foundationdb.sql.optimizer.plan.ColumnExpression

        if (source == null) {
            Table table = col.getTable();
            TableNode node = new TableNode(table, new TableTree());
            source = new TableSource(node, true, table.getName().toString());
        }
        return new ColumnExpression(source, col);
    }
View Full Code Here

Examples of com.foundationdb.sql.optimizer.plan.ColumnExpression

                ComparisonCondition comparison = (ComparisonCondition) condition;
                if (comparison.getOperation().equals(Comparison.EQ)
                        && (comparison.getLeft() instanceof ColumnExpression)
                        && (comparison.getRight() instanceof ColumnExpression)
                        ) {
                    ColumnExpression left = (ColumnExpression) comparison.getLeft();
                    ColumnExpression right = (ColumnExpression) comparison.getRight();
                    if (!left.equals(right)) {
                        markNotNull(left);
                        markNotNull(right);
                        equivs.get().markEquivalent(left, right); // also implies right.equivalentTo(left)
                    }
View Full Code Here

Examples of com.foundationdb.sql.optimizer.plan.ColumnExpression

            FunctionCondition condition = (FunctionCondition) node;
            if ("isNull".equals(condition.getFunction())) {
                if (condition.getOperands().size() == 1) {
                    ExpressionNode operand = condition.getOperands().get(0);
                    if (operand instanceof ColumnExpression) {
                        ColumnExpression operandColumn = (ColumnExpression) operand;
                        return new ColumnRanges(operandColumn, condition,
                                Collections.singletonList(RangeSegment.onlyNull(operandColumn)));
                    }
                }
            }
View Full Code Here

Examples of com.foundationdb.sql.optimizer.plan.ColumnExpression

                        List<RangeSegment> segments) {
        this(columnExpression, Collections.singleton(rootCondition), segments);
    }

    private static ColumnRanges comparisonToRange(ComparisonCondition comparisonCondition) {
        final ColumnExpression columnExpression;
        final ExpressionNode other;
        final boolean columnIsRight;
        if (comparisonCondition.getLeft() instanceof ColumnExpression) {
            columnExpression = (ColumnExpression) comparisonCondition.getLeft();
            other = comparisonCondition.getRight();
View Full Code Here

Examples of com.foundationdb.sql.optimizer.plan.ColumnExpression

            default:    throw new AssertionError(op.name());
        }
    }

    private static ColumnRanges inListToRange(InListCondition inListCondition) {
        final ColumnExpression columnExpression;
        if (inListCondition.getOperand() instanceof ColumnExpression) {
            columnExpression = (ColumnExpression)inListCondition.getOperand();
        }
        else {
            return null;
View Full Code Here

Examples of com.foundationdb.sql.optimizer.plan.ColumnExpression

            for (Set<ColumnExpression> equivalentExpressions : set) {
                Iterator<ColumnExpression> equivalentIters = equivalentExpressions.iterator();
                boolean isInSet = areEquivalent(equivalentIters.next(), columnExpression, equivs);
                // as a sanity check, ensure that this is consistent for the rest of them
                while (equivalentIters.hasNext()) {
                    ColumnExpression next = equivalentIters.next();
                    boolean bothEquivalent = areEquivalent(next, columnExpression, equivs)
                            && areEquivalent(columnExpression, next, equivs);
                    assertEquals(
                            "equivalence for " + columnExpression + " against " + next + " in " + equivalentExpressions,
                            isInSet,
View Full Code Here

Examples of com.meidusa.amoeba.parser.expression.ColumnExpression

                parseExpr(exp, null);
            }

        } else if (expr instanceof ColumnExpression) {

            ColumnExpression columnExpr = (ColumnExpression) expr;

            column = columnExpr.getColumn();

            parseExpr(columnExpr.getExpression(), column);

        } else if (expr instanceof ComparisonExpression) {

            ComparisonExpression compExpr = (ComparisonExpression) expr;
View Full Code Here

Examples of com.meidusa.amoeba.parser.expression.ColumnExpression

    protected static void evaluateExpression(Expression expression, Map<Table, Map<Column, Comparative>> tablesMap,
                                             Object[] parameters) {
        if (expression instanceof BaseExpressionList) {
            evaluateExpression((BaseExpressionList) expression, tablesMap, parameters);
        } else if (expression instanceof ColumnExpression) {
            ColumnExpression colExpression = (ColumnExpression) expression;
            Table table = colExpression.getColumn().getTable();
            Map<Column, Comparative> columnMap = tablesMap.get(table);
            if (columnMap == null) {
                columnMap = new HashMap<Column, Comparative>();
                tablesMap.put(table, columnMap);
            }
            columnMap.put(colExpression.getColumn(), (Comparative) colExpression.evaluate(parameters));
        }
       
       
    }
View Full Code Here

Examples of com.meidusa.amoeba.parser.expression.ColumnExpression

        List<Expression> blist = elist.getAllExpression();
        for (Expression e : blist) {
            if (e instanceof BaseExpressionList) {
                evaluateExpression((BaseExpressionList) e, tablesMap, parameters);
            } else if (e instanceof ColumnExpression) {
                ColumnExpression colExpression = (ColumnExpression) e;
                Table table = colExpression.getColumn().getTable();
                Map<Column, Comparative> columnMap = tablesMap.get(table);
                if (columnMap == null) {
                    columnMap = new HashMap<Column, Comparative>();
                    tablesMap.put(table, columnMap);
                }
                Comparative col = columnMap.get(colExpression.getColumn());
                Comparative newComparative = (Comparative) colExpression.evaluate(parameters);
                if (col != null) {
                  if(col instanceof ComparativeBaseList){
                    ComparativeBaseList source = (ComparativeBaseList)col;
                    if((source instanceof ComparativeAND && and) || (source instanceof ComparativeOR && !and)){
                      source.addComparative(newComparative);
                    }else{
                      ComparativeBaseList comparativeBaseList = null;
                          if (and) {
                              comparativeBaseList = new ComparativeAND(col);
                          } else {
                              comparativeBaseList = new ComparativeOR(col);
                          }
                          comparativeBaseList.addComparative(newComparative);
                          columnMap.put(colExpression.getColumn(), comparativeBaseList);
                    }
                  }else{
                      ComparativeBaseList comparativeBaseList = null;
                      if (and) {
                          comparativeBaseList = new ComparativeAND(col);
                      } else {
                          comparativeBaseList = new ComparativeOR(col);
                      }
                      comparativeBaseList.addComparative(newComparative);
                      columnMap.put(colExpression.getColumn(), comparativeBaseList);
                  }
                } else {
                    columnMap.put(colExpression.getColumn(), newComparative);
                }
            }
        }
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. 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.