You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@drill.apache.org by pr...@apache.org on 2017/10/04 20:59:31 UTC

[4/6] drill git commit: DRILL-5752 this change includes:

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/TestPartitionFilter.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/TestPartitionFilter.java b/exec/java-exec/src/test/java/org/apache/drill/TestPartitionFilter.java
index 7d029ea..0ff7a12 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestPartitionFilter.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestPartitionFilter.java
@@ -20,11 +20,16 @@ package org.apache.drill;
 
 import static org.junit.Assert.assertEquals;
 
+import org.apache.drill.categories.PlannerTest;
+import org.apache.drill.categories.SqlTest;
+import org.apache.drill.categories.UnlikelyTest;
 import org.apache.drill.common.util.FileUtils;
 import org.apache.drill.common.util.TestTools;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
+@Category({SqlTest.class, PlannerTest.class})
 public class TestPartitionFilter extends PlanTestBase {
   static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestPartitionFilter.class);
 
@@ -257,6 +262,7 @@ public class TestPartitionFilter extends PlanTestBase {
   }
 
   @Test // see DRILL-2712
+  @Category(UnlikelyTest.class)
   public void testMainQueryFalseCondition() throws Exception {
     String root = FileUtils.getResourceAsFile("/multilevel/parquet").toURI().toString();
     String query = String.format("select * from (select dir0, o_custkey from dfs_test.`%s` where dir0='1994') t where 1 = 0", root);
@@ -265,6 +271,7 @@ public class TestPartitionFilter extends PlanTestBase {
   }
 
   @Test // see DRILL-2712
+  @Category(UnlikelyTest.class)
   public void testMainQueryTrueCondition() throws Exception {
     String root = FileUtils.getResourceAsFile("/multilevel/parquet").toURI().toString();
     String query =  String.format("select * from (select dir0, o_custkey from dfs_test.`%s` where dir0='1994' ) t where 0 = 0", root);
@@ -280,6 +287,7 @@ public class TestPartitionFilter extends PlanTestBase {
   }
 
   @Test // see DRILL-2852 and DRILL-3591
+  @Category(UnlikelyTest.class)
   public void testPartitionFilterWithCast() throws Exception {
     String root = FileUtils.getResourceAsFile("/multilevel/parquet").toURI().toString();
     String query = String.format("select myyear, myquarter, o_totalprice from (select cast(dir0 as varchar(10)) as myyear, "
@@ -307,6 +315,7 @@ public class TestPartitionFilter extends PlanTestBase {
   }
 
   @Test // DRILL-3702
+  @Category(UnlikelyTest.class)
   public void testPartitionFilterWithNonNullabeFilterExpr() throws Exception {
     String query = String.format("select dir0, dir1, o_custkey, o_orderdate from dfs_test.`%s/multilevel/parquet` where concat(dir0, '') = '1994' and concat(dir1, '') = 'Q1'", TEST_RES_PATH);
     testExcludeFilter(query, 1, "Filter", 10);
@@ -333,6 +342,7 @@ public class TestPartitionFilter extends PlanTestBase {
   }
 
   @Test  //DRILL-4021: Json with complex type and nested flatten functions: dir0 and dir1 filters plus filter involves filter refering to output from nested flatten functions.
+  @Category(UnlikelyTest.class)
   public void testPartitionFilter_Json_WithFlatten() throws Exception {
     // this query expects to have the partition filter pushded.
     // With partition pruning, we will end with one file, and one row returned from the query.

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/TestPlanVerificationUtilities.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/TestPlanVerificationUtilities.java b/exec/java-exec/src/test/java/org/apache/drill/TestPlanVerificationUtilities.java
index 4accb36..54c4c42 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestPlanVerificationUtilities.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestPlanVerificationUtilities.java
@@ -17,11 +17,14 @@
  ******************************************************************************/
 package org.apache.drill;
 
+import org.apache.drill.categories.PlannerTest;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
+@Category(PlannerTest.class)
 public class TestPlanVerificationUtilities extends PlanTestBase {
 
   @Test

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/TestProjectPushDown.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/TestProjectPushDown.java b/exec/java-exec/src/test/java/org/apache/drill/TestProjectPushDown.java
index d926422..fe7bc08 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestProjectPushDown.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestProjectPushDown.java
@@ -18,14 +18,17 @@
 
 package org.apache.drill;
 
+import org.apache.drill.categories.PlannerTest;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 // Test the optimizer plan in terms of project pushdown.
 // When a query refers to a subset of columns in a table, optimizer should push the list
 // of refereed columns to the SCAN operator, so that SCAN operator would only retrieve
 // the column values in the subset of columns.
 
+@Category(PlannerTest.class)
 public class TestProjectPushDown extends PlanTestBase {
   static final org.slf4j.Logger logger = org.slf4j.LoggerFactory
       .getLogger(TestProjectPushDown.class);

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/TestSelectWithOption.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/TestSelectWithOption.java b/exec/java-exec/src/test/java/org/apache/drill/TestSelectWithOption.java
index 111313b..80565a1 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestSelectWithOption.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestSelectWithOption.java
@@ -24,9 +24,12 @@ import java.io.File;
 import java.io.FileWriter;
 import java.io.IOException;
 
+import org.apache.drill.categories.SqlTest;
 import org.apache.drill.exec.store.dfs.WorkspaceSchemaFactory;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
+@Category(SqlTest.class)
 public class TestSelectWithOption extends BaseTestQuery {
   private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(WorkspaceSchemaFactory.class);
 

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/TestSelectivity.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/TestSelectivity.java b/exec/java-exec/src/test/java/org/apache/drill/TestSelectivity.java
index 648bd90..0c41ae0 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestSelectivity.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestSelectivity.java
@@ -17,11 +17,13 @@
  */
 package org.apache.drill;
 
-import org.apache.drill.common.util.TestTools;
+import org.apache.drill.categories.PlannerTest;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.assertEquals;
 
+@Category(PlannerTest.class)
 public class TestSelectivity extends BaseTestQuery {
     static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestSelectivity.class);
 

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/TestStarQueries.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/TestStarQueries.java b/exec/java-exec/src/test/java/org/apache/drill/TestStarQueries.java
index cf3e9b9..819704c 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestStarQueries.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestStarQueries.java
@@ -17,20 +17,26 @@
  */
 package org.apache.drill;
 
+import org.apache.drill.categories.PlannerTest;
+import org.apache.drill.categories.SqlTest;
+import org.apache.drill.categories.UnlikelyTest;
 import org.apache.drill.common.exceptions.UserException;
 import org.apache.drill.common.types.TypeProtos;
 import org.apache.drill.common.util.FileUtils;
 import org.apache.drill.common.util.TestTools;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.junit.Assert.assertEquals;
 
+@Category({SqlTest.class, PlannerTest.class})
 public class TestStarQueries extends BaseTestQuery{
   static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestStarQueries.class);
   static final String WORKING_PATH = TestTools.getWorkingPath();
   static final String TEST_RES_PATH = WORKING_PATH + "/src/test/resources";
 
   @Test // see DRILL-2021
+  @Category(UnlikelyTest.class)
   public void testSelStarCommaSameColumnRepeated() throws Exception {
     testBuilder()
       .sqlQuery("select n_name, *, n_name, n_name from cp.`tpch/nation.parquet`")
@@ -70,6 +76,7 @@ public class TestStarQueries extends BaseTestQuery{
   }
 
   @Test // see DRILL-1979
+  @Category(UnlikelyTest.class)
   public void testSelStarMultipleStarsRegularColumnAsAlias() throws Exception {
     testBuilder()
       .sqlQuery("select *, n_name as extra, *, n_name as extra from cp.`tpch/nation.parquet`")
@@ -91,6 +98,7 @@ public class TestStarQueries extends BaseTestQuery{
   }
 
   @Test // see DRILL-1828
+  @Category(UnlikelyTest.class)
   public void testSelStarMultipleStars() throws Exception {
     testBuilder()
     .sqlQuery("select *, *, n_name from cp.`tpch/nation.parquet`")
@@ -110,6 +118,7 @@ public class TestStarQueries extends BaseTestQuery{
   }
 
   @Test // see DRILL-1825
+  @Category(UnlikelyTest.class)
   public void testSelStarWithAdditionalColumnLimit() throws Exception {
     testBuilder()
     .sqlQuery("select *, n_nationkey, *, n_name from cp.`tpch/nation.parquet` limit 2")
@@ -235,6 +244,7 @@ public class TestStarQueries extends BaseTestQuery{
   }
 
   @Test // DRILL-1293
+  @Category(UnlikelyTest.class)
   public void testStarView1() throws Exception {
     test("use dfs_test.tmp");
     test("create view vt1 as select * from cp.`tpch/region.parquet` r, cp.`tpch/nation.parquet` n where r.r_regionkey = n.n_regionkey");
@@ -261,6 +271,7 @@ public class TestStarQueries extends BaseTestQuery{
   }
 
   @Test // see DRILL-1811
+  @Category(UnlikelyTest.class)
   public void testSelStarDifferentColumnOrder() throws Exception {
     test("select first_name, * from cp.`employee.json`;");
     test("select *, first_name, *, last_name from cp.`employee.json`;");
@@ -361,6 +372,7 @@ public class TestStarQueries extends BaseTestQuery{
   }
 
   @Test // DRILL-595 : Join two CTE, each having select * : regular columns appear in the select , where and on clause, group by, order by.
+  @Category(UnlikelyTest.class)
   public void testDRILL_595WithClauseJoin() throws Exception {
     test("with n as (select * from cp.`tpch/nation.parquet`), \n " +
         "     r as (select * from cp.`tpch/region.parquet`) \n" +
@@ -378,6 +390,7 @@ public class TestStarQueries extends BaseTestQuery{
   }
 
   @Test  // DRILL-1889
+  @Category(UnlikelyTest.class)
   public void testStarWithOtherExpression() throws Exception {
     testBuilder()
         .ordered()
@@ -399,6 +412,7 @@ public class TestStarQueries extends BaseTestQuery{
   }
 
   @Test // DRILL-1500
+  @Category(UnlikelyTest.class)
   public void testStarPartitionFilterOrderBy() throws Exception {
     String query = String.format("select * from dfs_test.`%s/multilevel/parquet` where dir0=1994 and dir1='Q1' order by dir0 limit 1", TEST_RES_PATH);
     org.joda.time.DateTime mydate = new org.joda.time.DateTime("1994-01-20T00:00:00.000");
@@ -412,6 +426,7 @@ public class TestStarQueries extends BaseTestQuery{
   }
 
   @Test // DRILL-2069
+  @Category(UnlikelyTest.class)
   public void testStarInSubquery() throws Exception {
     testBuilder()
         .unOrdered()
@@ -462,6 +477,7 @@ public class TestStarQueries extends BaseTestQuery{
 
 
   @Test //DRILL-2802
+  @Category(UnlikelyTest.class)
   public void testSelectPartitionColumnOnly() throws Exception {
     final String table = FileUtils.getResourceAsFile("/multilevel/parquet").toURI().toString();
     final String query1 = String.format("select dir0 from dfs_test.`%s` limit 1 ", table);
@@ -479,6 +495,7 @@ public class TestStarQueries extends BaseTestQuery{
   }
 
   @Test   // DRILL-2053 : column name is case-insensitive when join a CTE with a regluar table.
+  @Category(UnlikelyTest.class)
   public void testCaseSenJoinCTEWithRegTab() throws Exception {
     final String query1 = "with a as ( select * from cp.`tpch/nation.parquet` ) select * from a, cp.`tpch/region.parquet` b where a.N_REGIONKEY = b.R_REGIONKEY";
 

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/TestTpchDistributed.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/TestTpchDistributed.java b/exec/java-exec/src/test/java/org/apache/drill/TestTpchDistributed.java
index 3ac956c..5164de5 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestTpchDistributed.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestTpchDistributed.java
@@ -17,9 +17,12 @@
  */
 package org.apache.drill;
 
+import org.apache.drill.categories.SlowTest;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
+@Category(SlowTest.class)
 public class TestTpchDistributed extends BaseTestQuery {
 //  private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestTpchDistributed.class);
 

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/TestTpchDistributedConcurrent.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/TestTpchDistributedConcurrent.java b/exec/java-exec/src/test/java/org/apache/drill/TestTpchDistributedConcurrent.java
index f15e757..07b9eb6 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestTpchDistributedConcurrent.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestTpchDistributedConcurrent.java
@@ -24,7 +24,7 @@ import java.util.Random;
 import java.util.Set;
 import java.util.concurrent.Semaphore;
 
-import org.apache.drill.QueryTestUtil;
+import org.apache.drill.categories.SlowTest;
 import org.apache.drill.common.exceptions.UserException;
 import org.apache.drill.common.util.TestTools;
 import org.apache.drill.exec.proto.UserBitShared;
@@ -32,6 +32,7 @@ import org.apache.drill.exec.proto.UserBitShared.QueryResult.QueryState;
 import org.apache.drill.exec.rpc.user.UserResultsListener;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.junit.rules.TestRule;
 
 import com.google.common.collect.Sets;
@@ -45,8 +46,9 @@ import static org.junit.Assert.assertNull;
  * unstable from running a lot of queries concurrently -- it's not about
  * any particular order of execution. We ignore the results.
  */
+@Category(SlowTest.class)
 public class TestTpchDistributedConcurrent extends BaseTestQuery {
-  @Rule public final TestRule TIMEOUT = TestTools.getTimeoutRule(180000); // Longer timeout than usual.
+  @Rule public final TestRule TIMEOUT = TestTools.getTimeoutRule(360000); // Longer timeout than usual.
 
   /*
    * Valid test names taken from TestTpchDistributed. Fuller path prefixes are

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/TestTpchExplain.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/TestTpchExplain.java b/exec/java-exec/src/test/java/org/apache/drill/TestTpchExplain.java
index e10417d..1fc437c 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestTpchExplain.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestTpchExplain.java
@@ -17,9 +17,12 @@
  */
 package org.apache.drill;
 
+import org.apache.drill.categories.PlannerTest;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
+@Category(PlannerTest.class)
 public class TestTpchExplain extends BaseTestQuery{
   static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestTpchExplain.class);
 

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/TestTpchLimit0.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/TestTpchLimit0.java b/exec/java-exec/src/test/java/org/apache/drill/TestTpchLimit0.java
index 22471c8..68ebdda 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestTpchLimit0.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestTpchLimit0.java
@@ -17,9 +17,12 @@
  */
 package org.apache.drill;
 
+import org.apache.drill.categories.PlannerTest;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
+@Category(PlannerTest.class)
 public class TestTpchLimit0 extends BaseTestQuery{
   static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestTpchLimit0.class);
 

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/TestTpchPlanning.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/TestTpchPlanning.java b/exec/java-exec/src/test/java/org/apache/drill/TestTpchPlanning.java
index 1e35e0d..1c93a07 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestTpchPlanning.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestTpchPlanning.java
@@ -17,13 +17,15 @@
  */
 package org.apache.drill;
 
+import org.apache.drill.categories.PlannerTest;
 import org.apache.drill.common.util.TestTools;
 import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.junit.rules.TestRule;
 
-
+@Category(PlannerTest.class)
 public class TestTpchPlanning extends PlanningBase {
   //private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestTpchPlanning.class);
 

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/TestUnionAll.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/TestUnionAll.java b/exec/java-exec/src/test/java/org/apache/drill/TestUnionAll.java
index 63d21ff..831b70c 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestUnionAll.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestUnionAll.java
@@ -20,6 +20,9 @@ package org.apache.drill;
 import com.google.common.collect.Lists;
 
 import org.apache.commons.lang3.tuple.Pair;
+import org.apache.drill.categories.OperatorTest;
+import org.apache.drill.categories.SqlTest;
+import org.apache.drill.categories.UnlikelyTest;
 import org.apache.drill.common.exceptions.UserException;
 import org.apache.drill.common.expression.SchemaPath;
 import org.apache.drill.common.types.TypeProtos;
@@ -28,12 +31,14 @@ import org.apache.drill.exec.work.foreman.SqlUnsupportedException;
 import org.apache.drill.exec.work.foreman.UnsupportedRelOperatorException;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import java.io.BufferedWriter;
 import java.io.File;
 import java.io.FileWriter;
 import java.util.List;
 
+@Category({SqlTest.class, OperatorTest.class})
 public class TestUnionAll extends BaseTestQuery {
 
   private static final String sliceTargetSmall = "alter session set `planner.slice_target` = 1";
@@ -164,6 +169,7 @@ public class TestUnionAll extends BaseTestQuery {
   }
 
   @Test // DRILL-1905: Union-all of * column from JSON files in different directories
+  @Category(UnlikelyTest.class)
   public void testUnionAll9() throws Exception {
     String file0 = FileUtils.getResourceAsFile("/multilevel/json/1994/Q1/orders_94_q1.json").toURI().toString();
     String file1 = FileUtils.getResourceAsFile("/multilevel/json/1995/Q1/orders_95_q1.json").toURI().toString();
@@ -277,6 +283,7 @@ public class TestUnionAll extends BaseTestQuery {
   }
 
   @Test // see DRILL-2203
+  @Category(UnlikelyTest.class)
   public void testDistinctOverUnionAllwithFullyQualifiedColumnNames() throws Exception {
     String query = "select distinct sq.x1, sq.x2 " +
         "from " +
@@ -294,6 +301,7 @@ public class TestUnionAll extends BaseTestQuery {
   }
 
   @Test // see DRILL-1923
+  @Category(UnlikelyTest.class)
   public void testUnionAllContainsColumnANumericConstant() throws Exception {
     String query = "(select n_nationkey, n_regionkey, n_name from cp.`tpch/nation.parquet`  limit 5) " +
         "union all " +
@@ -309,6 +317,7 @@ public class TestUnionAll extends BaseTestQuery {
   }
 
   @Test // see DRILL-2207
+  @Category(UnlikelyTest.class)
   public void testUnionAllEmptySides() throws Exception {
     String query1 = "(select n_nationkey, n_regionkey, n_name from cp.`tpch/nation.parquet`  limit 0) " +
         "union all " +
@@ -337,6 +346,7 @@ public class TestUnionAll extends BaseTestQuery {
     }
 
   @Test // see DRILL-1977, DRILL-2376, DRILL-2377, DRILL-2378, DRILL-2379
+  @Category(UnlikelyTest.class)
   public void testAggregationOnUnionAllOperator() throws Exception {
     String root = FileUtils.getResourceAsFile("/store/text/data/t.json").toURI().toString();
     String query1 = String.format(
@@ -384,6 +394,7 @@ public class TestUnionAll extends BaseTestQuery {
   }
 
   @Test // see DRILL-2591
+  @Category(UnlikelyTest.class)
   public void testDateAndTimestampJson() throws Exception {
     String rootDate = FileUtils.getResourceAsFile("/store/json/dateData.json").toURI().toString();
     String rootTimpStmp = FileUtils.getResourceAsFile("/store/json/timeStmpData.json").toURI().toString();
@@ -429,6 +440,7 @@ public class TestUnionAll extends BaseTestQuery {
   }
 
   @Test // see DRILL-2637
+  @Category(UnlikelyTest.class)
   public void testUnionAllOneInputContainsAggFunction() throws Exception {
     String root = FileUtils.getResourceAsFile("/multilevel/csv/1994/Q1/orders_94_q1.csv").toURI().toString();
     String query1 = String.format("select * from ((select count(c1) as ct from (select columns[0] c1 from dfs.`%s`)) \n" +
@@ -471,6 +483,7 @@ public class TestUnionAll extends BaseTestQuery {
   }
 
   @Test // see DRILL-2717
+  @Category(UnlikelyTest.class)
   public void testUnionInputsGroupByOnCSV() throws Exception {
     String root = FileUtils.getResourceAsFile("/multilevel/csv/1994/Q1/orders_94_q1.csv").toURI().toString();
     String query = String.format("select * from \n" +
@@ -501,6 +514,7 @@ public class TestUnionAll extends BaseTestQuery {
   }
 
   @Test // see DRILL-2639
+  @Category(UnlikelyTest.class)
   public void testUnionAllDiffTypesAtPlanning() throws Exception {
     String query = "select count(c1) as ct from (select cast(r_regionkey as int) c1 from cp.`tpch/region.parquet`) " +
         "union all " +
@@ -520,6 +534,7 @@ public class TestUnionAll extends BaseTestQuery {
   }
 
   @Test // see DRILL-2612
+  @Category(UnlikelyTest.class)
   public void testUnionAllRightEmptyJson() throws Exception {
     String rootEmpty = FileUtils.getResourceAsFile("/project/pushdown/empty.json").toURI().toString();
     String rootSimple = FileUtils.getResourceAsFile("/store/json/booleanData.json").toURI().toString();
@@ -911,6 +926,7 @@ public class TestUnionAll extends BaseTestQuery {
   }
 
   @Test // DRILL-3257 (Simplified Query from TPC-DS query 74)
+  @Category(UnlikelyTest.class)
   public void testUnionAllInWith() throws Exception {
     final String query1 = "WITH year_total \n" +
         "     AS (SELECT c.r_regionkey    customer_id,\n" +
@@ -1025,6 +1041,7 @@ public class TestUnionAll extends BaseTestQuery {
   }
 
   @Test // DRILL-4147 // base case
+  @Category(UnlikelyTest.class)
   public void testDrill4147_1() throws Exception {
     final String l = FileUtils.getResourceAsFile("/multilevel/parquet/1994").toURI().toString();
     final String r = FileUtils.getResourceAsFile("/multilevel/parquet/1995").toURI().toString();
@@ -1116,6 +1133,7 @@ public class TestUnionAll extends BaseTestQuery {
   }
 
   @Test // DRILL-4833  // limit 1 is on RHS of union-all
+  @Category(UnlikelyTest.class)
   public void testDrill4833_1() throws Exception {
     final String l = FileUtils.getResourceAsFile("/multilevel/parquet/1994").toURI().toString();
     final String r = FileUtils.getResourceAsFile("/multilevel/parquet/1995").toURI().toString();
@@ -1149,6 +1167,7 @@ public class TestUnionAll extends BaseTestQuery {
   }
 
   @Test // DRILL-4833  // limit 1 is on LHS of union-all
+  @Category(UnlikelyTest.class)
   public void testDrill4833_2() throws Exception {
     final String l = FileUtils.getResourceAsFile("/multilevel/parquet/1994").toURI().toString();
     final String r = FileUtils.getResourceAsFile("/multilevel/parquet/1995").toURI().toString();
@@ -1194,6 +1213,7 @@ public class TestUnionAll extends BaseTestQuery {
   }
 
   @Test // DRILL-4264
+  @Category(UnlikelyTest.class)
   public void testFieldWithDots() throws Exception {
     File directory = new File(BaseTestQuery.getTempDir("json/input"));
     try {

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/TestUnionDistinct.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/TestUnionDistinct.java b/exec/java-exec/src/test/java/org/apache/drill/TestUnionDistinct.java
index 9d21bc9..38ab7fb 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/TestUnionDistinct.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/TestUnionDistinct.java
@@ -20,6 +20,8 @@ package org.apache.drill;
 import com.google.common.collect.Lists;
 
 import org.apache.commons.lang3.tuple.Pair;
+import org.apache.drill.categories.OperatorTest;
+import org.apache.drill.categories.SqlTest;
 import org.apache.drill.common.exceptions.UserException;
 import org.apache.drill.common.expression.SchemaPath;
 import org.apache.drill.common.types.TypeProtos;
@@ -28,9 +30,11 @@ import org.apache.drill.exec.work.foreman.SqlUnsupportedException;
 import org.apache.drill.exec.work.foreman.UnsupportedRelOperatorException;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import java.util.List;
 
+@Category({SqlTest.class, OperatorTest.class})
 public class TestUnionDistinct extends BaseTestQuery {
 //  private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestUnionDistinct.class);
 

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/DrillSeparatePlanningTest.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/DrillSeparatePlanningTest.java b/exec/java-exec/src/test/java/org/apache/drill/exec/DrillSeparatePlanningTest.java
index 58e94e3..41b5a73 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/DrillSeparatePlanningTest.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/DrillSeparatePlanningTest.java
@@ -28,6 +28,8 @@ import java.util.Properties;
 import java.util.concurrent.ExecutionException;
 
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.PlannerTest;
+import org.apache.drill.categories.SlowTest;
 import org.apache.drill.common.DrillAutoCloseables;
 import org.apache.drill.common.exceptions.UserException;
 import org.apache.drill.common.util.TestTools;
@@ -57,11 +59,13 @@ import org.junit.Test;
 
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+import org.junit.experimental.categories.Category;
 
 /**
  * Class to test different planning use cases (separate form query execution)
  *
  */
+@Category({SlowTest.class, PlannerTest.class})
 public class DrillSeparatePlanningTest extends BaseTestQuery {
 
   static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(DrillSeparatePlanningTest.class);
@@ -78,7 +82,7 @@ public class DrillSeparatePlanningTest extends BaseTestQuery {
   //final String query = String.format("SELECT dir0, sum(o_totalprice) FROM dfs_test.`%s/multilevel/json` group by dir0 order by dir0", TEST_RES_PATH);
 
 
-  @Test(timeout=30000)
+  @Test(timeout=60000)
   public void testSingleFragmentQuery() throws Exception {
     final String query = "SELECT * FROM cp.`employee.json` where  employee_id > 1 and  employee_id < 1000";
 
@@ -92,7 +96,7 @@ public class DrillSeparatePlanningTest extends BaseTestQuery {
     getResultsHelper(planFragments);
   }
 
-  @Test(timeout=30000)
+  @Test(timeout=60000)
   public void testMultiMinorFragmentSimpleQuery() throws Exception {
     final String query = String.format("SELECT o_orderkey FROM dfs_test.`%s/multilevel/json`", TEST_RES_PATH);
 
@@ -109,7 +113,7 @@ public class DrillSeparatePlanningTest extends BaseTestQuery {
     getResultsHelper(planFragments);
   }
 
-  @Test(timeout=30000)
+  @Test(timeout=60000)
   public void testMultiMinorFragmentComplexQuery() throws Exception {
     final String query = String.format("SELECT dir0, sum(o_totalprice) FROM dfs_test.`%s/multilevel/json` group by dir0 order by dir0", TEST_RES_PATH);
 
@@ -127,7 +131,7 @@ public class DrillSeparatePlanningTest extends BaseTestQuery {
 
   }
 
-  @Test(timeout=30000)
+  @Test(timeout=60000)
   public void testPlanningNoSplit() throws Exception {
     final String query = String.format("SELECT dir0, sum(o_totalprice) FROM dfs_test.`%s/multilevel/json` group by dir0 order by dir0", TEST_RES_PATH);
 
@@ -153,7 +157,7 @@ public class DrillSeparatePlanningTest extends BaseTestQuery {
 
   }
 
-  @Test(timeout=30000)
+  @Test(timeout=60000)
   public void testPlanningNegative() throws Exception {
     final String query = String.format("SELECT dir0, sum(o_totalprice) FROM dfs_test.`%s/multilevel/json` group by dir0 order by dir0", TEST_RES_PATH);
 
@@ -171,7 +175,7 @@ public class DrillSeparatePlanningTest extends BaseTestQuery {
 
   }
 
-  @Test(timeout=30000)
+  @Test(timeout=60000)
   public void testPlanning() throws Exception {
     final String query = String.format("SELECT dir0, columns[3] FROM dfs_test.`%s/multilevel/csv` order by dir0", TEST_RES_PATH);
 

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/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 f96e3bd..4200f89 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
@@ -35,6 +35,7 @@ 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.OptionValue;
 import org.apache.drill.exec.server.options.SystemOptionManager;
 import org.apache.drill.exec.store.sys.store.provider.LocalPersistentStoreProvider;
 import org.apache.drill.exec.util.GuavaPatcher;

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/HyperVectorValueIterator.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/HyperVectorValueIterator.java b/exec/java-exec/src/test/java/org/apache/drill/exec/HyperVectorValueIterator.java
index 156a965..2916599 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/HyperVectorValueIterator.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/HyperVectorValueIterator.java
@@ -19,10 +19,13 @@ package org.apache.drill.exec;
 
 import java.util.Iterator;
 
+import org.apache.drill.categories.VectorTest;
 import org.apache.drill.exec.record.HyperVectorWrapper;
 import org.apache.drill.exec.record.MaterializedField;
 import org.apache.drill.exec.vector.ValueVector;
+import org.junit.experimental.categories.Category;
 
+@Category(VectorTest.class)
 public class HyperVectorValueIterator implements Iterator<Object> {
   private MaterializedField mf;
   private HyperVectorWrapper<?> hyperVector;

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/TestEmptyInputSql.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/TestEmptyInputSql.java b/exec/java-exec/src/test/java/org/apache/drill/exec/TestEmptyInputSql.java
index bb707ca..0351250 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/TestEmptyInputSql.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/TestEmptyInputSql.java
@@ -21,15 +21,18 @@ package org.apache.drill.exec;
 import com.google.common.collect.Lists;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.UnlikelyTest;
 import org.apache.drill.common.expression.SchemaPath;
 import org.apache.drill.common.types.TypeProtos;
 import org.apache.drill.common.util.FileUtils;
 import org.apache.drill.exec.record.BatchSchema;
 import org.apache.drill.test.rowSet.SchemaBuilder;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import java.util.List;
 
+@Category(UnlikelyTest.class)
 public class TestEmptyInputSql extends BaseTestQuery {
 
   public final String SINGLE_EMPTY_JSON = "/scan/emptyInput/emptyJson/empty.json";

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/TestRepeatedReaders.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/TestRepeatedReaders.java b/exec/java-exec/src/test/java/org/apache/drill/exec/TestRepeatedReaders.java
index df7b305..63c3be5 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/TestRepeatedReaders.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/TestRepeatedReaders.java
@@ -19,10 +19,12 @@
 package org.apache.drill.exec;
 
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.UnlikelyTest;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 public class TestRepeatedReaders extends BaseTestQuery {
 

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/TestSSLConfig.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/TestSSLConfig.java b/exec/java-exec/src/test/java/org/apache/drill/exec/TestSSLConfig.java
index e83fc05..0b28473 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/TestSSLConfig.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/TestSSLConfig.java
@@ -19,13 +19,17 @@
 package org.apache.drill.exec;
 
 
+import org.apache.drill.categories.SecurityTest;
 import org.apache.drill.common.exceptions.DrillException;
 import org.apache.drill.test.ConfigBuilder;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
+
 import static junit.framework.TestCase.fail;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
+@Category(SecurityTest.class)
 public class TestSSLConfig {
 
   @Test

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/TestWindowFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/TestWindowFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/TestWindowFunctions.java
index 01af818..bd616c7 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/TestWindowFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/TestWindowFunctions.java
@@ -18,6 +18,7 @@
 package org.apache.drill.exec;
 
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.UnlikelyTest;
 import org.apache.drill.common.exceptions.UserException;
 import org.apache.drill.common.util.FileUtils;
 import org.apache.drill.common.util.TestTools;
@@ -28,6 +29,7 @@ import org.apache.drill.PlanTestBase;
 
 import org.apache.drill.test.UserExceptionMatcher;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 public class TestWindowFunctions extends BaseTestQuery {
   static final String WORKING_PATH = TestTools.getWorkingPath();
@@ -228,6 +230,7 @@ public class TestWindowFunctions extends BaseTestQuery {
   }
 
   @Test // DRILL-3346
+  @Category(UnlikelyTest.class)
   public void testWindowGroupByOnView() throws Exception {
     try {
       thrownException.expect(new UserExceptionMatcher(UserBitShared.DrillPBError.ErrorType.VALIDATION));

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/expr/TestLogicalExprSerDe.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/expr/TestLogicalExprSerDe.java b/exec/java-exec/src/test/java/org/apache/drill/exec/expr/TestLogicalExprSerDe.java
index 420fc75..3ddf776 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/expr/TestLogicalExprSerDe.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/expr/TestLogicalExprSerDe.java
@@ -19,14 +19,17 @@ package org.apache.drill.exec.expr;
  */
 
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.UnlikelyTest;
 import org.apache.drill.exec.ExecConstants;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 /**
  * Test LogicalExpressions are serialized and deserialized properly when query is planned into multiple fragments.
  */
+@Category(UnlikelyTest.class)
 public class TestLogicalExprSerDe extends BaseTestQuery {
 
   @BeforeClass

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/expr/TestSchemaPathMaterialization.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/expr/TestSchemaPathMaterialization.java b/exec/java-exec/src/test/java/org/apache/drill/exec/expr/TestSchemaPathMaterialization.java
index cf7fd90..b7c6614 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/expr/TestSchemaPathMaterialization.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/expr/TestSchemaPathMaterialization.java
@@ -18,10 +18,15 @@
 package org.apache.drill.exec.expr;
 
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.PlannerTest;
+import org.apache.drill.categories.SqlTest;
+import org.apache.drill.categories.UnlikelyTest;
 import org.apache.drill.exec.proto.UserBitShared;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
+@Category({SqlTest.class, PlannerTest.class})
 public class TestSchemaPathMaterialization extends BaseTestQuery {
 
   @Test
@@ -83,6 +88,7 @@ public class TestSchemaPathMaterialization extends BaseTestQuery {
   }
 
   @Test //DRILL-1962
+  @Category(UnlikelyTest.class)
   public void testProjectionMultipleFiles() throws Exception {
     final String query="select t.oooa.oa.oab.oabc[1].rowValue1 rowValue from dfs.`${WORKING_PATH}/src/test/resources/complex/json/multiple/*.json` t";
 
@@ -94,6 +100,7 @@ public class TestSchemaPathMaterialization extends BaseTestQuery {
   }
 
   @Test //DRILL-4264
+  @Category(UnlikelyTest.class)
   public void testFieldNameWithDot() throws Exception {
     final String tableName = "dfs_test.tmp.table_with_dot_field";
     try {

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/FunctionInitializerTest.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/FunctionInitializerTest.java b/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/FunctionInitializerTest.java
index 2151095..3beef0d 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/FunctionInitializerTest.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/FunctionInitializerTest.java
@@ -21,11 +21,13 @@ import mockit.Invocation;
 import mockit.Mock;
 import mockit.MockUp;
 import mockit.integration.junit4.JMockit;
+import org.apache.drill.categories.SqlFunctionTest;
 import org.apache.drill.common.util.TestTools;
 import org.apache.drill.exec.util.JarUtil;
 import org.codehaus.janino.Java;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
 
 import java.io.File;
@@ -46,6 +48,7 @@ import static org.junit.Assert.assertTrue;
 
 
 @RunWith(JMockit.class)
+@Category(SqlFunctionTest.class)
 public class FunctionInitializerTest {
 
   private static final String CLASS_NAME = "com.drill.udf.CustomLowerFunction";

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/impl/TestSimpleRepeatedFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/impl/TestSimpleRepeatedFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/impl/TestSimpleRepeatedFunctions.java
index 2372554..7e6ec05 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/impl/TestSimpleRepeatedFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/impl/TestSimpleRepeatedFunctions.java
@@ -20,8 +20,11 @@ package org.apache.drill.exec.expr.fn.impl;
 import static org.junit.Assert.assertEquals;
 
 import org.apache.drill.PlanTestBase;
+import org.apache.drill.categories.SqlFunctionTest;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
+@Category(SqlFunctionTest.class)
 public class TestSimpleRepeatedFunctions extends PlanTestBase {
   @Test
   public void testIfDrillCanInferReturnTypeOfRepeatedContains() throws Exception {

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/impl/TestStringFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/impl/TestStringFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/impl/TestStringFunctions.java
index 39b03dc..e0ebf0c 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/impl/TestStringFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/impl/TestStringFunctions.java
@@ -26,11 +26,13 @@ import org.apache.calcite.util.ConversionUtil;
 import org.apache.calcite.util.Util;
 import org.apache.commons.io.FileUtils;
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.SqlFunctionTest;
 import org.apache.drill.exec.util.Text;
 import org.junit.Ignore;
 import org.junit.Test;
 
 import com.google.common.collect.ImmutableList;
+import org.junit.experimental.categories.Category;
 import org.junit.runner.RunWith;
 
 import java.io.BufferedWriter;
@@ -39,6 +41,7 @@ import java.io.FileWriter;
 import java.nio.charset.Charset;
 
 @RunWith(JMockit.class)
+@Category(SqlFunctionTest.class)
 public class TestStringFunctions extends BaseTestQuery {
 
   @Test

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/registry/FunctionRegistryHolderTest.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/registry/FunctionRegistryHolderTest.java b/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/registry/FunctionRegistryHolderTest.java
index cd4dd99..f1e1e85 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/registry/FunctionRegistryHolderTest.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/expr/fn/registry/FunctionRegistryHolderTest.java
@@ -21,10 +21,12 @@ import com.google.common.collect.ArrayListMultimap;
 import com.google.common.collect.ListMultimap;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
+import org.apache.drill.categories.SqlFunctionTest;
 import org.apache.drill.exec.expr.fn.DrillFuncHolder;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import java.util.ArrayList;
 import java.util.Collection;
@@ -38,6 +40,7 @@ import static org.junit.Assert.assertNull;
 import static org.junit.Assert.assertTrue;
 import static org.mockito.Mockito.mock;
 
+@Category(SqlFunctionTest.class)
 public class FunctionRegistryHolderTest {
 
   private static final String built_in = "built-in";

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestAggregateFunction.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestAggregateFunction.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestAggregateFunction.java
index e85ed8b..3d7bac0 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestAggregateFunction.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestAggregateFunction.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.List;
 
+import org.apache.drill.categories.OperatorTest;
 import org.apache.drill.common.util.FileUtils;
 import org.apache.drill.exec.client.DrillClient;
 import org.apache.drill.exec.pop.PopUnitTestBase;
@@ -36,7 +37,9 @@ import org.junit.Test;
 
 import com.google.common.base.Charsets;
 import com.google.common.io.Files;
+import org.junit.experimental.categories.Category;
 
+@Category(OperatorTest.class)
 public class TestAggregateFunction extends PopUnitTestBase {
 
   public void runTest(Object[] values, String planPath, String dataPath) throws Throwable {

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestAggregateFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestAggregateFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestAggregateFunctions.java
index cfb1c5f..6ae8ae1 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestAggregateFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestAggregateFunctions.java
@@ -21,7 +21,11 @@ import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.apache.commons.lang3.tuple.Pair;
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.OperatorTest;
 import org.apache.drill.PlanTestBase;
+import org.apache.drill.categories.PlannerTest;
+import org.apache.drill.categories.SqlFunctionTest;
+import org.apache.drill.categories.UnlikelyTest;
 import org.apache.drill.common.expression.SchemaPath;
 import org.apache.drill.common.types.TypeProtos;
 import org.apache.drill.common.util.TestTools;
@@ -29,6 +33,7 @@ import org.apache.drill.exec.proto.UserBitShared;
 import org.apache.drill.exec.rpc.user.QueryDataBatch;
 import org.junit.Ignore;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import java.io.BufferedWriter;
 import java.io.File;
@@ -36,6 +41,7 @@ import java.io.FileWriter;
 import java.util.List;
 import java.util.Map;
 
+@Category({SqlFunctionTest.class, OperatorTest.class, PlannerTest.class})
 public class TestAggregateFunctions extends BaseTestQuery {
 
   private static final String TEST_RES_PATH =   TestTools.getWorkingPath() + "/src/test/resources";
@@ -113,6 +119,7 @@ public class TestAggregateFunctions extends BaseTestQuery {
   }
 
   @Test // DRILL-2170: Subquery has group-by, order-by on aggregate function and limit
+  @Category(UnlikelyTest.class)
   public void testDrill2170() throws Exception {
     String query =
         "select count(*) as cnt from "
@@ -132,6 +139,7 @@ public class TestAggregateFunctions extends BaseTestQuery {
   }
 
   @Test // DRILL-2168
+  @Category(UnlikelyTest.class)
   public void testGBExprWithDrillFunc() throws Exception {
     testBuilder()
         .ordered()
@@ -148,6 +156,7 @@ public class TestAggregateFunctions extends BaseTestQuery {
   }
 
   @Test //DRILL-2242
+  @Category(UnlikelyTest.class)
   public void testDRILLNestedGBWithSubsetKeys() throws Exception {
     String sql = " select count(*) as cnt from (select l_partkey from\n" +
         "   (select l_partkey, l_suppkey from cp.`tpch/lineitem.parquet`\n" +
@@ -367,6 +376,7 @@ public class TestAggregateFunctions extends BaseTestQuery {
   }
 
   @Test //DRILL-2748
+  @Category(UnlikelyTest.class)
   public void testPushFilterPastAgg() throws Exception {
     final String query =
         " select cnt " +
@@ -442,6 +452,7 @@ public class TestAggregateFunctions extends BaseTestQuery {
   }
 
   @Test // DRILL-3781
+  @Category(UnlikelyTest.class)
   // GROUP BY System functions in schema table.
   public void testGroupBySystemFuncSchemaTable() throws Exception {
     final String query = "select count(*) as cnt from sys.version group by CURRENT_DATE";
@@ -452,6 +463,7 @@ public class TestAggregateFunctions extends BaseTestQuery {
   }
 
   @Test //DRILL-3781
+  @Category(UnlikelyTest.class)
   // GROUP BY System functions in csv, parquet, json table.
   public void testGroupBySystemFuncFileSystemTable() throws Exception {
     final String query = String.format("select count(*) as cnt from dfs_test.`%s/nation/nation.tbl` group by CURRENT_DATE", TEST_RES_PATH);
@@ -511,6 +523,7 @@ public class TestAggregateFunctions extends BaseTestQuery {
 
 
   @Test // DRILL-4531
+  @Category(UnlikelyTest.class)
   public void testPushFilterDown() throws Exception {
     final String sql =
         "SELECT  cust.custAddress, \n"
@@ -543,6 +556,7 @@ public class TestAggregateFunctions extends BaseTestQuery {
   }
 
   @Test // DRILL-2385: count on complex objects failed with missing function implementation
+  @Category(UnlikelyTest.class)
   public void testCountComplexObjects() throws Exception {
     final String query = "select count(t.%s) %s from cp.`complex/json/complex.json` t";
     Map<String, String> objectsMap = Maps.newHashMap();
@@ -574,6 +588,7 @@ public class TestAggregateFunctions extends BaseTestQuery {
   }
 
   @Test // DRILL-4264
+  @Category(UnlikelyTest.class)
   public void testCountOnFieldWithDots() throws Exception {
     File directory = new File(BaseTestQuery.getTempDir("json/input"));
     try {

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestByteComparisonFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestByteComparisonFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestByteComparisonFunctions.java
index 6ff2d24..30aec9e 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestByteComparisonFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestByteComparisonFunctions.java
@@ -19,6 +19,8 @@ package org.apache.drill.exec.fn.impl;
 
 import static org.junit.Assert.assertTrue;
 
+import org.apache.drill.categories.UnlikelyTest;
+import org.apache.drill.categories.VectorTest;
 import org.apache.drill.common.DrillAutoCloseables;
 import org.apache.drill.common.config.DrillConfig;
 import org.apache.drill.exec.ExecTest;
@@ -30,7 +32,9 @@ import org.apache.drill.exec.vector.ValueHolderHelper;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
+@Category({UnlikelyTest.class, VectorTest.class})
 public class TestByteComparisonFunctions extends ExecTest {
   //private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestByteComparisonFunctions.class);
 

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCastEmptyStrings.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCastEmptyStrings.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCastEmptyStrings.java
index f8a133a..29cff1f 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCastEmptyStrings.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCastEmptyStrings.java
@@ -19,12 +19,16 @@
 package org.apache.drill.exec.fn.impl;
 
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.SqlFunctionTest;
+import org.apache.drill.categories.UnlikelyTest;
 import org.apache.drill.common.util.FileUtils;
 import org.apache.drill.exec.planner.physical.PlannerSettings;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
+@Category({UnlikelyTest.class, SqlFunctionTest.class})
 public class TestCastEmptyStrings extends BaseTestQuery {
     // enable decimal data type
     @BeforeClass

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/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 b3a7fe9..42a048e 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
@@ -20,14 +20,18 @@ package org.apache.drill.exec.fn.impl;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.SqlFunctionTest;
+import org.apache.drill.categories.UnlikelyTest;
 import org.apache.drill.common.util.FileUtils;
 import org.joda.time.DateTime;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import java.math.BigDecimal;
 import java.util.List;
 import java.util.Map;
 
+@Category({UnlikelyTest.class, SqlFunctionTest.class})
 public class TestCastFunctions extends BaseTestQuery {
 
   @Test

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestContextFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestContextFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestContextFunctions.java
index 6ddf2ba..6f4bd29 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestContextFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestContextFunctions.java
@@ -18,8 +18,11 @@
 package org.apache.drill.exec.fn.impl;
 
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.SqlFunctionTest;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
+@Category(SqlFunctionTest.class)
 public class TestContextFunctions extends BaseTestQuery {
 
   @Test

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCryptoFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCryptoFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCryptoFunctions.java
index 4dc6284..5cfdf84 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCryptoFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestCryptoFunctions.java
@@ -18,8 +18,12 @@
 package org.apache.drill.exec.fn.impl;
 
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.SqlFunctionTest;
+import org.apache.drill.categories.UnlikelyTest;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
+@Category({UnlikelyTest.class, SqlFunctionTest.class})
 public class TestCryptoFunctions extends BaseTestQuery {
 
   @Test

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateAddFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateAddFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateAddFunctions.java
index 7a5a49a..8d3c31a 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateAddFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateAddFunctions.java
@@ -17,9 +17,13 @@
 package org.apache.drill.exec.fn.impl;
 
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.SqlFunctionTest;
+import org.apache.drill.categories.UnlikelyTest;
 import org.joda.time.DateTime;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
+@Category({UnlikelyTest.class, SqlFunctionTest.class})
 public class TestDateAddFunctions extends BaseTestQuery {
 
   @Test

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateFunctions.java
index 4718b39..a491131 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateFunctions.java
@@ -22,6 +22,8 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.List;
 
+import org.apache.drill.categories.SqlFunctionTest;
+import org.apache.drill.categories.UnlikelyTest;
 import org.apache.drill.common.util.FileUtils;
 import org.apache.drill.exec.client.DrillClient;
 import org.apache.drill.exec.pop.PopUnitTestBase;
@@ -39,7 +41,9 @@ import org.junit.Test;
 
 import com.google.common.base.Charsets;
 import com.google.common.io.Files;
+import org.junit.experimental.categories.Category;
 
+@Category({UnlikelyTest.class, SqlFunctionTest.class})
 public class TestDateFunctions extends PopUnitTestBase {
     static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestDateFunctions.class);
 

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateTruncFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateTruncFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateTruncFunctions.java
index db456b2..c62dc65 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateTruncFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestDateTruncFunctions.java
@@ -18,14 +18,18 @@
 package org.apache.drill.exec.fn.impl;
 
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.SqlFunctionTest;
+import org.apache.drill.categories.UnlikelyTest;
 import org.joda.time.DateTime;
 import org.joda.time.Period;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import static org.apache.drill.exec.expr.fn.impl.DateUtility.formatDate;
 import static org.apache.drill.exec.expr.fn.impl.DateUtility.formatTime;
 import static org.apache.drill.exec.expr.fn.impl.DateUtility.formatTimeStamp;
 
+@Category({UnlikelyTest.class, SqlFunctionTest.class})
 public class TestDateTruncFunctions extends BaseTestQuery {
 
   @Test

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/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 a6c22c5..172f35c 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
@@ -21,6 +21,7 @@ package org.apache.drill.exec.fn.impl;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
+import org.apache.drill.categories.OperatorTest;
 import org.apache.drill.common.config.DrillConfig;
 import org.apache.drill.common.expression.ExpressionPosition;
 import org.apache.drill.common.expression.SchemaPath;
@@ -45,8 +46,9 @@ import com.google.common.base.Charsets;
 import com.google.common.io.Files;
 
 import mockit.Injectable;
+import org.junit.experimental.categories.Category;
 
-
+@Category(OperatorTest.class)
 public class TestMathFunctions extends ExecTest {
   //private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestMathFunctions.class);
   private final DrillConfig c = DrillConfig.create();

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestMultiInputAdd.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestMultiInputAdd.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestMultiInputAdd.java
index a259e8c..02aeb0a 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestMultiInputAdd.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestMultiInputAdd.java
@@ -24,6 +24,7 @@ import java.util.List;
 
 import mockit.Injectable;
 
+import org.apache.drill.categories.OperatorTest;
 import org.apache.drill.common.config.DrillConfig;
 import org.apache.drill.common.util.FileUtils;
 import org.apache.drill.exec.client.DrillClient;
@@ -40,7 +41,9 @@ import org.junit.Test;
 
 import com.google.common.base.Charsets;
 import com.google.common.io.Files;
+import org.junit.experimental.categories.Category;
 
+@Category(OperatorTest.class)
 public class TestMultiInputAdd extends PopUnitTestBase {
 
 //    private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestMathFunctions.class);

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewAggregateFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewAggregateFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewAggregateFunctions.java
index 68e6eac..00b0b36 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewAggregateFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewAggregateFunctions.java
@@ -22,6 +22,7 @@ import static org.junit.Assert.assertTrue;
 
 import java.util.List;
 
+import org.apache.drill.categories.OperatorTest;
 import org.apache.drill.common.util.FileUtils;
 import org.apache.drill.exec.client.DrillClient;
 import org.apache.drill.exec.pop.PopUnitTestBase;
@@ -36,7 +37,9 @@ import org.junit.Test;
 
 import com.google.common.base.Charsets;
 import com.google.common.io.Files;
+import org.junit.experimental.categories.Category;
 
+@Category(OperatorTest.class)
 public class TestNewAggregateFunctions extends PopUnitTestBase {
 
   public void runTest(String physicalPlan, String inputDataFile,

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewDateFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewDateFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewDateFunctions.java
index 257cc53..49eb795 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewDateFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewDateFunctions.java
@@ -18,13 +18,17 @@
 package org.apache.drill.exec.fn.impl;
 
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.SqlFunctionTest;
+import org.apache.drill.categories.UnlikelyTest;
 import org.joda.time.DateTime;
 import org.joda.time.format.DateTimeFormat;
 import org.joda.time.format.DateTimeFormatter;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import java.sql.Date;
 
+@Category({UnlikelyTest.class, SqlFunctionTest.class})
 public class TestNewDateFunctions extends BaseTestQuery {
   DateTime date;
   DateTimeFormatter formatter;

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/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 373388a..8862f8c 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
@@ -23,6 +23,8 @@ import static org.junit.Assert.assertTrue;
 
 import java.math.BigDecimal;
 
+import org.apache.drill.categories.OperatorTest;
+import org.apache.drill.categories.UnlikelyTest;
 import org.apache.drill.common.config.DrillConfig;
 import org.apache.drill.exec.ExecTest;
 import org.apache.drill.exec.expr.fn.FunctionImplementationRegistry;
@@ -44,7 +46,9 @@ import com.google.common.base.Charsets;
 import com.google.common.io.Resources;
 
 import mockit.Injectable;
+import org.junit.experimental.categories.Category;
 
+@Category({UnlikelyTest.class, OperatorTest.class})
 public class TestNewMathFunctions extends ExecTest {
   //private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestNewMathFunctions.class);
   private final DrillConfig c = DrillConfig.create();

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewSimpleRepeatedFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewSimpleRepeatedFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewSimpleRepeatedFunctions.java
index 05807d6..9f37312 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewSimpleRepeatedFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestNewSimpleRepeatedFunctions.java
@@ -18,8 +18,11 @@
 package org.apache.drill.exec.fn.impl;
 
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.SqlFunctionTest;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
+@Category(SqlFunctionTest.class)
 public class TestNewSimpleRepeatedFunctions extends BaseTestQuery {
   @Test
   public void testRepeatedContainsForWildCards() throws Exception {

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/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 ca10b63..c4aabe9 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
@@ -20,6 +20,7 @@ package org.apache.drill.exec.fn.impl;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
 
+import org.apache.drill.categories.OperatorTest;
 import org.apache.drill.common.config.DrillConfig;
 import org.apache.drill.common.expression.ExpressionPosition;
 import org.apache.drill.common.expression.SchemaPath;
@@ -44,7 +45,9 @@ import com.google.common.base.Charsets;
 import com.google.common.io.Files;
 
 import mockit.Injectable;
+import org.junit.experimental.categories.Category;
 
+@Category(OperatorTest.class)
 public class TestRepeatedFunction extends ExecTest{
   //private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(TestRepeatedFunction.class);
   private final DrillConfig c = DrillConfig.create();

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestTrigFunctions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestTrigFunctions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestTrigFunctions.java
index de95360..60ca587 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestTrigFunctions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/TestTrigFunctions.java
@@ -18,8 +18,12 @@
 package org.apache.drill.exec.fn.impl;
 
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.SqlFunctionTest;
+import org.apache.drill.categories.UnlikelyTest;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
+@Category({UnlikelyTest.class, SqlFunctionTest.class})
 public class TestTrigFunctions extends BaseTestQuery {
 
   @Test

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/testing/TestDateConversions.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/testing/TestDateConversions.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/testing/TestDateConversions.java
index bf35d10..27599c2 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/testing/TestDateConversions.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/impl/testing/TestDateConversions.java
@@ -17,10 +17,13 @@
 package org.apache.drill.exec.fn.impl.testing;
 
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.SqlFunctionTest;
+import org.apache.drill.categories.UnlikelyTest;
 import org.apache.drill.common.exceptions.UserException;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import java.io.BufferedWriter;
 import java.io.File;
@@ -29,6 +32,8 @@ import java.io.IOException;
 
 import static org.hamcrest.CoreMatchers.startsWith;
 import static org.junit.Assert.assertThat;
+
+@Category({UnlikelyTest.class, SqlFunctionTest.class})
 public class TestDateConversions extends BaseTestQuery {
 
   private static String TEMP_DIR;

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/fn/interp/ExpressionInterpreterTest.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/interp/ExpressionInterpreterTest.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/interp/ExpressionInterpreterTest.java
index 673bf80..94a9f12 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/interp/ExpressionInterpreterTest.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/interp/ExpressionInterpreterTest.java
@@ -22,6 +22,8 @@ import static org.junit.Assert.assertEquals;
 import java.nio.ByteBuffer;
 import java.util.List;
 
+import org.apache.drill.categories.SlowTest;
+import org.apache.drill.categories.SqlTest;
 import org.apache.drill.common.exceptions.DrillRuntimeException;
 import org.apache.drill.common.expression.ErrorCollector;
 import org.apache.drill.common.expression.ErrorCollectorImpl;
@@ -51,7 +53,9 @@ import org.joda.time.DateTimeZone;
 import org.junit.Test;
 
 import com.google.common.collect.Lists;
+import org.junit.experimental.categories.Category;
 
+@Category({SlowTest.class, SqlTest.class})
 public class ExpressionInterpreterTest  extends PopUnitTestBase {
   private static final org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(ExpressionInterpreterTest.class);
 

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/fn/interp/TestConstantFolding.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/interp/TestConstantFolding.java b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/interp/TestConstantFolding.java
index c7d2f0f..5f55d2d 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/fn/interp/TestConstantFolding.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/fn/interp/TestConstantFolding.java
@@ -22,15 +22,18 @@ import java.io.PrintWriter;
 import java.util.List;
 
 import org.apache.drill.PlanTestBase;
+import org.apache.drill.categories.SqlTest;
 import org.apache.drill.exec.planner.physical.PlannerSettings;
 import org.junit.Ignore;
 import org.junit.Rule;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 import org.junit.rules.TemporaryFolder;
 
 import com.google.common.base.Joiner;
 import com.google.common.collect.Lists;
 
+@Category(SqlTest.class)
 public class TestConstantFolding extends PlanTestBase {
 
   @Rule

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestImpersonationDisabledWithMiniDFS.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestImpersonationDisabledWithMiniDFS.java b/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestImpersonationDisabledWithMiniDFS.java
index df63d7e..767c9ed 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestImpersonationDisabledWithMiniDFS.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestImpersonationDisabledWithMiniDFS.java
@@ -18,11 +18,13 @@
 package org.apache.drill.exec.impersonation;
 
 import com.google.common.collect.Maps;
-import org.apache.drill.exec.physical.impl.writer.TestParquetWriter;
+import org.apache.drill.categories.SecurityTest;
 import org.apache.drill.exec.store.dfs.WorkspaceConfig;
+import org.apache.drill.categories.SlowTest;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 /**
  * Note to future devs, please do not put random tests here. Make sure that they actually require
@@ -30,6 +32,7 @@ import org.junit.Test;
  * the tests. Running this mini cluster is slow and it is best for these tests to only cover
  * necessary cases.
  */
+@Category({SlowTest.class, SecurityTest.class})
 public class TestImpersonationDisabledWithMiniDFS extends BaseTestImpersonation {
 
   @BeforeClass

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestImpersonationMetadata.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestImpersonationMetadata.java b/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestImpersonationMetadata.java
index 2121b6f..60baed9 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestImpersonationMetadata.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestImpersonationMetadata.java
@@ -19,9 +19,12 @@ package org.apache.drill.exec.impersonation;
 
 import com.google.common.base.Joiner;
 import com.google.common.collect.Maps;
+import org.apache.drill.categories.SecurityTest;
+import org.apache.drill.categories.UnlikelyTest;
 import org.apache.drill.common.exceptions.UserException;
 import org.apache.drill.common.exceptions.UserRemoteException;
 import org.apache.drill.exec.store.dfs.WorkspaceConfig;
+import org.apache.drill.categories.SlowTest;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.fs.permission.FsPermission;
@@ -30,6 +33,7 @@ import org.junit.AfterClass;
 import org.junit.Assert;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import java.util.Map;
 
@@ -41,6 +45,7 @@ import static org.junit.Assert.assertTrue;
 /**
  * Tests impersonation on metadata related queries as SHOW FILES, SHOW TABLES, CREATE VIEW, CREATE TABLE and DROP TABLE
  */
+@Category({SlowTest.class, SecurityTest.class})
 public class TestImpersonationMetadata extends BaseTestImpersonation {
   private static final String user1 = "drillTestUser1";
   private static final String user2 = "drillTestUser2";
@@ -130,6 +135,7 @@ public class TestImpersonationMetadata extends BaseTestImpersonation {
   }
 
   @Test // DRILL-3037
+  @Category(UnlikelyTest.class)
   public void testImpersonatingProcessUser() throws Exception {
     updateClient(processUser);
 

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestImpersonationQueries.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestImpersonationQueries.java b/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestImpersonationQueries.java
index 1c8d7ba..88b2ad4 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestImpersonationQueries.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestImpersonationQueries.java
@@ -18,16 +18,19 @@
 package org.apache.drill.exec.impersonation;
 
 import com.google.common.collect.Maps;
+import org.apache.drill.categories.SecurityTest;
 import org.apache.drill.common.exceptions.UserRemoteException;
 import org.apache.drill.common.util.FileUtils;
 import org.apache.drill.exec.store.avro.AvroTestUtil;
 import org.apache.drill.exec.store.dfs.WorkspaceConfig;
+import org.apache.drill.categories.SlowTest;
 import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.fs.permission.FsPermission;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import java.util.Map;
 
@@ -40,6 +43,7 @@ import static org.junit.Assert.assertNull;
  * Test queries involving direct impersonation and multilevel impersonation including join queries where each side is
  * a nested view.
  */
+@Category({SlowTest.class, SecurityTest.class})
 public class TestImpersonationQueries extends BaseTestImpersonation {
   @BeforeClass
   public static void setup() throws Exception {

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestInboundImpersonation.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestInboundImpersonation.java b/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestInboundImpersonation.java
index 1997470..7537431 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestInboundImpersonation.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestInboundImpersonation.java
@@ -19,6 +19,8 @@ package org.apache.drill.exec.impersonation;
 
 import com.google.common.collect.Maps;
 import com.typesafe.config.ConfigValueFactory;
+import org.apache.drill.categories.SecurityTest;
+import org.apache.drill.categories.SlowTest;
 import org.apache.drill.common.config.DrillConfig;
 import org.apache.drill.common.config.DrillProperties;
 import org.apache.drill.exec.ExecConstants;
@@ -34,12 +36,14 @@ import org.apache.hadoop.fs.permission.FsPermission;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import java.util.Map;
 import java.util.Properties;
 
 import static org.junit.Assert.assertEquals;
 
+@Category({SlowTest.class, SecurityTest.class})
 public class TestInboundImpersonation extends BaseTestImpersonation {
 
   public static final String OWNER = org1Users[0];

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestInboundImpersonationPrivileges.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestInboundImpersonationPrivileges.java b/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestInboundImpersonationPrivileges.java
index 1c656e0..e1d2dfc 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestInboundImpersonationPrivileges.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/impersonation/TestInboundImpersonationPrivileges.java
@@ -19,6 +19,7 @@ package org.apache.drill.exec.impersonation;
 
 import com.google.common.base.Charsets;
 import com.google.common.io.Files;
+import org.apache.drill.categories.SecurityTest;
 import org.apache.drill.common.util.FileUtils;
 import org.apache.drill.exec.ExecConstants;
 import org.apache.drill.exec.rpc.user.InboundImpersonationManager;
@@ -26,11 +27,13 @@ import org.apache.drill.exec.server.options.OptionDefinition;
 import org.apache.drill.exec.server.options.OptionValue;
 import org.apache.drill.exec.server.options.SystemOptionManager;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 import java.io.IOException;
 
 import static junit.framework.Assert.assertEquals;
 
+@Category(SecurityTest.class)
 public class TestInboundImpersonationPrivileges extends BaseTestImpersonation {
   private static final org.slf4j.Logger logger =
       org.slf4j.LoggerFactory.getLogger(TestInboundImpersonationPrivileges.class);

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/memory/TestAllocators.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/memory/TestAllocators.java b/exec/java-exec/src/test/java/org/apache/drill/exec/memory/TestAllocators.java
index 0dc2925..6fca84d 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/memory/TestAllocators.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/memory/TestAllocators.java
@@ -27,6 +27,7 @@ import java.util.Iterator;
 import java.util.List;
 import java.util.Properties;
 
+import org.apache.drill.categories.MemoryTest;
 import org.apache.drill.common.config.DrillConfig;
 import org.apache.drill.common.types.TypeProtos;
 import org.apache.drill.common.util.FileUtils;
@@ -57,7 +58,9 @@ import org.junit.Test;
 import com.google.common.base.Charsets;
 import com.google.common.collect.Lists;
 import com.google.common.io.Files;
+import org.junit.experimental.categories.Category;
 
+@Category(MemoryTest.class)
 public class TestAllocators extends DrillTest {
 
   private static final Properties TEST_CONFIGURATIONS = new Properties() {

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/nested/TestFastComplexSchema.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/nested/TestFastComplexSchema.java b/exec/java-exec/src/test/java/org/apache/drill/exec/nested/TestFastComplexSchema.java
index e5bd62d..8f6ab6e 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/nested/TestFastComplexSchema.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/nested/TestFastComplexSchema.java
@@ -18,7 +18,9 @@
 package org.apache.drill.exec.nested;
 
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.UnlikelyTest;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 public class TestFastComplexSchema extends BaseTestQuery {
 
@@ -82,6 +84,7 @@ public class TestFastComplexSchema extends BaseTestQuery {
   }
 
   @Test //DRILL-4783 when resultset is empty, don't throw exception.
+  @Category(UnlikelyTest.class)
   public void test5() throws Exception {
 
     //when there is no incoming record, flatten won't throw exception

http://git-wip-us.apache.org/repos/asf/drill/blob/030189f9/exec/java-exec/src/test/java/org/apache/drill/exec/nested/TestNestedComplexSchema.java
----------------------------------------------------------------------
diff --git a/exec/java-exec/src/test/java/org/apache/drill/exec/nested/TestNestedComplexSchema.java b/exec/java-exec/src/test/java/org/apache/drill/exec/nested/TestNestedComplexSchema.java
index 05a5308..d0d0016 100644
--- a/exec/java-exec/src/test/java/org/apache/drill/exec/nested/TestNestedComplexSchema.java
+++ b/exec/java-exec/src/test/java/org/apache/drill/exec/nested/TestNestedComplexSchema.java
@@ -18,7 +18,9 @@
 package org.apache.drill.exec.nested;
 
 import org.apache.drill.BaseTestQuery;
+import org.apache.drill.categories.UnlikelyTest;
 import org.junit.Test;
+import org.junit.experimental.categories.Category;
 
 public class TestNestedComplexSchema extends BaseTestQuery {
 
@@ -38,6 +40,7 @@ public class TestNestedComplexSchema extends BaseTestQuery {
   }
 
   @Test //DRILL-1649
+  @Category(UnlikelyTest.class)
   public void testNestedFlattenWithJoin() throws Exception {
 
     final String query="" +