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


Java IQuery.setKeyFilter方法代码示例

本文整理汇总了Java中com.taobao.tddl.optimizer.core.plan.query.IQuery.setKeyFilter方法的典型用法代码示例。如果您正苦于以下问题:Java IQuery.setKeyFilter方法的具体用法?Java IQuery.setKeyFilter怎么用?Java IQuery.setKeyFilter使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在com.taobao.tddl.optimizer.core.plan.query.IQuery的用法示例。


在下文中一共展示了IQuery.setKeyFilter方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: toDataNodeExecutor

import com.taobao.tddl.optimizer.core.plan.query.IQuery; //导入方法依赖的package包/类
public IDataNodeExecutor toDataNodeExecutor(int shareIndex) {
    subquerytoDataNodeExecutor(shareIndex);
    IQuery query = ASTNodeFactory.getInstance().createQuery();
    query.setAlias(this.getAlias());
    query.setColumns(this.getColumnsSelected());
    query.setConsistent(this.getConsistent());
    query.setGroupBys(this.getGroupBys());
    query.setKeyFilter(this.getKeyFilter());
    query.setValueFilter(this.getResultFilter());
    query.setLimitFrom(this.getLimitFrom());
    query.setLimitTo(this.getLimitTo());
    query.setLockMode(this.getLockMode());
    query.setOrderBys(this.getOrderBys());
    // 不能传递shareIndex,代理对象会自处理
    query.setSubQuery((IQueryTree) this.getChild().toDataNodeExecutor());
    query.setSql(this.getSql());
    query.setIsSubQuery(this.isSubQuery());
    query.setExistAggregate(this.isExistAggregate());
    query.executeOn(this.getDataNode(shareIndex));
    query.setSubqueryOnFilterId(this.getSubqueryOnFilterId());
    query.setSubqueryFilter(this.getSubqueryFilter());
    query.setExistSequenceVal(this.isExistSequenceVal());
    return query;
}
 
开发者ID:loye168,项目名称:tddl5,代码行数:25,代码来源:QueryNode.java

示例2: toDataNodeExecutor

import com.taobao.tddl.optimizer.core.plan.query.IQuery; //导入方法依赖的package包/类
public IQueryTree toDataNodeExecutor() throws QueryException {
    IQuery query = ASTNodeFactory.getInstance().createQuery();
    query.setAlias(this.getAlias());
    query.setColumns(this.getColumnsSelected());
    query.setConsistent(this.getConsistent());
    query.setGroupBys(this.getGroupBys());

    query.setKeyFilter(this.getKeyFilter());
    query.setValueFilter(this.getResultFilter());

    query.setLimitFrom(this.getLimitFrom());
    query.setLimitTo(this.getLimitTo());
    query.setLockModel(this.getLockModel());
    query.setOrderBys(this.getOrderBys());
    query.setSubQuery(this.getChild().toDataNodeExecutor());
    query.executeOn(this.getDataNode());
    query.setSql(this.getSql());
    query.setIsSubQuery(this.isSubQuery());
    return query;
}
 
开发者ID:beebeandwer,项目名称:TDDL,代码行数:21,代码来源:QueryNode.java

示例3: toDataNodeExecutor

import com.taobao.tddl.optimizer.core.plan.query.IQuery; //导入方法依赖的package包/类
public IDataNodeExecutor toDataNodeExecutor(int shareIndex) {
    subquerytoDataNodeExecutor(shareIndex);
    IQuery query = ASTNodeFactory.getInstance().createQuery();
    query.setAlias(this.getAlias());
    query.setColumns(this.getColumnsSelected());
    query.setConsistent(this.getConsistent());
    query.setGroupBys(this.getGroupBys());
    query.setIndexName(this.getIndex() == null ? null : this.getIndex().getName());
    query.setKeyFilter(this.getKeyFilter());
    query.setValueFilter(this.getResultFilter());
    query.setLimitFrom(this.getLimitFrom());
    query.setLimitTo(this.getLimitTo());
    query.setLockMode(this.getLockMode());
    query.setOrderBys(this.getOrderBys());
    query.setSubQuery(null);
    query.setSql(this.getSql());
    query.setIsSubQuery(this.isSubQuery());
    query.having(this.getHavingFilter());
    query.setExistAggregate(this.isExistAggregate());
    query.setOtherJoinOnFilter(this.getOtherJoinOnFilter());
    query.setSubqueryFilter(this.getSubqueryFilter());
    query.executeOn(this.getDataNode(shareIndex));
    String tableName = null;
    if (this.getActualTableName() != null) {
        tableName = this.getActualTableName(shareIndex);
    } else if (this.getIndex() != null) {
        tableName = this.getIndex().getName();
    }
    query.setTableName(tableName);
    query.setSubqueryOnFilterId(this.getSubqueryOnFilterId());
    query.setCorrelatedSubquery(this.isCorrelatedSubquery());
    query.setExistSequenceVal(this.isExistSequenceVal());
    return query;
}
 
开发者ID:loye168,项目名称:tddl5,代码行数:35,代码来源:KVIndexNode.java

示例4: copy

import com.taobao.tddl.optimizer.core.plan.query.IQuery; //导入方法依赖的package包/类
@Override
public IQuery copy() {
    IQuery query = ASTNodeFactory.getInstance().createQuery();
    copySelfTo((QueryTree) query);

    if (this.getSubQuery() != null) {
        query.setSubQuery((IQueryTree) this.getSubQuery().copy());
    }
    query.setTableName(this.getTableName());
    query.setIndexName(this.getIndexName());
    query.setKeyFilter(OptimizerUtils.copyFilter(this.getKeyFilter()));
    return query;
}
 
