You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tajo.apache.org by hy...@apache.org on 2014/08/11 05:53:14 UTC
[3/5] TAJO-928: Session variables should override query configs in
TajoConf.
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/main/java/org/apache/tajo/master/session/Session.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/master/session/Session.java b/tajo-core/src/main/java/org/apache/tajo/master/session/Session.java
index a67b6c8..cdf552d 100644
--- a/tajo-core/src/main/java/org/apache/tajo/master/session/Session.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/session/Session.java
@@ -19,6 +19,7 @@
package org.apache.tajo.master.session;
import com.google.common.collect.ImmutableMap;
+import org.apache.tajo.SessionVars;
import org.apache.tajo.util.KeyValueSet;
import org.apache.tajo.common.ProtoObject;
@@ -30,17 +31,21 @@ import static org.apache.tajo.ipc.TajoWorkerProtocol.SessionProto;
public class Session implements SessionConstants, ProtoObject<SessionProto> {
private final String sessionId;
private final String userName;
+ private String currentDatabase;
private final Map<String, String> sessionVariables;
// transient status
private volatile long lastAccessTime;
- private volatile String currentDatabase;
public Session(String sessionId, String userName, String databaseName) {
this.sessionId = sessionId;
this.userName = userName;
+ this.currentDatabase = databaseName;
this.lastAccessTime = System.currentTimeMillis();
+
this.sessionVariables = new HashMap<String, String>();
+ sessionVariables.put(SessionVars.SESSION_ID.keyname(), sessionId);
+ sessionVariables.put(SessionVars.USERNAME.keyname(), userName);
selectDatabase(databaseName);
}
@@ -71,64 +76,61 @@ public class Session implements SessionConstants, ProtoObject<SessionProto> {
public void setVariable(String name, String value) {
synchronized (sessionVariables) {
- sessionVariables.put(name, value);
+ sessionVariables.put(SessionVars.handleDeprecatedName(name), value);
}
}
public String getVariable(String name) throws NoSuchSessionVariableException {
synchronized (sessionVariables) {
if (sessionVariables.containsKey(name)) {
- return sessionVariables.get(name);
+ return sessionVariables.get(SessionVars.handleDeprecatedName(name));
} else {
throw new NoSuchSessionVariableException(name);
}
}
}
- public String getVariable(String name, String defaultValue) {
- synchronized (sessionVariables) {
- if (sessionVariables.containsKey(name)) {
- return sessionVariables.get(name);
- } else {
- return defaultValue;
- }
- }
- }
-
public void removeVariable(String name) {
synchronized (sessionVariables) {
- sessionVariables.remove(name);
+ sessionVariables.remove(SessionVars.handleDeprecatedName(name));
}
}
public synchronized Map<String, String> getAllVariables() {
synchronized (sessionVariables) {
+ sessionVariables.put(SessionVars.SESSION_ID.keyname(), sessionId);
+ sessionVariables.put(SessionVars.USERNAME.keyname(), userName);
+ sessionVariables.put(SessionVars.SESSION_LAST_ACCESS_TIME.keyname(), String.valueOf(lastAccessTime));
+ sessionVariables.put(SessionVars.CURRENT_DATABASE.keyname(), currentDatabase);
return ImmutableMap.copyOf(sessionVariables);
}
}
- public void selectDatabase(String databaseName) {
+ public synchronized void selectDatabase(String databaseName) {
this.currentDatabase = databaseName;
}
- public String getCurrentDatabase() {
- return this.currentDatabase;
+ public synchronized String getCurrentDatabase() {
+ return currentDatabase;
}
@Override
public SessionProto getProto() {
SessionProto.Builder builder = SessionProto.newBuilder();
- builder.setSessionId(sessionId);
- builder.setUsername(userName);
- builder.setCurrentDatabase(currentDatabase);
+ builder.setSessionId(getSessionId());
+ builder.setUsername(getUserName());
+ builder.setCurrentDatabase(getCurrentDatabase());
builder.setLastAccessTime(lastAccessTime);
KeyValueSet variables = new KeyValueSet();
- variables.putAll(this.sessionVariables);
- builder.setVariables(variables.getProto());
- return builder.build();
+
+ synchronized (sessionVariables) {
+ variables.putAll(this.sessionVariables);
+ builder.setVariables(variables.getProto());
+ return builder.build();
+ }
}
public String toString() {
- return "user=" + userName + ",id=" + sessionId;
+ return "user=" + getUserName() + ",id=" + getSessionId() +",last_atime=" + getLastAccessTime();
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java b/tajo-core/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java
index 483920f..912f769 100644
--- a/tajo-core/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java
+++ b/tajo-core/src/main/java/org/apache/tajo/master/session/SessionLivelinessMonitor.java
@@ -40,7 +40,7 @@ public class SessionLivelinessMonitor extends AbstractLivelinessMonitor<String>
TajoConf systemConf = (TajoConf) conf;
// seconds
- int expireIntvl = systemConf.getIntVar(TajoConf.ConfVars.CLIENT_SESSION_EXPIRY_TIME);
+ int expireIntvl = systemConf.getIntVar(TajoConf.ConfVars.$CLIENT_SESSION_EXPIRY_TIME);
setExpireInterval(expireIntvl);
setMonitorInterval(expireIntvl / 3);
super.serviceInit(conf);
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/main/java/org/apache/tajo/worker/Task.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/worker/Task.java b/tajo-core/src/main/java/org/apache/tajo/worker/Task.java
index 195b35e..200892a 100644
--- a/tajo-core/src/main/java/org/apache/tajo/worker/Task.java
+++ b/tajo-core/src/main/java/org/apache/tajo/worker/Task.java
@@ -148,7 +148,7 @@ public class Task {
this.taskDir = StorageUtil.concatPath(taskRunnerContext.getBaseDir(),
taskId.getQueryUnitId().getId() + "_" + taskId.getId());
- this.context = new TaskAttemptContext(systemConf, queryContext, taskId,
+ this.context = new TaskAttemptContext(queryContext, taskId,
request.getFragments().toArray(new FragmentProto[request.getFragments().size()]), taskDir);
this.context.setDataChannel(request.getDataChannel());
this.context.setEnforcer(request.getEnforcer());
@@ -537,7 +537,7 @@ public class Task {
FetcherHistoryProto.Builder builder = FetcherHistoryProto.newBuilder();
for (Fetcher fetcher : fetcherRunners) {
// TODO store the fetcher histories
- if (systemConf.getBoolVar(TajoConf.ConfVars.TAJO_DEBUG)) {
+ if (systemConf.getBoolVar(TajoConf.ConfVars.$DEBUG_ENABLED)) {
builder.setStartTime(fetcher.getStartTime());
builder.setFinishTime(fetcher.getFinishTime());
builder.setFileLength(fetcher.getFileLen());
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/main/java/org/apache/tajo/worker/TaskAttemptContext.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/java/org/apache/tajo/worker/TaskAttemptContext.java b/tajo-core/src/main/java/org/apache/tajo/worker/TaskAttemptContext.java
index db4af45..211f953 100644
--- a/tajo-core/src/main/java/org/apache/tajo/worker/TaskAttemptContext.java
+++ b/tajo-core/src/main/java/org/apache/tajo/worker/TaskAttemptContext.java
@@ -50,7 +50,6 @@ import static org.apache.tajo.catalog.proto.CatalogProtos.FragmentProto;
*/
public class TaskAttemptContext {
private static final Log LOG = LogFactory.getLog(TaskAttemptContext.class);
- private final TajoConf conf;
private final Map<String, List<FragmentProto>> fragmentMap = Maps.newHashMap();
private TaskAttemptState state;
@@ -76,10 +75,9 @@ public class TaskAttemptContext {
/** a output volume for each partition */
private Map<Integer, Long> partitionOutputVolume;
- public TaskAttemptContext(TajoConf conf, QueryContext queryContext, final QueryUnitAttemptId queryId,
+ public TaskAttemptContext(final QueryContext queryContext, final QueryUnitAttemptId queryId,
final FragmentProto[] fragments,
final Path workDir) {
- this.conf = conf;
this.queryContext = queryContext;
this.queryId = queryId;
@@ -104,15 +102,15 @@ public class TaskAttemptContext {
}
@VisibleForTesting
- public TaskAttemptContext(TajoConf conf, QueryContext queryContext, final QueryUnitAttemptId queryId,
+ public TaskAttemptContext(final QueryContext queryContext, final QueryUnitAttemptId queryId,
final Fragment [] fragments, final Path workDir) {
- this(conf, queryContext, queryId, FragmentConvertor.toFragmentProtoArray(fragments), workDir);
+ this(queryContext, queryId, FragmentConvertor.toFragmentProtoArray(fragments), workDir);
}
public TajoConf getConf() {
- return this.conf;
+ return queryContext.getConf();
}
-
+
public TaskAttemptState getState() {
return this.state;
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/main/resources/webapps/worker/querydetail.jsp
----------------------------------------------------------------------
diff --git a/tajo-core/src/main/resources/webapps/worker/querydetail.jsp b/tajo-core/src/main/resources/webapps/worker/querydetail.jsp
index c0bee9b..3c40e99 100644
--- a/tajo-core/src/main/resources/webapps/worker/querydetail.jsp
+++ b/tajo-core/src/main/resources/webapps/worker/querydetail.jsp
@@ -29,6 +29,8 @@
<%@ page import="org.apache.tajo.worker.TajoWorker" %>
<%@ page import="java.text.SimpleDateFormat" %>
<%@ page import="java.util.List" %>
+<%@ page import="java.util.Map" %>
+<%@ page import="org.apache.tajo.SessionVars" %>
<%
QueryId queryId = TajoIdUtils.parseQueryId(request.getParameter("queryId"));
@@ -93,6 +95,14 @@ for(SubQuery eachSubQuery: subQueries) {
%>
</table>
<p/>
+ <h3>Applied Session Variables</h3>
+ <table width="100%" border="1" class="border_table">
+ <%for(Map.Entry<String,String> entry: query.getPlan().getContext().getAllKeyValus().entrySet()) {
+ if (SessionVars.exists(entry.getKey()) && SessionVars.isPublic(SessionVars.get(entry.getKey()))) {
+ %> <tr><td width="200"><%=entry.getKey()%></td><td><%=entry.getValue()%></td> <%
+ }
+ } %>
+ </table>
<hr/>
<h3>Logical Plan</h3>
<pre style="white-space:pre-wrap;"><%=query.getPlan().getLogicalPlan().toString()%></pre>
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java b/tajo-core/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java
index 84522e1..271ba70 100644
--- a/tajo-core/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java
+++ b/tajo-core/src/test/java/org/apache/tajo/LocalTajoTestingUtility.java
@@ -31,6 +31,7 @@ import org.apache.tajo.catalog.statistics.TableStats;
import org.apache.tajo.client.TajoClient;
import org.apache.tajo.conf.TajoConf;
import org.apache.tajo.engine.planner.global.MasterPlan;
+import org.apache.tajo.engine.query.QueryContext;
import org.apache.tajo.master.session.Session;
import org.apache.tajo.util.KeyValueSet;
import org.apache.tajo.util.TajoIdUtils;
@@ -69,6 +70,10 @@ public class LocalTajoTestingUtility {
return new Session(UUID.randomUUID().toString(), dummyUserInfo.getUserName(), TajoConstants.DEFAULT_DATABASE_NAME);
}
+ public static QueryContext createDummyContext(TajoConf conf) {
+ return new QueryContext(conf, createDummySession());
+ }
+
/**
* for test
* @return The generated QueryId
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java b/tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java
index 9d15732..8cd1bff 100644
--- a/tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java
+++ b/tajo-core/src/test/java/org/apache/tajo/QueryTestCaseBase.java
@@ -214,7 +214,7 @@ public class QueryTestCaseBase {
} catch (ServiceException e) {
e.printStackTrace();
}
- testingCluster.setAllTajoDaemonConfValue(TajoConf.ConfVars.DIST_QUERY_BROADCAST_JOIN_AUTO.varname, "false");
+ testingCluster.setAllTajoDaemonConfValue(TajoConf.ConfVars.$TEST_BROADCAST_JOIN_ENABLED.varname, "false");
}
protected TajoClient getClient() {
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/test/java/org/apache/tajo/TpchTestBase.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/TpchTestBase.java b/tajo-core/src/test/java/org/apache/tajo/TpchTestBase.java
index 5ed8821..aacae36 100644
--- a/tajo-core/src/test/java/org/apache/tajo/TpchTestBase.java
+++ b/tajo-core/src/test/java/org/apache/tajo/TpchTestBase.java
@@ -91,7 +91,7 @@ public class TpchTestBase {
private void setUp() throws Exception {
util = new LocalTajoTestingUtility();
KeyValueSet opt = new KeyValueSet();
- opt.put(StorageConstants.CSVFILE_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
+ opt.set(StorageConstants.CSVFILE_DELIMITER, StorageConstants.DEFAULT_FIELD_DELIMITER);
util.setup(names, paths, schemas, opt);
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/test/java/org/apache/tajo/cli/TestDefaultCliOutputFormatter.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/cli/TestDefaultCliOutputFormatter.java b/tajo-core/src/test/java/org/apache/tajo/cli/TestDefaultCliOutputFormatter.java
index e13eeef..bd2b4e1 100644
--- a/tajo-core/src/test/java/org/apache/tajo/cli/TestDefaultCliOutputFormatter.java
+++ b/tajo-core/src/test/java/org/apache/tajo/cli/TestDefaultCliOutputFormatter.java
@@ -18,6 +18,9 @@
package org.apache.tajo.cli;
+import org.apache.hadoop.fs.Path;
+import org.apache.tajo.TajoTestingCluster;
+import org.apache.tajo.TpchTestBase;
import org.apache.tajo.catalog.TableDesc;
import org.apache.tajo.catalog.statistics.TableStats;
import org.apache.tajo.common.TajoDataTypes;
@@ -27,10 +30,14 @@ import org.apache.tajo.datum.Int4Datum;
import org.apache.tajo.datum.TextDatum;
import org.apache.tajo.jdbc.MetaDataTuple;
import org.apache.tajo.jdbc.TajoMetaDataResultSet;
+import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
+import java.io.ByteArrayOutputStream;
import java.io.PrintWriter;
import java.io.StringWriter;
+import java.net.URL;
import java.sql.ResultSet;
import java.util.ArrayList;
import java.util.Arrays;
@@ -39,6 +46,38 @@ import java.util.List;
import static org.junit.Assert.assertEquals;
public class TestDefaultCliOutputFormatter {
+ protected static final TpchTestBase testBase;
+ protected static final TajoTestingCluster cluster;
+
+ /** the base path of result directories */
+ protected static final Path resultBasePath;
+ static {
+ testBase = TpchTestBase.getInstance();
+ cluster = testBase.getTestingCluster();
+ URL resultBaseURL = ClassLoader.getSystemResource("results");
+ resultBasePath = new Path(resultBaseURL.toString());
+ }
+
+ private TajoConf conf;
+ private TajoCli tajoCli;
+ private TajoCli.TajoCliContext cliContext;
+
+ @Before
+ public void setUp() throws Exception {
+ conf = cluster.getConfiguration();
+ ByteArrayOutputStream out = new ByteArrayOutputStream();
+ tajoCli = new TajoCli(conf, new String[]{}, System.in, out);
+ cliContext = tajoCli.getContext();
+ }
+
+ @After
+ public void tearDown() {
+ if (tajoCli != null) {
+ tajoCli.close();
+ }
+ }
+
+
@Test
public void testParseErrorMessage() {
String message = "java.sql.SQLException: ERROR: no such a table: table1";
@@ -65,9 +104,10 @@ public class TestDefaultCliOutputFormatter {
@Test
public void testPrintResultInsertStatement() throws Exception {
- TajoConf tajoConf = new TajoConf();
+
+
DefaultTajoCliOutputFormatter outputFormatter = new DefaultTajoCliOutputFormatter();
- outputFormatter.init(tajoConf);
+ outputFormatter.init(cliContext);
float responseTime = 10.1f;
long numBytes = 102;
@@ -89,9 +129,8 @@ public class TestDefaultCliOutputFormatter {
@Test
public void testPrintResultSelectStatement() throws Exception {
- TajoConf tajoConf = new TajoConf();
DefaultTajoCliOutputFormatter outputFormatter = new DefaultTajoCliOutputFormatter();
- outputFormatter.init(tajoConf);
+ outputFormatter.init(cliContext);
float responseTime = 10.1f;
long numBytes = 102;
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/test/java/org/apache/tajo/cli/TestTajoCli.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/cli/TestTajoCli.java b/tajo-core/src/test/java/org/apache/tajo/cli/TestTajoCli.java
index 0631b6e..5795f0c 100644
--- a/tajo-core/src/test/java/org/apache/tajo/cli/TestTajoCli.java
+++ b/tajo-core/src/test/java/org/apache/tajo/cli/TestTajoCli.java
@@ -23,15 +23,16 @@ import org.apache.commons.cli.CommandLineParser;
import org.apache.commons.cli.PosixParser;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
+import org.apache.tajo.ConfigKey;
+import org.apache.tajo.SessionVars;
import org.apache.tajo.TajoTestingCluster;
import org.apache.tajo.TpchTestBase;
import org.apache.tajo.client.QueryStatus;
import org.apache.tajo.conf.TajoConf;
-import org.apache.tajo.conf.TajoConf.ConfVars;
import org.apache.tajo.storage.StorageUtil;
import org.apache.tajo.util.FileUtil;
-import org.apache.tajo.util.NetUtils;
import org.junit.After;
+import org.junit.Before;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestName;
@@ -41,9 +42,7 @@ import java.io.File;
import java.io.PrintWriter;
import java.net.URL;
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNotNull;
-import static org.junit.Assert.assertTrue;
+import static org.junit.Assert.*;
public class TestTajoCli {
protected static final TpchTestBase testBase;
@@ -60,6 +59,7 @@ public class TestTajoCli {
private TajoCli tajoCli;
private Path currentResultPath;
+ private ByteArrayOutputStream out;
@Rule
public TestName name = new TestName();
@@ -69,6 +69,12 @@ public class TestTajoCli {
currentResultPath = new Path(resultBasePath, className);
}
+ @Before
+ public void setUp() throws Exception {
+ out = new ByteArrayOutputStream();
+ tajoCli = new TajoCli(cluster.getConfiguration(), new String[]{}, System.in, out);
+ }
+
@After
public void tearDown() {
if (tajoCli != null) {
@@ -76,6 +82,40 @@ public class TestTajoCli {
}
}
+ private static void setVar(TajoCli cli, ConfigKey key, String val) throws Exception {
+ cli.executeMetaCommand("\\set " + key.keyname() +" " + val);
+ }
+
+ private static void assertSessionVar(TajoCli cli, String key, String expectedVal) {
+ assertEquals(cli.getContext().getCliSideVar(key), expectedVal);
+ }
+
+ private void assertOutputResult(String actual) throws Exception {
+ assertOutputResult(name.getMethodName() + ".result", actual);
+ }
+
+ private void assertOutputResult(String expectedResultFile, String actual) throws Exception {
+ assertOutputResult(expectedResultFile, actual, null, null);
+ }
+
+ private void assertOutputResult(String expectedResultFile, String actual, String[] paramKeys, String[] paramValues)
+ throws Exception {
+ FileSystem fs = currentResultPath.getFileSystem(testBase.getTestingCluster().getConfiguration());
+ Path resultFile = StorageUtil.concatPath(currentResultPath, expectedResultFile);
+ assertTrue(resultFile.toString() + " existence check", fs.exists(resultFile));
+
+ String expectedResult = FileUtil.readTextFile(new File(resultFile.toUri()));
+
+ if (paramKeys != null) {
+ for (int i = 0; i < paramKeys.length; i++) {
+ if (i < paramValues.length) {
+ expectedResult = expectedResult.replace(paramKeys[i], paramValues[i]);
+ }
+ }
+ }
+ assertEquals(expectedResult.trim(), actual.trim());
+ }
+
@Test
public void testParseParam() throws Exception {
String[] args = new String[]{"-f", "test.sql", "--param", "test1=10", "--param", "test2=20"};
@@ -112,10 +152,9 @@ public class TestTajoCli {
assertEquals("tajo.executor.join.inner.in-memory-table-num=256", confValues[1]);
TajoConf tajoConf = TpchTestBase.getInstance().getTestingCluster().getConfiguration();
-
- tajoCli = new TajoCli(tajoConf, args, System.in, System.out);
- assertEquals("false", tajoCli.getContext().getConf().get("tajo.cli.print.pause"));
- assertEquals("256", tajoCli.getContext().getConf().get("tajo.executor.join.inner.in-memory-table-num"));
+ TajoCli testCli = new TajoCli(tajoConf, args, System.in, System.out);
+ assertEquals("false", testCli.getContext().get(SessionVars.CLI_PAGING_ENABLED));
+ assertEquals("256", testCli.getContext().getConf().get("tajo.executor.join.inner.in-memory-table-num"));
}
@Test
@@ -131,10 +170,7 @@ public class TestTajoCli {
@Test
public void testLocalQueryWithoutFrom() throws Exception {
String sql = "select 'abc', '123'; select substr('123456', 1,3);";
- TajoConf tajoConf = TpchTestBase.getInstance().getTestingCluster().getConfiguration();
- tajoConf.setVar(ConfVars.CLI_OUTPUT_FORMATTER_CLASS, TajoCliOutputTestFormatter.class.getName());
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- tajoCli = new TajoCli(tajoConf, new String[]{}, System.in, out);
+ setVar(tajoCli, SessionVars.CLI_FORMATTER_CLASS, TajoCliOutputTestFormatter.class.getName());
tajoCli.executeScript(sql);
String consoleResult = new String(out.toByteArray());
@@ -151,11 +187,7 @@ public class TestTajoCli {
databaseName = "TEST_CONNECTION_DATABASE";
}
String sql = "create database \"" + databaseName + "\";";
- TajoConf tajoConf = TpchTestBase.getInstance().getTestingCluster().getConfiguration();
- tajoConf.setVar(ConfVars.CLI_OUTPUT_FORMATTER_CLASS, TajoCliOutputTestFormatter.class.getName());
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- tajoCli = new TajoCli(tajoConf, new String[]{}, System.in, out);
tajoCli.executeScript(sql);
tajoCli.executeMetaCommand("\\c " + databaseName);
@@ -179,11 +211,7 @@ public class TestTajoCli {
String sql = "create table \"" + tableName + "\" (col1 int4, col2 int4);";
- TajoConf tajoConf = TpchTestBase.getInstance().getTestingCluster().getConfiguration();
- tajoConf.setVar(ConfVars.CLI_OUTPUT_FORMATTER_CLASS, TajoCliOutputTestFormatter.class.getName());
-
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- tajoCli = new TajoCli(tajoConf, new String[]{}, System.in, out);
+ setVar(tajoCli, SessionVars.CLI_FORMATTER_CLASS, TajoCliOutputTestFormatter.class.getName());
tajoCli.executeScript(sql);
tajoCli.executeMetaCommand("\\d " + tableName);
@@ -211,79 +239,51 @@ public class TestTajoCli {
" c_custkey,\n" +
" orders.o_orderkey;\n";
- TajoConf tajoConf = TpchTestBase.getInstance().getTestingCluster().getConfiguration();
- tajoConf.setVar(ConfVars.CLI_OUTPUT_FORMATTER_CLASS, TajoCliOutputTestFormatter.class.getName());
-
- tajoConf.setVar(ConfVars.CLI_NULL_CHAR, "");
-
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- tajoCli = new TajoCli(tajoConf, new String[]{}, System.in, out);
+ setVar(tajoCli, SessionVars.CLI_FORMATTER_CLASS, TajoCliOutputTestFormatter.class.getName());
tajoCli.executeScript(sql);
String consoleResult = new String(out.toByteArray());
assertOutputResult(consoleResult);
}
- @Test
- public void testSelectResultWithNullTrue() throws Exception {
+ private void verifySelectResultWithNullTrue() throws Exception {
String sql =
"select\n" +
- " c_custkey,\n" +
- " orders.o_orderkey,\n" +
- " orders.o_orderstatus \n" +
- "from\n" +
- " orders full outer join customer on c_custkey = o_orderkey\n" +
- "order by\n" +
- " c_custkey,\n" +
- " orders.o_orderkey;\n";
+ " c_custkey,\n" +
+ " orders.o_orderkey,\n" +
+ " orders.o_orderstatus \n" +
+ "from\n" +
+ " orders full outer join customer on c_custkey = o_orderkey\n" +
+ "order by\n" +
+ " c_custkey,\n" +
+ " orders.o_orderkey;\n";
- TajoConf tajoConf = TpchTestBase.getInstance().getTestingCluster().getConfiguration();
- tajoConf.setVar(ConfVars.CLI_OUTPUT_FORMATTER_CLASS, TajoCliOutputTestFormatter.class.getName());
- tajoConf.setVar(ConfVars.CLI_NULL_CHAR, "testnull");
+ setVar(tajoCli, SessionVars.CLI_FORMATTER_CLASS, TajoCliOutputTestFormatter.class.getName());
+ assertSessionVar(tajoCli, SessionVars.CLI_NULL_CHAR.keyname(), "testnull");
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- tajoCli = new TajoCli(tajoConf, new String[]{}, System.in, out);
tajoCli.executeScript(sql);
String consoleResult = new String(out.toByteArray());
assertOutputResult(consoleResult);
}
- private void assertOutputResult(String actual) throws Exception {
- assertOutputResult(name.getMethodName() + ".result", actual);
- }
-
- private void assertOutputResult(String expectedResultFile, String actual) throws Exception {
- assertOutputResult(expectedResultFile, actual, null, null);
+ @Test
+ public void testSelectResultWithNullTrueDeprecated() throws Exception {
+ setVar(tajoCli, TajoConf.ConfVars.$CLI_NULL_CHAR, "testnull");
+ verifySelectResultWithNullTrue();
}
- private void assertOutputResult(String expectedResultFile, String actual, String[] paramKeys, String[] paramValues)
- throws Exception {
- FileSystem fs = currentResultPath.getFileSystem(testBase.getTestingCluster().getConfiguration());
- Path resultFile = StorageUtil.concatPath(currentResultPath, expectedResultFile);
- assertTrue(resultFile.toString() + " existence check", fs.exists(resultFile));
-
- String expectedResult = FileUtil.readTextFile(new File(resultFile.toUri()));
-
- if (paramKeys != null) {
- for (int i = 0; i < paramKeys.length; i++) {
- if (i < paramValues.length) {
- expectedResult = expectedResult.replace(paramKeys[i], paramValues[i]);
- }
- }
- }
- assertEquals(expectedResult, actual);
+ @Test
+ public void testSelectResultWithNullTrue() throws Exception {
+ setVar(tajoCli, SessionVars.CLI_NULL_CHAR, "testnull");
+ verifySelectResultWithNullTrue();
}
- @Test
- public void testStopWhenError() throws Exception {
- TajoConf tajoConf = TpchTestBase.getInstance().getTestingCluster().getConfiguration();
- tajoConf.setVar(ConfVars.CLI_OUTPUT_FORMATTER_CLASS, TajoCliOutputTestFormatter.class.getName());
+ private void verifyStopWhenError() throws Exception {
+ setVar(tajoCli, SessionVars.CLI_FORMATTER_CLASS, TajoCliOutputTestFormatter.class.getName());
- ByteArrayOutputStream out = new ByteArrayOutputStream();
- tajoCli = new TajoCli(tajoConf, new String[]{}, System.in, out);
- tajoCli.executeMetaCommand("\\set tajo.cli.error.stop true");
+ assertSessionVar(tajoCli, SessionVars.ON_ERROR_STOP.keyname(), "true");
tajoCli.executeScript("select count(*) from lineitem; " +
"select count(*) from lineitem2; " +
@@ -296,20 +296,20 @@ public class TestTajoCli {
@Test
public void testGetConf() throws Exception {
TajoConf tajoConf = TpchTestBase.getInstance().getTestingCluster().getConfiguration();
- tajoConf.setVar(ConfVars.CLI_OUTPUT_FORMATTER_CLASS, TajoCliOutputTestFormatter.class.getName());
+ setVar(tajoCli, SessionVars.CLI_FORMATTER_CLASS, TajoCliOutputTestFormatter.class.getName());
ByteArrayOutputStream out = new ByteArrayOutputStream();
tajoCli = new TajoCli(tajoConf, new String[]{}, System.in, out);
tajoCli.executeMetaCommand("\\getconf tajo.rootdir");
String consoleResult = new String(out.toByteArray());
- assertEquals(consoleResult, tajoCli.getContext().getConf().getVar(ConfVars.ROOT_DIR) + "\n");
+ assertEquals(consoleResult, tajoCli.getContext().getConf().getVar(TajoConf.ConfVars.ROOT_DIR) + "\n");
}
@Test
public void testShowMasters() throws Exception {
TajoConf tajoConf = TpchTestBase.getInstance().getTestingCluster().getConfiguration();
- tajoConf.setVar(ConfVars.CLI_OUTPUT_FORMATTER_CLASS, TajoCliOutputTestFormatter.class.getName());
+ setVar(tajoCli, SessionVars.CLI_FORMATTER_CLASS, TajoCliOutputTestFormatter.class.getName());
ByteArrayOutputStream out = new ByteArrayOutputStream();
tajoCli = new TajoCli(tajoConf, new String[]{}, System.in, out);
@@ -317,12 +317,30 @@ public class TestTajoCli {
String consoleResult = new String(out.toByteArray());
- String masterAddress = tajoCli.getContext().getConf().getVar(ConfVars.TAJO_MASTER_UMBILICAL_RPC_ADDRESS);
+ String masterAddress = tajoCli.getContext().getConf().getVar(TajoConf.ConfVars.TAJO_MASTER_UMBILICAL_RPC_ADDRESS);
String host = masterAddress.split(":")[0];
assertEquals(consoleResult, host + "\n");
}
+ @Test
+ public void testStopWhenErrorDeprecated() throws Exception {
+ tajoCli.executeMetaCommand("\\set tajo.cli.error.stop true");
+ verifyStopWhenError();
+ }
+
+ @Test
+ public void testStopWhenError() throws Exception {
+ tajoCli.executeMetaCommand("\\set ON_ERROR_STOP true");
+ verifyStopWhenError();
+ }
+
+ @Test
+ public void testHelpSessionVars() throws Exception {
+ tajoCli.executeMetaCommand("\\help set");
+ assertOutputResult(new String(out.toByteArray()));
+ }
+
public static class TajoCliOutputTestFormatter extends DefaultTajoCliOutputFormatter {
@Override
protected String getResponseTimeReadable(float responseTime) {
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/test/java/org/apache/tajo/client/TestTajoClient.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/client/TestTajoClient.java b/tajo-core/src/test/java/org/apache/tajo/client/TestTajoClient.java
index 732f02c..3d6ed2b 100644
--- a/tajo-core/src/test/java/org/apache/tajo/client/TestTajoClient.java
+++ b/tajo-core/src/test/java/org/apache/tajo/client/TestTajoClient.java
@@ -33,7 +33,6 @@ import org.apache.tajo.catalog.FunctionDesc;
import org.apache.tajo.catalog.TableDesc;
import org.apache.tajo.catalog.proto.CatalogProtos;
import org.apache.tajo.conf.TajoConf;
-import org.apache.tajo.conf.TajoConf.ConfVars;
import org.apache.tajo.ipc.ClientProtos;
import org.apache.tajo.jdbc.TajoResultSet;
import org.apache.tajo.storage.StorageConstants;
@@ -176,7 +175,8 @@ public class TestTajoClient {
String key = prefixName + i;
String val = prefixValue + i;
- assertEquals(i, client.getAllSessionVariables().size());
+ // Basically,
+ assertEquals(i + 4, client.getAllSessionVariables().size());
assertFalse(client.getAllSessionVariables().containsKey(key));
assertFalse(client.existSessionVariable(key));
@@ -184,7 +184,7 @@ public class TestTajoClient {
map.put(key, val);
client.updateSessionVariables(map);
- assertEquals(i + 1, client.getAllSessionVariables().size());
+ assertEquals(i + 5, client.getAllSessionVariables().size());
assertTrue(client.getAllSessionVariables().containsKey(key));
assertTrue(client.existSessionVariable(key));
}
@@ -690,7 +690,7 @@ public class TestTajoClient {
TajoConf tajoConf = TpchTestBase.getInstance().getTestingCluster().getConfiguration();
Map<String, String> variables = new HashMap<String, String>();
- variables.put(ConfVars.CSVFILE_NULL.varname, "\\\\T");
+ variables.put(SessionVars.NULL_CHAR.keyname(), "\\\\T");
client.updateSessionVariables(variables);
TajoResultSet res = (TajoResultSet)client.executeQueryAndGetResult(sql);
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java b/tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
index ad80ddf..7f9436a 100644
--- a/tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
+++ b/tajo-core/src/test/java/org/apache/tajo/engine/eval/ExprTestBase.java
@@ -32,6 +32,7 @@ import org.apache.tajo.datum.*;
import org.apache.tajo.engine.json.CoreGsonHelper;
import org.apache.tajo.engine.parser.SQLAnalyzer;
import org.apache.tajo.engine.planner.*;
+import org.apache.tajo.engine.query.QueryContext;
import org.apache.tajo.engine.utils.SchemaUtil;
import org.apache.tajo.master.TajoMaster;
import org.apache.tajo.master.session.Session;
@@ -107,22 +108,24 @@ public class ExprTestBase {
InvalidStatementException {
Session session = LocalTajoTestingUtility.createDummySession();
+ QueryContext context = new QueryContext(util.getConfiguration(), session);
+
List<ParsedResult> parsedResults = SimpleParser.parseScript(query);
if (parsedResults.size() > 1) {
throw new RuntimeException("this query includes two or more statements.");
}
Expr expr = analyzer.parse(parsedResults.get(0).getHistoryStatement());
VerificationState state = new VerificationState();
- preLogicalPlanVerifier.verify(session, state, expr);
+ preLogicalPlanVerifier.verify(context, state, expr);
if (state.getErrorMessages().size() > 0) {
if (!condition && state.getErrorMessages().size() > 0) {
throw new PlanningException(state.getErrorMessages().get(0));
}
assertFalse(state.getErrorMessages().get(0), true);
}
- LogicalPlan plan = planner.createPlan(session, expr, true);
+ LogicalPlan plan = planner.createPlan(context, expr, true);
optimizer.optimize(plan);
- annotatedPlanVerifier.verify(session, state, plan);
+ annotatedPlanVerifier.verify(context, state, plan);
if (state.getErrorMessages().size() > 0) {
assertFalse(state.getErrorMessages().get(0), true);
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java b/tajo-core/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java
index 7bb619d..35f5aa2 100644
--- a/tajo-core/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java
+++ b/tajo-core/src/test/java/org/apache/tajo/engine/eval/TestEvalTreeUtil.java
@@ -40,9 +40,9 @@ import org.apache.tajo.engine.planner.Target;
import org.apache.tajo.engine.planner.logical.GroupbyNode;
import org.apache.tajo.engine.planner.logical.NodeType;
import org.apache.tajo.engine.planner.nameresolver.NameResolvingMode;
+import org.apache.tajo.engine.query.QueryContext;
import org.apache.tajo.exception.InternalException;
import org.apache.tajo.master.TajoMaster;
-import org.apache.tajo.master.session.Session;
import org.apache.tajo.storage.Tuple;
import org.apache.tajo.util.CommonTestingUtil;
import org.junit.AfterClass;
@@ -67,7 +67,7 @@ public class TestEvalTreeUtil {
static EvalNode expr3;
static SQLAnalyzer analyzer;
static LogicalPlanner planner;
- static Session session = LocalTajoTestingUtility.createDummySession();
+ static QueryContext defaultContext;
public static class TestSum extends GeneralFunction {
private Integer x;
@@ -123,6 +123,8 @@ public class TestEvalTreeUtil {
"select name, score, age from people where test_sum(score * age, 50)", // 2
};
+ defaultContext = LocalTajoTestingUtility.createDummyContext(util.getConfiguration());
+
expr1 = getRootSelection(QUERIES[0]);
expr2 = getRootSelection(QUERIES[1]);
expr3 = getRootSelection(QUERIES[2]);
@@ -137,7 +139,7 @@ public class TestEvalTreeUtil {
Expr expr = analyzer.parse(query);
LogicalPlan plan = null;
try {
- plan = planner.createPlan(session, expr);
+ plan = planner.createPlan(defaultContext, expr);
} catch (PlanningException e) {
e.printStackTrace();
}
@@ -149,7 +151,7 @@ public class TestEvalTreeUtil {
Expr block = analyzer.parse(query);
LogicalPlan plan = null;
try {
- plan = planner.createPlan(session, block);
+ plan = planner.createPlan(defaultContext, block);
} catch (PlanningException e) {
e.printStackTrace();
}
@@ -225,7 +227,7 @@ public class TestEvalTreeUtil {
@Test
public final void testGetContainExprs() throws CloneNotSupportedException, PlanningException {
Expr expr = analyzer.parse(QUERIES[1]);
- LogicalPlan plan = planner.createPlan(session, expr, true);
+ LogicalPlan plan = planner.createPlan(defaultContext, expr, true);
Target [] targets = plan.getRootBlock().getRawTargets();
Column col1 = new Column("default.people.score", TajoDataTypes.Type.INT4);
Collection<EvalNode> exprs =
@@ -303,7 +305,7 @@ public class TestEvalTreeUtil {
assertTrue(7.0d == node.eval(null, null).asFloat8());
Expr expr = analyzer.parse(QUERIES[1]);
- LogicalPlan plan = planner.createPlan(session, expr, true);
+ LogicalPlan plan = planner.createPlan(defaultContext, expr, true);
targets = plan.getRootBlock().getRawTargets();
Column col1 = new Column("default.people.score", TajoDataTypes.Type.INT4);
Collection<EvalNode> exprs =
@@ -343,7 +345,7 @@ public class TestEvalTreeUtil {
public final void testFindDistinctAggFunctions() throws PlanningException {
String query = "select sum(score) + max(age) from people";
Expr expr = analyzer.parse(query);
- LogicalPlan plan = planner.createPlan(session, expr);
+ LogicalPlan plan = planner.createPlan(defaultContext, expr);
GroupbyNode groupByNode = plan.getRootBlock().getNode(NodeType.GROUP_BY);
EvalNode [] aggEvals = groupByNode.getAggFunctions();
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java b/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java
index 773382d..82e7f21 100644
--- a/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java
+++ b/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalOptimizer.java
@@ -29,8 +29,8 @@ import org.apache.tajo.common.TajoDataTypes.Type;
import org.apache.tajo.engine.function.builtin.SumInt;
import org.apache.tajo.engine.parser.SQLAnalyzer;
import org.apache.tajo.engine.planner.logical.*;
+import org.apache.tajo.engine.query.QueryContext;
import org.apache.tajo.master.TajoMaster;
-import org.apache.tajo.master.session.Session;
import org.apache.tajo.util.CommonTestingUtil;
import org.apache.tajo.util.KeyValueSet;
import org.junit.AfterClass;
@@ -48,7 +48,7 @@ public class TestLogicalOptimizer {
private static SQLAnalyzer sqlAnalyzer;
private static LogicalPlanner planner;
private static LogicalOptimizer optimizer;
- private static Session session = LocalTajoTestingUtility.createDummySession();
+ private static QueryContext defaultContext;
@BeforeClass
public static void setUp() throws Exception {
@@ -101,6 +101,8 @@ public class TestLogicalOptimizer {
sqlAnalyzer = new SQLAnalyzer();
planner = new LogicalPlanner(catalog);
optimizer = new LogicalOptimizer(util.getConfiguration());
+
+ defaultContext = LocalTajoTestingUtility.createDummyContext(util.getConfiguration());
}
@AfterClass
@@ -121,7 +123,7 @@ public class TestLogicalOptimizer {
public final void testProjectionPushWithNaturalJoin() throws PlanningException, CloneNotSupportedException {
// two relations
Expr expr = sqlAnalyzer.parse(QUERIES[4]);
- LogicalPlan newPlan = planner.createPlan(session, expr);
+ LogicalPlan newPlan = planner.createPlan(defaultContext, expr);
LogicalNode plan = newPlan.getRootBlock().getRoot();
assertEquals(NodeType.ROOT, plan.getType());
LogicalRootNode root = (LogicalRootNode) plan;
@@ -148,7 +150,7 @@ public class TestLogicalOptimizer {
public final void testProjectionPushWithInnerJoin() throws PlanningException {
// two relations
Expr expr = sqlAnalyzer.parse(QUERIES[5]);
- LogicalPlan newPlan = planner.createPlan(session, expr);
+ LogicalPlan newPlan = planner.createPlan(defaultContext, expr);
optimizer.optimize(newPlan);
}
@@ -156,7 +158,7 @@ public class TestLogicalOptimizer {
public final void testProjectionPush() throws CloneNotSupportedException, PlanningException {
// two relations
Expr expr = sqlAnalyzer.parse(QUERIES[2]);
- LogicalPlan newPlan = planner.createPlan(session, expr);
+ LogicalPlan newPlan = planner.createPlan(defaultContext, expr);
LogicalNode plan = newPlan.getRootBlock().getRoot();
assertEquals(NodeType.ROOT, plan.getType());
@@ -178,7 +180,7 @@ public class TestLogicalOptimizer {
@Test
public final void testOptimizeWithGroupBy() throws CloneNotSupportedException, PlanningException {
Expr expr = sqlAnalyzer.parse(QUERIES[3]);
- LogicalPlan newPlan = planner.createPlan(session, expr);
+ LogicalPlan newPlan = planner.createPlan(defaultContext, expr);
LogicalNode plan = newPlan.getRootBlock().getRoot();
assertEquals(NodeType.ROOT, plan.getType());
@@ -205,7 +207,7 @@ public class TestLogicalOptimizer {
public final void testPushable() throws CloneNotSupportedException, PlanningException {
// two relations
Expr expr = sqlAnalyzer.parse(QUERIES[0]);
- LogicalPlan newPlan = planner.createPlan(session, expr);
+ LogicalPlan newPlan = planner.createPlan(defaultContext, expr);
LogicalNode plan = newPlan.getRootBlock().getRoot();
assertEquals(NodeType.ROOT, plan.getType());
@@ -236,7 +238,7 @@ public class TestLogicalOptimizer {
// Scan Pushable Test
expr = sqlAnalyzer.parse(QUERIES[1]);
- newPlan = planner.createPlan(session, expr);
+ newPlan = planner.createPlan(defaultContext, expr);
plan = newPlan.getRootBlock().getRoot();
assertEquals(NodeType.ROOT, plan.getType());
@@ -258,7 +260,7 @@ public class TestLogicalOptimizer {
@Test
public final void testInsertInto() throws CloneNotSupportedException, PlanningException {
Expr expr = sqlAnalyzer.parse(TestLogicalPlanner.insertStatements[0]);
- LogicalPlan newPlan = planner.createPlan(session, expr);
+ LogicalPlan newPlan = planner.createPlan(defaultContext, expr);
optimizer.optimize(newPlan);
}
}
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java b/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java
index 2f1e0f9..934beef 100644
--- a/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java
+++ b/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlan.java
@@ -18,7 +18,6 @@
package org.apache.tajo.engine.planner;
-import org.apache.tajo.LocalTajoTestingUtility;
import org.apache.tajo.TajoTestingCluster;
import org.apache.tajo.benchmark.TPCH;
import org.apache.tajo.catalog.*;
@@ -88,7 +87,7 @@ public class TestLogicalPlan {
@Test
public final void testQueryBlockGraph() {
- LogicalPlan plan = new LogicalPlan(LocalTajoTestingUtility.createDummySession().getCurrentDatabase(), planner);
+ LogicalPlan plan = new LogicalPlan(planner);
LogicalPlan.QueryBlock root = plan.newAndGetBlock(LogicalPlan.ROOT_BLOCK);
LogicalPlan.QueryBlock new1 = plan.newQueryBlock();
LogicalPlan.QueryBlock new2 = plan.newQueryBlock();
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java b/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
index 6d0f7e0..73f72be 100644
--- a/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
+++ b/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestLogicalPlanner.java
@@ -37,6 +37,7 @@ import org.apache.tajo.engine.function.builtin.SumInt;
import org.apache.tajo.engine.json.CoreGsonHelper;
import org.apache.tajo.engine.parser.SQLAnalyzer;
import org.apache.tajo.engine.planner.logical.*;
+import org.apache.tajo.engine.query.QueryContext;
import org.apache.tajo.master.TajoMaster;
import org.apache.tajo.master.session.Session;
import org.apache.tajo.util.CommonTestingUtil;
@@ -154,8 +155,10 @@ public class TestLogicalPlanner {
@Test
public final void testSingleRelation() throws CloneNotSupportedException, PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr expr = sqlAnalyzer.parse(QUERIES[0]);
- LogicalPlan planNode = planner.createPlan(session, expr);
+ LogicalPlan planNode = planner.createPlan(qc, expr);
LogicalNode plan = planNode.getRootBlock().getRoot();
assertEquals(NodeType.ROOT, plan.getType());
TestLogicalNode.testCloneLogicalNode(plan);
@@ -186,9 +189,11 @@ public class TestLogicalPlanner {
@Test
public final void testImplicityJoinPlan() throws CloneNotSupportedException, PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
// two relations
Expr expr = sqlAnalyzer.parse(QUERIES[1]);
- LogicalPlan planNode = planner.createPlan(session, expr);
+ LogicalPlan planNode = planner.createPlan(qc, expr);
LogicalNode plan = planNode.getRootBlock().getRoot();
assertEquals(NodeType.ROOT, plan.getType());
@@ -221,7 +226,7 @@ public class TestLogicalPlanner {
// three relations
expr = sqlAnalyzer.parse(QUERIES[2]);
- plan = planner.createPlan(session, expr).getRootBlock().getRoot();
+ plan = planner.createPlan(qc, expr).getRootBlock().getRoot();
testJsonSerDerObject(plan);
TestLogicalNode.testCloneLogicalNode(plan);
@@ -273,9 +278,10 @@ public class TestLogicalPlanner {
@Test
public final void testNaturalJoinPlan() throws PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
// two relations
Expr context = sqlAnalyzer.parse(JOINS[0]);
- LogicalNode plan = planner.createPlan(session, context).getRootBlock().getRoot();
+ LogicalNode plan = planner.createPlan(qc, context).getRootBlock().getRoot();
testJsonSerDerObject(plan);
assertSchema(expectedJoinSchema, plan.getOutSchema());
@@ -304,9 +310,10 @@ public class TestLogicalPlanner {
@Test
public final void testInnerJoinPlan() throws PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
// two relations
Expr expr = sqlAnalyzer.parse(JOINS[1]);
- LogicalPlan plan = planner.createPlan(session, expr);
+ LogicalPlan plan = planner.createPlan(qc, expr);
LogicalNode root = plan.getRootBlock().getRoot();
testJsonSerDerObject(root);
assertSchema(expectedJoinSchema, root.getOutSchema());
@@ -336,9 +343,11 @@ public class TestLogicalPlanner {
@Test
public final void testOuterJoinPlan() throws PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
// two relations
Expr expr = sqlAnalyzer.parse(JOINS[2]);
- LogicalNode plan = planner.createPlan(session, expr).getRootBlock().getRoot();
+ LogicalNode plan = planner.createPlan(qc, expr).getRootBlock().getRoot();
testJsonSerDerObject(plan);
assertSchema(expectedJoinSchema, plan.getOutSchema());
@@ -369,9 +378,11 @@ public class TestLogicalPlanner {
@Test
public final void testGroupby() throws CloneNotSupportedException, PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
// without 'having clause'
Expr context = sqlAnalyzer.parse(QUERIES[7]);
- LogicalNode plan = planner.createPlan(session, context).getRootBlock().getRoot();
+ LogicalNode plan = planner.createPlan(qc, context).getRootBlock().getRoot();
assertEquals(NodeType.ROOT, plan.getType());
LogicalRootNode root = (LogicalRootNode) plan;
@@ -380,7 +391,7 @@ public class TestLogicalPlanner {
// with having clause
context = sqlAnalyzer.parse(QUERIES[3]);
- plan = planner.createPlan(session, context).getRootBlock().getRoot();
+ plan = planner.createPlan(qc, context).getRootBlock().getRoot();
TestLogicalNode.testCloneLogicalNode(plan);
assertEquals(NodeType.ROOT, plan.getType());
@@ -411,7 +422,8 @@ public class TestLogicalPlanner {
public final void testMultipleJoin() throws IOException, PlanningException {
Expr expr = sqlAnalyzer.parse(
FileUtil.readTextFile(new File("src/test/resources/queries/TestJoinQuery/testTPCHQ2Join.sql")));
- LogicalNode plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(), expr).getRootBlock().getRoot();
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+ LogicalNode plan = planner.createPlan(qc, expr).getRootBlock().getRoot();
testJsonSerDerObject(plan);
Schema expected = tpch.getOutSchema("q2");
assertSchema(expected, plan.getOutSchema());
@@ -448,8 +460,8 @@ public class TestLogicalPlanner {
qualMap.put(entry.getKey(), Boolean.TRUE);
}
} else if (rightType == EvalType.ROW_CONSTANT) {
- RowConstantEval rightField = (RowConstantEval)qual.getRightExpr();
- RowConstantEval rightJoinField = (RowConstantEval)entry.getKey().getRightExpr();
+ RowConstantEval rightField = qual.getRightExpr();
+ RowConstantEval rightJoinField = entry.getKey().getRightExpr();
if (leftJoinField.getColumnRef().getQualifiedName().equals(leftField.getColumnRef().getQualifiedName())) {
assertEquals(rightField.getValues().length, rightJoinField.getValues().length);
@@ -469,8 +481,9 @@ public class TestLogicalPlanner {
Expr expr = sqlAnalyzer.parse(
FileUtil.readTextFile(new File
("src/test/resources/queries/TestJoinQuery/testJoinWithMultipleJoinQual1.sql")));
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(),expr);
+ LogicalPlan plan = planner.createPlan(qc, expr);
LogicalNode node = plan.getRootBlock().getRoot();
testJsonSerDerObject(node);
@@ -510,8 +523,9 @@ public class TestLogicalPlanner {
Expr expr = sqlAnalyzer.parse(
FileUtil.readTextFile(new File
("src/test/resources/queries/TestJoinQuery/testJoinWithMultipleJoinQual2.sql")));
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(),expr);
+ LogicalPlan plan = planner.createPlan(qc,expr);
LogicalNode node = plan.getRootBlock().getRoot();
testJsonSerDerObject(node);
@@ -550,8 +564,9 @@ public class TestLogicalPlanner {
Expr expr = sqlAnalyzer.parse(
FileUtil.readTextFile(new File
("src/test/resources/queries/TestJoinQuery/testJoinWithMultipleJoinQual3.sql")));
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(),expr);
+ LogicalPlan plan = planner.createPlan(qc, expr);
LogicalNode node = plan.getRootBlock().getRoot();
testJsonSerDerObject(node);
@@ -596,8 +611,9 @@ public class TestLogicalPlanner {
Expr expr = sqlAnalyzer.parse(
FileUtil.readTextFile(new File
("src/test/resources/queries/TestJoinQuery/testJoinWithMultipleJoinQual4.sql")));
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(),expr);
+ LogicalPlan plan = planner.createPlan(qc, expr);
LogicalNode node = plan.getRootBlock().getRoot();
testJsonSerDerObject(node);
@@ -683,8 +699,11 @@ public class TestLogicalPlanner {
@Test
public final void testStoreTable() throws CloneNotSupportedException, PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr context = sqlAnalyzer.parse(QUERIES[8]);
- LogicalNode plan = planner.createPlan(session, context).getRootBlock().getRoot();
+
+ LogicalNode plan = planner.createPlan(qc, context).getRootBlock().getRoot();
TestLogicalNode.testCloneLogicalNode(plan);
testJsonSerDerObject(plan);
@@ -698,8 +717,11 @@ public class TestLogicalPlanner {
@Test
public final void testOrderBy() throws CloneNotSupportedException, PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr expr = sqlAnalyzer.parse(QUERIES[4]);
- LogicalNode plan = planner.createPlan(session, expr).getRootBlock().getRoot();
+
+ LogicalNode plan = planner.createPlan(qc, expr).getRootBlock().getRoot();
testJsonSerDerObject(plan);
TestLogicalNode.testCloneLogicalNode(plan);
@@ -725,8 +747,11 @@ public class TestLogicalPlanner {
@Test
public final void testLimit() throws CloneNotSupportedException, PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr expr = sqlAnalyzer.parse(QUERIES[12]);
- LogicalNode plan = planner.createPlan(session, expr).getRootBlock().getRoot();
+
+ LogicalNode plan = planner.createPlan(qc, expr).getRootBlock().getRoot();
testJsonSerDerObject(plan);
TestLogicalNode.testCloneLogicalNode(plan);
@@ -744,8 +769,10 @@ public class TestLogicalPlanner {
@Test
public final void testSPJPush() throws CloneNotSupportedException, PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr expr = sqlAnalyzer.parse(QUERIES[5]);
- LogicalNode plan = planner.createPlan(session, expr).getRootBlock().getRoot();
+ LogicalNode plan = planner.createPlan(qc, expr).getRootBlock().getRoot();
testJsonSerDerObject(plan);
TestLogicalNode.testCloneLogicalNode(plan);
@@ -764,16 +791,20 @@ public class TestLogicalPlanner {
@Test
public final void testSPJ() throws CloneNotSupportedException, PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr expr = sqlAnalyzer.parse(QUERIES[6]);
- LogicalNode plan = planner.createPlan(session, expr).getRootBlock().getRoot();
+ LogicalNode plan = planner.createPlan(qc, expr).getRootBlock().getRoot();
testJsonSerDerObject(plan);
TestLogicalNode.testCloneLogicalNode(plan);
}
@Test
public final void testJson() throws PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr expr = sqlAnalyzer.parse(QUERIES[9]);
- LogicalNode plan = planner.createPlan(session, expr).getRootBlock().getRoot();
+ LogicalNode plan = planner.createPlan(qc, expr).getRootBlock().getRoot();
testJsonSerDerObject(plan);
String json = plan.toJson();
@@ -792,9 +823,11 @@ public class TestLogicalPlanner {
@Test
public final void testVisitor() throws PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
// two relations
Expr expr = sqlAnalyzer.parse(QUERIES[1]);
- LogicalNode plan = planner.createPlan(session, expr).getRootBlock().getRoot();
+ LogicalNode plan = planner.createPlan(qc, expr).getRootBlock().getRoot();
TestVisitor vis = new TestVisitor();
plan.postOrder(vis);
@@ -817,8 +850,10 @@ public class TestLogicalPlanner {
@Test
public final void testExprNode() throws PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr expr = sqlAnalyzer.parse(QUERIES[10]);
- LogicalPlan rootNode = planner.createPlan(session, expr);
+ LogicalPlan rootNode = planner.createPlan(qc, expr);
LogicalNode plan = rootNode.getRootBlock().getRoot();
testJsonSerDerObject(plan);
assertEquals(NodeType.ROOT, plan.getType());
@@ -837,8 +872,10 @@ public class TestLogicalPlanner {
@Test
public final void testAsterisk() throws CloneNotSupportedException, PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr expr = sqlAnalyzer.parse(QUERIES[13]);
- LogicalPlan planNode = planner.createPlan(session, expr);
+ LogicalPlan planNode = planner.createPlan(qc, expr);
LogicalNode plan = planNode.getRootBlock().getRoot();
assertEquals(NodeType.ROOT, plan.getType());
TestLogicalNode.testCloneLogicalNode(plan);
@@ -865,8 +902,10 @@ public class TestLogicalPlanner {
@Test
public final void testAlias1() throws PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr expr = sqlAnalyzer.parse(ALIAS[0]);
- LogicalNode plan = planner.createPlan(session, expr).getRootBlock().getRoot();
+ LogicalNode plan = planner.createPlan(qc, expr).getRootBlock().getRoot();
LogicalRootNode root = (LogicalRootNode) plan;
testJsonSerDerObject(root);
@@ -878,7 +917,7 @@ public class TestLogicalPlanner {
assertEquals("total", col.getSimpleName());
expr = sqlAnalyzer.parse(ALIAS[1]);
- plan = planner.createPlan(session, expr).getRootBlock().getRoot();
+ plan = planner.createPlan(qc, expr).getRootBlock().getRoot();
root = (LogicalRootNode) plan;
finalSchema = root.getOutSchema();
@@ -891,8 +930,10 @@ public class TestLogicalPlanner {
@Test
public final void testAlias2() throws PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr expr = sqlAnalyzer.parse(ALIAS[1]);
- LogicalNode plan = planner.createPlan(session, expr).getRootBlock().getRoot();
+ LogicalNode plan = planner.createPlan(qc, expr).getRootBlock().getRoot();
LogicalRootNode root = (LogicalRootNode) plan;
testJsonSerDerObject(root);
@@ -910,8 +951,10 @@ public class TestLogicalPlanner {
@Test
public final void testCreateTableDef() throws PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr expr = sqlAnalyzer.parse(CREATE_TABLE[0]);
- LogicalNode plan = planner.createPlan(session, expr).getRootBlock().getRoot();
+ LogicalNode plan = planner.createPlan(qc, expr).getRootBlock().getRoot();
LogicalRootNode root = (LogicalRootNode) plan;
testJsonSerDerObject(root);
assertEquals(NodeType.CREATE_TABLE, root.getChild().getType());
@@ -994,8 +1037,10 @@ public class TestLogicalPlanner {
@Test
public final void testSetPlan() throws PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr expr = sqlAnalyzer.parse(setStatements[0]);
- LogicalNode plan = planner.createPlan(session, expr).getRootBlock().getRoot();
+ LogicalNode plan = planner.createPlan(qc, expr).getRootBlock().getRoot();
testJsonSerDerObject(plan);
assertEquals(NodeType.ROOT, plan.getType());
LogicalRootNode root = (LogicalRootNode) plan;
@@ -1013,8 +1058,10 @@ public class TestLogicalPlanner {
@Test
public void testSetQualifier() throws PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr context = sqlAnalyzer.parse(setQualifiers[0]);
- LogicalNode plan = planner.createPlan(session, context).getRootBlock().getRoot();
+ LogicalNode plan = planner.createPlan(qc, context).getRootBlock().getRoot();
testJsonSerDerObject(plan);
assertEquals(NodeType.ROOT, plan.getType());
LogicalRootNode root = (LogicalRootNode) plan;
@@ -1023,7 +1070,7 @@ public class TestLogicalPlanner {
assertEquals(NodeType.SCAN, projectionNode.getChild().getType());
context = sqlAnalyzer.parse(setQualifiers[1]);
- plan = planner.createPlan(session, context).getRootBlock().getRoot();
+ plan = planner.createPlan(qc, context).getRootBlock().getRoot();
testJsonSerDerObject(plan);
assertEquals(NodeType.ROOT, plan.getType());
root = (LogicalRootNode) plan;
@@ -1032,7 +1079,7 @@ public class TestLogicalPlanner {
assertEquals(NodeType.GROUP_BY, projectionNode.getChild().getType());
context = sqlAnalyzer.parse(setQualifiers[2]);
- plan = planner.createPlan(session, context).getRootBlock().getRoot();
+ plan = planner.createPlan(qc, context).getRootBlock().getRoot();
testJsonSerDerObject(plan);
root = (LogicalRootNode) plan;
assertEquals(NodeType.PROJECTION, root.getChild().getType());
@@ -1063,8 +1110,10 @@ public class TestLogicalPlanner {
@Test
public final void testInsertInto0() throws PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr expr = sqlAnalyzer.parse(insertStatements[0]);
- LogicalPlan plan = planner.createPlan(session, expr);
+ LogicalPlan plan = planner.createPlan(qc, expr);
assertEquals(1, plan.getQueryBlocks().size());
InsertNode insertNode = getInsertNode(plan);
assertFalse(insertNode.isOverwrite());
@@ -1074,8 +1123,10 @@ public class TestLogicalPlanner {
@Test
public final void testInsertInto1() throws PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr expr = sqlAnalyzer.parse(insertStatements[1]);
- LogicalPlan plan = planner.createPlan(session, expr);
+ LogicalPlan plan = planner.createPlan(qc, expr);
assertEquals(1, plan.getQueryBlocks().size());
InsertNode insertNode = getInsertNode(plan);
assertFalse(insertNode.isOverwrite());
@@ -1084,8 +1135,10 @@ public class TestLogicalPlanner {
@Test
public final void testInsertInto2() throws PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr expr = sqlAnalyzer.parse(insertStatements[2]);
- LogicalPlan plan = planner.createPlan(session, expr);
+ LogicalPlan plan = planner.createPlan(qc, expr);
assertEquals(1, plan.getQueryBlocks().size());
InsertNode insertNode = getInsertNode(plan);
assertFalse(insertNode.isOverwrite());
@@ -1097,8 +1150,10 @@ public class TestLogicalPlanner {
@Test
public final void testInsertInto3() throws PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr expr = sqlAnalyzer.parse(insertStatements[3]);
- LogicalPlan plan = planner.createPlan(session, expr);
+ LogicalPlan plan = planner.createPlan(qc, expr);
assertEquals(1, plan.getQueryBlocks().size());
InsertNode insertNode = getInsertNode(plan);
assertFalse(insertNode.isOverwrite());
@@ -1107,8 +1162,10 @@ public class TestLogicalPlanner {
@Test
public final void testInsertInto4() throws PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr expr = sqlAnalyzer.parse(insertStatements[4]);
- LogicalPlan plan = planner.createPlan(session, expr);
+ LogicalPlan plan = planner.createPlan(qc, expr);
assertEquals(1, plan.getQueryBlocks().size());
InsertNode insertNode = getInsertNode(plan);
assertTrue(insertNode.isOverwrite());
@@ -1121,8 +1178,10 @@ public class TestLogicalPlanner {
@Test
public final void testInsertInto5() throws PlanningException {
+ QueryContext qc = new QueryContext(util.getConfiguration(), session);
+
Expr expr = sqlAnalyzer.parse(insertStatements[5]);
- LogicalPlan plan = planner.createPlan(session, expr);
+ LogicalPlan plan = planner.createPlan(qc, expr);
assertEquals(1, plan.getQueryBlocks().size());
InsertNode insertNode = getInsertNode(plan);
assertTrue(insertNode.isOverwrite());
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java b/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java
index 82e7818..b370be7 100644
--- a/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java
+++ b/tajo-core/src/test/java/org/apache/tajo/engine/planner/TestPlannerUtil.java
@@ -31,7 +31,6 @@ import org.apache.tajo.engine.eval.*;
import org.apache.tajo.engine.function.builtin.SumInt;
import org.apache.tajo.engine.parser.SQLAnalyzer;
import org.apache.tajo.engine.planner.logical.*;
-import org.apache.tajo.master.session.Session;
import org.apache.tajo.storage.Tuple;
import org.apache.tajo.storage.TupleComparator;
import org.apache.tajo.storage.VTuple;
@@ -52,7 +51,6 @@ public class TestPlannerUtil {
private static CatalogService catalog;
private static SQLAnalyzer analyzer;
private static LogicalPlanner planner;
- private static Session session = LocalTajoTestingUtility.createDummySession();
@BeforeClass
public static void setUp() throws Exception {
@@ -111,7 +109,8 @@ public class TestPlannerUtil {
public final void testFindTopNode() throws CloneNotSupportedException, PlanningException {
// two relations
Expr expr = analyzer.parse(TestLogicalPlanner.QUERIES[1]);
- LogicalNode plan = planner.createPlan(session, expr).getRootBlock().getRoot();
+ LogicalNode plan = planner.createPlan(LocalTajoTestingUtility.createDummyContext(util.getConfiguration()),
+ expr).getRootBlock().getRoot();
assertEquals(NodeType.ROOT, plan.getType());
LogicalRootNode root = (LogicalRootNode) plan;
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/test/java/org/apache/tajo/engine/planner/global/TestBroadcastJoinPlan.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/engine/planner/global/TestBroadcastJoinPlan.java b/tajo-core/src/test/java/org/apache/tajo/engine/planner/global/TestBroadcastJoinPlan.java
index ec39609..4beb5c5 100644
--- a/tajo-core/src/test/java/org/apache/tajo/engine/planner/global/TestBroadcastJoinPlan.java
+++ b/tajo-core/src/test/java/org/apache/tajo/engine/planner/global/TestBroadcastJoinPlan.java
@@ -66,6 +66,7 @@ public class TestBroadcastJoinPlan {
private TajoTestingCluster util;
private CatalogService catalog;
private SQLAnalyzer analyzer;
+ private QueryContext defaultContext;
private Path testDir;
private TableDesc smallTable1;
@@ -79,8 +80,8 @@ public class TestBroadcastJoinPlan {
public void setUp() throws Exception {
util = new TajoTestingCluster();
conf = util.getConfiguration();
- conf.setLongVar(TajoConf.ConfVars.DIST_QUERY_BROADCAST_JOIN_THRESHOLD, 500 * 1024);
- conf.setBoolVar(TajoConf.ConfVars.DIST_QUERY_BROADCAST_JOIN_AUTO, true);
+ conf.setLongVar(TajoConf.ConfVars.$DIST_QUERY_BROADCAST_JOIN_THRESHOLD, 500 * 1024);
+ conf.setBoolVar(TajoConf.ConfVars.$TEST_BROADCAST_JOIN_ENABLED, true);
testDir = CommonTestingUtil.getTestDir(TEST_PATH);
catalog = util.startCatalogCluster().getCatalog();
@@ -126,6 +127,7 @@ public class TestBroadcastJoinPlan {
catalog.createTable(largeTable3);
analyzer = new SQLAnalyzer();
+ defaultContext = LocalTajoTestingUtility.createDummyContext(conf);
}
private TableDesc makeTestData(String tableName, Schema schema, int dataSize) throws Exception {
@@ -183,12 +185,12 @@ public class TestBroadcastJoinPlan {
LogicalPlanner planner = new LogicalPlanner(catalog);
LogicalOptimizer optimizer = new LogicalOptimizer(conf);
Expr expr = analyzer.parse(query);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(), expr);
+ LogicalPlan plan = planner.createPlan(defaultContext, expr);
optimizer.optimize(plan);
QueryId queryId = QueryIdFactory.newQueryId(System.currentTimeMillis(), 0);
- QueryContext queryContext = new QueryContext();
+ QueryContext queryContext = new QueryContext(conf);
MasterPlan masterPlan = new MasterPlan(queryId, queryContext, plan);
GlobalPlanner globalPlanner = new GlobalPlanner(conf, catalog);
globalPlanner.build(masterPlan);
@@ -244,12 +246,12 @@ public class TestBroadcastJoinPlan {
LogicalPlanner planner = new LogicalPlanner(catalog);
LogicalOptimizer optimizer = new LogicalOptimizer(conf);
Expr expr = analyzer.parse(query);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(), expr);
+ LogicalPlan plan = planner.createPlan(defaultContext, expr);
optimizer.optimize(plan);
QueryId queryId = QueryIdFactory.newQueryId(System.currentTimeMillis(), 0);
- QueryContext queryContext = new QueryContext();
+ QueryContext queryContext = new QueryContext(conf);
MasterPlan masterPlan = new MasterPlan(queryId, queryContext, plan);
GlobalPlanner globalPlanner = new GlobalPlanner(conf, catalog);
globalPlanner.build(masterPlan);
@@ -308,12 +310,12 @@ public class TestBroadcastJoinPlan {
LogicalPlanner planner = new LogicalPlanner(catalog);
LogicalOptimizer optimizer = new LogicalOptimizer(conf);
Expr expr = analyzer.parse(query);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(), expr);
+ LogicalPlan plan = planner.createPlan(defaultContext, expr);
optimizer.optimize(plan);
QueryId queryId = QueryIdFactory.newQueryId(System.currentTimeMillis(), 0);
- QueryContext queryContext = new QueryContext();
+ QueryContext queryContext = new QueryContext(conf);
MasterPlan masterPlan = new MasterPlan(queryId, queryContext, plan);
GlobalPlanner globalPlanner = new GlobalPlanner(conf, catalog);
globalPlanner.build(masterPlan);
@@ -336,12 +338,12 @@ public class TestBroadcastJoinPlan {
LogicalPlanner planner = new LogicalPlanner(catalog);
LogicalOptimizer optimizer = new LogicalOptimizer(conf);
Expr expr = analyzer.parse(query);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(), expr);
+ LogicalPlan plan = planner.createPlan(defaultContext, expr);
optimizer.optimize(plan);
QueryId queryId = QueryIdFactory.newQueryId(System.currentTimeMillis(), 0);
- QueryContext queryContext = new QueryContext();
+ QueryContext queryContext = new QueryContext(conf);
MasterPlan masterPlan = new MasterPlan(queryId, queryContext, plan);
GlobalPlanner globalPlanner = new GlobalPlanner(conf, catalog);
globalPlanner.build(masterPlan);
@@ -386,12 +388,12 @@ public class TestBroadcastJoinPlan {
LogicalPlanner planner = new LogicalPlanner(catalog);
LogicalOptimizer optimizer = new LogicalOptimizer(conf);
Expr expr = analyzer.parse(query);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(), expr);
+ LogicalPlan plan = planner.createPlan(defaultContext, expr);
optimizer.optimize(plan);
QueryId queryId = QueryIdFactory.newQueryId(System.currentTimeMillis(), 0);
- QueryContext queryContext = new QueryContext();
+ QueryContext queryContext = new QueryContext(conf);
MasterPlan masterPlan = new MasterPlan(queryId, queryContext, plan);
GlobalPlanner globalPlanner = new GlobalPlanner(conf, catalog);
globalPlanner.build(masterPlan);
@@ -427,12 +429,12 @@ public class TestBroadcastJoinPlan {
LogicalPlanner planner = new LogicalPlanner(catalog);
LogicalOptimizer optimizer = new LogicalOptimizer(conf);
Expr expr = analyzer.parse(query);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(), expr);
+ LogicalPlan plan = planner.createPlan(defaultContext, expr);
optimizer.optimize(plan);
QueryId queryId = QueryIdFactory.newQueryId(System.currentTimeMillis(), 0);
- QueryContext queryContext = new QueryContext();
+ QueryContext queryContext = new QueryContext(conf);
MasterPlan masterPlan = new MasterPlan(queryId, queryContext, plan);
GlobalPlanner globalPlanner = new GlobalPlanner(conf, catalog);
globalPlanner.build(masterPlan);
@@ -483,12 +485,12 @@ public class TestBroadcastJoinPlan {
LogicalPlanner planner = new LogicalPlanner(catalog);
LogicalOptimizer optimizer = new LogicalOptimizer(conf);
Expr expr = analyzer.parse(query);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(), expr);
+ LogicalPlan plan = planner.createPlan(defaultContext, expr);
optimizer.optimize(plan);
QueryId queryId = QueryIdFactory.newQueryId(System.currentTimeMillis(), 0);
- QueryContext queryContext = new QueryContext();
+ QueryContext queryContext = new QueryContext(conf);
MasterPlan masterPlan = new MasterPlan(queryId, queryContext, plan);
GlobalPlanner globalPlanner = new GlobalPlanner(conf, catalog);
globalPlanner.build(masterPlan);
@@ -537,12 +539,12 @@ public class TestBroadcastJoinPlan {
LogicalPlanner planner = new LogicalPlanner(catalog);
LogicalOptimizer optimizer = new LogicalOptimizer(conf);
Expr expr = analyzer.parse(query);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(), expr);
+ LogicalPlan plan = planner.createPlan(defaultContext, expr);
optimizer.optimize(plan);
QueryId queryId = QueryIdFactory.newQueryId(System.currentTimeMillis(), 0);
- QueryContext queryContext = new QueryContext();
+ QueryContext queryContext = new QueryContext(conf);
MasterPlan masterPlan = new MasterPlan(queryId, queryContext, plan);
GlobalPlanner globalPlanner = new GlobalPlanner(conf, catalog);
globalPlanner.build(masterPlan);
@@ -620,12 +622,12 @@ public class TestBroadcastJoinPlan {
LogicalPlanner planner = new LogicalPlanner(catalog);
LogicalOptimizer optimizer = new LogicalOptimizer(conf);
Expr expr = analyzer.parse(query);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(), expr);
+ LogicalPlan plan = planner.createPlan(defaultContext, expr);
optimizer.optimize(plan);
QueryId queryId = QueryIdFactory.newQueryId(System.currentTimeMillis(), 0);
- QueryContext queryContext = new QueryContext();
+ QueryContext queryContext = new QueryContext(conf);
MasterPlan masterPlan = new MasterPlan(queryId, queryContext, plan);
GlobalPlanner globalPlanner = new GlobalPlanner(conf, catalog);
globalPlanner.build(masterPlan);
@@ -703,12 +705,12 @@ public class TestBroadcastJoinPlan {
LogicalPlanner planner = new LogicalPlanner(catalog);
LogicalOptimizer optimizer = new LogicalOptimizer(conf);
Expr expr = analyzer.parse(query);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(), expr);
+ LogicalPlan plan = planner.createPlan(defaultContext, expr);
optimizer.optimize(plan);
QueryId queryId = QueryIdFactory.newQueryId(System.currentTimeMillis(), 0);
- QueryContext queryContext = new QueryContext();
+ QueryContext queryContext = new QueryContext(conf);
MasterPlan masterPlan = new MasterPlan(queryId, queryContext, plan);
GlobalPlanner globalPlanner = new GlobalPlanner(conf, catalog);
globalPlanner.build(masterPlan);
@@ -762,12 +764,12 @@ public class TestBroadcastJoinPlan {
LogicalPlanner planner = new LogicalPlanner(catalog);
LogicalOptimizer optimizer = new LogicalOptimizer(conf);
Expr expr = analyzer.parse(query);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(), expr);
+ LogicalPlan plan = planner.createPlan(defaultContext, expr);
optimizer.optimize(plan);
QueryId queryId = QueryIdFactory.newQueryId(System.currentTimeMillis(), 0);
- QueryContext queryContext = new QueryContext();
+ QueryContext queryContext = new QueryContext(conf);
MasterPlan masterPlan = new MasterPlan(queryId, queryContext, plan);
GlobalPlanner globalPlanner = new GlobalPlanner(conf, catalog);
globalPlanner.build(masterPlan);
@@ -815,12 +817,12 @@ public class TestBroadcastJoinPlan {
LogicalPlanner planner = new LogicalPlanner(catalog);
LogicalOptimizer optimizer = new LogicalOptimizer(conf);
Expr expr = analyzer.parse(query);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(), expr);
+ LogicalPlan plan = planner.createPlan(defaultContext, expr);
optimizer.optimize(plan);
QueryId queryId = QueryIdFactory.newQueryId(System.currentTimeMillis(), 0);
- QueryContext queryContext = new QueryContext();
+ QueryContext queryContext = new QueryContext(conf);
MasterPlan masterPlan = new MasterPlan(queryId, queryContext, plan);
GlobalPlanner globalPlanner = new GlobalPlanner(conf, catalog);
globalPlanner.build(masterPlan);
@@ -907,12 +909,12 @@ public class TestBroadcastJoinPlan {
LogicalPlanner planner = new LogicalPlanner(catalog);
LogicalOptimizer optimizer = new LogicalOptimizer(conf);
Expr expr = analyzer.parse(query);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(), expr);
+ LogicalPlan plan = planner.createPlan(defaultContext, expr);
optimizer.optimize(plan);
QueryId queryId = QueryIdFactory.newQueryId(System.currentTimeMillis(), 0);
- QueryContext queryContext = new QueryContext();
+ QueryContext queryContext = new QueryContext(conf);
MasterPlan masterPlan = new MasterPlan(queryId, queryContext, plan);
GlobalPlanner globalPlanner = new GlobalPlanner(conf, catalog);
globalPlanner.build(masterPlan);
@@ -972,12 +974,12 @@ public class TestBroadcastJoinPlan {
LogicalPlanner planner = new LogicalPlanner(catalog);
LogicalOptimizer optimizer = new LogicalOptimizer(conf);
Expr expr = analyzer.parse(query);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(), expr);
+ LogicalPlan plan = planner.createPlan(defaultContext, expr);
optimizer.optimize(plan);
QueryId queryId = QueryIdFactory.newQueryId(System.currentTimeMillis(), 0);
- QueryContext queryContext = new QueryContext();
+ QueryContext queryContext = new QueryContext(conf);
MasterPlan masterPlan = new MasterPlan(queryId, queryContext, plan);
GlobalPlanner globalPlanner = new GlobalPlanner(conf, catalog);
globalPlanner.build(masterPlan);
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java b/tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java
index d84796a..3fecabd 100644
--- a/tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java
+++ b/tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBNLJoinExec.java
@@ -141,7 +141,8 @@ public class TestBNLJoinExec {
@Test
public final void testBNLCrossJoin() throws IOException, PlanningException {
Expr expr = analyzer.parse(QUERIES[0]);
- LogicalNode plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(), expr).getRootBlock().getRoot();
+ LogicalNode plan = planner.createPlan(LocalTajoTestingUtility.createDummyContext(conf),
+ expr).getRootBlock().getRoot();
JoinNode joinNode = PlannerUtil.findTopNode(plan, NodeType.JOIN);
Enforcer enforcer = new Enforcer();
enforcer.enforceJoinAlgorithm(joinNode.getPID(), JoinAlgorithm.BLOCK_NESTED_LOOP_JOIN);
@@ -152,7 +153,7 @@ public class TestBNLJoinExec {
Integer.MAX_VALUE);
FileFragment[] merged = TUtil.concat(empFrags, peopleFrags);
Path workDir = CommonTestingUtil.getTestDir("target/test-data/testBNLCrossJoin");
- TaskAttemptContext ctx = new TaskAttemptContext(conf, new QueryContext(),
+ TaskAttemptContext ctx = new TaskAttemptContext(new QueryContext(conf),
LocalTajoTestingUtility.newQueryUnitAttemptId(), merged, workDir);
ctx.setEnforcer(enforcer);
@@ -174,7 +175,7 @@ public class TestBNLJoinExec {
@Test
public final void testBNLInnerJoin() throws IOException, PlanningException {
Expr context = analyzer.parse(QUERIES[1]);
- LogicalNode plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(),
+ LogicalNode plan = planner.createPlan(LocalTajoTestingUtility.createDummyContext(conf),
context).getRootBlock().getRoot();
FileFragment[] empFrags = StorageManager.splitNG(conf, "default.e", employee.getMeta(), employee.getPath(),
@@ -189,7 +190,7 @@ public class TestBNLJoinExec {
enforcer.enforceJoinAlgorithm(joinNode.getPID(), JoinAlgorithm.BLOCK_NESTED_LOOP_JOIN);
Path workDir = CommonTestingUtil.getTestDir("target/test-data/testBNLInnerJoin");
- TaskAttemptContext ctx = new TaskAttemptContext(conf, new QueryContext(),
+ TaskAttemptContext ctx = new TaskAttemptContext(new QueryContext(conf),
LocalTajoTestingUtility.newQueryUnitAttemptId(),
merged, workDir);
ctx.setEnforcer(enforcer);
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java b/tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java
index bfc3522..f817776 100644
--- a/tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java
+++ b/tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestBSTIndexExec.java
@@ -169,10 +169,10 @@ public class TestBSTIndexExec {
FileFragment[] frags = StorageManager.splitNG(conf, "default.employee", meta, tablePath, Integer.MAX_VALUE);
Path workDir = CommonTestingUtil.getTestDir("target/test-data/testEqual");
- TaskAttemptContext ctx = new TaskAttemptContext(conf, new QueryContext(),
+ TaskAttemptContext ctx = new TaskAttemptContext(new QueryContext(conf),
LocalTajoTestingUtility.newQueryUnitAttemptId(), new FileFragment[] { frags[0] }, workDir);
Expr expr = analyzer.parse(QUERY);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(), expr);
+ LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummyContext(conf), expr);
LogicalNode rootNode = optimizer.optimize(plan);
TmpPlanner phyPlanner = new TmpPlanner(conf, sm);
http://git-wip-us.apache.org/repos/asf/tajo/blob/ddfc3f33/tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java
----------------------------------------------------------------------
diff --git a/tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java b/tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java
index 1ce5b5b..e7aac3c 100644
--- a/tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java
+++ b/tajo-core/src/test/java/org/apache/tajo/engine/planner/physical/TestExternalSortExec.java
@@ -121,11 +121,11 @@ public class TestExternalSortExec {
FileFragment[] frags = StorageManager.splitNG(conf, "default.employee", employee.getMeta(), employee.getPath(),
Integer.MAX_VALUE);
Path workDir = new Path(testDir, TestExternalSortExec.class.getName());
- TaskAttemptContext ctx = new TaskAttemptContext(conf, new QueryContext(),
+ TaskAttemptContext ctx = new TaskAttemptContext(new QueryContext(conf),
LocalTajoTestingUtility.newQueryUnitAttemptId(), new FileFragment[] { frags[0] }, workDir);
ctx.setEnforcer(new Enforcer());
Expr expr = analyzer.parse(QUERIES[0]);
- LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummySession(), expr);
+ LogicalPlan plan = planner.createPlan(LocalTajoTestingUtility.createDummyContext(conf), expr);
LogicalNode rootNode = plan.getRootBlock().getRoot();
PhysicalPlanner phyPlanner = new PhysicalPlannerImpl(conf, sm);