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);