开发者ID:loye168,项目名称:tddl5,代码行数:14,代码来源:Query.java

示例5: mgetWithDuplicate

import com.taobao.tddl.optimizer.core.plan.query.IQuery; //导入方法依赖的package包/类
@Override
public Map<CloneableRecord, DuplicateKVPair> mgetWithDuplicate(List<CloneableRecord> keys, boolean prefixMatch,
                                                               boolean keyFilterOrValueFilter) throws TddlException {

    IQuery tmpQuery = (IQuery) query.copy();
    List<Object> values = new ArrayList<Object>();
    String cm = keys.get(0).getColumnList().get(0);
    for (CloneableRecord key : keys) {
        values.add(key.get(cm));
    }
    IColumn ic = ASTNodeFactory.getInstance().createColumn();
    ic.setColumnName(cm);

    IBooleanFilter targetFilter = ASTNodeFactory.getInstance().createBooleanFilter();
    targetFilter.setOperation(OPERATION.IN);
    targetFilter.setColumn(ic);
    targetFilter.setValues(values);

    tmpQuery.setKeyFilter(FilterUtils.and(tmpQuery.getKeyFilter(), targetFilter));

    myJdbcHandler.setPlan(tmpQuery);
    try {
        myJdbcHandler.executeQuery(this.meta, isStreaming);
    } catch (SQLException e) {
        throw new TddlException(e);
    }
    Map<CloneableRecord, DuplicateKVPair> res = buildDuplicateKVPair(keys);
    return res;
}
 
开发者ID:beebeandwer,项目名称:TDDL,代码行数:30,代码来源:My_Cursor.java

示例6: toDataNodeExecutor

import com.taobao.tddl.optimizer.core.plan.query.IQuery; //导入方法依赖的package包/类
public IQuery toDataNodeExecutor() {
    IQuery query = ASTNodeFactory.getInstance().createQuery();
    query.setAlias(this.getAlias());
    query.setColumns(this.getColumnsSelected());
    query.setConsistent(this.getConsistent());
    query.setGroupBys(this.getGroupBys());
    String tableName = null;
    if (this.getActualTableName() != null) {
        tableName = this.getActualTableName();
    } else if (this.getIndex() != null) {
        tableName = this.getIndex().getName();
    }

    query.setTableName(tableName);
    query.setIndexName(this.getIndex() == null ? null : this.getIndex().getName());
    query.setKeyFilter(this.getKeyFilter());
    query.setValueFilter(this.getResultFilter());
    query.setLimitFrom(this.getLimitFrom());
    query.setLimitTo(this.getLimitTo());
    query.setLockModel(this.getLockModel());
    query.setOrderBys(this.getOrderBys());
    query.setSubQuery(null);
    query.executeOn(this.getDataNode());
    query.setSql(this.getSql());
    query.setIsSubQuery(this.isSubQuery());
    query.setExtra(this.getExtra());
    query.having(this.getHavingFilter());
    return query;
}
 
开发者ID:beebeandwer,项目名称:TDDL,代码行数:30,代码来源:KVIndexNode.java

示例7: copy

import com.taobao.tddl.optimizer.core.plan.query.IQuery; //导入方法依赖的package包/类
@Override
public IQuery copy() {
    IQuery query = ASTNodeFactory.getInstance().createQuery();
    copySelfTo((QueryTree) query);
    query.setLockModel(this.getLockModel());
    query.setSubQuery(this.getSubQuery());
    query.setTableName(this.getTableName());
    query.setKeyFilter(this.getKeyFilter());
    return query;
}
 
开发者ID:beebeandwer,项目名称:TDDL,代码行数:11,代码来源:Query.java

示例8: mgetWithDuplicate

import com.taobao.tddl.optimizer.core.plan.query.IQuery; //导入方法依赖的package包/类
@Override
public Map<CloneableRecord, DuplicateKVPair> mgetWithDuplicate(List<CloneableRecord> keys, boolean prefixMatch,
                                                               boolean keyFilterOrValueFilter) throws TddlException {

    IQuery tmpQuery = (IQuery) query.copy();
    IBooleanFilter ibf = ASTNodeFactory.getInstance().createBooleanFilter();
    ibf.setOperation(OPERATION.IN);
    ibf.setValues(new ArrayList<Object>());
    String colName = null;
    for (CloneableRecord record : keys) {
        Map<String, Object> recordMap = record.getMap();
        if (recordMap.size() == 1) {
            // 单字段in
            Entry<String, Object> entry = recordMap.entrySet().iterator().next();
            Object comp = entry.getValue();
            colName = entry.getKey();
            IColumn col = ASTNodeFactory.getInstance()
                .createColumn()
                .setColumnName(colName)
                .setDataType(record.getType(0));

            col.setTableName(tmpQuery.getAlias());
            ibf.setColumn(col);
            ibf.getValues().add(comp);
        } else {
            // 多字段in
            if (ibf.getColumn() == null) {
                ibf.setColumn(buildRowFunction(recordMap.keySet(), true, record));
            }

            ibf.getValues().add(buildRowFunction(recordMap.values(), false, record));

        }
    }

    tmpQuery.setKeyFilter(FilterUtils.and(tmpQuery.getKeyFilter(), ibf));
    myJdbcHandler.setPlan(tmpQuery);
    try {
        myJdbcHandler.executeQuery(this.meta, isStreaming);
    } catch (SQLException e) {
        throw new TddlException(e);
    }

    buildReturnColumns();
    Map<CloneableRecord, DuplicateKVPair> res = buildDuplicateKVPair(keys);
    return res;
}
 
开发者ID:loye168,项目名称:tddl5,代码行数:48,代码来源:My_Cursor.java


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