Examples of AbstractExpression


Examples of org.voltdb.expressions.AbstractExpression

                traverse(exp.getLeft());
            }
            if (exp.getRight() != null) {
                traverse(exp.getRight());
            }
            AbstractExpression check_exp = m_stack.pop();
            assert(exp.equals(check_exp));
            callback(exp);
            m_depth--;
        }
View Full Code Here

Examples of org.voltdb.expressions.AbstractExpression

        /**
         * Returns the parent of the current node in callback()
         * @return
         */
        protected final AbstractExpression getParent() {
            AbstractExpression ret = null;
            if (!m_stack.isEmpty()) ret = m_stack.peek();
            return ret;
        }
View Full Code Here

Examples of org.voltdb.expressions.AbstractExpression

    private final PlannerContext context = PlannerContext.singleton();
   
    @Test
    public void testDuplicateColumns() {
        AbstractExpression expression = new NullValueExpression();
        String columnName = "TABLEA.A_ID";
        SortOrder sortOrder = SortOrder.kUnsorted;
        Storage storage = Storage.kTemporary;
       
        PlanColumn col0 = context.getPlanColumn(expression, columnName, sortOrder, storage);
        assertNotNull(col0);
//        System.err.println(col0 + " ==> " + col0.hashCode());
       
        PlanColumn col1 = context.getPlanColumn(expression, columnName, sortOrder, storage);
        assertNotNull(col1);
//        System.err.println(col1 + " ==> " + col1.hashCode());
        assertEquals(col0.hashCode(), col1.hashCode());
        assertEquals(col0.getDisplayName(), col1.getDisplayName());
        assertEquals(col0.getSortOrder(), col1.getSortOrder());
        assertEquals(col0.getStorage(), col1.getStorage());
        assert(ExpressionUtil.equals(col0.getExpression(), col1.getExpression()));
        assertEquals(col0, col1);
       
        expression.setLeft(new NullValueExpression());
        PlanColumn col2 = context.getPlanColumn(expression, columnName, sortOrder, storage);
        assertNotNull(col2);
//        System.err.println(col2 + " ==> " + col2.hashCode());
        assertNotSame(col0.hashCode(), col2.hashCode());
        assertEquals(col0.getDisplayName(), col2.getDisplayName());
View Full Code Here

Examples of org.voltdb.expressions.AbstractExpression

        final Set<Column> columns = new ListOrderedSet<Column>();
        for (Integer column_guid : planColumnIds) {
            PlanColumn planColumn = pcontext.get(column_guid);
            assert (planColumn != null);
            AbstractExpression exp = planColumn.getExpression();
            assert (exp != null);
            Collection<Column> exp_cols = ExpressionUtil.getReferencedColumns(catalog_db, exp);
            if (debug.val)
                LOG.debug(planColumn.toString() + " => " + exp_cols);
            columns.addAll(exp_cols);
View Full Code Here

Examples of org.voltdb.expressions.AbstractExpression

        final Collection<AbstractExpression> exps = new ListOrderedSet<AbstractExpression>();
        for (Integer column_guid : planColumnIds) {
            PlanColumn planColumn = pcontext.get(column_guid);
            assert (planColumn != null);
            AbstractExpression exp = planColumn.getExpression();
            assert (exp != null);
            exps.add(exp);
        } // FOR

        return (exps);
View Full Code Here

Examples of org.voltdb.expressions.AbstractExpression

     * @param exptree
     * @return
     * @throws Exception
     */
    public static AbstractExpression deserializeExpression(Database catalog_db, String exptree) throws Exception {
        AbstractExpression exp = null;
        if (exptree != null && !exptree.isEmpty()) {
            JSONObject json_obj = new JSONObject(Encoder.hexDecodeToString(exptree));
            exp = AbstractExpression.fromJSONObject(json_obj, catalog_db);
        }
        return (exp);
View Full Code Here

Examples of org.voltdb.expressions.AbstractExpression

            int num_cols = clone_node.getOutputColumnGUIDCount() - (has_weightedAvg ? 1 : 0);
            for (int i = 0; i < num_cols; i++) {
                Integer aggOutput = clone_node.getOutputColumnGUID(i);
                PlanColumn planCol = state.plannerContext.get(aggOutput);
                assert (planCol != null);
                AbstractExpression exp = planCol.getExpression();
                assert (exp != null);
                Collection<String> refTables = ExpressionUtil.getReferencedTableNames(exp);
                assert (refTables != null);
                if (refTables.size() == 1 && refTables.contains(PlanAssembler.AGGREGATE_TEMP_TABLE)) {
                    node.getAggregateColumnGuids().add(planCol.guid());
View Full Code Here

Examples of org.voltdb.expressions.AbstractExpression

        // cover as much of the index as possible with expressions that use
        // index columns
        for (ColumnRef colRef : CatalogUtil.getSortedCatalogItems(index.getColumns(), "index")) {
            Column col = colRef.getColumn();
            if (eqColumns.containsKey(col) && (eqColumns.get(col).size() >= 0)) {
                AbstractExpression expr = eqColumns.get(col).remove(0);
                retval.indexExprs.add(expr);
                retval.endExprs.add(expr);
            } else {
                if (gtColumns.containsKey(col) && (gtColumns.get(col).size() >= 0)) {
                    AbstractExpression expr = gtColumns.get(col).remove(0);
                    if (retval.sortDirection != SortDirectionType.DESC)
                        retval.indexExprs.add(expr);
                    if (retval.sortDirection != SortDirectionType.ASC)
                        retval.endExprs.add(expr);

                    if (expr.getExpressionType() == ExpressionType.COMPARE_GREATERTHAN)
                        retval.lookupType = IndexLookupType.GT;
                    else if (expr.getExpressionType() == ExpressionType.COMPARE_GREATERTHANOREQUALTO) {
                        retval.lookupType = IndexLookupType.GTE;
                    } else
                        assert (false);

                    retval.use = IndexUseType.INDEX_SCAN;
                }

                if (ltColumns.containsKey(col) && (ltColumns.get(col).size() >= 0)) {
                    AbstractExpression expr = ltColumns.get(col).remove(0);
                    retval.endExprs.add(expr);
                    retval.use = IndexUseType.INDEX_SCAN;
                }

                // if we didn't find an equality match, we can stop looking
View Full Code Here

Examples of org.voltdb.expressions.AbstractExpression

        // build the list of search-keys for the index in question
        IndexScanPlanNode scanNode = new IndexScanPlanNode(m_context, PlanAssembler.getNextPlanNodeId());
        List<AbstractExpression> searchKeys = scanNode.getSearchKeyExpressions();
        for (AbstractExpression expr : path.indexExprs) {
            AbstractExpression expr2 = ExpressionUtil.getOtherTableExpression(expr, table.getTypeName());
            assert(expr2 != null);
            searchKeys.add(expr2);
        }

        // create the IndexScanNode with all its metadata
View Full Code Here

Examples of org.voltdb.expressions.AbstractExpression

     * @param exprs The predicate components.
     * @return A scan plan node or multi-site graph to get the distributed version of a scan.
     */
    protected AbstractPlanNode getScanAccessPlanForTable(Table table, ArrayList<AbstractExpression> exprs) {
        // build the predicate
        AbstractExpression localWhere = null;
        if ((exprs != null) && (exprs.isEmpty() == false))
            localWhere = ExpressionUtil.combine(exprs);

        // build the scan node
        SeqScanPlanNode scanNode = new SeqScanPlanNode(m_context, PlanAssembler.getNextPlanNodeId());
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.