当前位置: 首页>>代码示例>>Java>>正文


Java DMLNode类代码示例

本文整理汇总了Java中com.taobao.tddl.optimizer.core.ast.DMLNode的典型用法代码示例。如果您正苦于以下问题:Java DMLNode类的具体用法?Java DMLNode怎么用?Java DMLNode使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。


DMLNode类属于com.taobao.tddl.optimizer.core.ast包,在下文中一共展示了DMLNode类的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: buildExistSequenceVal

import com.taobao.tddl.optimizer.core.ast.DMLNode; //导入依赖的package包/类
protected void buildExistSequenceVal() {
    // 如果子节点中有一个是聚合查询,则传递到父节点
    for (ASTNode sub : this.getNode().getChildren()) {
        if (sub instanceof QueryTreeNode) {
            if (((QueryTreeNode) sub).isExistSequenceVal()) {
                setExistSequenceVal();
                return;
            }
        } else if (sub instanceof DMLNode) {
            if (((DMLNode) sub).isExistSequenceVal()) {
                setExistSequenceVal();
                return;
            }
        }
    }
}
 
开发者ID:loye168,项目名称:tddl5,代码行数:17,代码来源:QueryTreeNodeBuilder.java

示例2: shard

import com.taobao.tddl.optimizer.core.ast.DMLNode; //导入依赖的package包/类
public static ASTNode shard(ASTNode dne, Map<Integer, ParameterContext> parameterSettings,
                            Map<String, Object> extraCmd) throws QueryException {
    if (dne instanceof DMLNode) {
        if (dne instanceof InsertNode) {
            return shardInsert((InsertNode) dne, parameterSettings, extraCmd);
        }
        if (dne instanceof UpdateNode) {
            return shardUpdate((UpdateNode) dne, parameterSettings, extraCmd);
        }
        if (dne instanceof DeleteNode) {
            return shardDelete((DeleteNode) dne, parameterSettings, extraCmd);
        }
        if (dne instanceof PutNode) {
            return shardPut((PutNode) dne, parameterSettings, extraCmd);
        }
    }
    if (dne instanceof QueryTreeNode) {
        return shardQuery((QueryTreeNode) dne, parameterSettings, extraCmd);
    }

    return dne;
}
 
开发者ID:beebeandwer,项目名称:TDDL,代码行数:23,代码来源:DataNodeChooser.java

示例3: setExecuteOn

import com.taobao.tddl.optimizer.core.ast.DMLNode; //导入依赖的package包/类
/**
 * 递归设置executeOn
 */
private static void setExecuteOn(DMLNode dne, String dataNode) {
    QueryTreeNode qtn = dne.getNode();
    if (qtn != null) {
        setExecuteOn(qtn, dataNode);
    }

    qtn = dne.getSelectNode();
    if (qtn != null) {
        setExecuteOn(qtn, dataNode);
    }
}
 
开发者ID:loye168,项目名称:tddl5,代码行数:15,代码来源:DataNodeChooser.java

示例4: opitmize

import com.taobao.tddl.optimizer.core.ast.DMLNode; //导入依赖的package包/类
public static ASTNode opitmize(ASTNode node, Parameters parameters, Map<String, Object> extraCmd)
                                                                                                 throws OptimizerException {
    if (node instanceof DMLNode) {
        findDML((DMLNode) node, parameters);
    } else {
        findQuery((QueryTreeNode) node, parameters);
    }
    return node;
}
 
开发者ID:loye168,项目名称:tddl5,代码行数:10,代码来源:SequencePreProcessor.java

示例5: assignmentSubquery

import com.taobao.tddl.optimizer.core.ast.DMLNode; //导入依赖的package包/类
@Override
public IFunction assignmentSubquery(ASTNode node, Map<Long, Object> subquerySettings, Map<String, Object> extraCmd)
                                                                                                                   throws OptimizerException {
    if (node instanceof QueryTreeNode) {
        return SubQueryPreProcessor.assignmentSubqueryOnFilter((QueryTreeNode) node, subquerySettings);
    } else if (node instanceof DMLNode) {
        return SubQueryPreProcessor.assignmentSubqueryOnFilter(((DMLNode) node).getNode(), subquerySettings);
    }

    return null;
}
 
开发者ID:loye168,项目名称:tddl5,代码行数:12,代码来源:CostBasedOptimizer.java

示例6: shard

import com.taobao.tddl.optimizer.core.ast.DMLNode; //导入依赖的package包/类
public static ASTNode shard(ASTNode dne, Parameters parameterSettings, Map<String, Object> extraCmd) {
    try {
        // 针对非batch,绑定变量后,优化语法树
        if (parameterSettings == null || parameterSettings != null && !parameterSettings.isBatch()) {
            dne.assignment(parameterSettings);// null也要做一次,可能存在nextval
            // 绑定变量后,再做一次
            if (dne instanceof DMLNode) {
                ((DMLNode) dne).setNode((TableNode) FilterPreProcessor.optimize(((DMLNode) dne).getNode(),
                    false,
                    extraCmd));
            } else if (dne instanceof QueryTreeNode) {
                dne = FilterPreProcessor.optimize(((QueryTreeNode) dne), false, extraCmd);
            }
        }
        if (dne instanceof LoadDataNode) {
            return shardLoad((LoadDataNode) dne, parameterSettings, extraCmd);
        }
        if (dne instanceof DMLNode) {
            if (dne instanceof InsertNode) {
                return shardInsert((InsertNode) dne, parameterSettings, extraCmd);
            }

            if (dne instanceof UpdateNode) {
                return shardUpdate((UpdateNode) dne, parameterSettings, extraCmd);
            }
            if (dne instanceof DeleteNode) {
                return shardDelete((DeleteNode) dne, parameterSettings, extraCmd);
            }
            if (dne instanceof PutNode) {
                return shardPut((PutNode) dne, parameterSettings, extraCmd);
            }
        } else if (dne instanceof QueryTreeNode) {
            return shardQuery((QueryTreeNode) dne, parameterSettings, extraCmd, true);
        }

    } catch (EmptyResultFilterException e) {
        e.setAstNode(dne);
        throw e;
    }

    return dne;
}
 
开发者ID:loye168,项目名称:tddl5,代码行数:43,代码来源:DataNodeChooser.java

示例7: shard

import com.taobao.tddl.optimizer.core.ast.DMLNode; //导入依赖的package包/类
private ASTNode shard(DMLNode qtn) {
    return DataNodeChooser.shard(qtn, null, null);
}
 
开发者ID:loye168,项目名称:tddl5,代码行数:4,代码来源:DataNodeChooserTest.java


注:本文中的com.taobao.tddl.optimizer.core.ast.DMLNode类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。