本文整理汇总了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;
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}
示例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;
}