You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by jn...@apache.org on 2016/06/24 17:52:00 UTC
[1/2] drill git commit: DRILL-4715: Fix java compilation error in
run-time generated code when query has large number of expressions.
Repository: drill
Updated Branches:
refs/heads/master e047e1089 -> 11602456b
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestCastFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestCastFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestCastFunctions.java
index a5bc625..8cab43b 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestCastFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestCastFunctions.java
@@ -22,13 +22,10 @@ import static org.junit.Assert.assertTrue;
import java.util.List;
-import org.apache.drill.common.config.DrillConfig;
import org.apache.drill.common.expression.ExpressionPosition;
import org.apache.drill.common.expression.SchemaPath;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.common.util.FileUtils;
import org.apache.drill.exec.client.DrillClient;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
import org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers;
import org.apache.drill.exec.expr.holders.BigIntHolder;
@@ -37,8 +34,6 @@ import org.apache.drill.exec.expr.holders.Float8Holder;
import org.apache.drill.exec.expr.holders.IntHolder;
import org.apache.drill.exec.expr.holders.VarBinaryHolder;
import org.apache.drill.exec.expr.holders.VarCharHolder;
-import org.apache.drill.exec.memory.BufferAllocator;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
@@ -62,34 +57,24 @@ import org.apache.drill.exec.vector.VarBinaryVector;
import org.apache.drill.exec.vector.VarCharVector;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
public class TestCastFunctions extends PopUnitTestBase{
//private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestSimpleFunctions.class);
- private final DrillConfig c = DrillConfig.create();
@Test
// cast to bigint.
public void testCastBigInt(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection) throws Throwable {
- final BufferAllocator allocator = RootAllocatorFactory.newRoot(c);
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = allocator;
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- }};
+ mockDrillbitContext(bitContext);
- final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
+ final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(CONFIG);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/functions/cast/testCastBigInt.json"), Charsets.UTF_8));
- final FunctionImplementationRegistry registry = new FunctionImplementationRegistry(c);
+ final FunctionImplementationRegistry registry = new FunctionImplementationRegistry(CONFIG);
final FragmentContext context = new FragmentContext(bitContext, PlanFragment.getDefaultInstance(), connection, registry);
final SimpleRootExec exec = new SimpleRootExec(ImplCreator.getExec(context, (FragmentRoot) plan.getSortedOperators(false).iterator().next()));
@@ -111,7 +96,6 @@ public class TestCastFunctions extends PopUnitTestBase{
exec.close();
context.close();
- allocator.close();
if(context.getFailureCause() != null) {
throw context.getFailureCause();
@@ -124,19 +108,11 @@ public class TestCastFunctions extends PopUnitTestBase{
public void testCastInt(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection) throws Throwable {
- final BufferAllocator allocator = RootAllocatorFactory.newRoot(c);
+ mockDrillbitContext(bitContext);
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = allocator;
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- }};
-
- final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
+ final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(CONFIG);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/functions/cast/testCastInt.json"), Charsets.UTF_8));
- final FunctionImplementationRegistry registry = new FunctionImplementationRegistry(c);
+ final FunctionImplementationRegistry registry = new FunctionImplementationRegistry(CONFIG);
final FragmentContext context = new FragmentContext(bitContext, PlanFragment.getDefaultInstance(), connection, registry);
final SimpleRootExec exec = new SimpleRootExec(ImplCreator.getExec(context, (FragmentRoot) plan.getSortedOperators(false).iterator().next()));
@@ -157,7 +133,6 @@ public class TestCastFunctions extends PopUnitTestBase{
exec.close();
context.close();
- allocator.close();
if(context.getFailureCause() != null) {
throw context.getFailureCause();
@@ -169,18 +144,11 @@ public class TestCastFunctions extends PopUnitTestBase{
//cast to float4
public void testCastFloat4(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection) throws Throwable {
- final BufferAllocator allocator = RootAllocatorFactory.newRoot(c);
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = allocator;
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- }};
-
- final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
+ mockDrillbitContext(bitContext);
+
+ final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(CONFIG);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/functions/cast/testCastFloat4.json"), Charsets.UTF_8));
- final FunctionImplementationRegistry registry = new FunctionImplementationRegistry(c);
+ final FunctionImplementationRegistry registry = new FunctionImplementationRegistry(CONFIG);
final FragmentContext context = new FragmentContext(bitContext, PlanFragment.getDefaultInstance(), connection, registry);
final SimpleRootExec exec = new SimpleRootExec(ImplCreator.getExec(context, (FragmentRoot) plan.getSortedOperators(false).iterator().next()));
@@ -202,7 +170,6 @@ public class TestCastFunctions extends PopUnitTestBase{
exec.close();
context.close();
- allocator.close();
if(context.getFailureCause() != null) {
throw context.getFailureCause();
@@ -214,18 +181,11 @@ public class TestCastFunctions extends PopUnitTestBase{
//cast to float8
public void testCastFloat8(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection) throws Throwable {
- final BufferAllocator allocator = RootAllocatorFactory.newRoot(c);
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = allocator;
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- }};
-
- final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
+ mockDrillbitContext(bitContext);
+
+ final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(CONFIG);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/functions/cast/testCastFloat8.json"), Charsets.UTF_8));
- final FunctionImplementationRegistry registry = new FunctionImplementationRegistry(c);
+ final FunctionImplementationRegistry registry = new FunctionImplementationRegistry(CONFIG);
final FragmentContext context = new FragmentContext(bitContext, PlanFragment.getDefaultInstance(), connection, registry);
final SimpleRootExec exec = new SimpleRootExec(ImplCreator.getExec(context, (FragmentRoot) plan.getSortedOperators(false).iterator().next()));
@@ -247,7 +207,6 @@ public class TestCastFunctions extends PopUnitTestBase{
exec.close();
context.close();
- allocator.close();
if(context.getFailureCause() != null) {
throw context.getFailureCause();
@@ -259,19 +218,11 @@ public class TestCastFunctions extends PopUnitTestBase{
//cast to varchar(length)
public void testCastVarChar(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection) throws Throwable {
+ mockDrillbitContext(bitContext);
- final BufferAllocator allocator = RootAllocatorFactory.newRoot(c);
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = allocator;
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- }};
-
- final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
+ final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(CONFIG);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/functions/cast/testCastVarChar.json"), Charsets.UTF_8));
- final FunctionImplementationRegistry registry = new FunctionImplementationRegistry(c);
+ final FunctionImplementationRegistry registry = new FunctionImplementationRegistry(CONFIG);
final FragmentContext context = new FragmentContext(bitContext, PlanFragment.getDefaultInstance(), connection, registry);
final SimpleRootExec exec = new SimpleRootExec(ImplCreator.getExec(context, (FragmentRoot) plan.getSortedOperators(false).iterator().next()));
@@ -292,7 +243,6 @@ public class TestCastFunctions extends PopUnitTestBase{
exec.close();
context.close();
- allocator.close();
if(context.getFailureCause() != null) {
throw context.getFailureCause();
@@ -304,19 +254,11 @@ public class TestCastFunctions extends PopUnitTestBase{
//cast to varbinary(length)
public void testCastVarBinary(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection) throws Throwable {
- final BufferAllocator allocator = RootAllocatorFactory.newRoot(c);
-
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = allocator;
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- }};
+ mockDrillbitContext(bitContext);
- final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
+ final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(CONFIG);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/functions/cast/testCastVarBinary.json"), Charsets.UTF_8));
- final FunctionImplementationRegistry registry = new FunctionImplementationRegistry(c);
+ final FunctionImplementationRegistry registry = new FunctionImplementationRegistry(CONFIG);
final FragmentContext context = new FragmentContext(bitContext, PlanFragment.getDefaultInstance(), connection, registry);
final SimpleRootExec exec = new SimpleRootExec(ImplCreator.getExec(context, (FragmentRoot) plan.getSortedOperators(false).iterator().next()));
@@ -337,7 +279,6 @@ public class TestCastFunctions extends PopUnitTestBase{
exec.close();
context.close();
- allocator.close();
if(context.getFailureCause() != null) {
throw context.getFailureCause();
@@ -350,18 +291,11 @@ public class TestCastFunctions extends PopUnitTestBase{
public void testCastNested(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection) throws Throwable {
- final BufferAllocator allocator = RootAllocatorFactory.newRoot(c);
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = allocator;
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- }};
+ mockDrillbitContext(bitContext);
- final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
+ final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(CONFIG);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/functions/cast/testCastNested.json"), Charsets.UTF_8));
- final FunctionImplementationRegistry registry = new FunctionImplementationRegistry(c);
+ final FunctionImplementationRegistry registry = new FunctionImplementationRegistry(CONFIG);
final FragmentContext context = new FragmentContext(bitContext, PlanFragment.getDefaultInstance(), connection, registry);
final SimpleRootExec exec = new SimpleRootExec(ImplCreator.getExec(context, (FragmentRoot) plan.getSortedOperators(false).iterator().next()));
@@ -382,7 +316,6 @@ public class TestCastFunctions extends PopUnitTestBase{
exec.close();
context.close();
- allocator.close();
if(context.getFailureCause() != null) {
throw context.getFailureCause();
@@ -395,19 +328,12 @@ public class TestCastFunctions extends PopUnitTestBase{
@Test(expected = NumberFormatException.class)
public void testCastNumException(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection) throws Throwable {
- final BufferAllocator allocator = RootAllocatorFactory.newRoot(c);
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = allocator;
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- }};
+ mockDrillbitContext(bitContext);
- final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
+ final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(CONFIG);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/functions/cast/testCastNumException.json"), Charsets.UTF_8));
- final FunctionImplementationRegistry registry = new FunctionImplementationRegistry(c);
+ final FunctionImplementationRegistry registry = new FunctionImplementationRegistry(CONFIG);
final FragmentContext context = new FragmentContext(bitContext, PlanFragment.getDefaultInstance(), connection, registry);
final SimpleRootExec exec = new SimpleRootExec(ImplCreator.getExec(context, (FragmentRoot) plan.getSortedOperators(false).iterator().next()));
@@ -417,7 +343,6 @@ public class TestCastFunctions extends PopUnitTestBase{
exec.close();
context.close();
- allocator.close();
assertTrue(context.isFailed());
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestComparisonFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestComparisonFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestComparisonFunctions.java
index 3664ef6..ede26c7 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestComparisonFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestComparisonFunctions.java
@@ -21,11 +21,8 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.apache.drill.common.config.DrillConfig;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.exec.ExecTest;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
@@ -36,12 +33,10 @@ import org.apache.drill.exec.rpc.user.UserServer;
import org.apache.drill.exec.server.DrillbitContext;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Resources;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
public class TestComparisonFunctions extends ExecTest {
// private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestComparisonFunctions.class);
@@ -53,13 +48,7 @@ public class TestComparisonFunctions extends ExecTest {
public void runTest(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection, String expression, int expectedResults) throws Throwable {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final String planString = Resources.toString(Resources.getResource(COMPARISON_TEST_PHYSICAL_PLAN), Charsets.UTF_8).replaceAll("EXPRESSION", expression);
if (reader == null) {
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestImplicitCastFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestImplicitCastFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestImplicitCastFunctions.java
index e0595b9..e8ae370 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestImplicitCastFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestImplicitCastFunctions.java
@@ -21,11 +21,8 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.apache.drill.common.config.DrillConfig;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.exec.ExecTest;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
@@ -37,12 +34,10 @@ import org.apache.drill.exec.server.DrillbitContext;
import org.apache.drill.exec.vector.ValueVector;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Resources;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
public class TestImplicitCastFunctions extends ExecTest {
//private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestImplicitCastFunctions.class);
@@ -69,13 +64,7 @@ public class TestImplicitCastFunctions extends ExecTest {
public void runTest(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection, Object[] expectedResults, String planPath) throws Throwable {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final String planString = Resources.toString(Resources.getResource(planPath), Charsets.UTF_8);
if (reader == null) {
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestOptiqPlans.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestOptiqPlans.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestOptiqPlans.java
index bf56eb6..74aff18 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestOptiqPlans.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestOptiqPlans.java
@@ -304,16 +304,7 @@ public class TestOptiqPlans extends ExecTest {
private SimpleRootExec doPhysicalTest(final DrillbitContext bitContext, UserClientConnection connection, String file)
throws Exception {
- new NonStrictExpectations() {
- {
- bitContext.getMetrics();
- result = new MetricRegistry();
- bitContext.getAllocator();
- result = RootAllocatorFactory.newRoot(config);
- bitContext.getConfig();
- result = config;
- }
- };
+ mockDrillbitContext(bitContext);
final StoragePluginRegistry reg = new StoragePluginRegistryImpl(bitContext);
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestSimpleFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestSimpleFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestSimpleFunctions.java
index bf51bb9..64495db 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestSimpleFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestSimpleFunctions.java
@@ -31,18 +31,15 @@ import org.apache.drill.common.expression.LogicalExpression;
import org.apache.drill.common.expression.SchemaPath;
import org.apache.drill.common.expression.TypedNullConstant;
import org.apache.drill.common.expression.ValueExpressions;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.common.types.TypeProtos;
import org.apache.drill.common.types.Types;
import org.apache.drill.common.util.FileUtils;
import org.apache.drill.exec.ExecTest;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.DrillFuncHolder;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
import org.apache.drill.exec.expr.fn.impl.StringFunctionHelpers;
import org.apache.drill.exec.expr.holders.NullableVarBinaryHolder;
import org.apache.drill.exec.expr.holders.NullableVarCharHolder;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
@@ -57,13 +54,11 @@ import org.apache.drill.exec.vector.NullableVarBinaryVector;
import org.apache.drill.exec.vector.NullableVarCharVector;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import com.sun.codemodel.JClassAlreadyExistsException;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
public class TestSimpleFunctions extends ExecTest {
//private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestSimpleFunctions.class);
@@ -152,13 +147,7 @@ public class TestSimpleFunctions extends ExecTest {
@Test
public void testSubstring(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection) throws Throwable {
- new NonStrictExpectations(){{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/functions/testSubstring.json"), Charsets.UTF_8));
@@ -191,13 +180,7 @@ public class TestSimpleFunctions extends ExecTest {
@Test
public void testSubstringNegative(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection) throws Throwable {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/functions/testSubstringNegative.json"), Charsets.UTF_8));
@@ -231,13 +214,7 @@ public class TestSimpleFunctions extends ExecTest {
@Test
public void testByteSubstring(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection) throws Throwable {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/functions/testByteSubstring.json"), Charsets.UTF_8));
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestStringFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestStringFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestStringFunctions.java
index 00d132e..291fc21 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestStringFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/TestStringFunctions.java
@@ -21,11 +21,8 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.apache.drill.common.config.DrillConfig;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.exec.ExecTest;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
@@ -38,12 +35,10 @@ import org.apache.drill.exec.vector.ValueVector;
import org.apache.drill.exec.vector.VarCharVector;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Resources;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
public class TestStringFunctions extends ExecTest {
//private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestStringFunctions.class);
@@ -73,13 +68,8 @@ public class TestStringFunctions extends ExecTest {
public void runTest(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection, Object[] expectedResults, String planPath) throws Throwable {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+
+ mockDrillbitContext(bitContext);
final String planString = Resources.toString(Resources.getResource(planPath), Charsets.UTF_8);
if (reader == null) {
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/agg/TestAgg.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/agg/TestAgg.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/agg/TestAgg.java
index d97edd8..efb8f6a 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/agg/TestAgg.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/agg/TestAgg.java
@@ -22,17 +22,13 @@ import static org.junit.Assert.assertTrue;
import org.apache.drill.common.config.DrillConfig;
import org.apache.drill.common.expression.SchemaPath;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.common.util.FileUtils;
import org.apache.drill.exec.ExecTest;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
import org.apache.drill.exec.physical.impl.ImplCreator;
-import org.apache.drill.exec.physical.impl.OperatorCreatorRegistry;
import org.apache.drill.exec.physical.impl.SimpleRootExec;
import org.apache.drill.exec.planner.PhysicalPlanReader;
import org.apache.drill.exec.planner.PhysicalPlanReaderTestFactory;
@@ -44,25 +40,18 @@ import org.apache.drill.exec.vector.IntVector;
import org.apache.drill.exec.vector.NullableBigIntVector;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
public class TestAgg extends ExecTest {
//private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestAgg.class);
private final DrillConfig c = DrillConfig.create();
private SimpleRootExec doTest(final DrillbitContext bitContext, UserClientConnection connection, String file) throws Exception {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile(file), Charsets.UTF_8));
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/common/TestHashTable.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/common/TestHashTable.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/common/TestHashTable.java
deleted file mode 100644
index 1f7be1b..0000000
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/common/TestHashTable.java
+++ /dev/null
@@ -1,66 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.drill.exec.physical.impl.common;
-
-import org.apache.drill.common.config.DrillConfig;
-import org.apache.drill.common.scanner.ClassPathScanner;
-import org.apache.drill.common.util.FileUtils;
-import org.apache.drill.exec.ExecTest;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
-import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
-import org.apache.drill.exec.ops.FragmentContext;
-import org.apache.drill.exec.physical.PhysicalPlan;
-import org.apache.drill.exec.physical.base.FragmentRoot;
-import org.apache.drill.exec.physical.impl.ImplCreator;
-import org.apache.drill.exec.physical.impl.OperatorCreatorRegistry;
-import org.apache.drill.exec.physical.impl.SimpleRootExec;
-import org.apache.drill.exec.planner.PhysicalPlanReader;
-import org.apache.drill.exec.planner.PhysicalPlanReaderTestFactory;
-import org.apache.drill.exec.proto.BitControl.PlanFragment;
-import org.apache.drill.exec.rpc.user.UserServer.UserClientConnection;
-import org.apache.drill.exec.server.DrillbitContext;
-
-import com.codahale.metrics.MetricRegistry;
-import com.google.common.base.Charsets;
-import com.google.common.io.Files;
-
-import mockit.NonStrictExpectations;
-
-public class TestHashTable extends ExecTest {
- //private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestHashTable.class);
- private final DrillConfig c = DrillConfig.create();
-
- @SuppressWarnings("deprecation")
-private SimpleRootExec doTest(final DrillbitContext bitContext, UserClientConnection connection, String plan_path) throws Exception{
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
-
- final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
- final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile(plan_path), Charsets.UTF_8));
- final FunctionImplementationRegistry registry = new FunctionImplementationRegistry(c);
- final FragmentContext context = new FragmentContext(bitContext, PlanFragment.getDefaultInstance(), connection, registry);
- final SimpleRootExec exec = new SimpleRootExec(ImplCreator.getExec(context, (FragmentRoot) plan.getSortedOperators(false).iterator().next()));
- return exec;
- }
-}
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/filter/TestSimpleFilter.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/filter/TestSimpleFilter.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/filter/TestSimpleFilter.java
index de91b25..c84cb20 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/filter/TestSimpleFilter.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/filter/TestSimpleFilter.java
@@ -21,17 +21,13 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.apache.drill.common.config.DrillConfig;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.common.util.FileUtils;
import org.apache.drill.exec.ExecTest;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
import org.apache.drill.exec.physical.impl.ImplCreator;
-import org.apache.drill.exec.physical.impl.OperatorCreatorRegistry;
import org.apache.drill.exec.physical.impl.SimpleRootExec;
import org.apache.drill.exec.planner.PhysicalPlanReader;
import org.apache.drill.exec.planner.PhysicalPlanReaderTestFactory;
@@ -41,12 +37,10 @@ import org.apache.drill.exec.server.DrillbitContext;
import org.junit.Ignore;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
public class TestSimpleFilter extends ExecTest {
//private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestSimpleFilter.class);
@@ -55,13 +49,7 @@ public class TestSimpleFilter extends ExecTest {
@Test
public void testFilter(@Injectable final DrillbitContext bitContext, @Injectable UserClientConnection connection) throws Throwable {
// System.out.println(System.getProperty("java.class.path"));
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/filter/test1.json"), Charsets.UTF_8));
@@ -83,13 +71,7 @@ public class TestSimpleFilter extends ExecTest {
@Test
@Ignore ("Filter does not support SV4")
public void testSV4Filter(@Injectable final DrillbitContext bitContext, @Injectable UserClientConnection connection) throws Throwable {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/filter/test_sv4.json"), Charsets.UTF_8));
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestHashJoin.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestHashJoin.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestHashJoin.java
index bed71f9..c76b39c 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestHashJoin.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestHashJoin.java
@@ -24,19 +24,14 @@ import java.util.Iterator;
import java.util.List;
import org.apache.drill.common.config.DrillConfig;
-import org.apache.drill.common.config.LogicalPlanPersistence;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.common.util.FileUtils;
import org.apache.drill.common.util.TestTools;
import org.apache.drill.exec.client.DrillClient;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
import org.apache.drill.exec.physical.impl.ImplCreator;
-import org.apache.drill.exec.physical.impl.OperatorCreatorRegistry;
import org.apache.drill.exec.physical.impl.SimpleRootExec;
import org.apache.drill.exec.planner.PhysicalPlanReader;
import org.apache.drill.exec.planner.PhysicalPlanReaderTestFactory;
@@ -49,19 +44,15 @@ import org.apache.drill.exec.rpc.user.UserServer;
import org.apache.drill.exec.server.Drillbit;
import org.apache.drill.exec.server.DrillbitContext;
import org.apache.drill.exec.server.RemoteServiceSet;
-import org.apache.drill.exec.server.options.SystemOptionManager;
-import org.apache.drill.exec.store.sys.store.provider.LocalPersistentStoreProvider;
import org.apache.drill.exec.vector.ValueVector;
import org.junit.Rule;
import org.junit.Test;
import org.junit.rules.TestRule;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
public class TestHashJoin extends PopUnitTestBase {
@@ -72,19 +63,8 @@ public class TestHashJoin extends PopUnitTestBase {
private final DrillConfig c = DrillConfig.create();
private void testHJMockScanCommon(final DrillbitContext bitContext, UserServer.UserClientConnection connection, String physicalPlan, int expectedRows) throws Throwable {
- final LocalPersistentStoreProvider provider = new LocalPersistentStoreProvider(c);
- provider.start();
- final SystemOptionManager opt = new SystemOptionManager(PhysicalPlanReaderTestFactory.defaultLogicalPlanPersistence(c), provider);
- opt.init();
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getOptionManager(); result = opt;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- bitContext.getLpPersistence(); result = new LogicalPlanPersistence(c, ClassPathScanner.fromPrescan(c));
- }};
+
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile(physicalPlan), Charsets.UTF_8));
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestMergeJoin.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestMergeJoin.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestMergeJoin.java
index 06b8d59..bb9c2bd 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestMergeJoin.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/join/TestMergeJoin.java
@@ -24,17 +24,13 @@ import java.util.ArrayList;
import java.util.List;
import org.apache.drill.common.config.DrillConfig;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.common.util.FileUtils;
import org.apache.drill.exec.client.DrillClient;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
import org.apache.drill.exec.physical.impl.ImplCreator;
-import org.apache.drill.exec.physical.impl.OperatorCreatorRegistry;
import org.apache.drill.exec.physical.impl.SimpleRootExec;
import org.apache.drill.exec.planner.PhysicalPlanReader;
import org.apache.drill.exec.planner.PhysicalPlanReaderTestFactory;
@@ -51,13 +47,11 @@ import org.apache.drill.exec.vector.ValueVector;
import org.junit.Ignore;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.collect.Lists;
import com.google.common.io.Files;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
public class TestMergeJoin extends PopUnitTestBase {
@@ -69,13 +63,7 @@ public class TestMergeJoin extends PopUnitTestBase {
public void simpleEqualityJoin(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection) throws Throwable {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/join/merge_join.json"), Charsets.UTF_8));
@@ -122,13 +110,7 @@ public class TestMergeJoin extends PopUnitTestBase {
@Ignore
public void orderedEqualityLeftJoin(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection) throws Throwable {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getConfig(); result = c;
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c,
new StoragePluginRegistryImpl(bitContext));
@@ -179,13 +161,7 @@ public class TestMergeJoin extends PopUnitTestBase {
@Ignore
public void orderedEqualityInnerJoin(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection) throws Throwable {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getConfig(); result = c;
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c,
new StoragePluginRegistryImpl(bitContext));
@@ -236,13 +212,7 @@ public class TestMergeJoin extends PopUnitTestBase {
@Ignore
public void orderedEqualityMultiBatchJoin(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection) throws Throwable {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getConfig(); result = c;
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c,
new StoragePluginRegistryImpl(bitContext));
@@ -290,13 +260,7 @@ public class TestMergeJoin extends PopUnitTestBase {
@Test
public void testJoinBatchSize(@Injectable final DrillbitContext bitContext, @Injectable UserClientConnection connection) throws Throwable{
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getConfig(); result = c;
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/join/join_batchsize.json"), Charsets.UTF_8));
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/limit/TestSimpleLimit.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/limit/TestSimpleLimit.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/limit/TestSimpleLimit.java
index 89e07ea..f2e1d56 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/limit/TestSimpleLimit.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/limit/TestSimpleLimit.java
@@ -21,17 +21,13 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.apache.drill.common.config.DrillConfig;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.common.util.FileUtils;
import org.apache.drill.exec.ExecTest;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
import org.apache.drill.exec.physical.impl.ImplCreator;
-import org.apache.drill.exec.physical.impl.OperatorCreatorRegistry;
import org.apache.drill.exec.physical.impl.SimpleRootExec;
import org.apache.drill.exec.planner.PhysicalPlanReader;
import org.apache.drill.exec.planner.PhysicalPlanReaderTestFactory;
@@ -42,39 +38,24 @@ import org.apache.drill.exec.vector.BigIntVector;
import org.junit.Ignore;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
public class TestSimpleLimit extends ExecTest {
private final DrillConfig c = DrillConfig.create();
@Test
public void testLimit(@Injectable final DrillbitContext bitContext, @Injectable UserServer.UserClientConnection connection) throws Throwable {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
verifyLimitCount(bitContext, connection, "test1.json", 5);
}
@Test
public void testLimitNoEnd(@Injectable final DrillbitContext bitContext, @Injectable UserServer.UserClientConnection connection) throws Throwable {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
-
+ mockDrillbitContext(bitContext);
verifyLimitCount(bitContext, connection, "test3.json", 95);
}
@@ -85,14 +66,8 @@ public class TestSimpleLimit extends ExecTest {
// next batch. But the value has already been increased by 1 in the prior failed try. Therefore, the sum of the generated number could be different,
// depending on the size of each outgoing batch, and when the batch could not hold any more values.
public void testLimitAcrossBatches(@Injectable final DrillbitContext bitContext, @Injectable UserServer.UserClientConnection connection) throws Throwable {
- new NonStrictExpectations(){{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
verifyLimitCount(bitContext, connection, "test2.json", 69999);
final long start = 30000;
final long end = 100000;
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/project/TestSimpleProjection.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/project/TestSimpleProjection.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/project/TestSimpleProjection.java
index 3be6c60..02b798f 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/project/TestSimpleProjection.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/project/TestSimpleProjection.java
@@ -23,17 +23,13 @@ import static org.junit.Assert.assertTrue;
import org.apache.drill.common.config.DrillConfig;
import org.apache.drill.common.expression.ExpressionPosition;
import org.apache.drill.common.expression.SchemaPath;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.common.util.FileUtils;
import org.apache.drill.exec.ExecTest;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
import org.apache.drill.exec.physical.impl.ImplCreator;
-import org.apache.drill.exec.physical.impl.OperatorCreatorRegistry;
import org.apache.drill.exec.physical.impl.SimpleRootExec;
import org.apache.drill.exec.planner.PhysicalPlanReader;
import org.apache.drill.exec.planner.PhysicalPlanReaderTestFactory;
@@ -44,12 +40,10 @@ import org.apache.drill.exec.util.VectorUtil;
import org.apache.drill.exec.vector.NullableBigIntVector;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
public class TestSimpleProjection extends ExecTest {
//private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestSimpleProjection.class);
@@ -57,13 +51,7 @@ public class TestSimpleProjection extends ExecTest {
@Test
public void project(@Injectable final DrillbitContext bitContext, @Injectable UserClientConnection connection) throws Throwable {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/project/test1.json"), Charsets.UTF_8));
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/sort/TestSimpleSort.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/sort/TestSimpleSort.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/sort/TestSimpleSort.java
index f9f2a25..1b10c73 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/sort/TestSimpleSort.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/sort/TestSimpleSort.java
@@ -23,17 +23,13 @@ import static org.junit.Assert.assertTrue;
import org.apache.drill.common.config.DrillConfig;
import org.apache.drill.common.expression.ExpressionPosition;
import org.apache.drill.common.expression.SchemaPath;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.common.util.FileUtils;
import org.apache.drill.exec.ExecTest;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
import org.apache.drill.exec.physical.impl.ImplCreator;
-import org.apache.drill.exec.physical.impl.OperatorCreatorRegistry;
import org.apache.drill.exec.physical.impl.SimpleRootExec;
import org.apache.drill.exec.planner.PhysicalPlanReader;
import org.apache.drill.exec.planner.PhysicalPlanReaderTestFactory;
@@ -45,12 +41,10 @@ import org.apache.drill.exec.vector.IntVector;
import org.junit.Ignore;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
@Ignore
public class TestSimpleSort extends ExecTest {
@@ -59,13 +53,7 @@ public class TestSimpleSort extends ExecTest {
@Test
public void sortOneKeyAscending(@Injectable final DrillbitContext bitContext, @Injectable UserClientConnection connection) throws Throwable {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/sort/one_key_sort.json"), Charsets.UTF_8));
@@ -103,13 +91,7 @@ public class TestSimpleSort extends ExecTest {
@Test
public void sortTwoKeysOneAscendingOneDescending(@Injectable final DrillbitContext bitContext, @Injectable UserClientConnection connection) throws Throwable {
- new NonStrictExpectations(){{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/sort/two_key_sort.json"), Charsets.UTF_8));
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/trace/TestTraceMultiRecordBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/trace/TestTraceMultiRecordBatch.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/trace/TestTraceMultiRecordBatch.java
index 064ab7f..2364798 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/trace/TestTraceMultiRecordBatch.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/trace/TestTraceMultiRecordBatch.java
@@ -20,17 +20,13 @@ package org.apache.drill.exec.physical.impl.trace;
import static org.junit.Assert.assertTrue;
import org.apache.drill.common.config.DrillConfig;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.common.util.FileUtils;
import org.apache.drill.exec.ExecTest;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
import org.apache.drill.exec.physical.impl.ImplCreator;
-import org.apache.drill.exec.physical.impl.OperatorCreatorRegistry;
import org.apache.drill.exec.physical.impl.SimpleRootExec;
import org.apache.drill.exec.planner.PhysicalPlanReader;
import org.apache.drill.exec.planner.PhysicalPlanReaderTestFactory;
@@ -40,12 +36,10 @@ import org.apache.drill.exec.server.DrillbitContext;
import org.apache.drill.exec.vector.ValueVector;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
/*
* This test uses a physical plan with the mock scan that generates 100k records.
@@ -61,13 +55,7 @@ public class TestTraceMultiRecordBatch extends ExecTest {
@Test
public void testFilter(@Injectable final DrillbitContext bitContext, @Injectable UserClientConnection connection) throws Throwable {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getConfig(); result = c;
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/trace/multi_record_batch_trace.json"), Charsets.UTF_8));
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/trace/TestTraceOutputDump.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/trace/TestTraceOutputDump.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/trace/TestTraceOutputDump.java
index 652c693..014ec02 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/trace/TestTraceOutputDump.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/trace/TestTraceOutputDump.java
@@ -20,19 +20,15 @@ package org.apache.drill.exec.physical.impl.trace;
import static org.junit.Assert.assertTrue;
import org.apache.drill.common.config.DrillConfig;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.common.util.FileUtils;
import org.apache.drill.exec.ExecConstants;
import org.apache.drill.exec.ExecTest;
import org.apache.drill.exec.cache.VectorAccessibleSerializable;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
import org.apache.drill.exec.physical.impl.ImplCreator;
-import org.apache.drill.exec.physical.impl.OperatorCreatorRegistry;
import org.apache.drill.exec.physical.impl.SimpleRootExec;
import org.apache.drill.exec.planner.PhysicalPlanReader;
import org.apache.drill.exec.planner.PhysicalPlanReaderTestFactory;
@@ -48,12 +44,10 @@ import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
/*
* This test uses a simple physical plan with a mock-scan that
@@ -75,13 +69,7 @@ public class TestTraceOutputDump extends ExecTest {
@Test
public void testFilter(@Injectable final DrillbitContext bitContext, @Injectable UserClientConnection connection) throws Throwable {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getConfig(); result = c;
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/trace/simple_trace.json"), Charsets.UTF_8));
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/union/TestSimpleUnion.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/union/TestSimpleUnion.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/union/TestSimpleUnion.java
index 3d613ce..9835a27 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/union/TestSimpleUnion.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/impl/union/TestSimpleUnion.java
@@ -21,17 +21,13 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertTrue;
import org.apache.drill.common.config.DrillConfig;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.common.util.FileUtils;
import org.apache.drill.exec.ExecTest;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
import org.apache.drill.exec.physical.impl.ImplCreator;
-import org.apache.drill.exec.physical.impl.OperatorCreatorRegistry;
import org.apache.drill.exec.physical.impl.SimpleRootExec;
import org.apache.drill.exec.planner.PhysicalPlanReader;
import org.apache.drill.exec.planner.PhysicalPlanReaderTestFactory;
@@ -40,12 +36,10 @@ import org.apache.drill.exec.rpc.user.UserServer;
import org.apache.drill.exec.server.DrillbitContext;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
public class TestSimpleUnion extends ExecTest {
//private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestSimpleUnion.class);
@@ -53,13 +47,7 @@ public class TestSimpleUnion extends ExecTest {
@Test
public void testUnion(@Injectable final DrillbitContext bitContext, @Injectable UserServer.UserClientConnection connection) throws Throwable {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/union/test1.json"), Charsets.UTF_8));
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/physical/unit/PhysicalOpUnitTestBase.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/unit/PhysicalOpUnitTestBase.java b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/unit/PhysicalOpUnitTestBase.java
index 245e5bb..2ef21ca 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/physical/unit/PhysicalOpUnitTestBase.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/physical/unit/PhysicalOpUnitTestBase.java
@@ -42,6 +42,7 @@ import org.apache.drill.common.logical.data.NamedExpression;
import org.apache.drill.common.logical.data.Order;
import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.common.scanner.persistence.ScanResult;
+import org.apache.drill.exec.ExecTest;
import org.apache.drill.exec.compile.CodeCompiler;
import org.apache.drill.exec.compile.TemplateClassDefinition;
import org.apache.drill.exec.exception.ClassTransformationException;
@@ -64,12 +65,9 @@ import org.apache.drill.exec.physical.impl.project.ProjectorTemplate;
import org.apache.drill.exec.proto.ExecProtos;
import org.apache.drill.exec.record.RecordBatch;
import org.apache.drill.exec.record.VectorAccessible;
-import org.apache.drill.exec.server.options.OptionManager;
-import org.apache.drill.exec.server.options.TypeValidators;
import org.apache.drill.exec.store.RecordReader;
import org.apache.drill.exec.store.easy.json.JSONRecordReader;
import org.apache.drill.exec.testing.ExecutionControls;
-import org.apache.drill.test.DrillTest;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
@@ -83,12 +81,11 @@ import java.util.Map;
/**
* Look! Doesn't extend BaseTestQuery!!
*/
-public class PhysicalOpUnitTestBase extends DrillTest {
+public class PhysicalOpUnitTestBase extends ExecTest {
@Injectable FragmentContext fragContext;
@Injectable OperatorContext opContext;
@Injectable OperatorStats opStats;
- @Injectable OptionManager optManager;
@Injectable PhysicalOperator popConf;
@Injectable ExecutionControls executionControls;
@@ -278,19 +275,19 @@ public class PhysicalOpUnitTestBase extends DrillTest {
}
}
- private void mockFragmentContext(long initReservation, long maxAllocation) {
- final CodeCompiler compiler = new CodeCompiler(drillConf, optManager);
+ private void mockFragmentContext(long initReservation, long maxAllocation) throws Exception{
+ final CodeCompiler compiler = new CodeCompiler(drillConf, optionManager);
final BufferAllocator allocator = this.allocator.newChildAllocator("allocator_for_operator_test", initReservation, maxAllocation);
new NonStrictExpectations() {
{
- optManager.getOption(withAny(new TypeValidators.BooleanValidator("", false))); result = false;
- // TODO(DRILL-4450) - Probably want to just create a default option manager, this is a hack to prevent
- // the code compilation from failing when trying to decide of scalar replacement is turned on
- // this will cause other code paths to fail because this return value won't be valid for most
- // string options
- optManager.getOption(withAny(new TypeValidators.StringValidator("", "try"))); result = "try";
- optManager.getOption(withAny(new TypeValidators.PositiveLongValidator("", 1l, 1l))); result = 10;
- fragContext.getOptions(); result = optManager;
+// optManager.getOption(withAny(new TypeValidators.BooleanValidator("", false))); result = false;
+// // TODO(DRILL-4450) - Probably want to just create a default option manager, this is a hack to prevent
+// // the code compilation from failing when trying to decide of scalar replacement is turned on
+// // this will cause other code paths to fail because this return value won't be valid for most
+// // string options
+// optManager.getOption(withAny(new TypeValidators.StringValidator("", "try"))); result = "try";
+// optManager.getOption(withAny(new TypeValidators.PositiveLongValidator("", 1l, 1l))); result = 10;
+ fragContext.getOptions(); result = optionManager;
fragContext.getManagedBuffer(); result = bufManager.getManagedBuffer();
fragContext.shouldContinue(); result = true;
fragContext.getExecutionControls(); result = executionControls;
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/pop/PopUnitTestBase.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/pop/PopUnitTestBase.java b/exec/java-exec/src/test/java/org/apache/drill/exec/pop/PopUnitTestBase.java
index 3116fbb..56543ca 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/pop/PopUnitTestBase.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/pop/PopUnitTestBase.java
@@ -36,7 +36,7 @@ import com.google.common.base.Charsets;
import com.google.common.io.Files;
public abstract class PopUnitTestBase extends ExecTest{
- static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(PopUnitTestBase.class);
+// static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(PopUnitTestBase.class);
protected static DrillConfig CONFIG;
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/record/TestRecordIterator.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/record/TestRecordIterator.java b/exec/java-exec/src/test/java/org/apache/drill/exec/record/TestRecordIterator.java
index f892f0d..c2429b7 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/record/TestRecordIterator.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/record/TestRecordIterator.java
@@ -23,14 +23,10 @@ import static org.junit.Assert.assertTrue;
import com.google.common.collect.Lists;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
import org.apache.drill.common.config.DrillConfig;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.common.util.FileUtils;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.ops.OpProfileDef;
import org.apache.drill.exec.ops.OperatorContext;
@@ -39,7 +35,6 @@ import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
import org.apache.drill.exec.physical.base.PhysicalOperator;
import org.apache.drill.exec.physical.impl.ImplCreator;
-import org.apache.drill.exec.physical.impl.OperatorCreatorRegistry;
import org.apache.drill.exec.physical.impl.SimpleRootExec;
import org.apache.drill.exec.planner.PhysicalPlanReaderTestFactory;
import org.apache.drill.exec.pop.PopUnitTestBase;
@@ -49,10 +44,8 @@ import org.apache.drill.exec.proto.UserBitShared;
import org.apache.drill.exec.rpc.user.UserServer;
import org.apache.drill.exec.server.DrillbitContext;
import org.apache.drill.exec.vector.ValueVector;
-import org.junit.Ignore;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
@@ -65,13 +58,7 @@ public class TestRecordIterator extends PopUnitTestBase {
@Test
public void testSimpleIterator(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection) throws Throwable{
- new NonStrictExpectations(){{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
@@ -128,13 +115,7 @@ public class TestRecordIterator extends PopUnitTestBase {
@Test
public void testMarkResetIterator(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection) throws Throwable{
- new NonStrictExpectations(){{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
[2/2] drill git commit: DRILL-4715: Fix java compilation error in
run-time generated code when query has large number of expressions.
Posted by jn...@apache.org.
DRILL-4715: Fix java compilation error in run-time generated code when query has large number of expressions.
Refactor unit test in drillbit context initialization and pass in option manager.
close apache/drill#521
Project: http://git-wip-us.apache.org/repos/asf/drill/repo
Commit: http://git-wip-us.apache.org/repos/asf/drill/commit/11602456
Tree: http://git-wip-us.apache.org/repos/asf/drill/tree/11602456
Diff: http://git-wip-us.apache.org/repos/asf/drill/diff/11602456
Branch: refs/heads/master
Commit: 11602456b3e7b334c6cd060e633f5668d32d80e9
Parents: e047e10
Author: Jinfeng Ni <jn...@apache.org>
Authored: Thu Jun 9 17:08:45 2016 -0700
Committer: Jinfeng Ni <jn...@apache.org>
Committed: Fri Jun 24 09:51:48 2016 -0700
----------------------------------------------------------------------
.../org/apache/drill/exec/ExecConstants.java | 4 +
.../apache/drill/exec/expr/ClassGenerator.java | 72 ++++++++---
.../apache/drill/exec/expr/CodeGenerator.java | 28 ++--
.../org/apache/drill/exec/expr/SizedJBlock.java | 50 ++++++++
.../expr/fn/FunctionImplementationRegistry.java | 2 +-
.../exec/physical/impl/TopN/TopNBatch.java | 8 +-
.../physical/impl/aggregate/HashAggBatch.java | 4 +-
.../impl/aggregate/StreamingAggBatch.java | 19 +--
.../physical/impl/common/ChainedHashTable.java | 18 +--
.../physical/impl/filter/FilterRecordBatch.java | 10 +-
.../impl/flatten/FlattenRecordBatch.java | 2 +-
.../exec/physical/impl/join/HashJoinBatch.java | 2 +-
.../exec/physical/impl/join/MergeJoinBatch.java | 8 +-
.../physical/impl/join/NestedLoopJoinBatch.java | 2 +-
.../impl/mergereceiver/MergingRecordBatch.java | 8 +-
.../OrderedPartitionRecordBatch.java | 11 +-
.../PartitionSenderRootExec.java | 2 +-
.../impl/project/ProjectRecordBatch.java | 8 +-
.../exec/physical/impl/sort/SortBatch.java | 8 +-
.../impl/svremover/RemovingRecordBatch.java | 4 +-
.../impl/union/UnionAllRecordBatch.java | 2 +-
.../impl/window/WindowFrameRecordBatch.java | 8 +-
.../physical/impl/xsort/ExternalSortBatch.java | 18 +--
.../server/options/SystemOptionManager.java | 3 +-
.../java/org/apache/drill/exec/ExecTest.java | 36 ++++++
.../apache/drill/exec/client/DumpCatTest.java | 14 +-
.../exec/compile/TestClassTransformation.java | 2 +-
.../exec/compile/TestEvaluationVisitor.java | 2 +-
.../exec/compile/TestLargeFileCompilation.java | 17 +++
.../apache/drill/exec/expr/ExpressionTest.java | 3 +-
.../drill/exec/fn/impl/TestCastFunctions.java | 1 -
.../drill/exec/fn/impl/TestMathFunctions.java | 14 +-
.../exec/fn/impl/TestNewMathFunctions.java | 17 +--
.../exec/fn/impl/TestRepeatedFunction.java | 14 +-
.../exec/physical/impl/TestCastFunctions.java | 127 ++++---------------
.../physical/impl/TestComparisonFunctions.java | 13 +-
.../impl/TestImplicitCastFunctions.java | 13 +-
.../exec/physical/impl/TestOptiqPlans.java | 11 +-
.../exec/physical/impl/TestSimpleFunctions.java | 29 +----
.../exec/physical/impl/TestStringFunctions.java | 14 +-
.../drill/exec/physical/impl/agg/TestAgg.java | 15 +--
.../physical/impl/common/TestHashTable.java | 66 ----------
.../physical/impl/filter/TestSimpleFilter.java | 22 +---
.../exec/physical/impl/join/TestHashJoin.java | 24 +---
.../exec/physical/impl/join/TestMergeJoin.java | 46 +------
.../physical/impl/limit/TestSimpleLimit.java | 31 +----
.../impl/project/TestSimpleProjection.java | 14 +-
.../exec/physical/impl/sort/TestSimpleSort.java | 22 +---
.../impl/trace/TestTraceMultiRecordBatch.java | 14 +-
.../impl/trace/TestTraceOutputDump.java | 14 +-
.../physical/impl/union/TestSimpleUnion.java | 14 +-
.../physical/unit/PhysicalOpUnitTestBase.java | 27 ++--
.../apache/drill/exec/pop/PopUnitTestBase.java | 2 +-
.../drill/exec/record/TestRecordIterator.java | 23 +---
54 files changed, 324 insertions(+), 638 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/ExecConstants.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/ExecConstants.java b/exec/java-exec/src/main/java/org/apache/drill/exec/ExecConstants.java
index 0bc8a07..0d7e0d0 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/ExecConstants.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/ExecConstants.java
@@ -321,4 +321,8 @@ public interface ExecConstants {
*/
String WEB_LOGS_MAX_LINES = "web.logs.max_lines";
OptionValidator WEB_LOGS_MAX_LINES_VALIDATOR = new PositiveLongValidator(WEB_LOGS_MAX_LINES, Integer.MAX_VALUE, 10000);
+
+ String CODE_GEN_EXP_IN_METHOD_SIZE = "exec.java.compiler.exp_in_method_size";
+ LongValidator CODE_GEN_EXP_IN_METHOD_SIZE_VALIDATOR = new LongValidator(CODE_GEN_EXP_IN_METHOD_SIZE, 50);
+
}
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/expr/ClassGenerator.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/ClassGenerator.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/ClassGenerator.java
index b904fe0..1f82682 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/ClassGenerator.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/ClassGenerator.java
@@ -28,6 +28,7 @@ import org.apache.drill.common.expression.LogicalExpression;
import org.apache.drill.common.types.TypeProtos;
import org.apache.drill.common.types.TypeProtos.DataMode;
import org.apache.drill.common.types.TypeProtos.MajorType;
+import org.apache.drill.exec.ExecConstants;
import org.apache.drill.exec.compile.sig.CodeGeneratorArgument;
import org.apache.drill.exec.compile.sig.CodeGeneratorMethod;
import org.apache.drill.exec.compile.sig.GeneratorMapping;
@@ -54,6 +55,7 @@ import com.sun.codemodel.JMethod;
import com.sun.codemodel.JMod;
import com.sun.codemodel.JType;
import com.sun.codemodel.JVar;
+import org.apache.drill.exec.server.options.OptionManager;
public class ClassGenerator<T>{
@@ -63,8 +65,6 @@ public class ClassGenerator<T>{
static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(ClassGenerator.class);
public static enum BlockType {SETUP, EVAL, RESET, CLEANUP};
- private static final int MAX_BLOCKS_IN_FUNCTION = 50;
-
private final SignatureHolder sig;
private final EvaluationVisitor evaluationVisitor;
private final Map<ValueVectorSetup, JVar> vvDeclaration = Maps.newHashMap();
@@ -74,8 +74,9 @@ public class ClassGenerator<T>{
private final CodeGenerator<T> codeGenerator;
public final JDefinedClass clazz;
- private final LinkedList<JBlock>[] blocks;
+ private final LinkedList<SizedJBlock>[] blocks;
private final JCodeModel model;
+ private final OptionManager optionManager;
private int index = 0;
private int labelIndex = 0;
@@ -86,14 +87,16 @@ public class ClassGenerator<T>{
}
@SuppressWarnings("unchecked")
- ClassGenerator(CodeGenerator<T> codeGenerator, MappingSet mappingSet, SignatureHolder signature, EvaluationVisitor eval, JDefinedClass clazz, JCodeModel model) throws JClassAlreadyExistsException {
+ ClassGenerator(CodeGenerator<T> codeGenerator, MappingSet mappingSet, SignatureHolder signature, EvaluationVisitor eval, JDefinedClass clazz, JCodeModel model, OptionManager optionManager) throws JClassAlreadyExistsException {
this.codeGenerator = codeGenerator;
this.clazz = clazz;
this.mappings = mappingSet;
this.sig = signature;
this.evaluationVisitor = eval;
this.model = model;
- blocks = (LinkedList<JBlock>[]) new LinkedList[sig.size()];
+ this.optionManager = optionManager;
+
+ blocks = (LinkedList<SizedJBlock>[]) new LinkedList[sig.size()];
for (int i =0; i < sig.size(); i++) {
blocks[i] = Lists.newLinkedList();
}
@@ -102,7 +105,7 @@ public class ClassGenerator<T>{
for (SignatureHolder child : signature.getChildHolders()) {
String innerClassName = child.getSignatureClass().getSimpleName();
JDefinedClass innerClazz = clazz._class(Modifier.FINAL + Modifier.PRIVATE, innerClassName);
- innerClasses.put(innerClassName, new ClassGenerator<>(codeGenerator, mappingSet, child, eval, innerClazz, model));
+ innerClasses.put(innerClassName, new ClassGenerator<>(codeGenerator, mappingSet, child, eval, innerClazz, model, optionManager));
}
}
@@ -129,7 +132,7 @@ public class ClassGenerator<T>{
}
public JBlock getBlock(String methodName) {
- JBlock blk = this.blocks[sig.get(methodName)].getLast();
+ JBlock blk = this.blocks[sig.get(methodName)].getLast().getBlock();
Preconditions.checkNotNull(blk, "Requested method name of %s was not available for signature %s.", methodName, this.sig);
return blk;
}
@@ -154,7 +157,7 @@ public class ClassGenerator<T>{
public void nestEvalBlock(JBlock block) {
String methodName = getCurrentMapping().getMethodName(BlockType.EVAL);
evaluationVisitor.newScope();
- this.blocks[sig.get(methodName)].addLast(block);
+ this.blocks[sig.get(methodName)].addLast(new SizedJBlock(block));
}
public void unNestEvalBlock() {
@@ -215,22 +218,47 @@ public class ClassGenerator<T>{
return vv;
}
+ public enum BlkCreateMode {
+ TRUE, // Create new block
+ FALSE, // Do not create block; put into existing block.
+ TRUE_IF_BOUND // Create new block only if # of expressions added hit upper-bound (ExecConstants.CODE_GEN_EXP_IN_METHOD_SIZE)
+ }
+
public HoldingContainer addExpr(LogicalExpression ex) {
- return addExpr(ex, true);
+ // default behavior is always to put expression into new block.
+ return addExpr(ex, BlkCreateMode.TRUE);
}
- public HoldingContainer addExpr(LogicalExpression ex, boolean rotate) {
-// logger.debug("Adding next write {}", ex);
- if (rotate) {
- rotateBlock();
+ public HoldingContainer addExpr(LogicalExpression ex, BlkCreateMode mode) {
+ if (mode == BlkCreateMode.TRUE || mode == BlkCreateMode.TRUE_IF_BOUND) {
+ rotateBlock(mode);
}
+
+ for (LinkedList<SizedJBlock> b : blocks) {
+ b.getLast().incCounter();
+ }
+
return evaluationVisitor.addExpr(ex, this);
}
public void rotateBlock() {
- evaluationVisitor.previousExpressions.clear();
- for (LinkedList<JBlock> b : blocks) {
- b.add(new JBlock(true, true));
+ // default behavior is always to create new block.
+ rotateBlock(BlkCreateMode.TRUE);
+ }
+
+ private void rotateBlock(BlkCreateMode mode) {
+ boolean blockRotated = false;
+ for (LinkedList<SizedJBlock> b : blocks) {
+ if (mode == BlkCreateMode.TRUE ||
+ (mode == BlkCreateMode.TRUE_IF_BOUND &&
+ optionManager != null &&
+ b.getLast().getCount() > optionManager.getOption(ExecConstants.CODE_GEN_EXP_IN_METHOD_SIZE_VALIDATOR))) {
+ b.add(new SizedJBlock(new JBlock(true, true)));
+ blockRotated = true;
+ }
+ }
+ if (blockRotated) {
+ evaluationVisitor.previousExpressions.clear();
}
}
@@ -247,11 +275,13 @@ public class ClassGenerator<T>{
outer._throws(SchemaChangeException.class);
int methodIndex = 0;
- int blocksInMethod = 0;
+ int exprsInMethod = 0;
boolean isVoidMethod = method.getReturnType() == void.class;
- for(JBlock b : blocks[i++]) {
+ for(SizedJBlock sb : blocks[i++]) {
+ JBlock b = sb.getBlock();
if(!b.isEmpty()) {
- if (blocksInMethod > MAX_BLOCKS_IN_FUNCTION) {
+ if (optionManager != null &&
+ exprsInMethod > optionManager.getOption(ExecConstants.CODE_GEN_EXP_IN_METHOD_SIZE_VALIDATOR)) {
JMethod inner = clazz.method(JMod.PRIVATE, model._ref(method.getReturnType()), method.getMethodName() + methodIndex);
JInvocation methodCall = JExpr.invoke(inner);
for (CodeGeneratorArgument arg : method) {
@@ -269,11 +299,11 @@ public class ClassGenerator<T>{
outer.body()._return(methodCall);
}
outer = inner;
- blocksInMethod = 0;
+ exprsInMethod = 0;
++methodIndex;
}
outer.body().add(b);
- ++blocksInMethod;
+ exprsInMethod += sb.getCount();
}
}
}
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/expr/CodeGenerator.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/CodeGenerator.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/CodeGenerator.java
index bdd1a5c..12178ee 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/CodeGenerator.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/CodeGenerator.java
@@ -27,6 +27,7 @@ import com.google.common.base.Preconditions;
import com.sun.codemodel.JClassAlreadyExistsException;
import com.sun.codemodel.JCodeModel;
import com.sun.codemodel.JDefinedClass;
+import org.apache.drill.exec.server.options.OptionManager;
/**
* A code generator is responsible for generating the Java source code required to complete the implementation of an
@@ -52,12 +53,12 @@ public class CodeGenerator<T> {
private String generatedCode;
private String generifiedCode;
- CodeGenerator(TemplateClassDefinition<T> definition, FunctionImplementationRegistry funcRegistry) {
- this(ClassGenerator.getDefaultMapping(), definition, funcRegistry);
+ CodeGenerator(TemplateClassDefinition<T> definition, FunctionImplementationRegistry funcRegistry, OptionManager optionManager) {
+ this(ClassGenerator.getDefaultMapping(), definition, funcRegistry, optionManager);
}
CodeGenerator(MappingSet mappingSet, TemplateClassDefinition<T> definition,
- FunctionImplementationRegistry funcRegistry) {
+ FunctionImplementationRegistry funcRegistry, OptionManager optionManager) {
Preconditions.checkNotNull(definition.getSignature(),
"The signature for defintion %s was incorrectly initialized.", definition);
this.definition = definition;
@@ -67,7 +68,7 @@ public class CodeGenerator<T> {
this.model = new JCodeModel();
JDefinedClass clazz = model._package(PACKAGE_NAME)._class(className);
rootGenerator = new ClassGenerator<>(this, mappingSet, definition.getSignature(), new EvaluationVisitor(
- funcRegistry), clazz, model);
+ funcRegistry), clazz, model, optionManager);
} catch (JClassAlreadyExistsException e) {
throw new IllegalStateException(e);
}
@@ -107,22 +108,27 @@ public class CodeGenerator<T> {
public static <T> CodeGenerator<T> get(TemplateClassDefinition<T> definition,
FunctionImplementationRegistry funcRegistry) {
- return new CodeGenerator<T>(definition, funcRegistry);
+ return get(definition, funcRegistry, null);
+ }
+
+ public static <T> CodeGenerator<T> get(TemplateClassDefinition<T> definition,
+ FunctionImplementationRegistry funcRegistry, OptionManager optionManager) {
+ return new CodeGenerator<T>(definition, funcRegistry, optionManager);
}
public static <T> ClassGenerator<T> getRoot(TemplateClassDefinition<T> definition,
- FunctionImplementationRegistry funcRegistry) {
- return get(definition, funcRegistry).getRoot();
+ FunctionImplementationRegistry funcRegistry, OptionManager optionManager) {
+ return get(definition, funcRegistry, optionManager).getRoot();
}
public static <T> ClassGenerator<T> getRoot(MappingSet mappingSet, TemplateClassDefinition<T> definition,
- FunctionImplementationRegistry funcRegistry) {
- return get(mappingSet, definition, funcRegistry).getRoot();
+ FunctionImplementationRegistry funcRegistry, OptionManager optionManager) {
+ return get(mappingSet, definition, funcRegistry, optionManager).getRoot();
}
public static <T> CodeGenerator<T> get(MappingSet mappingSet, TemplateClassDefinition<T> definition,
- FunctionImplementationRegistry funcRegistry) {
- return new CodeGenerator<T>(mappingSet, definition, funcRegistry);
+ FunctionImplementationRegistry funcRegistry, OptionManager optionManager) {
+ return new CodeGenerator<T>(mappingSet, definition, funcRegistry, optionManager);
}
@Override
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/expr/SizedJBlock.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/SizedJBlock.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/SizedJBlock.java
new file mode 100644
index 0000000..cf110c6
--- /dev/null
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/SizedJBlock.java
@@ -0,0 +1,50 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.drill.exec.expr;
+
+import com.sun.codemodel.JBlock;
+
+/**
+ * Uses this class to keep track # of Drill Logical Expressions that are
+ * put to JBlock.
+ *
+ * JBlock is final class; we could not extend JBlock directly.
+ */
+public class SizedJBlock {
+ private final JBlock block;
+ private int count; // # of Drill Logical Expressions added to this block
+
+ public SizedJBlock(JBlock block) {
+ this.block = block;
+ this.count = 0;
+ }
+
+ public JBlock getBlock() {
+ return this.block;
+ }
+
+ public void incCounter() {
+ this.count ++;
+ }
+
+ public int getCount() {
+ return this.count;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionImplementationRegistry.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionImplementationRegistry.java b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionImplementationRegistry.java
index 2feac1a..5d26325 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionImplementationRegistry.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/expr/fn/FunctionImplementationRegistry.java
@@ -19,7 +19,6 @@ package org.apache.drill.exec.expr.fn;
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
-import java.util.Collection;
import java.util.List;
import java.util.Set;
import java.util.concurrent.TimeUnit;
@@ -186,4 +185,5 @@ public class FunctionImplementationRegistry implements FunctionLookupContext {
}
return false;
}
+
}
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/TopN/TopNBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/TopN/TopNBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/TopN/TopNBatch.java
index c0d8e98..0fbcb7d 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/TopN/TopNBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/TopN/TopNBatch.java
@@ -330,7 +330,7 @@ public class TopNBatch extends AbstractRecordBatch<TopN> {
public PriorityQueue createNewPriorityQueue(FragmentContext context, List<Ordering> orderings,
VectorAccessible batch, MappingSet mainMapping, MappingSet leftMapping, MappingSet rightMapping)
throws ClassTransformationException, IOException, SchemaChangeException{
- CodeGenerator<PriorityQueue> cg = CodeGenerator.get(PriorityQueue.TEMPLATE_DEFINITION, context.getFunctionRegistry());
+ CodeGenerator<PriorityQueue> cg = CodeGenerator.get(PriorityQueue.TEMPLATE_DEFINITION, context.getFunctionRegistry(), context.getOptions());
ClassGenerator<PriorityQueue> g = cg.getRoot();
g.setMappingSet(mainMapping);
@@ -342,16 +342,16 @@ public class TopNBatch extends AbstractRecordBatch<TopN> {
throw new SchemaChangeException("Failure while materializing expression. " + collector.toErrorString());
}
g.setMappingSet(leftMapping);
- HoldingContainer left = g.addExpr(expr, false);
+ HoldingContainer left = g.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
g.setMappingSet(rightMapping);
- HoldingContainer right = g.addExpr(expr, false);
+ HoldingContainer right = g.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
g.setMappingSet(mainMapping);
// next we wrap the two comparison sides and add the expression block for the comparison.
LogicalExpression fh =
FunctionGenerationHelper.getOrderingComparator(od.nullsSortHigh(), left, right,
context.getFunctionRegistry());
- HoldingContainer out = g.addExpr(fh, false);
+ HoldingContainer out = g.addExpr(fh, ClassGenerator.BlkCreateMode.FALSE);
JConditional jc = g.getEvalBlock()._if(out.getValue().ne(JExpr.lit(0)));
if (od.getDirection() == Direction.ASCENDING) {
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/HashAggBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/HashAggBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/HashAggBatch.java
index d826922..606a542 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/HashAggBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/HashAggBatch.java
@@ -176,7 +176,7 @@ public class HashAggBatch extends AbstractRecordBatch<HashAggregate> {
private HashAggregator createAggregatorInternal() throws SchemaChangeException, ClassTransformationException,
IOException {
CodeGenerator<HashAggregator> top =
- CodeGenerator.get(HashAggregator.TEMPLATE_DEFINITION, context.getFunctionRegistry());
+ CodeGenerator.get(HashAggregator.TEMPLATE_DEFINITION, context.getFunctionRegistry(), context.getOptions());
ClassGenerator<HashAggregator> cg = top.getRoot();
ClassGenerator<HashAggregator> cgInner = cg.getInnerGenerator("BatchHolder");
@@ -257,7 +257,7 @@ public class HashAggBatch extends AbstractRecordBatch<HashAggregate> {
cg.setMappingSet(UpdateAggrValuesMapping);
for (LogicalExpression aggr : aggrExprs) {
- HoldingContainer hc = cg.addExpr(aggr, true);
+ HoldingContainer hc = cg.addExpr(aggr, ClassGenerator.BlkCreateMode.TRUE);
}
}
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/StreamingAggBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/StreamingAggBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/StreamingAggBatch.java
index 9d883f3..ba830c4 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/StreamingAggBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/aggregate/StreamingAggBatch.java
@@ -257,7 +257,8 @@ public class StreamingAggBatch extends AbstractRecordBatch<StreamingAggregate> {
}
private StreamingAggregator createAggregatorInternal() throws SchemaChangeException, ClassTransformationException, IOException{
- ClassGenerator<StreamingAggregator> cg = CodeGenerator.getRoot(StreamingAggTemplate.TEMPLATE_DEFINITION, context.getFunctionRegistry());
+ ClassGenerator<StreamingAggregator> cg = CodeGenerator.getRoot(StreamingAggTemplate.TEMPLATE_DEFINITION,
+ context.getFunctionRegistry(), context.getOptions());
container.clear();
LogicalExpression[] keyExprs = new LogicalExpression[popConfig.getKeys().size()];
@@ -322,14 +323,14 @@ public class StreamingAggBatch extends AbstractRecordBatch<StreamingAggregate> {
for (final LogicalExpression expr : keyExprs) {
// first, we rewrite the evaluation stack for each side of the comparison.
cg.setMappingSet(IS_SAME_I1);
- final HoldingContainer first = cg.addExpr(expr, false);
+ final HoldingContainer first = cg.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
cg.setMappingSet(IS_SAME_I2);
- final HoldingContainer second = cg.addExpr(expr, false);
+ final HoldingContainer second = cg.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
final LogicalExpression fh =
FunctionGenerationHelper
.getOrderingComparatorNullsHigh(first, second, context.getFunctionRegistry());
- final HoldingContainer out = cg.addExpr(fh, false);
+ final HoldingContainer out = cg.addExpr(fh, ClassGenerator.BlkCreateMode.FALSE);
cg.getEvalBlock()._if(out.getValue().ne(JExpr.lit(0)))._then()._return(JExpr.FALSE);
}
cg.getEvalBlock()._return(JExpr.TRUE);
@@ -345,14 +346,14 @@ public class StreamingAggBatch extends AbstractRecordBatch<StreamingAggregate> {
for (final LogicalExpression expr : keyExprs) {
// first, we rewrite the evaluation stack for each side of the comparison.
cg.setMappingSet(ISA_B1);
- final HoldingContainer first = cg.addExpr(expr, false);
+ final HoldingContainer first = cg.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
cg.setMappingSet(ISA_B2);
- final HoldingContainer second = cg.addExpr(expr, false);
+ final HoldingContainer second = cg.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
final LogicalExpression fh =
FunctionGenerationHelper
.getOrderingComparatorNullsHigh(first, second, context.getFunctionRegistry());
- final HoldingContainer out = cg.addExpr(fh, false);
+ final HoldingContainer out = cg.addExpr(fh, ClassGenerator.BlkCreateMode.FALSE);
cg.getEvalBlock()._if(out.getValue().ne(JExpr.lit(0)))._then()._return(JExpr.FALSE);
}
cg.getEvalBlock()._return(JExpr.TRUE);
@@ -392,9 +393,9 @@ public class StreamingAggBatch extends AbstractRecordBatch<StreamingAggregate> {
logger.debug("Writing out expr {}", keyExprs[i]);
cg.rotateBlock();
cg.setMappingSet(RECORD_KEYS_PREV);
- final HoldingContainer innerExpression = cg.addExpr(keyExprs[i], false);
+ final HoldingContainer innerExpression = cg.addExpr(keyExprs[i], ClassGenerator.BlkCreateMode.FALSE);
cg.setMappingSet(RECORD_KEYS_PREV_OUT);
- final HoldingContainer outerExpression = cg.addExpr(new ValueVectorWriteExpression(keyOutputIds[i], new HoldingContainerExpression(innerExpression), true), false);
+ final HoldingContainer outerExpression = cg.addExpr(new ValueVectorWriteExpression(keyOutputIds[i], new HoldingContainerExpression(innerExpression), true), ClassGenerator.BlkCreateMode.FALSE);
}
}
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/common/ChainedHashTable.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/common/ChainedHashTable.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/common/ChainedHashTable.java
index cfd95e9..260808c 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/common/ChainedHashTable.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/common/ChainedHashTable.java
@@ -19,15 +19,11 @@ package org.apache.drill.exec.physical.impl.common;
import java.io.IOException;
import java.util.Arrays;
-import java.util.LinkedList;
-import java.util.List;
-import org.apache.drill.common.exceptions.DrillRuntimeException;
import org.apache.drill.common.expression.ErrorCollector;
import org.apache.drill.common.expression.ErrorCollectorImpl;
import org.apache.drill.common.expression.LogicalExpression;
import org.apache.drill.common.logical.data.NamedExpression;
-import org.apache.drill.common.types.TypeProtos.MinorType;
import org.apache.drill.common.types.Types;
import org.apache.drill.exec.compile.sig.GeneratorMapping;
import org.apache.drill.exec.compile.sig.MappingSet;
@@ -45,13 +41,11 @@ import org.apache.drill.exec.memory.BufferAllocator;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.impl.join.JoinUtils;
import org.apache.drill.exec.planner.physical.HashPrelUtil;
-import org.apache.drill.exec.planner.physical.PrelUtil;
import org.apache.drill.exec.record.MaterializedField;
import org.apache.drill.exec.record.RecordBatch;
import org.apache.drill.exec.record.TypedFieldId;
import org.apache.drill.exec.record.VectorAccessible;
import org.apache.drill.exec.record.VectorContainer;
-import org.apache.drill.exec.resolver.TypeCastRules;
import org.apache.drill.exec.vector.ValueVector;
import com.sun.codemodel.JConditional;
@@ -139,7 +133,7 @@ public class ChainedHashTable {
public HashTable createAndSetupHashTable(TypedFieldId[] outKeyFieldIds) throws ClassTransformationException,
IOException, SchemaChangeException {
- CodeGenerator<HashTable> top = CodeGenerator.get(HashTable.TEMPLATE_DEFINITION, context.getFunctionRegistry());
+ CodeGenerator<HashTable> top = CodeGenerator.get(HashTable.TEMPLATE_DEFINITION, context.getFunctionRegistry(), context.getOptions());
ClassGenerator<HashTable> cg = top.getRoot();
ClassGenerator<HashTable> cgInner = cg.getInnerGenerator("BatchHolder");
@@ -239,11 +233,11 @@ public class ChainedHashTable {
int i = 0;
for (LogicalExpression expr : keyExprs) {
cg.setMappingSet(incomingMapping);
- HoldingContainer left = cg.addExpr(expr, false);
+ HoldingContainer left = cg.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
cg.setMappingSet(htableMapping);
ValueVectorReadExpression vvrExpr = new ValueVectorReadExpression(htKeyFieldIds[i++]);
- HoldingContainer right = cg.addExpr(vvrExpr, false);
+ HoldingContainer right = cg.addExpr(vvrExpr, ClassGenerator.BlkCreateMode.FALSE);
JConditional jc;
@@ -258,7 +252,7 @@ public class ChainedHashTable {
FunctionGenerationHelper
.getOrderingComparatorNullsHigh(left, right, context.getFunctionRegistry());
- HoldingContainer out = cg.addExpr(f, false);
+ HoldingContainer out = cg.addExpr(f, ClassGenerator.BlkCreateMode.FALSE);
// check if two values are not equal (comparator result != 0)
jc = cg.getEvalBlock()._if(out.getValue().ne(JExpr.lit(0)));
@@ -280,7 +274,7 @@ public class ChainedHashTable {
boolean useSetSafe = !Types.isFixedWidthType(expr.getMajorType()) || Types.isRepeated(expr.getMajorType());
ValueVectorWriteExpression vvwExpr = new ValueVectorWriteExpression(htKeyFieldIds[i++], expr, useSetSafe);
- cg.addExpr(vvwExpr, false); // this will write to the htContainer at htRowIdx
+ cg.addExpr(vvwExpr, ClassGenerator.BlkCreateMode.FALSE); // this will write to the htContainer at htRowIdx
}
}
@@ -293,7 +287,7 @@ public class ChainedHashTable {
ValueVectorReadExpression vvrExpr = new ValueVectorReadExpression(htKeyFieldIds[i]);
boolean useSetSafe = !Types.isFixedWidthType(vvrExpr.getMajorType()) || Types.isRepeated(vvrExpr.getMajorType());
ValueVectorWriteExpression vvwExpr = new ValueVectorWriteExpression(outKeyFieldIds[i], vvrExpr, useSetSafe);
- cg.addExpr(vvwExpr, true);
+ cg.addExpr(vvwExpr, ClassGenerator.BlkCreateMode.TRUE);
}
}
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/filter/FilterRecordBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/filter/FilterRecordBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/filter/FilterRecordBatch.java
index c0e8944..4b16185 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/filter/FilterRecordBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/filter/FilterRecordBatch.java
@@ -22,9 +22,7 @@ import java.util.List;
import org.apache.drill.common.expression.ErrorCollector;
import org.apache.drill.common.expression.ErrorCollectorImpl;
-import org.apache.drill.common.expression.ExpressionStringBuilder;
import org.apache.drill.common.expression.LogicalExpression;
-import org.apache.drill.exec.ExecConstants;
import org.apache.drill.exec.exception.ClassTransformationException;
import org.apache.drill.exec.exception.OutOfMemoryException;
import org.apache.drill.exec.exception.SchemaChangeException;
@@ -142,14 +140,14 @@ public class FilterRecordBatch extends AbstractSingleRecordBatch<Filter>{
protected Filterer generateSV4Filterer() throws SchemaChangeException {
final ErrorCollector collector = new ErrorCollectorImpl();
final List<TransferPair> transfers = Lists.newArrayList();
- final ClassGenerator<Filterer> cg = CodeGenerator.getRoot(Filterer.TEMPLATE_DEFINITION4, context.getFunctionRegistry());
+ final ClassGenerator<Filterer> cg = CodeGenerator.getRoot(Filterer.TEMPLATE_DEFINITION4, context.getFunctionRegistry(), context.getOptions());
final LogicalExpression expr = ExpressionTreeMaterializer.materialize(popConfig.getExpr(), incoming, collector, context.getFunctionRegistry());
if (collector.hasErrors()) {
throw new SchemaChangeException(String.format("Failure while trying to materialize incoming schema. Errors:\n %s.", collector.toErrorString()));
}
- cg.addExpr(new ReturnValueExpression(expr), false);
+ cg.addExpr(new ReturnValueExpression(expr), ClassGenerator.BlkCreateMode.FALSE);
for (final VectorWrapper<?> vw : incoming) {
for (final ValueVector vv : vw.getValueVectors()) {
@@ -176,7 +174,7 @@ public class FilterRecordBatch extends AbstractSingleRecordBatch<Filter>{
protected Filterer generateSV2Filterer() throws SchemaChangeException {
final ErrorCollector collector = new ErrorCollectorImpl();
final List<TransferPair> transfers = Lists.newArrayList();
- final ClassGenerator<Filterer> cg = CodeGenerator.getRoot(Filterer.TEMPLATE_DEFINITION2, context.getFunctionRegistry());
+ final ClassGenerator<Filterer> cg = CodeGenerator.getRoot(Filterer.TEMPLATE_DEFINITION2, context.getFunctionRegistry(), context.getOptions());
final LogicalExpression expr = ExpressionTreeMaterializer.materialize(popConfig.getExpr(), incoming, collector,
context.getFunctionRegistry(), false, unionTypeEnabled);
@@ -184,7 +182,7 @@ public class FilterRecordBatch extends AbstractSingleRecordBatch<Filter>{
throw new SchemaChangeException(String.format("Failure while trying to materialize incoming schema. Errors:\n %s.", collector.toErrorString()));
}
- cg.addExpr(new ReturnValueExpression(expr), false);
+ cg.addExpr(new ReturnValueExpression(expr), ClassGenerator.BlkCreateMode.FALSE);
for (final VectorWrapper<?> v : incoming) {
final TransferPair pair = v.getValueVector().makeTransferPair(container.addOrGet(v.getField(), callBack));
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/flatten/FlattenRecordBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/flatten/FlattenRecordBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/flatten/FlattenRecordBatch.java
index d8211fd..5b3f6ae 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/flatten/FlattenRecordBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/flatten/FlattenRecordBatch.java
@@ -284,7 +284,7 @@ public class FlattenRecordBatch extends AbstractSingleRecordBatch<FlattenPOP> {
final ErrorCollector collector = new ErrorCollectorImpl();
final List<TransferPair> transfers = Lists.newArrayList();
- final ClassGenerator<Flattener> cg = CodeGenerator.getRoot(Flattener.TEMPLATE_DEFINITION, context.getFunctionRegistry());
+ final ClassGenerator<Flattener> cg = CodeGenerator.getRoot(Flattener.TEMPLATE_DEFINITION, context.getFunctionRegistry(), context.getOptions());
final IntHashSet transferFieldIds = new IntHashSet();
final NamedExpression flattenExpr = new NamedExpression(popConfig.getColumn(), new FieldReference(popConfig.getColumn()));
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinBatch.java
index 2ace69e..431ced3 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/HashJoinBatch.java
@@ -406,7 +406,7 @@ public class HashJoinBatch extends AbstractRecordBatch<HashJoinPOP> {
}
public HashJoinProbe setupHashJoinProbe() throws ClassTransformationException, IOException {
- final CodeGenerator<HashJoinProbe> cg = CodeGenerator.get(HashJoinProbe.TEMPLATE_DEFINITION, context.getFunctionRegistry());
+ final CodeGenerator<HashJoinProbe> cg = CodeGenerator.get(HashJoinProbe.TEMPLATE_DEFINITION, context.getFunctionRegistry(), context.getOptions());
final ClassGenerator<HashJoinProbe> g = cg.getRoot();
// Generate the code to project build side records
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
index 10d0f20..234fd3a 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/MergeJoinBatch.java
@@ -267,7 +267,7 @@ public class MergeJoinBatch extends AbstractRecordBatch<MergeJoinPOP> {
private JoinWorker generateNewWorker() throws ClassTransformationException, IOException, SchemaChangeException{
- final ClassGenerator<JoinWorker> cg = CodeGenerator.getRoot(JoinWorker.TEMPLATE_DEFINITION, context.getFunctionRegistry());
+ final ClassGenerator<JoinWorker> cg = CodeGenerator.getRoot(JoinWorker.TEMPLATE_DEFINITION, context.getFunctionRegistry(), context.getOptions());
final ErrorCollector collector = new ErrorCollectorImpl();
// Generate members and initialization code
@@ -446,17 +446,17 @@ public class MergeJoinBatch extends AbstractRecordBatch<MergeJoinPOP> {
////////////////////////
cg.setMappingSet(compareMapping);
cg.getSetupBlock().assign(JExpr._this().ref(incomingRecordBatch), JExpr._this().ref(incomingLeftRecordBatch));
- ClassGenerator.HoldingContainer compareLeftExprHolder = cg.addExpr(leftExpression[i], false);
+ ClassGenerator.HoldingContainer compareLeftExprHolder = cg.addExpr(leftExpression[i], ClassGenerator.BlkCreateMode.FALSE);
cg.setMappingSet(compareRightMapping);
cg.getSetupBlock().assign(JExpr._this().ref(incomingRecordBatch), JExpr._this().ref(incomingRightRecordBatch));
- ClassGenerator.HoldingContainer compareRightExprHolder = cg.addExpr(rightExpression[i], false);
+ ClassGenerator.HoldingContainer compareRightExprHolder = cg.addExpr(rightExpression[i], ClassGenerator.BlkCreateMode.FALSE);
LogicalExpression fh =
FunctionGenerationHelper.getOrderingComparatorNullsHigh(compareLeftExprHolder,
compareRightExprHolder,
context.getFunctionRegistry());
- HoldingContainer out = cg.addExpr(fh, false);
+ HoldingContainer out = cg.addExpr(fh, ClassGenerator.BlkCreateMode.FALSE);
// If not 0, it means not equal.
// Null compares to Null should returns null (unknown). In such case, we return 1 to indicate they are not equal.
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/NestedLoopJoinBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/NestedLoopJoinBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/NestedLoopJoinBatch.java
index f0e53e1..9b935e8 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/NestedLoopJoinBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/join/NestedLoopJoinBatch.java
@@ -222,7 +222,7 @@ public class NestedLoopJoinBatch extends AbstractRecordBatch<NestedLoopJoinPOP>
* @throws ClassTransformationException
*/
private NestedLoopJoin setupWorker() throws IOException, ClassTransformationException {
- final CodeGenerator<NestedLoopJoin> nLJCodeGenerator = CodeGenerator.get(NestedLoopJoin.TEMPLATE_DEFINITION, context.getFunctionRegistry());
+ final CodeGenerator<NestedLoopJoin> nLJCodeGenerator = CodeGenerator.get(NestedLoopJoin.TEMPLATE_DEFINITION, context.getFunctionRegistry(), context.getOptions());
final ClassGenerator<NestedLoopJoin> nLJClassGenerator = nLJCodeGenerator.getRoot();
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java
index b1679e5..f7a3f22 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/mergereceiver/MergingRecordBatch.java
@@ -630,7 +630,7 @@ public class MergingRecordBatch extends AbstractRecordBatch<MergingReceiverPOP>
private MergingReceiverGeneratorBase createMerger() throws SchemaChangeException {
try {
- final CodeGenerator<MergingReceiverGeneratorBase> cg = CodeGenerator.get(MergingReceiverGeneratorBase.TEMPLATE_DEFINITION, context.getFunctionRegistry());
+ final CodeGenerator<MergingReceiverGeneratorBase> cg = CodeGenerator.get(MergingReceiverGeneratorBase.TEMPLATE_DEFINITION, context.getFunctionRegistry(), context.getOptions());
final ClassGenerator<MergingReceiverGeneratorBase> g = cg.getRoot();
ExpandableHyperContainer batch = null;
@@ -675,16 +675,16 @@ public class MergingRecordBatch extends AbstractRecordBatch<MergingReceiverPOP>
throw new SchemaChangeException("Failure while materializing expression. " + collector.toErrorString());
}
g.setMappingSet(LEFT_MAPPING);
- final HoldingContainer left = g.addExpr(expr, false);
+ final HoldingContainer left = g.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
g.setMappingSet(RIGHT_MAPPING);
- final HoldingContainer right = g.addExpr(expr, false);
+ final HoldingContainer right = g.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
g.setMappingSet(MAIN_MAPPING);
// next we wrap the two comparison sides and add the expression block for the comparison.
final LogicalExpression fh =
FunctionGenerationHelper.getOrderingComparator(od.nullsSortHigh(), left, right,
context.getFunctionRegistry());
- final HoldingContainer out = g.addExpr(fh, false);
+ final HoldingContainer out = g.addExpr(fh, ClassGenerator.BlkCreateMode.FALSE);
final JConditional jc = g.getEvalBlock()._if(out.getValue().ne(JExpr.lit(0)));
if (od.getDirection() == Direction.ASCENDING) {
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/orderedpartitioner/OrderedPartitionRecordBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/orderedpartitioner/OrderedPartitionRecordBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/orderedpartitioner/OrderedPartitionRecordBatch.java
index 897870c..baceba4 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/orderedpartitioner/OrderedPartitionRecordBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/orderedpartitioner/OrderedPartitionRecordBatch.java
@@ -70,7 +70,6 @@ import org.apache.drill.exec.vector.AllocationHelper;
import org.apache.drill.exec.vector.IntVector;
import org.apache.drill.exec.vector.ValueVector;
import org.apache.calcite.rel.RelFieldCollation.Direction;
-import org.apache.calcite.rel.RelFieldCollation.NullDirection;
import com.google.common.base.Preconditions;
import com.google.common.collect.Lists;
@@ -421,7 +420,7 @@ public class OrderedPartitionRecordBatch extends AbstractRecordBatch<OrderedPart
List<Ordering> orderings, List<ValueVector> localAllocationVectors) throws SchemaChangeException {
final ErrorCollector collector = new ErrorCollectorImpl();
final ClassGenerator<SampleCopier> cg = CodeGenerator.getRoot(SampleCopier.TEMPLATE_DEFINITION,
- context.getFunctionRegistry());
+ context.getFunctionRegistry(), context.getOptions());
int i = 0;
for (Ordering od : orderings) {
@@ -587,7 +586,7 @@ public class OrderedPartitionRecordBatch extends AbstractRecordBatch<OrderedPart
final List<TransferPair> transfers = Lists.newArrayList();
final ClassGenerator<OrderedPartitionProjector> cg = CodeGenerator.getRoot(
- OrderedPartitionProjector.TEMPLATE_DEFINITION, context.getFunctionRegistry());
+ OrderedPartitionProjector.TEMPLATE_DEFINITION, context.getFunctionRegistry(), context.getOptions());
for (VectorWrapper<?> vw : batch) {
TransferPair tp = vw.getValueVector().getTransferPair(oContext.getAllocator());
@@ -604,17 +603,17 @@ public class OrderedPartitionRecordBatch extends AbstractRecordBatch<OrderedPart
throw new SchemaChangeException("Failure while materializing expression. " + collector.toErrorString());
}
cg.setMappingSet(incomingMapping);
- ClassGenerator.HoldingContainer left = cg.addExpr(expr, false);
+ ClassGenerator.HoldingContainer left = cg.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
cg.setMappingSet(partitionMapping);
ClassGenerator.HoldingContainer right = cg.addExpr(
- new ValueVectorReadExpression(new TypedFieldId(expr.getMajorType(), count++)), false);
+ new ValueVectorReadExpression(new TypedFieldId(expr.getMajorType(), count++)), ClassGenerator.BlkCreateMode.FALSE);
cg.setMappingSet(mainMapping);
// next we wrap the two comparison sides and add the expression block for the comparison.
LogicalExpression fh =
FunctionGenerationHelper.getOrderingComparator(od.nullsSortHigh(), left, right,
context.getFunctionRegistry());
- ClassGenerator.HoldingContainer out = cg.addExpr(fh, false);
+ ClassGenerator.HoldingContainer out = cg.addExpr(fh, ClassGenerator.BlkCreateMode.FALSE);
JConditional jc = cg.getEvalBlock()._if(out.getValue().ne(JExpr.lit(0)));
if (od.getDirection() == Direction.ASCENDING) {
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/partitionsender/PartitionSenderRootExec.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/partitionsender/PartitionSenderRootExec.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/partitionsender/PartitionSenderRootExec.java
index cfe1b80..b22fbda 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/partitionsender/PartitionSenderRootExec.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/partitionsender/PartitionSenderRootExec.java
@@ -265,7 +265,7 @@ public class PartitionSenderRootExec extends BaseRootExec {
final ErrorCollector collector = new ErrorCollectorImpl();
final ClassGenerator<Partitioner> cg ;
- cg = CodeGenerator.getRoot(Partitioner.TEMPLATE_DEFINITION, context.getFunctionRegistry());
+ cg = CodeGenerator.getRoot(Partitioner.TEMPLATE_DEFINITION, context.getFunctionRegistry(), context.getOptions());
ClassGenerator<Partitioner> cgInner = cg.getInnerGenerator("OutgoingRecordBatch");
final LogicalExpression materializedExpr = ExpressionTreeMaterializer.materialize(expr, incoming, collector, context.getFunctionRegistry());
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/project/ProjectRecordBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/project/ProjectRecordBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/project/ProjectRecordBatch.java
index 7892f75..1227e41 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/project/ProjectRecordBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/project/ProjectRecordBatch.java
@@ -321,7 +321,7 @@ public class ProjectRecordBatch extends AbstractSingleRecordBatch<Project> {
final ErrorCollector collector = new ErrorCollectorImpl();
final List<TransferPair> transfers = Lists.newArrayList();
- final ClassGenerator<Projector> cg = CodeGenerator.getRoot(Projector.TEMPLATE_DEFINITION, context.getFunctionRegistry());
+ final ClassGenerator<Projector> cg = CodeGenerator.getRoot(Projector.TEMPLATE_DEFINITION, context.getFunctionRegistry(), context.getOptions());
final IntHashSet transferFieldIds = new IntHashSet();
@@ -388,7 +388,7 @@ public class ProjectRecordBatch extends AbstractSingleRecordBatch<Project> {
allocationVectors.add(vv);
final TypedFieldId fid = container.getValueVectorId(SchemaPath.getSimplePath(outputField.getPath()));
final ValueVectorWriteExpression write = new ValueVectorWriteExpression(fid, expr, true);
- final HoldingContainer hc = cg.addExpr(write, false);
+ final HoldingContainer hc = cg.addExpr(write, ClassGenerator.BlkCreateMode.TRUE_IF_BOUND);
}
}
continue;
@@ -452,7 +452,7 @@ public class ProjectRecordBatch extends AbstractSingleRecordBatch<Project> {
// The reference name will be passed to ComplexWriter, used as the name of the output vector from the writer.
((DrillComplexWriterFuncHolder) ((DrillFuncHolderExpr) expr).getHolder()).setReference(namedExpression.getRef());
- cg.addExpr(expr, false);
+ cg.addExpr(expr, ClassGenerator.BlkCreateMode.TRUE_IF_BOUND);
if (complexExprList == null) {
complexExprList = Lists.newArrayList();
}
@@ -465,7 +465,7 @@ public class ProjectRecordBatch extends AbstractSingleRecordBatch<Project> {
final TypedFieldId fid = container.getValueVectorId(SchemaPath.getSimplePath(outputField.getPath()));
final boolean useSetSafe = !(vector instanceof FixedWidthVector);
final ValueVectorWriteExpression write = new ValueVectorWriteExpression(fid, expr, useSetSafe);
- final HoldingContainer hc = cg.addExpr(write, false);
+ final HoldingContainer hc = cg.addExpr(write, ClassGenerator.BlkCreateMode.TRUE_IF_BOUND);
// We cannot do multiple transfers from the same vector. However we still need to instantiate the output vector.
if (expr instanceof ValueVectorReadExpression) {
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/sort/SortBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/sort/SortBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/sort/SortBatch.java
index fb17669..689607e 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/sort/SortBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/sort/SortBatch.java
@@ -161,7 +161,7 @@ public class SortBatch extends AbstractRecordBatch<Sort> {
public static Sorter createNewSorter(FragmentContext context, List<Ordering> orderings, VectorAccessible batch, MappingSet mainMapping, MappingSet leftMapping, MappingSet rightMapping)
throws ClassTransformationException, IOException, SchemaChangeException{
- CodeGenerator<Sorter> cg = CodeGenerator.get(Sorter.TEMPLATE_DEFINITION, context.getFunctionRegistry());
+ CodeGenerator<Sorter> cg = CodeGenerator.get(Sorter.TEMPLATE_DEFINITION, context.getFunctionRegistry(), context.getOptions());
ClassGenerator<Sorter> g = cg.getRoot();
g.setMappingSet(mainMapping);
@@ -173,16 +173,16 @@ public class SortBatch extends AbstractRecordBatch<Sort> {
throw new SchemaChangeException("Failure while materializing expression. " + collector.toErrorString());
}
g.setMappingSet(leftMapping);
- HoldingContainer left = g.addExpr(expr, false);
+ HoldingContainer left = g.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
g.setMappingSet(rightMapping);
- HoldingContainer right = g.addExpr(expr, false);
+ HoldingContainer right = g.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
g.setMappingSet(mainMapping);
// next we wrap the two comparison sides and add the expression block for the comparison.
LogicalExpression fh =
FunctionGenerationHelper.getOrderingComparator(od.nullsSortHigh(), left, right,
context.getFunctionRegistry());
- HoldingContainer out = g.addExpr(fh, false);
+ HoldingContainer out = g.addExpr(fh, ClassGenerator.BlkCreateMode.FALSE);
JConditional jc = g.getEvalBlock()._if(out.getValue().ne(JExpr.lit(0)));
if (od.getDirection() == Direction.ASCENDING) {
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/svremover/RemovingRecordBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/svremover/RemovingRecordBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/svremover/RemovingRecordBatch.java
index 5faaf58..799bf7f 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/svremover/RemovingRecordBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/svremover/RemovingRecordBatch.java
@@ -226,7 +226,7 @@ public class RemovingRecordBatch extends AbstractSingleRecordBatch<SelectionVect
}
try {
- final CodeGenerator<Copier> cg = CodeGenerator.get(Copier.TEMPLATE_DEFINITION2, context.getFunctionRegistry());
+ final CodeGenerator<Copier> cg = CodeGenerator.get(Copier.TEMPLATE_DEFINITION2, context.getFunctionRegistry(), context.getOptions());
CopyUtil.generateCopies(cg.getRoot(), incoming, false);
Copier copier = context.getImplementationClass(cg);
copier.setupRemover(context, incoming, this);
@@ -250,7 +250,7 @@ public class RemovingRecordBatch extends AbstractSingleRecordBatch<SelectionVect
}
try {
- final CodeGenerator<Copier> cg = CodeGenerator.get(Copier.TEMPLATE_DEFINITION4, context.getFunctionRegistry());
+ final CodeGenerator<Copier> cg = CodeGenerator.get(Copier.TEMPLATE_DEFINITION4, context.getFunctionRegistry(), context.getOptions());
CopyUtil.generateCopies(cg.getRoot(), batch, true);
Copier copier = context.getImplementationClass(cg);
copier.setupRemover(context, batch, outgoing);
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/union/UnionAllRecordBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/union/UnionAllRecordBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/union/UnionAllRecordBatch.java
index 57e80d7..cff2abd 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/union/UnionAllRecordBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/union/UnionAllRecordBatch.java
@@ -181,7 +181,7 @@ public class UnionAllRecordBatch extends AbstractRecordBatch<UnionAll> {
}
- final ClassGenerator<UnionAller> cg = CodeGenerator.getRoot(UnionAller.TEMPLATE_DEFINITION, context.getFunctionRegistry());
+ final ClassGenerator<UnionAller> cg = CodeGenerator.getRoot(UnionAller.TEMPLATE_DEFINITION, context.getFunctionRegistry(), context.getOptions());
int index = 0;
for(VectorWrapper<?> vw : current) {
ValueVector vvIn = vw.getValueVector();
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/window/WindowFrameRecordBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/window/WindowFrameRecordBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/window/WindowFrameRecordBatch.java
index d2c9e45..2404393 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/window/WindowFrameRecordBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/window/WindowFrameRecordBatch.java
@@ -326,7 +326,7 @@ public class WindowFrameRecordBatch extends AbstractRecordBatch<WindowPOP> {
TemplateClassDefinition<WindowFramer> definition = useCustomFrame ?
WindowFramer.FRAME_TEMPLATE_DEFINITION : WindowFramer.NOFRAME_TEMPLATE_DEFINITION;
- final ClassGenerator<WindowFramer> cg = CodeGenerator.getRoot(definition, context.getFunctionRegistry());
+ final ClassGenerator<WindowFramer> cg = CodeGenerator.getRoot(definition, context.getFunctionRegistry(), context.getOptions());
{
// generating framer.isSamePartition()
@@ -369,14 +369,14 @@ public class WindowFrameRecordBatch extends AbstractRecordBatch<WindowPOP> {
}
cg.setMappingSet(leftMapping);
- ClassGenerator.HoldingContainer first = cg.addExpr(expr, false);
+ ClassGenerator.HoldingContainer first = cg.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
cg.setMappingSet(rightMapping);
- ClassGenerator.HoldingContainer second = cg.addExpr(expr, false);
+ ClassGenerator.HoldingContainer second = cg.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
final LogicalExpression fh =
FunctionGenerationHelper
.getOrderingComparatorNullsHigh(first, second, context.getFunctionRegistry());
- final ClassGenerator.HoldingContainer out = cg.addExpr(fh, false);
+ final ClassGenerator.HoldingContainer out = cg.addExpr(fh, ClassGenerator.BlkCreateMode.FALSE);
cg.getEvalBlock()._if(out.getValue().ne(JExpr.lit(0)))._then()._return(JExpr.FALSE);
}
cg.getEvalBlock()._return(JExpr.TRUE);
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.java b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.java
index 32df705..c88bd4b 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/physical/impl/xsort/ExternalSortBatch.java
@@ -673,7 +673,7 @@ public class ExternalSortBatch extends AbstractRecordBatch<ExternalSort> {
private MSorter createNewMSorter(FragmentContext context, List<Ordering> orderings, VectorAccessible batch, MappingSet mainMapping, MappingSet leftMapping, MappingSet rightMapping)
throws ClassTransformationException, IOException, SchemaChangeException{
- CodeGenerator<MSorter> cg = CodeGenerator.get(MSorter.TEMPLATE_DEFINITION, context.getFunctionRegistry());
+ CodeGenerator<MSorter> cg = CodeGenerator.get(MSorter.TEMPLATE_DEFINITION, context.getFunctionRegistry(), context.getOptions());
ClassGenerator<MSorter> g = cg.getRoot();
g.setMappingSet(mainMapping);
@@ -685,16 +685,16 @@ public class ExternalSortBatch extends AbstractRecordBatch<ExternalSort> {
throw new SchemaChangeException("Failure while materializing expression. " + collector.toErrorString());
}
g.setMappingSet(leftMapping);
- HoldingContainer left = g.addExpr(expr, false);
+ HoldingContainer left = g.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
g.setMappingSet(rightMapping);
- HoldingContainer right = g.addExpr(expr, false);
+ HoldingContainer right = g.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
g.setMappingSet(mainMapping);
// next we wrap the two comparison sides and add the expression block for the comparison.
LogicalExpression fh =
FunctionGenerationHelper.getOrderingComparator(od.nullsSortHigh(), left, right,
context.getFunctionRegistry());
- HoldingContainer out = g.addExpr(fh, false);
+ HoldingContainer out = g.addExpr(fh, ClassGenerator.BlkCreateMode.FALSE);
JConditional jc = g.getEvalBlock()._if(out.getValue().ne(JExpr.lit(0)));
if (od.getDirection() == Direction.ASCENDING) {
@@ -715,7 +715,7 @@ public class ExternalSortBatch extends AbstractRecordBatch<ExternalSort> {
public SingleBatchSorter createNewSorter(FragmentContext context, VectorAccessible batch)
throws ClassTransformationException, IOException, SchemaChangeException{
- CodeGenerator<SingleBatchSorter> cg = CodeGenerator.get(SingleBatchSorter.TEMPLATE_DEFINITION, context.getFunctionRegistry());
+ CodeGenerator<SingleBatchSorter> cg = CodeGenerator.get(SingleBatchSorter.TEMPLATE_DEFINITION, context.getFunctionRegistry(), context.getOptions());
ClassGenerator<SingleBatchSorter> g = cg.getRoot();
generateComparisons(g, batch);
@@ -734,16 +734,16 @@ public class ExternalSortBatch extends AbstractRecordBatch<ExternalSort> {
throw new SchemaChangeException("Failure while materializing expression. " + collector.toErrorString());
}
g.setMappingSet(LEFT_MAPPING);
- HoldingContainer left = g.addExpr(expr, false);
+ HoldingContainer left = g.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
g.setMappingSet(RIGHT_MAPPING);
- HoldingContainer right = g.addExpr(expr, false);
+ HoldingContainer right = g.addExpr(expr, ClassGenerator.BlkCreateMode.FALSE);
g.setMappingSet(MAIN_MAPPING);
// next we wrap the two comparison sides and add the expression block for the comparison.
LogicalExpression fh =
FunctionGenerationHelper.getOrderingComparator(od.nullsSortHigh(), left, right,
context.getFunctionRegistry());
- HoldingContainer out = g.addExpr(fh, false);
+ HoldingContainer out = g.addExpr(fh, ClassGenerator.BlkCreateMode.FALSE);
JConditional jc = g.getEvalBlock()._if(out.getValue().ne(JExpr.lit(0)));
if (od.getDirection() == Direction.ASCENDING) {
@@ -761,7 +761,7 @@ public class ExternalSortBatch extends AbstractRecordBatch<ExternalSort> {
private void createCopier(VectorAccessible batch, List<BatchGroup> batchGroupList, VectorContainer outputContainer, boolean spilling) throws SchemaChangeException {
try {
if (copier == null) {
- CodeGenerator<PriorityQueueCopier> cg = CodeGenerator.get(PriorityQueueCopier.TEMPLATE_DEFINITION, context.getFunctionRegistry());
+ CodeGenerator<PriorityQueueCopier> cg = CodeGenerator.get(PriorityQueueCopier.TEMPLATE_DEFINITION, context.getFunctionRegistry(), context.getOptions());
ClassGenerator<PriorityQueueCopier> g = cg.getRoot();
generateComparisons(g, batch);
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java
index 119de98..8584907 100644
--- a/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java
+++ b/exec/java-exec/src/main/java/org/apache/drill/exec/server/options/SystemOptionManager.java
@@ -141,7 +141,8 @@ public class SystemOptionManager extends BaseOptionManager implements AutoClosea
ExecConstants.IMPLICIT_FILENAME_COLUMN_LABEL_VALIDATOR,
ExecConstants.IMPLICIT_SUFFIX_COLUMN_LABEL_VALIDATOR,
ExecConstants.IMPLICIT_FQN_COLUMN_LABEL_VALIDATOR,
- ExecConstants.IMPLICIT_FILEPATH_COLUMN_LABEL_VALIDATOR
+ ExecConstants.IMPLICIT_FILEPATH_COLUMN_LABEL_VALIDATOR,
+ ExecConstants.CODE_GEN_EXP_IN_METHOD_SIZE_VALIDATOR
};
final Map<String, OptionValidator> tmp = new HashMap<>();
for (final OptionValidator validator : validators) {
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/ExecTest.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/ExecTest.java b/exec/java-exec/src/test/java/org/apache/drill/exec/ExecTest.java
index 8a1aecb..2f26914 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/ExecTest.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/ExecTest.java
@@ -17,12 +17,28 @@
*/
package org.apache.drill.exec;
+import com.codahale.metrics.MetricRegistry;
+import mockit.NonStrictExpectations;
+import org.apache.drill.common.config.DrillConfig;
+import org.apache.drill.common.scanner.ClassPathScanner;
+import org.apache.drill.exec.compile.CodeCompilerTestFactory;
+import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.metrics.DrillMetrics;
+import org.apache.drill.exec.physical.impl.OperatorCreatorRegistry;
+import org.apache.drill.exec.planner.PhysicalPlanReaderTestFactory;
+import org.apache.drill.exec.server.DrillbitContext;
+import org.apache.drill.exec.server.options.SystemOptionManager;
+import org.apache.drill.exec.store.sys.store.provider.LocalPersistentStoreProvider;
import org.apache.drill.test.DrillTest;
import org.junit.After;
+import org.junit.BeforeClass;
+
public class ExecTest extends DrillTest {
+ protected static SystemOptionManager optionManager;
+ private static final DrillConfig c = DrillConfig.create();
+
@After
public void clear(){
// TODO: (Re DRILL-1735) Check whether still needed now that
@@ -30,4 +46,24 @@ public class ExecTest extends DrillTest {
DrillMetrics.resetMetrics();
}
+
+ @BeforeClass
+ public static void setupOptionManager() throws Exception{
+ final LocalPersistentStoreProvider provider = new LocalPersistentStoreProvider(c);
+ provider.start();
+ optionManager = new SystemOptionManager(PhysicalPlanReaderTestFactory.defaultLogicalPlanPersistence(c), provider);
+ optionManager.init();
+ }
+
+ protected void mockDrillbitContext(final DrillbitContext bitContext) throws Exception {
+ new NonStrictExpectations() {{
+ bitContext.getMetrics(); result = new MetricRegistry();
+ bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
+ bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
+ bitContext.getConfig(); result = c;
+ bitContext.getOptionManager(); result = optionManager;
+ bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
+ }};
+ }
+
}
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/client/DumpCatTest.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/client/DumpCatTest.java b/exec/java-exec/src/test/java/org/apache/drill/exec/client/DumpCatTest.java
index d6c5688..09a61c1 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/client/DumpCatTest.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/client/DumpCatTest.java
@@ -23,18 +23,14 @@ import static org.junit.Assert.assertTrue;
import java.io.FileInputStream;
import org.apache.drill.common.config.DrillConfig;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.common.util.FileUtils;
import org.apache.drill.exec.ExecConstants;
import org.apache.drill.exec.ExecTest;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
import org.apache.drill.exec.physical.impl.ImplCreator;
-import org.apache.drill.exec.physical.impl.OperatorCreatorRegistry;
import org.apache.drill.exec.physical.impl.SimpleRootExec;
import org.apache.drill.exec.planner.PhysicalPlanReader;
import org.apache.drill.exec.proto.BitControl.PlanFragment;
@@ -47,12 +43,10 @@ import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
/**
* The unit test case will read a physical plan in json format. The physical plan contains a "trace" operator,
@@ -67,13 +61,7 @@ public class DumpCatTest extends ExecTest {
public void testDumpCat(@Injectable final DrillbitContext bitContext, @Injectable UserClientConnection connection) throws Throwable
{
- new NonStrictExpectations(){{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getConfig(); result = c; minTimes = 1;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = defaultPhysicalPlanReader(c);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/trace/simple_trace.json"), Charsets.UTF_8));
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/compile/TestClassTransformation.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/compile/TestClassTransformation.java b/exec/java-exec/src/test/java/org/apache/drill/exec/compile/TestClassTransformation.java
index f2240cc..bf30601 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/compile/TestClassTransformation.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/compile/TestClassTransformation.java
@@ -117,7 +117,7 @@ public class TestClassTransformation extends BaseTestQuery {
private <T, X extends T> CodeGenerator<T> newCodeGenerator(Class<T> iface, Class<X> impl) {
final TemplateClassDefinition<T> template = new TemplateClassDefinition<T>(iface, impl);
- CodeGenerator<T> cg = CodeGenerator.get(template, getDrillbitContext().getFunctionImplementationRegistry());
+ CodeGenerator<T> cg = CodeGenerator.get(template, getDrillbitContext().getFunctionImplementationRegistry(), getDrillbitContext().getOptionManager());
ClassGenerator<T> root = cg.getRoot();
root.setMappingSet(new MappingSet(new GeneratorMapping("doOutside", null, null, null)));
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/compile/TestEvaluationVisitor.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/compile/TestEvaluationVisitor.java b/exec/java-exec/src/test/java/org/apache/drill/exec/compile/TestEvaluationVisitor.java
index 2311a42..6b16b26 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/compile/TestEvaluationVisitor.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/compile/TestEvaluationVisitor.java
@@ -46,7 +46,7 @@ public class TestEvaluationVisitor {
FunctionImplementationRegistry reg = new FunctionImplementationRegistry(c);
EvaluationVisitor v = new EvaluationVisitor(reg);
- CodeGenerator<?> g = CodeGenerator.get(Projector.TEMPLATE_DEFINITION, reg);
+ CodeGenerator<?> g = CodeGenerator.get(Projector.TEMPLATE_DEFINITION, reg, null);
SchemaPath path = (SchemaPath) getExpr("a.b[4][2].c[6]");
TypedFieldId id = TypedFieldId.newBuilder() //
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/compile/TestLargeFileCompilation.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/compile/TestLargeFileCompilation.java b/exec/java-exec/src/test/java/org/apache/drill/exec/compile/TestLargeFileCompilation.java
index e63bdc0..6c7fd9a 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/compile/TestLargeFileCompilation.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/compile/TestLargeFileCompilation.java
@@ -38,6 +38,8 @@ public class TestLargeFileCompilation extends BaseTestQuery {
private static final String LARGE_QUERY_WRITER;
+ private static final String LARGE_QUERY_SELECT_LIST;
+
private static final int ITERATION_COUNT = Integer.valueOf(System.getProperty("TestLargeFileCompilation.iteration", "1"));
private static final int NUM_PROJECT_COULMNS = 2000;
@@ -69,6 +71,15 @@ public class TestLargeFileCompilation extends BaseTestQuery {
for (int i = 0; i < NUM_PROJECT_COULMNS; i++) {
sb.append("employee_id+").append(i).append(" as col").append(i).append(", ");
}
+ sb.append("full_name\nfrom cp.`employee.json`\n\n\t");
+ LARGE_QUERY_SELECT_LIST = sb.append("full_name").toString();
+ }
+
+ static {
+ StringBuilder sb = new StringBuilder("select\n\t");
+ for (int i = 0; i < NUM_PROJECT_COULMNS; i++) {
+ sb.append("employee_id+").append(i).append(" as col").append(i).append(", ");
+ }
sb.append("full_name\nfrom cp.`employee.json`\norder by\n\t");
for (int i = 0; i < NUM_ORDERBY_COULMNS; i++) {
sb.append(" col").append(i).append(", ");
@@ -137,4 +148,10 @@ public class TestLargeFileCompilation extends BaseTestQuery {
testNoResult(ITERATION_COUNT, LARGE_QUERY_FILTER);
}
+ @Test
+ public void testProject() throws Exception {
+ testNoResult("alter session set `%s`='JDK'", QueryClassLoader.JAVA_COMPILER_OPTION);
+ testNoResult(ITERATION_COUNT, LARGE_QUERY_SELECT_LIST);
+ }
+
}
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/expr/ExpressionTest.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/expr/ExpressionTest.java b/exec/java-exec/src/test/java/org/apache/drill/exec/expr/ExpressionTest.java
index cf6fb69..a8e8814 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/expr/ExpressionTest.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/expr/ExpressionTest.java
@@ -137,7 +137,8 @@ public class ExpressionTest extends ExecTest {
assertEquals(0, error.getErrorCount());
}
- final ClassGenerator<Projector> cg = CodeGenerator.get(Projector.TEMPLATE_DEFINITION, new FunctionImplementationRegistry(DrillConfig.create())).getRoot();
+ FunctionImplementationRegistry funcReg = new FunctionImplementationRegistry(DrillConfig.create());
+ final ClassGenerator<Projector> cg = CodeGenerator.get(Projector.TEMPLATE_DEFINITION, funcReg, null).getRoot();
cg.addExpr(new ValueVectorWriteExpression(new TypedFieldId(materializedExpr.getMajorType(), -1), materializedExpr));
return cg.getCodeGenerator().generateAndGet();
}
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCastFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCastFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCastFunctions.java
index 23fc54e..0d50dd3 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCastFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCastFunctions.java
@@ -18,7 +18,6 @@
package org.apache.drill.exec.fn.impl;
import org.apache.drill.BaseTestQuery;
-import org.apache.drill.common.types.TypeProtos;
import org.apache.drill.common.util.FileUtils;
import org.joda.time.DateTime;
import org.junit.Test;
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestMathFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestMathFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestMathFunctions.java
index 4865683..72d582c 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestMathFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestMathFunctions.java
@@ -24,17 +24,13 @@ import static org.junit.Assert.assertTrue;
import org.apache.drill.common.config.DrillConfig;
import org.apache.drill.common.expression.ExpressionPosition;
import org.apache.drill.common.expression.SchemaPath;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.common.util.FileUtils;
import org.apache.drill.exec.ExecTest;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
import org.apache.drill.exec.physical.impl.ImplCreator;
-import org.apache.drill.exec.physical.impl.OperatorCreatorRegistry;
import org.apache.drill.exec.physical.impl.SimpleRootExec;
import org.apache.drill.exec.planner.PhysicalPlanReader;
import org.apache.drill.exec.planner.PhysicalPlanReaderTestFactory;
@@ -45,12 +41,10 @@ import org.apache.drill.exec.vector.Float8Vector;
import org.apache.drill.exec.vector.IntVector;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
public class TestMathFunctions extends ExecTest {
@@ -60,13 +54,7 @@ public class TestMathFunctions extends ExecTest {
@Test
public void testBasicMathFunctions(@Injectable final DrillbitContext bitContext, @Injectable UserClientConnection connection) throws Throwable
{
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/functions/simple_math_functions.json"), Charsets.UTF_8));
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewMathFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewMathFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewMathFunctions.java
index b8e7c37..b556656 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewMathFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewMathFunctions.java
@@ -24,15 +24,12 @@ import static org.junit.Assert.assertTrue;
import java.math.BigDecimal;
import org.apache.drill.common.config.DrillConfig;
-import org.apache.drill.common.scanner.ClassPathScanner;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
+import org.apache.drill.exec.ExecTest;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
import org.apache.drill.exec.physical.impl.ImplCreator;
-import org.apache.drill.exec.physical.impl.OperatorCreatorRegistry;
import org.apache.drill.exec.physical.impl.SimpleRootExec;
import org.apache.drill.exec.planner.PhysicalPlanReader;
import org.apache.drill.exec.planner.PhysicalPlanReaderTestFactory;
@@ -43,14 +40,12 @@ import org.apache.drill.exec.vector.ValueVector;
import org.apache.drill.exec.vector.VarCharVector;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Resources;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
-public class TestNewMathFunctions {
+public class TestNewMathFunctions extends ExecTest {
//private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestNewMathFunctions.class);
private final DrillConfig c = DrillConfig.create();
private PhysicalPlanReader reader;
@@ -77,13 +72,7 @@ public class TestNewMathFunctions {
public void runTest(@Injectable final DrillbitContext bitContext,
@Injectable UserServer.UserClientConnection connection, Object[] expectedResults, String planPath) throws Throwable {
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final String planString = Resources.toString(Resources.getResource(planPath), Charsets.UTF_8);
if (reader == null) {
http://git-wip-us.apache.org/repos/asf/drill/blob/11602456/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestRepeatedFunction.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestRepeatedFunction.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestRepeatedFunction.java
index 81d1157..961558a 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestRepeatedFunction.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestRepeatedFunction.java
@@ -23,17 +23,13 @@ import static org.junit.Assert.assertTrue;
import org.apache.drill.common.config.DrillConfig;
import org.apache.drill.common.expression.ExpressionPosition;
import org.apache.drill.common.expression.SchemaPath;
-import org.apache.drill.common.scanner.ClassPathScanner;
import org.apache.drill.common.util.FileUtils;
import org.apache.drill.exec.ExecTest;
-import org.apache.drill.exec.compile.CodeCompilerTestFactory;
import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
-import org.apache.drill.exec.memory.RootAllocatorFactory;
import org.apache.drill.exec.ops.FragmentContext;
import org.apache.drill.exec.physical.PhysicalPlan;
import org.apache.drill.exec.physical.base.FragmentRoot;
import org.apache.drill.exec.physical.impl.ImplCreator;
-import org.apache.drill.exec.physical.impl.OperatorCreatorRegistry;
import org.apache.drill.exec.physical.impl.SimpleRootExec;
import org.apache.drill.exec.planner.PhysicalPlanReader;
import org.apache.drill.exec.planner.PhysicalPlanReaderTestFactory;
@@ -44,12 +40,10 @@ import org.apache.drill.exec.vector.BitVector;
import org.apache.drill.exec.vector.IntVector;
import org.junit.Test;
-import com.codahale.metrics.MetricRegistry;
import com.google.common.base.Charsets;
import com.google.common.io.Files;
import mockit.Injectable;
-import mockit.NonStrictExpectations;
public class TestRepeatedFunction extends ExecTest{
//private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestRepeatedFunction.class);
@@ -58,13 +52,7 @@ public class TestRepeatedFunction extends ExecTest{
@Test
public void testRepeated(@Injectable final DrillbitContext bitContext, @Injectable UserClientConnection connection) throws Throwable {
// System.out.println(System.getProperty("java.class.path"));
- new NonStrictExpectations() {{
- bitContext.getMetrics(); result = new MetricRegistry();
- bitContext.getAllocator(); result = RootAllocatorFactory.newRoot(c);
- bitContext.getOperatorCreatorRegistry(); result = new OperatorCreatorRegistry(ClassPathScanner.fromPrescan(c));
- bitContext.getConfig(); result = c;
- bitContext.getCompiler(); result = CodeCompilerTestFactory.getTestCompiler(c);
- }};
+ mockDrillbitContext(bitContext);
final PhysicalPlanReader reader = PhysicalPlanReaderTestFactory.defaultPhysicalPlanReader(c);
final PhysicalPlan plan = reader.readPhysicalPlan(Files.toString(FileUtils.getResourceAsFile("/physical_repeated_1.json"), Charsets.UTF_8));