package com.taobao.tddl.optimizer.core.plan;
import java.util.List;
import com.taobao.tddl.optimizer.core.expression.ISelectable;
public interface IPut<RT extends IPut> extends IDataNodeExecutor<RT> {
public enum PUT_TYPE {
REPLACE, INSERT, DELETE, UPDATE;
}
/**
* depend query command
*
* @return
*/
IQueryTree getQueryTree();
/**
* @param queryCommon
*/
RT setQueryTree(IQueryTree queryTree);
/**
* set a = 1 ,b = 2 , c = 3 那么这个应该是 [‘a‘,‘b‘,‘c‘]
*
* @param columns
*/
RT setUpdateColumns(List<ISelectable> columns);
List<ISelectable> getUpdateColumns();
/**
* IdxName
*
* @param indexName
*/
RT setTableName(String indexName);
String getTableName();
RT setIndexName(String indexName);
String getIndexName();
/**
* set a = 1 ,b = 2 , c = 3 那么这个应该是 [1,2,3]
*
* @param columns
*/
RT setUpdateValues(List<Object> values);
List<Object> getUpdateValues();
PUT_TYPE getPutType();
RT setIgnore(boolean ignore);
boolean isIgnore();
/**
* 用于多值insert
*
* @return
*/
public List<List<Object>> getMultiValues();
public RT setMultiValues(List<List<Object>> multiValues);
public boolean isMutiValues();
public RT setMutiValues(boolean isMutiValues);
public int getMuiltValuesSize();
public List<Object> getValues(int index);
}