package com.taobao.tddl.hint.test;
import java.util.concurrent.Executors;
import org.junit.Test;
import com.taobao.tddl.common.exception.TddlException;
import com.taobao.tddl.executor.MatrixExecutor;
import com.taobao.tddl.executor.common.ExecutionContext;
import com.taobao.tddl.executor.cursor.ResultCursor;
import com.taobao.tddl.executor.rowset.IRowSet;
import com.taobao.tddl.matrix.config.MatrixConfigHolder;
import com.taobao.tddl.optimizer.core.plan.bean.DataNodeExecutor;
import com.taobao.tddl.optimizer.core.plan.bean.Merge;
import com.taobao.tddl.optimizer.core.plan.bean.Query;
public class HintExecuteTest {
@Test
public void initTestWithConfigHolder() throws TddlException {
MatrixConfigHolder configHolder = new MatrixConfigHolder();
configHolder.setAppName("andor_show");
configHolder.setTopologyFilePath("test_matrix.xml");
configHolder.setSchemaFilePath("test_schema.xml");
try {
configHolder.init();
} catch (TddlException e) {
e.printStackTrace();
}
MatrixExecutor me = new MatrixExecutor();
ExecutionContext context = new ExecutionContext();
context.setExecutorService(Executors.newCachedThreadPool());
Merge merge = new Merge();
DataNodeExecutor sub1 = new Query();
sub1.setSql("select * from bmw_users_0003 limit 10");
sub1.executeOn("andor_show_group0");
DataNodeExecutor sub2 = new Query();
sub2.setSql("select * from bmw_users_0001 limit 10");
sub2.executeOn("andor_show_group0");
merge.addSubNode(sub1);
merge.addSubNode(sub2);
merge.setSql("sql");
merge.executeOn("andor_show_group0");
ResultCursor rc = me.execByExecPlanNode(merge, context);
IRowSet row = null;
while ((row = rc.next()) != null) {
System.out.println(row);
}
System.out.println("ok");
}
}