package com.taobao.tddl.optimizer.core.plan.query;
import com.taobao.tddl.optimizer.core.expression.IFilter;
import com.taobao.tddl.optimizer.core.plan.IQueryTree;
/**
* @since 5.0.0
*/
public interface IQuery extends IParallelizableQueryTree<IQueryTree> {
/**
* key 过滤器。 最重要的过滤器哦。 用来使用kv中的key进行查找。
* 比较高的查询效率,这里的filter相当于使用map.get()的方式来取数据,所以效率很高。
*
* @return
*/
public IFilter getKeyFilter();
/**
* key 过滤器。 最重要的过滤器哦。 用来使用kv中的key进行查找。
* 比较高的查询效率,这里的filter相当于使用map.get()的方式来取数据,所以效率很高。
*
* @param keyFilter
* @return
*/
public IQuery setKeyFilter(IFilter keyFilter);
/**
* 锁模式。 目前没用
*
* @return
*/
public LOCK_MODEL getLockModel();
public IQuery setLockModel(LOCK_MODEL lockModel);
public IQuery setTableName(String actualTableName);
/**
* 实际表名,student_0000
*
* @return
*/
public String getTableName();
/**
* 索引名,逻辑上的,student._id
*
* @return
*/
public String getIndexName();
/**
* TABLENAME._IDXNAME
*
* @param actualTable
* @return
*/
public IQuery setIndexName(String indexName);
/**
* 设置子查询
*
* @param queryCommon
* @return
*/
public IQuery setSubQuery(IQueryTree queryCommon);
/**
* 获取子查询
*
* @return
*/
public IQueryTree getSubQuery();
}