http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/sql_tableau/query27.sql
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/resources/query/sql_tableau/query27.sql 
b/kylin-it/src/test/resources/query/sql_tableau/query27.sql
new file mode 100644
index 0000000..beeb168
--- /dev/null
+++ b/kylin-it/src/test/resources/query/sql_tableau/query27.sql
@@ -0,0 +1,24 @@
+--
+-- 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.
+--
+
+SELECT "TEST_KYLIN_FACT"."CAL_DT", SUM("TEST_KYLIN_FACT"."PRICE") AS 
"sum_PRICE_ok" FROM "TEST_KYLIN_FACT" 
+  INNER JOIN (
+             SELECT COUNT(1) AS "XTableau_join_flag",     
SUM("TEST_KYLIN_FACT"."PRICE") AS "X__alias__A",     "TEST_KYLIN_FACT"."CAL_DT" 
AS "none_CAL_DT_ok"   FROM "TEST_KYLIN_FACT" 
+             GROUP BY "TEST_KYLIN_FACT"."CAL_DT"   ORDER BY 2 DESC   LIMIT 7  )
+
+    "t0" ON ("TEST_KYLIN_FACT"."CAL_DT" = "t0"."none_CAL_DT_ok") GROUP BY 
"TEST_KYLIN_FACT"."CAL_DT"

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/sql_tableau/query28.sql
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/resources/query/sql_tableau/query28.sql 
b/kylin-it/src/test/resources/query/sql_tableau/query28.sql
new file mode 100644
index 0000000..48cc342
--- /dev/null
+++ b/kylin-it/src/test/resources/query/sql_tableau/query28.sql
@@ -0,0 +1,23 @@
+--
+-- 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.
+--
+
+-- This query don't result exact same average number as H2 DB
+
+select lstg_format_name, avg(price) as GMV
+ from test_kylin_fact 
+ group by lstg_format_name 

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/sql_tableau/query67.sql
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/resources/query/sql_tableau/query67.sql 
b/kylin-it/src/test/resources/query/sql_tableau/query67.sql
new file mode 100644
index 0000000..25cc110
--- /dev/null
+++ b/kylin-it/src/test/resources/query/sql_tableau/query67.sql
@@ -0,0 +1,23 @@
+--
+-- 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.
+--
+
+SELECT (CASE "TEST_KYLIN_FACT"."LSTG_FORMAT_NAME" WHEN 'Auction' THEN '111' 
ELSE '222' END) AS "LSTG_FORMAT_NAME__group_",
+  SUM("TEST_KYLIN_FACT"."PRICE") AS "sum_PRICE_ok"
+FROM "TEST_KYLIN_FACT" "TEST_KYLIN_FACT"
+--group by (CASE "TEST_KYLIN_FACT"."LSTG_FORMAT_NAME" WHEN 'Auction' THEN 
'111' ELSE '222' END)  ORDER BY 1 ASC
+GROUP BY "TEST_KYLIN_FACT"."LSTG_FORMAT_NAME"  ORDER BY 1 ASC

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/sql_verifyCount/query04.sql
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/resources/query/sql_verifyCount/query04.sql 
b/kylin-it/src/test/resources/query/sql_verifyCount/query04.sql
new file mode 100644
index 0000000..9d3e409
--- /dev/null
+++ b/kylin-it/src/test/resources/query/sql_verifyCount/query04.sql
@@ -0,0 +1,19 @@
+--
+-- 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.
+--
+
+select * from test_kylin_fact limit 100

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/sql_verifyCount/query04.sql.expected
----------------------------------------------------------------------
diff --git 
a/kylin-it/src/test/resources/query/sql_verifyCount/query04.sql.expected 
b/kylin-it/src/test/resources/query/sql_verifyCount/query04.sql.expected
new file mode 100644
index 0000000..29d6383
--- /dev/null
+++ b/kylin-it/src/test/resources/query/sql_verifyCount/query04.sql.expected
@@ -0,0 +1 @@
+100

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/sql_verifyCount/query05.sql
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/resources/query/sql_verifyCount/query05.sql 
b/kylin-it/src/test/resources/query/sql_verifyCount/query05.sql
new file mode 100644
index 0000000..753a85a
--- /dev/null
+++ b/kylin-it/src/test/resources/query/sql_verifyCount/query05.sql
@@ -0,0 +1,19 @@
+--
+-- 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.
+--
+
+select price from test_kylin_fact limit 100

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/sql_verifyCount/query05.sql.expected
----------------------------------------------------------------------
diff --git 
a/kylin-it/src/test/resources/query/sql_verifyCount/query05.sql.expected 
b/kylin-it/src/test/resources/query/sql_verifyCount/query05.sql.expected
new file mode 100644
index 0000000..29d6383
--- /dev/null
+++ b/kylin-it/src/test/resources/query/sql_verifyCount/query05.sql.expected
@@ -0,0 +1 @@
+100

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/sql_verifyCount/query06.sql
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/resources/query/sql_verifyCount/query06.sql 
b/kylin-it/src/test/resources/query/sql_verifyCount/query06.sql
new file mode 100644
index 0000000..39578a4
--- /dev/null
+++ b/kylin-it/src/test/resources/query/sql_verifyCount/query06.sql
@@ -0,0 +1,19 @@
+--
+-- 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.
+--
+
+select lstg_format_name from test_kylin_fact limit 100

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/sql_verifyCount/query06.sql.expected
----------------------------------------------------------------------
diff --git 
a/kylin-it/src/test/resources/query/sql_verifyCount/query06.sql.expected 
b/kylin-it/src/test/resources/query/sql_verifyCount/query06.sql.expected
new file mode 100644
index 0000000..29d6383
--- /dev/null
+++ b/kylin-it/src/test/resources/query/sql_verifyCount/query06.sql.expected
@@ -0,0 +1 @@
+100

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/sql_verifyCount/query07.sql
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/resources/query/sql_verifyCount/query07.sql 
b/kylin-it/src/test/resources/query/sql_verifyCount/query07.sql
new file mode 100644
index 0000000..0afb493
--- /dev/null
+++ b/kylin-it/src/test/resources/query/sql_verifyCount/query07.sql
@@ -0,0 +1,19 @@
+--
+-- 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.
+--
+
+select price,lstg_format_name from test_kylin_fact limit 100

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/sql_verifyCount/query07.sql.expected
----------------------------------------------------------------------
diff --git 
a/kylin-it/src/test/resources/query/sql_verifyCount/query07.sql.expected 
b/kylin-it/src/test/resources/query/sql_verifyCount/query07.sql.expected
new file mode 100644
index 0000000..29d6383
--- /dev/null
+++ b/kylin-it/src/test/resources/query/sql_verifyCount/query07.sql.expected
@@ -0,0 +1 @@
+100

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/sql_verifyCount/query08.sql
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/resources/query/sql_verifyCount/query08.sql 
b/kylin-it/src/test/resources/query/sql_verifyCount/query08.sql
new file mode 100644
index 0000000..0f467f8
--- /dev/null
+++ b/kylin-it/src/test/resources/query/sql_verifyCount/query08.sql
@@ -0,0 +1,19 @@
+--
+-- 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.
+--
+
+select lstg_format_name,sum(price) as sp from test_kylin_fact group by 
lstg_format_name limit 1 offset 2

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/sql_verifyCount/query08.sql.expected
----------------------------------------------------------------------
diff --git 
a/kylin-it/src/test/resources/query/sql_verifyCount/query08.sql.expected 
b/kylin-it/src/test/resources/query/sql_verifyCount/query08.sql.expected
new file mode 100644
index 0000000..d00491f
--- /dev/null
+++ b/kylin-it/src/test/resources/query/sql_verifyCount/query08.sql.expected
@@ -0,0 +1 @@
+1

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/tableau_probing/query01.sql
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/resources/query/tableau_probing/query01.sql 
b/kylin-it/src/test/resources/query/tableau_probing/query01.sql
new file mode 100644
index 0000000..11fce3e
--- /dev/null
+++ b/kylin-it/src/test/resources/query/tableau_probing/query01.sql
@@ -0,0 +1,19 @@
+--
+-- 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.
+--
+
+SELECT 1 

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/tableau_probing/query02.sql
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/resources/query/tableau_probing/query02.sql 
b/kylin-it/src/test/resources/query/tableau_probing/query02.sql
new file mode 100644
index 0000000..f2f9f42
--- /dev/null
+++ b/kylin-it/src/test/resources/query/tableau_probing/query02.sql
@@ -0,0 +1,19 @@
+--
+-- 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.
+--
+
+SELECT 1 AS "COL" 

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/tableau_probing/query03.sql
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/resources/query/tableau_probing/query03.sql 
b/kylin-it/src/test/resources/query/tableau_probing/query03.sql
new file mode 100644
index 0000000..19613c9b
--- /dev/null
+++ b/kylin-it/src/test/resources/query/tableau_probing/query03.sql
@@ -0,0 +1,19 @@
+--
+-- 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.
+--
+
+SELECT "COL" FROM (SELECT 1 AS "COL") AS "SUBQUERY" 

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/tableau_probing/query04.sql
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/resources/query/tableau_probing/query04.sql 
b/kylin-it/src/test/resources/query/tableau_probing/query04.sql
new file mode 100644
index 0000000..da0d3a2
--- /dev/null
+++ b/kylin-it/src/test/resources/query/tableau_probing/query04.sql
@@ -0,0 +1,19 @@
+--
+-- 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.
+--
+
+SELECT TOP 1 "COL" FROM (SELECT 1 AS "COL") AS "CHECKTOP" 

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/tableau_probing/query05.sql
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/resources/query/tableau_probing/query05.sql 
b/kylin-it/src/test/resources/query/tableau_probing/query05.sql
new file mode 100644
index 0000000..7fae0d7
--- /dev/null
+++ b/kylin-it/src/test/resources/query/tableau_probing/query05.sql
@@ -0,0 +1,19 @@
+--
+-- 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.
+--
+
+SELECT "COL" FROM (SELECT 1 AS "COL") AS "CHECKTOP" LIMIT 1 

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/tableau_probing/query06.sql
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/resources/query/tableau_probing/query06.sql 
b/kylin-it/src/test/resources/query/tableau_probing/query06.sql
new file mode 100644
index 0000000..1a609bb
--- /dev/null
+++ b/kylin-it/src/test/resources/query/tableau_probing/query06.sql
@@ -0,0 +1,19 @@
+--
+-- 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.
+--
+
+SELECT "SUBCOL" AS "COL" FROM ( SELECT 1 AS "SUBCOL" ) "SUBQUERY" GROUP BY 1 

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/tableau_probing/query07.sql
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/resources/query/tableau_probing/query07.sql 
b/kylin-it/src/test/resources/query/tableau_probing/query07.sql
new file mode 100644
index 0000000..e2722d6
--- /dev/null
+++ b/kylin-it/src/test/resources/query/tableau_probing/query07.sql
@@ -0,0 +1,19 @@
+--
+-- 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.
+--
+
+SELECT "SUBCOL" AS "COL" FROM ( SELECT 1 AS "SUBCOL" ) "SUBQUERY" GROUP BY 2 

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/kylin-it/src/test/resources/query/temp/.gitignore
----------------------------------------------------------------------
diff --git a/kylin-it/src/test/resources/query/temp/.gitignore 
b/kylin-it/src/test/resources/query/temp/.gitignore
new file mode 100644
index 0000000..a51ba9b
--- /dev/null
+++ b/kylin-it/src/test/resources/query/temp/.gitignore
@@ -0,0 +1 @@
+query01.sql

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index ccd5a92..b327006 100644
--- a/pom.xml
+++ b/pom.xml
@@ -457,11 +457,11 @@
                 <artifactId>curator-recipes</artifactId>
                 <version>${curator.version}</version>
             </dependency>
-               <dependency>    
-                       <groupId>org.apache.httpcomponents</groupId>
-                       <artifactId>httpclient</artifactId>
-                       <version>${apache-httpclient.version}</version>
-               </dependency>
+            <dependency>
+                <groupId>org.apache.httpcomponents</groupId>
+                <artifactId>httpclient</artifactId>
+                <version>${apache-httpclient.version}</version>
+            </dependency>
 
         </dependencies>
     </dependencyManagement>
@@ -619,6 +619,7 @@
         <module>jdbc</module>
         <module>invertedindex</module>
         <module>assembly</module>
+        <module>kylin-it</module>
     </modules>
 
     <profiles>
@@ -639,6 +640,7 @@
                             <maxmem>2048m</maxmem>
                         </configuration>
                     </plugin>
+
                     <plugin>
                         <groupId>org.apache.maven.plugins</groupId>
                         <artifactId>maven-surefire-plugin</artifactId>
@@ -647,47 +649,22 @@
                             
<reportsDirectory>${project.basedir}/../target/surefire-reports</reportsDirectory>
                             <excludes>
                                 <exclude>**/IT*.java</exclude>
-
-                                <!--Build cube/II need to be run separately-->
-                                <exclude>**/BuildCube*.java</exclude>
-                                <exclude>**/BuildII*.java</exclude>
                             </excludes>
                             <systemProperties>
                                 <property>
                                     <name>useSandbox</name>
-                                    <value>true</value>
+                                    <value>false</value>
                                 </property>
-                            </systemProperties>
-                        </configuration>
-                    </plugin>
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-failsafe-plugin</artifactId>
-                        <version>2.16</version>
-                        <executions>
-                            <execution>
-                                <id>integration-tests</id>
-                                <phase>integration-test</phase>
-                                <goals>
-                                    <goal>integration-test</goal>
-                                    <goal>verify</goal>
-                                </goals>
-                            </execution>
-                        </executions>
-                        <configuration>
-                            <excludes>
-                                <exclude>**/*$*</exclude>
-                                <exclude>**/ITKafka*.java</exclude>
-
-                            </excludes>
-                            <systemProperties>
                                 <property>
-                                    <name>useSandbox</name>
-                                    <value>true</value>
+                                    <name>buildCubeUsingProvidedData</name>
+                                    <value>false</value>
                                 </property>
                             </systemProperties>
+                            <argLine>-Xms1G -Xmx4G -XX:PermSize=128M 
-XX:MaxPermSize=512M</argLine>
                         </configuration>
                     </plugin>
+
+
                 </plugins>
             </build>
         </profile>
@@ -727,41 +704,6 @@
                         </executions>
                     </plugin>
 
-                    <plugin>
-                        <groupId>org.apache.maven.plugins</groupId>
-                        <artifactId>maven-surefire-plugin</artifactId>
-                        <version>2.16</version>
-                        <configuration>
-                            
<reportsDirectory>${project.basedir}/../target/surefire-reports</reportsDirectory>
-                            <excludes>
-                                
<exclude>**/BuildCubeWithEngineTest.java</exclude>
-                                
<exclude>**/BuildIIWithEngineTest.java</exclude>
-                                <exclude>**/SampleCubeSetupTest.java</exclude>
-                                <exclude>**/KylinQueryTest.java</exclude>
-                                <exclude>**/SnapshotManagerTest.java</exclude>
-                                <exclude>**/HiveTableReaderTest.java</exclude>
-                                <exclude>**/TableControllerTest.java</exclude>
-
-                                <!--test case under server folder are 
problematic when tested against minicluster-->
-                                <exclude>**/ServiceTestBase.java</exclude>
-                                <exclude>**/JDBCDriverTest.java</exclude>
-                                <exclude>%regex[.*ControllerTest.*]</exclude>
-                                <exclude>%regex[.*ServiceTest.*]</exclude>
-
-                            </excludes>
-                            <systemProperties>
-                                <property>
-                                    <name>useSandbox</name>
-                                    <value>false</value>
-                                </property>
-                                <property>
-                                    <name>buildCubeUsingProvidedData</name>
-                                    <value>false</value>
-                                </property>
-                            </systemProperties>
-                            <argLine>-Xms1G -Xmx4G -XX:PermSize=128M 
-XX:MaxPermSize=512M</argLine>
-                        </configuration>
-                    </plugin>
                     <!-- Apache-RAT checks for files without headers.
                          If run on a messy developer's sandbox, it will fail.
                          This serves as a reminder to only build a release in 
a clean
@@ -841,7 +783,7 @@
                                 <exclude>webapp/bower.json</exclude>
                                 <exclude>webapp/grunt.json</exclude>
                                 <exclude>webapp/package.json</exclude>
-                                
+
                                 <!-- jdbc log -->
                                 <exclude>jdbc/kylin_jdbc.log*</exclude>
                                 <!-- server log -->

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/query/pom.xml
----------------------------------------------------------------------
diff --git a/query/pom.xml b/query/pom.xml
index 36a03b0..141ce3b 100644
--- a/query/pom.xml
+++ b/query/pom.xml
@@ -17,7 +17,8 @@
  limitations under the License.
 -->
 
-<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; 
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
+<project xmlns="http://maven.apache.org/POM/4.0.0"; 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
+         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 
http://maven.apache.org/xsd/maven-4.0.0.xsd";>
     <modelVersion>4.0.0</modelVersion>
     <!-- The basics. -->
     <artifactId>kylin-query</artifactId>
@@ -51,7 +52,7 @@
             <artifactId>kylin-invertedindex</artifactId>
             <version>${project.parent.version}</version>
         </dependency>
-        
+
         <dependency>
             <groupId>org.apache.calcite</groupId>
             <artifactId>calcite-linq4j</artifactId>
@@ -164,7 +165,7 @@
             <artifactId>hive-jdbc</artifactId>
             <scope>provided</scope>
         </dependency>
-                <dependency>
+        <dependency>
             <groupId>org.apache.hbase</groupId>
             <artifactId>hbase-testing-util</artifactId>
             <version>${hbase-hadoop2.version}</version>
@@ -182,64 +183,6 @@
         </dependency>
     </dependencies>
 
-    <build>
-        <plugins>
-            <!-- experiment "shade" instead of "assembly"
-            <plugin>
-                <groupId>org.apache.maven.plugins</groupId>
-                <artifactId>maven-shade-plugin</artifactId>
-                <version>2.2</version>
-                <executions>
-                    <execution>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>shade</goal>
-                        </goals>
-                        <configuration>
-                            
<shadedArtifactAttached>true</shadedArtifactAttached>
-                            
<shadedClassifierName>jar-with-dependencies</shadedClassifierName>
-                            <transformers>
-                                <transformer 
implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"
 />
-                            </transformers>
-                            <filters>
-                                <filter>
-                                    <artifact>*:*</artifact>
-                                    <excludes>
-                                        <exclude>META-INF/*.SF</exclude>
-                                        <exclude>META-INF/*.DSA</exclude>
-                                        <exclude>META-INF/*.RSA</exclude>
-                                    </excludes>
-                                </filter>
-                            </filters>
-                        </configuration>
-                    </execution>
-                </executions>
-            </plugin>
-            <plugin>
-                <artifactId>maven-assembly-plugin</artifactId>
-                <configuration>
-                    <archive>
-                        <manifest>
-                            <mainClass>fully.qualified.MainClass</mainClass>
-                        </manifest>
-                    </archive>
-                    <descriptorRefs>
-                        <descriptorRef>jar-with-dependencies</descriptorRef>
-                    </descriptorRefs>
-                </configuration>
-                <executions>
-                    <execution>
-                        <id>make-assembly</id>
-                        <phase>package</phase>
-                        <goals>
-                            <goal>single</goal>
-                        </goals>
-                    </execution>
-                </executions>
-            </plugin>
-             -->
-        </plugins>
-    </build>
 
     <profiles>
         <profile>
@@ -308,6 +251,5 @@
             </build>
         </profile>
     </profiles>
-
-
+  
 </project>

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/query/src/test/java/org/apache/kylin/query/test/H2Database.java
----------------------------------------------------------------------
diff --git a/query/src/test/java/org/apache/kylin/query/test/H2Database.java 
b/query/src/test/java/org/apache/kylin/query/test/H2Database.java
deleted file mode 100644
index cab51d3..0000000
--- a/query/src/test/java/org/apache/kylin/query/test/H2Database.java
+++ /dev/null
@@ -1,130 +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.kylin.query.test;
-
-import java.io.File;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.InputStream;
-import java.sql.Connection;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.HashMap;
-import java.util.Map;
-
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.metadata.MetadataManager;
-import org.apache.kylin.metadata.model.ColumnDesc;
-import org.apache.kylin.metadata.model.TableDesc;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public class H2Database {
-    @SuppressWarnings("unused")
-    private static final Logger logger = 
LoggerFactory.getLogger(H2Database.class);
-
-    private static final String[] ALL_TABLES = new String[] { 
"edw.test_cal_dt", "default.test_category_groupings", 
"default.test_kylin_fact", "edw.test_seller_type_dim", "edw.test_sites", 
"default.streaming_table" };
-    private static final Map<String, String> javaToH2DataTypeMapping = new 
HashMap<String, String>();
-
-    static {
-        javaToH2DataTypeMapping.put("short", "smallint");
-        javaToH2DataTypeMapping.put("long", "bigint");
-        javaToH2DataTypeMapping.put("byte", "tinyint");
-        javaToH2DataTypeMapping.put("string", "varchar");
-    }
-
-    private final Connection h2Connection;
-
-    private final KylinConfig config;
-
-    public H2Database(Connection h2Connection, KylinConfig config) {
-        this.h2Connection = h2Connection;
-        this.config = config;
-    }
-
-    public void loadAllTables() throws SQLException {
-        for (String tableName : ALL_TABLES) {
-            loadH2Table(tableName);
-        }
-    }
-
-    private void loadH2Table(String tableName) throws SQLException {
-        MetadataManager metaMgr = MetadataManager.getInstance(config);
-        TableDesc tableDesc = metaMgr.getTableDesc(tableName.toUpperCase());
-        File tempFile = null;
-
-        try {
-            tempFile = File.createTempFile("tmp_h2", ".csv");
-            FileOutputStream tempFileStream = new FileOutputStream(tempFile);
-            String normalPath = "/data/" + tableDesc.getIdentity() + ".csv";
-            InputStream csvStream = 
metaMgr.getStore().getResource(normalPath).inputStream;
-
-            org.apache.commons.io.IOUtils.copy(csvStream, tempFileStream);
-
-            csvStream.close();
-            tempFileStream.close();
-
-        } catch (IOException e) {
-            e.printStackTrace();
-        }
-
-        String cvsFilePath = tempFile.getPath();
-        Statement stmt = h2Connection.createStatement();
-
-        String createDBSql = "CREATE SCHEMA IF NOT EXISTS DEFAULT;\nCREATE 
SCHEMA IF NOT EXISTS EDW;\nSET SCHEMA DEFAULT;\n";
-        stmt.executeUpdate(createDBSql);
-
-        String sql = generateCreateH2TableSql(tableDesc, cvsFilePath);
-        stmt.executeUpdate(sql);
-
-        if (tempFile != null)
-            tempFile.delete();
-    }
-
-    private String generateCreateH2TableSql(TableDesc tableDesc, String 
csvFilePath) {
-        StringBuilder ddl = new StringBuilder();
-        StringBuilder csvColumns = new StringBuilder();
-
-        ddl.append("CREATE TABLE " + tableDesc.getIdentity() + "\n");
-        ddl.append("(" + "\n");
-
-        for (int i = 0; i < tableDesc.getColumns().length; i++) {
-            ColumnDesc col = tableDesc.getColumns()[i];
-            if (i > 0) {
-                ddl.append(",");
-                csvColumns.append(",");
-            }
-            ddl.append(col.getName() + " " + 
getH2DataType((col.getDatatype())) + "\n");
-            csvColumns.append(col.getName());
-        }
-        ddl.append(")" + "\n");
-        ddl.append("AS SELECT * FROM CSVREAD('" + csvFilePath + "', '" + 
csvColumns + "', 'charset=UTF-8 fieldSeparator=,');");
-
-        return ddl.toString();
-    }
-
-    private static String getH2DataType(String javaDataType) {
-        String hiveDataType = 
javaToH2DataTypeMapping.get(javaDataType.toLowerCase());
-        if (hiveDataType == null) {
-            hiveDataType = javaDataType;
-        }
-        return hiveDataType.toLowerCase();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/query/src/test/java/org/apache/kylin/query/test/ITCombinationTest.java
----------------------------------------------------------------------
diff --git 
a/query/src/test/java/org/apache/kylin/query/test/ITCombinationTest.java 
b/query/src/test/java/org/apache/kylin/query/test/ITCombinationTest.java
deleted file mode 100644
index 200d6d2..0000000
--- a/query/src/test/java/org/apache/kylin/query/test/ITCombinationTest.java
+++ /dev/null
@@ -1,78 +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.kylin.query.test;
-
-import java.sql.SQLException;
-import java.util.Arrays;
-import java.util.Collection;
-
-import org.apache.kylin.storage.hbase.HBaseStorage;
-import 
org.apache.kylin.storage.hbase.cube.v1.coprocessor.observer.ObserverEnabler;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-/**
- */
-@RunWith(Parameterized.class)
-public class ITCombinationTest extends ITKylinQueryTest {
-
-    @BeforeClass
-    public static void setUp() throws SQLException {
-        System.out.println("setUp in ITCombinationTest");
-    }
-
-    @AfterClass
-    public static void tearDown() {
-        clean();
-        HBaseStorage.overwriteStorageQuery = null;
-    }
-
-    /**
-     * return all config combinations, where first setting specifies join type
-     * (inner or left), and the second setting specifies whether to force using
-     * coprocessors(on, off or unset).
-     */
-    @Parameterized.Parameters
-    public static Collection<Object[]> configs() {
-        //       return Arrays.asList(new Object[][] { { "inner", "unset" }, { 
"left", "unset" }, { "inner", "off" }, { "left", "off" }, { "inner", "on" }, { 
"left", "on" }, });
-        return Arrays.asList(new Object[][] { { "inner", "on", "v2" }, { 
"left", "on", "v1" }, { "left", "on", "v2" } });
-    }
-
-    public ITCombinationTest(String joinType, String coprocessorToggle,String 
queryEngine) throws Exception {
-
-        ITKylinQueryTest.clean();
-
-        ITKylinQueryTest.joinType = joinType;
-        ITKylinQueryTest.setupAll();
-
-        if (coprocessorToggle.equals("on")) {
-            ObserverEnabler.forceCoprocessorOn();
-        } else if (coprocessorToggle.equals("off")) {
-            ObserverEnabler.forceCoprocessorOff();
-        } else if (coprocessorToggle.equals("unset")) {
-            // unset
-        }
-
-        if ("v1".equalsIgnoreCase(queryEngine)) {
-            HBaseStorage.overwriteStorageQuery = 
HBaseStorage.v1CubeStorageQuery;
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/query/src/test/java/org/apache/kylin/query/test/ITIIQueryTest.java
----------------------------------------------------------------------
diff --git a/query/src/test/java/org/apache/kylin/query/test/ITIIQueryTest.java 
b/query/src/test/java/org/apache/kylin/query/test/ITIIQueryTest.java
deleted file mode 100644
index 78b3d1c..0000000
--- a/query/src/test/java/org/apache/kylin/query/test/ITIIQueryTest.java
+++ /dev/null
@@ -1,87 +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.kylin.query.test;
-
-import java.util.Arrays;
-import java.util.Collection;
-import java.util.Map;
-
-import org.apache.kylin.metadata.realization.RealizationType;
-import org.apache.kylin.query.routing.RoutingRules.RealizationPriorityRule;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.junit.runners.Parameterized;
-
-import com.google.common.collect.Maps;
-
-/**
- */
-@RunWith(Parameterized.class)
-public class ITIIQueryTest extends ITKylinQueryTest {
-    @BeforeClass
-    public static void setUp() throws Exception {
-
-        // give II higher priority than other realizations
-        Map<RealizationType, Integer> priorities = Maps.newHashMap();
-        priorities.put(RealizationType.INVERTED_INDEX, 0);
-        priorities.put(RealizationType.CUBE, 1);
-        priorities.put(RealizationType.HYBRID, 1);
-        RealizationPriorityRule.setPriorities(priorities);
-
-    }
-
-    @AfterClass
-    public static void tearDown() throws Exception {
-        ITKylinQueryTest.tearDown();//invoke super class
-
-        Map<RealizationType, Integer> priorities = Maps.newHashMap();
-        priorities.put(RealizationType.INVERTED_INDEX, 1);
-        priorities.put(RealizationType.CUBE, 0);
-        priorities.put(RealizationType.HYBRID, 0);
-        RealizationPriorityRule.setPriorities(priorities);
-    }
-
-    @Parameterized.Parameters
-    public static Collection<Object[]> configs() {
-        return Arrays.asList(new Object[][] { { "inner" }, { "left" } });
-    }
-
-    public ITIIQueryTest(String joinType) throws Exception {
-
-        ITKylinQueryTest.clean();
-
-        ITKylinQueryTest.joinType = joinType;
-        ITKylinQueryTest.setupAll();
-
-    }
-
-    @Test
-    public void testSingleRunQuery() throws Exception {
-        super.testSingleRunQuery();
-    }
-
-    @Test
-    public void testDetailedQuery() throws Exception {
-        execAndCompQuery("src/test/resources/query/sql_ii", null, true);
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/query/src/test/java/org/apache/kylin/query/test/ITKylinQueryTest.java
----------------------------------------------------------------------
diff --git 
a/query/src/test/java/org/apache/kylin/query/test/ITKylinQueryTest.java 
b/query/src/test/java/org/apache/kylin/query/test/ITKylinQueryTest.java
deleted file mode 100644
index 41e6ab5..0000000
--- a/query/src/test/java/org/apache/kylin/query/test/ITKylinQueryTest.java
+++ /dev/null
@@ -1,238 +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.kylin.query.test;
-
-import static org.junit.Assert.assertTrue;
-
-import java.io.File;
-import java.sql.DriverManager;
-import java.util.List;
-import java.util.Properties;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.metadata.project.ProjectInstance;
-import org.apache.kylin.query.enumerator.OLAPQuery;
-import org.apache.kylin.query.relnode.OLAPContext;
-import org.apache.kylin.query.schema.OLAPSchemaFactory;
-import 
org.apache.kylin.storage.hbase.cube.v1.coprocessor.observer.ObserverEnabler;
-import org.apache.kylin.storage.hbase.steps.HBaseMetadataTestCase;
-import org.dbunit.database.DatabaseConnection;
-import org.dbunit.database.IDatabaseConnection;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
-import org.junit.Ignore;
-import org.junit.Test;
-
-@Ignore("KylinQueryTest is contained by ITCombinationTest")
-public class ITKylinQueryTest extends KylinTestBase {
-
-    @BeforeClass
-    public static void setUp() throws Exception {
-        printInfo("setUp in KylinQueryTest");
-        joinType = "left";
-
-        setupAll();
-    }
-
-    @AfterClass
-    public static void tearDown() throws Exception {
-        printInfo("tearDown");
-        printInfo("Closing connection...");
-        clean();
-    }
-
-    protected static void setupAll() throws Exception {
-        //setup env
-        HBaseMetadataTestCase.staticCreateTestMetadata();
-        config = KylinConfig.getInstanceFromEnv();
-
-        //setup cube conn
-        File olapTmp = 
OLAPSchemaFactory.createTempOLAPJson(ProjectInstance.DEFAULT_PROJECT_NAME, 
config);
-        Properties props = new Properties();
-        props.setProperty(OLAPQuery.PROP_SCAN_THRESHOLD, "10000");
-        cubeConnection = DriverManager.getConnection("jdbc:calcite:model=" + 
olapTmp.getAbsolutePath(), props);
-
-        //setup h2
-        h2Connection = DriverManager.getConnection("jdbc:h2:mem:db" + 
(h2InstanceCount++), "sa", "");
-        // Load H2 Tables (inner join)
-        H2Database h2DB = new H2Database(h2Connection, config);
-        h2DB.loadAllTables();
-    }
-
-    protected static void clean() {
-        if (cubeConnection != null)
-            closeConnection(cubeConnection);
-        if (h2Connection != null)
-            closeConnection(h2Connection);
-
-        ObserverEnabler.forceCoprocessorUnset();
-        HBaseMetadataTestCase.staticCleanupTestMetadata();
-    }
-
-    @Ignore("this is only for debug")
-    @Test
-    public void testTempQuery() throws Exception {
-        execAndCompQuery("src/test/resources/query/temp", null, true);
-    }
-
-    @Test
-    public void testSingleRunQuery() throws Exception {
-
-        String queryFileName = "src/test/resources/query/sql/query20.sql";
-
-        File sqlFile = new File(queryFileName);
-        if (sqlFile.exists()) {
-            runSQL(sqlFile, true, true);
-            runSQL(sqlFile, true, false);
-        }
-    }
-
-    @Test
-    public void testSingleExecuteQuery() throws Exception {
-
-        String queryFileName = "src/test/resources/query/sql/query20.sql";
-
-        File sqlFile = new File(queryFileName);
-        String sql = getTextFromFile(sqlFile);
-        IDatabaseConnection kylinConn = new DatabaseConnection(cubeConnection);
-
-        executeQuery(kylinConn, queryFileName, sql, true);
-    }
-
-    @Ignore
-    @Test
-    public void testTableauProbing() throws Exception {
-        batchExecuteQuery("src/test/resources/query/tableau_probing");
-    }
-
-    @Test
-    public void testCommonQuery() throws Exception {
-        execAndCompQuery("src/test/resources/query/sql", null, true);
-    }
-
-    @Test
-    public void testVerifyQuery() throws Exception {
-        verifyResultRowCount("src/test/resources/query/sql_verifyCount");
-    }
-
-    @Test
-    public void testOrderByQuery() throws Exception {
-        execAndCompQuery("src/test/resources/query/sql_orderby", null, true);
-        // FIXME
-        // as of optiq 0.8, we lost metadata type with "order by" clause, e.g. 
sql_orderby/query01.sql
-        // thus, temporarily the "order by" clause was cross out, and the 
needSort is set to true
-        // execAndCompQuery("src/test/resources/query/sql_orderby", null, 
false);
-    }
-
-    @Test
-    public void testLookupQuery() throws Exception {
-        execAndCompQuery("src/test/resources/query/sql_lookup", null, true);
-    }
-
-    @Test
-    public void testCachedQuery() throws Exception {
-        execAndCompQuery("src/test/resources/query/sql_cache", null, true);
-    }
-
-    @Test
-    public void testDerivedColumnQuery() throws Exception {
-        execAndCompQuery("src/test/resources/query/sql_derived", null, true);
-    }
-
-    @Test
-    public void testDistinctCountQuery() throws Exception {
-        batchExecuteQuery("src/test/resources/query/sql_distinct");
-    }
-
-    @Test
-    public void testStreamingTableQuery() throws Exception {
-        execAndCompQuery("src/test/resources/query/sql_streaming", null, true);
-    }
-
-    @Test
-    public void testTableauQuery() throws Exception {
-        execAndCompResultSize("src/test/resources/query/sql_tableau", null, 
true);
-    }
-
-    @Test
-    public void testSubQuery() throws Exception {
-        execAndCompQuery("src/test/resources/query/sql_subquery", null, true);
-    }
-
-    @Test
-    public void testCaseWhen() throws Exception {
-        execAndCompQuery("src/test/resources/query/sql_casewhen", null, true);
-    }
-
-    @Ignore
-    @Test
-    public void testHiveQuery() throws Exception {
-        execAndCompQuery("src/test/resources/query/sql_hive", null, true);
-    }
-
-    @Test
-    public void testH2Query() throws Exception {
-        this.execQueryUsingH2("src/test/resources/query/sql_orderby", false);
-    }
-
-    @Test
-    public void testInvalidQuery() throws Exception {
-
-        printInfo("-------------------- Test Invalid Query 
--------------------");
-        String queryFolder = "src/test/resources/query/sql_invalid";
-        List<File> sqlFiles = getFilesFromFolder(new File(queryFolder), 
".sql");
-        for (File sqlFile : sqlFiles) {
-            String queryName = StringUtils.split(sqlFile.getName(), '.')[0];
-            printInfo("Testing Query " + queryName);
-            String sql = getTextFromFile(sqlFile);
-            IDatabaseConnection cubeConn = new 
DatabaseConnection(cubeConnection);
-            try {
-                cubeConn.createQueryTable(queryName, sql);
-            } catch (Throwable t) {
-                continue;
-            } finally {
-                cubeConn.close();
-            }
-            throw new IllegalStateException(queryName + " should be error!");
-        }
-    }
-
-    @Test
-    public void testDynamicQuery() throws Exception {
-        execAndCompDynamicQuery("src/test/resources/query/sql_dynamic", null, 
true);
-    }
-
-    @Ignore("simple query will be supported by ii")
-    @Test
-    public void testLimitEnabled() throws Exception {
-        runSqlFile("src/test/resources/query/sql_optimize/enable-limit01.sql");
-        assertLimitWasEnabled();
-    }
-
-    private void assertLimitWasEnabled() {
-        OLAPContext context = getFirstOLAPContext();
-        assertTrue(context.storageContext.isLimitEnabled());
-    }
-
-    private OLAPContext getFirstOLAPContext() {
-        return OLAPContext.getThreadLocalContexts().iterator().next();
-    }
-
-}

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
----------------------------------------------------------------------
diff --git a/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java 
b/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
deleted file mode 100644
index 45b5d2c..0000000
--- a/query/src/test/java/org/apache/kylin/query/test/KylinTestBase.java
+++ /dev/null
@@ -1,507 +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.kylin.query.test;
-
-import java.io.BufferedReader;
-import java.io.BufferedWriter;
-import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileReader;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.io.InputStream;
-import java.nio.charset.Charset;
-import java.sql.Connection;
-import java.sql.PreparedStatement;
-import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.sql.Timestamp;
-import java.sql.Types;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Set;
-import java.util.logging.LogManager;
-
-import org.apache.commons.lang3.StringUtils;
-import org.apache.kylin.common.KylinConfig;
-import org.dbunit.Assertion;
-import org.dbunit.database.DatabaseConfig;
-import org.dbunit.database.DatabaseConnection;
-import org.dbunit.database.IDatabaseConnection;
-import org.dbunit.dataset.DataSetException;
-import org.dbunit.dataset.ITable;
-import org.dbunit.dataset.SortedTable;
-import org.dbunit.dataset.datatype.DataType;
-import org.dbunit.dataset.datatype.DataTypeException;
-import org.dbunit.ext.h2.H2Connection;
-import org.dbunit.ext.h2.H2DataTypeFactory;
-import org.junit.Assert;
-
-import com.google.common.io.Files;
-
-/**
- */
-public class KylinTestBase {
-
-    // Hack for the different constant integer type between optiq (INTEGER) and
-    // h2 (BIGINT)
-    public static class TestH2DataTypeFactory extends H2DataTypeFactory {
-        @Override
-        public DataType createDataType(int sqlType, String sqlTypeName, String 
tableName, String columnName) throws DataTypeException {
-
-            if ((columnName.startsWith("COL") || columnName.startsWith("col")) 
&& sqlType == Types.BIGINT) {
-                return DataType.INTEGER;
-            }
-            return super.createDataType(sqlType, sqlTypeName);
-        }
-    }
-
-    protected static final String resultTableName = "query result of ";
-    protected static KylinConfig config = null;
-    protected static Connection cubeConnection = null;
-    protected static Connection h2Connection = null;
-    protected static String joinType = "default";
-    protected static int h2InstanceCount = 0;
-
-    protected static int compQueryCount = 0;
-    protected static ArrayList<String> zeroResultQueries = new 
ArrayList<String>();
-
-    protected static void closeConnection(Connection connection) {
-        if (connection != null) {
-            try {
-                connection.close();
-            } catch (SQLException e) {
-                e.printStackTrace();
-            }
-        }
-    }
-
-    /**
-     * @param folder
-     * @param fileType
-     *            specify the interested file type by file extension
-     * @return
-     */
-    protected static List<File> getFilesFromFolder(final File folder, final 
String fileType) {
-        List<File> files = new ArrayList<File>();
-        for (final File fileEntry : folder.listFiles()) {
-            if 
(fileEntry.getName().toLowerCase().endsWith(fileType.toLowerCase())) {
-                files.add(fileEntry);
-            }
-        }
-        return files;
-    }
-
-    protected static void getFilesFromFolderR(final String directoryStr, 
List<File> files, final String fileType) {
-        File folder = new File(directoryStr);
-        for (final File fileEntry : folder.listFiles()) {
-            if (fileEntry.isDirectory()) {
-                getFilesFromFolderR(fileEntry.getAbsolutePath(), files, 
fileType);
-            } else if (fileEntry.isFile()) {
-                if 
(fileEntry.getName().toLowerCase().endsWith(fileType.toLowerCase())) {
-                    files.add(fileEntry);
-                }
-            }
-        }
-    }
-
-    protected static void putTextTofile(File file, String sql) throws 
IOException {
-        BufferedWriter writer = new BufferedWriter(new FileWriter(file));
-        writer.write(sql, 0, sql.length());
-        writer.close();
-    }
-
-    protected static String getTextFromFile(File file) throws IOException {
-        BufferedReader reader = new BufferedReader(new FileReader(file));
-        String line = null;
-        StringBuilder stringBuilder = new StringBuilder();
-        String ls = System.getProperty("line.separator");
-        while ((line = reader.readLine()) != null) {
-            stringBuilder.append(line);
-            stringBuilder.append(ls);
-        }
-        reader.close();
-        return stringBuilder.toString();
-    }
-
-    protected static List<String> getParameterFromFile(File sqlFile) throws 
IOException {
-        String sqlFileName = sqlFile.getAbsolutePath();
-        int prefixIndex = sqlFileName.lastIndexOf(".sql");
-        String dataFielName = sqlFileName.substring(0, prefixIndex) + ".dat";
-        File dataFile = new File(dataFielName);
-        List<String> parameters = Files.readLines(dataFile, 
Charset.defaultCharset());
-        return parameters;
-    }
-
-    protected static void printInfo(String info) {
-        System.out.println(new Timestamp(System.currentTimeMillis()) + " - " + 
info);
-    }
-
-    protected static void printResult(ITable resultTable) throws 
DataSetException {
-        StringBuilder sb = new StringBuilder();
-
-        int columnCount = resultTable.getTableMetaData().getColumns().length;
-        String[] columns = new String[columnCount];
-
-        for (int i = 0; i < columnCount; i++) {
-            
sb.append(resultTable.getTableMetaData().getColumns()[i].getColumnName());
-            sb.append("-");
-            
sb.append(resultTable.getTableMetaData().getColumns()[i].getDataType());
-            sb.append("\t");
-            columns[i] = 
resultTable.getTableMetaData().getColumns()[i].getColumnName();
-        }
-        sb.append("\n");
-
-        for (int i = 0; i < resultTable.getRowCount(); i++) {
-            for (int j = 0; j < columns.length; j++) {
-                sb.append(resultTable.getValue(i, columns[j]));
-                sb.append("\t");
-            }
-            sb.append("\n");
-        }
-        System.out.println(sb.toString());
-    }
-
-    protected Set<String> buildExclusiveSet(String[] exclusiveQuerys) {
-        Set<String> exclusiveSet = new HashSet<String>();
-        if (exclusiveQuerys != null) {
-            for (String query : exclusiveQuerys) {
-                exclusiveSet.add(query);
-            }
-        }
-        return exclusiveSet;
-    }
-
-    // 
////////////////////////////////////////////////////////////////////////////////////////
-    // execute
-
-    protected ITable executeQuery(IDatabaseConnection dbConn, String 
queryName, String sql, boolean needSort) throws Exception {
-
-        // change join type to match current setting
-        sql = changeJoinType(sql, joinType);
-
-        ITable queryTable = dbConn.createQueryTable(resultTableName + 
queryName, sql);
-        String[] columnNames = new 
String[queryTable.getTableMetaData().getColumns().length];
-        for (int i = 0; i < columnNames.length; i++) {
-            columnNames[i] = 
queryTable.getTableMetaData().getColumns()[i].getColumnName();
-        }
-        if (needSort) {
-            queryTable = new SortedTable(queryTable, columnNames);
-        }
-        //printResult(queryTable);
-
-        return queryTable;
-    }
-
-    protected int executeQuery(String sql, boolean needDisplay) throws 
SQLException {
-
-        // change join type to match current setting
-        sql = changeJoinType(sql, joinType);
-
-        Statement statement = null;
-        ResultSet resultSet = null;
-        try {
-            printInfo("start running...");
-            statement = cubeConnection.createStatement();
-            resultSet = statement.executeQuery(sql);
-            printInfo("stop running...");
-
-            return output(resultSet, needDisplay);
-        } finally {
-            if (resultSet != null) {
-                try {
-                    resultSet.close();
-                } catch (SQLException e) {
-                    // ignore
-                }
-            }
-            if (statement != null) {
-                try {
-                    statement.close();
-                } catch (SQLException e) {
-                    // ignore
-                }
-            }
-        }
-
-    }
-
-    protected ITable executeDynamicQuery(IDatabaseConnection dbConn, String 
queryName, String sql, List<String> parameters, boolean needSort) throws 
Exception {
-
-        // change join type to match current setting
-        sql = changeJoinType(sql, joinType);
-
-        PreparedStatement prepStat = 
dbConn.getConnection().prepareStatement(sql);
-        for (int j = 1; j <= parameters.size(); ++j) {
-            prepStat.setString(j, parameters.get(j - 1).trim());
-        }
-
-        ITable queryTable = dbConn.createTable(resultTableName + queryName, 
prepStat);
-        String[] columnNames = new 
String[queryTable.getTableMetaData().getColumns().length];
-        for (int i = 0; i < columnNames.length; i++) {
-            columnNames[i] = 
queryTable.getTableMetaData().getColumns()[i].getColumnName();
-        }
-        if (needSort) {
-            queryTable = new SortedTable(queryTable, columnNames);
-        }
-        //printResult(queryTable);
-        return queryTable;
-    }
-
-    // end of execute
-    // 
////////////////////////////////////////////////////////////////////////////////////////
-
-    protected static String changeJoinType(String sql, String targetType) {
-
-        if (targetType.equalsIgnoreCase("default"))
-            return sql;
-
-        String specialStr = "changeJoinType_DELIMITERS";
-        sql = sql.replaceAll(System.getProperty("line.separator"), " " + 
specialStr + " ");
-
-        String[] tokens = StringUtils.split(sql, null);// split white spaces
-        for (int i = 0; i < tokens.length - 1; ++i) {
-            if ((tokens[i].equalsIgnoreCase("inner") || 
tokens[i].equalsIgnoreCase("left")) && tokens[i + 1].equalsIgnoreCase("join")) {
-                tokens[i] = targetType.toLowerCase();
-            }
-        }
-
-        String ret = StringUtils.join(tokens, " ");
-        ret = ret.replaceAll(specialStr, System.getProperty("line.separator"));
-        System.out.println("The actual sql executed is: " + ret);
-
-        return ret;
-    }
-
-    protected static void batchChangeJoinType(String targetType) throws 
IOException {
-        List<File> files = new LinkedList<File>();
-        getFilesFromFolderR("src/test/resources/query", files, ".sql");
-        for (File file : files) {
-            String x = changeJoinType(getTextFromFile(file), targetType);
-            putTextTofile(file, x);
-        }
-    }
-
-    protected void execQueryUsingH2(String queryFolder, boolean needSort) 
throws Exception {
-        printInfo("---------- Running H2 queries: " + queryFolder);
-
-        List<File> sqlFiles = getFilesFromFolder(new File(queryFolder), 
".sql");
-        for (File sqlFile : sqlFiles) {
-            String queryName = StringUtils.split(sqlFile.getName(), '.')[0];
-            String sql = getTextFromFile(sqlFile);
-
-            // execute H2
-            printInfo("Query Result from H2 - " + queryName);
-            H2Connection h2Conn = new H2Connection(h2Connection, null);
-            
h2Conn.getConfig().setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new 
TestH2DataTypeFactory());
-            executeQuery(h2Conn, queryName, sql, needSort);
-        }
-    }
-
-    protected void verifyResultRowCount(String queryFolder) throws Exception {
-        printInfo("---------- verify result count in folder: " + queryFolder);
-
-        List<File> sqlFiles = getFilesFromFolder(new File(queryFolder), 
".sql");
-        for (File sqlFile : sqlFiles) {
-            String queryName = StringUtils.split(sqlFile.getName(), '.')[0];
-            String sql = getTextFromFile(sqlFile);
-
-            File expectResultFile = new File(sqlFile.getParent(), 
sqlFile.getName() + ".expected");
-            int expectRowCount = 
Integer.parseInt(Files.readFirstLine(expectResultFile, 
Charset.defaultCharset()));
-
-            // execute Kylin
-            printInfo("Query Result from Kylin - " + queryName + "  (" + 
queryFolder + ")");
-            IDatabaseConnection kylinConn = new 
DatabaseConnection(cubeConnection);
-            ITable kylinTable = executeQuery(kylinConn, queryName, sql, false);
-
-            // compare the result
-            Assert.assertEquals(expectRowCount, kylinTable.getRowCount());
-            // Assertion.assertEquals(expectRowCount, 
kylinTable.getRowCount());
-        }
-    }
-
-    protected void execAndCompQuery(String queryFolder, String[] 
exclusiveQuerys, boolean needSort) throws Exception {
-        printInfo("---------- test folder: " + queryFolder);
-        Set<String> exclusiveSet = buildExclusiveSet(exclusiveQuerys);
-
-        List<File> sqlFiles = getFilesFromFolder(new File(queryFolder), 
".sql");
-        for (File sqlFile : sqlFiles) {
-            String queryName = StringUtils.split(sqlFile.getName(), '.')[0];
-            if (exclusiveSet.contains(queryName)) {
-                continue;
-            }
-            String sql = getTextFromFile(sqlFile);
-
-            // execute Kylin
-            printInfo("Query Result from Kylin - " + queryName + "  (" + 
queryFolder + ")");
-            IDatabaseConnection kylinConn = new 
DatabaseConnection(cubeConnection);
-            ITable kylinTable = executeQuery(kylinConn, queryName, sql, 
needSort);
-
-            // execute H2
-            printInfo("Query Result from H2 - " + queryName);
-            H2Connection h2Conn = new H2Connection(h2Connection, null);
-            
h2Conn.getConfig().setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new 
TestH2DataTypeFactory());
-            ITable h2Table = executeQuery(h2Conn, queryName, sql, needSort);
-
-            // compare the result
-            Assertion.assertEquals(h2Table, kylinTable);
-
-            compQueryCount++;
-            if (kylinTable.getRowCount() == 0) {
-                zeroResultQueries.add(sql);
-            }
-        }
-    }
-
-
-    protected void execAndCompResultSize(String queryFolder, String[] 
exclusiveQuerys, boolean needSort) throws Exception {
-        printInfo("---------- test folder: " + queryFolder);
-        Set<String> exclusiveSet = buildExclusiveSet(exclusiveQuerys);
-
-        List<File> sqlFiles = getFilesFromFolder(new File(queryFolder), 
".sql");
-        for (File sqlFile : sqlFiles) {
-            String queryName = StringUtils.split(sqlFile.getName(), '.')[0];
-            if (exclusiveSet.contains(queryName)) {
-                continue;
-            }
-            String sql = getTextFromFile(sqlFile);
-
-            // execute Kylin
-            printInfo("Query Result from Kylin - " + queryName + "  (" + 
queryFolder + ")");
-            IDatabaseConnection kylinConn = new 
DatabaseConnection(cubeConnection);
-            ITable kylinTable = executeQuery(kylinConn, queryName, sql, 
needSort);
-
-            // execute H2
-            printInfo("Query Result from H2 - " + queryName);
-            H2Connection h2Conn = new H2Connection(h2Connection, null);
-            
h2Conn.getConfig().setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new 
TestH2DataTypeFactory());
-            ITable h2Table = executeQuery(h2Conn, queryName, sql, needSort);
-
-            // compare the result
-            Assert.assertEquals(h2Table.getRowCount(), 
kylinTable.getRowCount());
-
-            compQueryCount++;
-            if (kylinTable.getRowCount() == 0) {
-                zeroResultQueries.add(sql);
-            }
-        }
-    }
-
-    protected void execAndCompDynamicQuery(String queryFolder, String[] 
exclusiveQuerys, boolean needSort) throws Exception {
-        printInfo("---------- test folder: " + queryFolder);
-        Set<String> exclusiveSet = buildExclusiveSet(exclusiveQuerys);
-
-        List<File> sqlFiles = getFilesFromFolder(new File(queryFolder), 
".sql");
-        for (File sqlFile : sqlFiles) {
-            String queryName = StringUtils.split(sqlFile.getName(), '.')[0];
-            if (exclusiveSet.contains(queryName)) {
-                continue;
-            }
-            String sql = getTextFromFile(sqlFile);
-            List<String> parameters = getParameterFromFile(sqlFile);
-
-            // execute Kylin
-            printInfo("Query Result from Kylin - " + queryName + "  (" + 
queryFolder + ")");
-            IDatabaseConnection kylinConn = new 
DatabaseConnection(cubeConnection);
-            ITable kylinTable = executeDynamicQuery(kylinConn, queryName, sql, 
parameters, needSort);
-
-            // execute H2
-            printInfo("Query Result from H2 - " + queryName);
-            IDatabaseConnection h2Conn = new DatabaseConnection(h2Connection);
-            
h2Conn.getConfig().setProperty(DatabaseConfig.PROPERTY_DATATYPE_FACTORY, new 
TestH2DataTypeFactory());
-            ITable h2Table = executeDynamicQuery(h2Conn, queryName, sql, 
parameters, needSort);
-
-            // compare the result
-            Assertion.assertEquals(h2Table, kylinTable);
-        }
-    }
-
-    protected int runSqlFile(String file) throws Exception {
-        return runSQL(new File(file), true, false);
-    }
-
-    protected int runSQL(File sqlFile, boolean debug, boolean explain) throws 
Exception {
-        if (debug) {
-            System.setProperty("calcite.debug", "true");
-            InputStream inputStream = new 
FileInputStream("src/test/resources/logging.properties");
-            LogManager.getLogManager().readConfiguration(inputStream);
-        }
-
-        String queryName = StringUtils.split(sqlFile.getName(), '.')[0];
-        printInfo("Testing Query " + queryName);
-        String sql = getTextFromFile(sqlFile);
-        if (explain) {
-            sql = "explain plan for " + sql;
-        }
-        int count = executeQuery(sql, true);
-
-        if (debug) {
-            System.clearProperty("calcite.debug");
-        }
-        return count;
-    }
-
-    protected void batchExecuteQuery(String queryFolder) throws Exception {
-        List<File> sqlFiles = getFilesFromFolder(new File(queryFolder), 
".sql");
-        for (File sqlFile : sqlFiles) {
-            runSQL(sqlFile, false, false);
-        }
-    }
-
-    protected int output(ResultSet resultSet, boolean needDisplay) throws 
SQLException {
-        int count = 0;
-        ResultSetMetaData metaData = resultSet.getMetaData();
-        int columnCount = metaData.getColumnCount();
-        StringBuilder sb = new StringBuilder("\n");
-        if (needDisplay) {
-            for (int i = 1; i <= columnCount; i++) {
-                sb.append(metaData.getColumnName(i));
-                sb.append("-");
-                sb.append(metaData.getTableName(i));
-                sb.append("-");
-                sb.append(metaData.getColumnTypeName(i));
-                if (i < columnCount) {
-                    sb.append("\t");
-                } else {
-                    sb.append("\n");
-                }
-            }
-        }
-
-        while (resultSet.next()) {
-            if (needDisplay) {
-                for (int i = 1; i <= columnCount; i++) {
-                    sb.append(resultSet.getString(i));
-                    if (i < columnCount) {
-                        sb.append("\t");
-                    } else {
-                        sb.append("\n");
-                    }
-                }
-            }
-            count++;
-        }
-        printInfo(sb.toString());
-        return count;
-    }
-}

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/query/src/test/java/org/apache/kylin/query/test/RealizationRegistryTest.java
----------------------------------------------------------------------
diff --git 
a/query/src/test/java/org/apache/kylin/query/test/RealizationRegistryTest.java 
b/query/src/test/java/org/apache/kylin/query/test/RealizationRegistryTest.java
deleted file mode 100644
index c1789db..0000000
--- 
a/query/src/test/java/org/apache/kylin/query/test/RealizationRegistryTest.java
+++ /dev/null
@@ -1,57 +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.kylin.query.test;
-
-import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertTrue;
-
-import java.util.Set;
-
-import org.apache.kylin.common.KylinConfig;
-import org.apache.kylin.common.util.LocalFileMetadataTestCase;
-import org.apache.kylin.metadata.realization.RealizationRegistry;
-import org.apache.kylin.metadata.realization.RealizationType;
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-
-/**
- */
-public class RealizationRegistryTest extends LocalFileMetadataTestCase {
-    @Before
-    public void setup() throws Exception {
-
-        createTestMetadata();
-    }
-
-    @After
-    public void after() throws Exception {
-        cleanupTestMetadata();
-    }
-
-    @Test
-    public void test() throws Exception {
-        final RealizationRegistry registry = 
RealizationRegistry.getInstance(KylinConfig.getInstanceFromEnv());
-        final Set<RealizationType> realizationTypes = 
registry.getRealizationTypes();
-        assertEquals(RealizationType.values().length, realizationTypes.size());
-        for (RealizationType type : RealizationType.values()) {
-            assertTrue(realizationTypes.contains(type));
-        }
-    }
-}

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/query/src/test/resources/logging.properties
----------------------------------------------------------------------
diff --git a/query/src/test/resources/logging.properties 
b/query/src/test/resources/logging.properties
deleted file mode 100644
index a925478..0000000
--- a/query/src/test/resources/logging.properties
+++ /dev/null
@@ -1,5 +0,0 @@
-handlers=java.util.logging.ConsoleHandler
-.level=INFO
-#org.eigenbase.relopt.RelOptPlanner.level=FINEST
-java.util.logging.ConsoleHandler.level=ALL
-java.util.logging.ConsoleHandler.formatter=org.apache.kylin.common.util.MyLogFormatter
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/query/src/test/resources/query/debug/query78.sql
----------------------------------------------------------------------
diff --git a/query/src/test/resources/query/debug/query78.sql 
b/query/src/test/resources/query/debug/query78.sql
deleted file mode 100644
index 299f1a4..0000000
--- a/query/src/test/resources/query/debug/query78.sql
+++ /dev/null
@@ -1,22 +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.
---
-
-select count(*) as c,sum(PRICE) as GMV, LSTG_FORMAT_NAME as FORMAT_NAME
-from test_kylin_fact
-where (LSTG_FORMAT_NAME in ('ABIN')) or  (LSTG_FORMAT_NAME>='FP-GTC' and 
LSTG_FORMAT_NAME<='Others')
-group by LSTG_FORMAT_NAME

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/query/src/test/resources/query/h2/query07.sql
----------------------------------------------------------------------
diff --git a/query/src/test/resources/query/h2/query07.sql 
b/query/src/test/resources/query/h2/query07.sql
deleted file mode 100644
index 9fd2b7f..0000000
--- a/query/src/test/resources/query/h2/query07.sql
+++ /dev/null
@@ -1,21 +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.
---
-
-select count(*) from ( select test_kylin_fact.lstg_format_name from 
test_kylin_fact
- where test_kylin_fact.lstg_format_name='FP-GTC' 
- group by test_kylin_fact.lstg_format_name ) t 

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/query/src/test/resources/query/h2/query09.sql
----------------------------------------------------------------------
diff --git a/query/src/test/resources/query/h2/query09.sql 
b/query/src/test/resources/query/h2/query09.sql
deleted file mode 100644
index e6e5576..0000000
--- a/query/src/test/resources/query/h2/query09.sql
+++ /dev/null
@@ -1,23 +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.
---
-
-select count(*) from (select test_cal_dt.week_beg_dt 
- from test_kylin_fact 
- inner JOIN edw.test_cal_dt as test_cal_dt 
- ON test_kylin_fact.cal_dt = test_cal_dt.cal_dt 
- group by test_cal_dt.week_beg_dt) t 

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/query/src/test/resources/query/h2/query10.sql
----------------------------------------------------------------------
diff --git a/query/src/test/resources/query/h2/query10.sql 
b/query/src/test/resources/query/h2/query10.sql
deleted file mode 100644
index 9511363..0000000
--- a/query/src/test/resources/query/h2/query10.sql
+++ /dev/null
@@ -1,25 +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.
---
-
-select test_cal_dt.week_beg_dt 
- from test_kylin_fact 
- inner JOIN edw.test_cal_dt as test_cal_dt 
- ON test_kylin_fact.cal_dt = test_cal_dt.cal_dt 
- where test_kylin_fact.lstg_format_name='FP-GTC' 
- and test_cal_dt.week_beg_dt between DATE '2013-05-01' and DATE '2013-08-01' 
- group by test_cal_dt.week_beg_dt 

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/query/src/test/resources/query/sql/query00.sql
----------------------------------------------------------------------
diff --git a/query/src/test/resources/query/sql/query00.sql 
b/query/src/test/resources/query/sql/query00.sql
deleted file mode 100644
index 6e4d94b..0000000
--- a/query/src/test/resources/query/sql/query00.sql
+++ /dev/null
@@ -1,22 +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.
---
-
-select lstg_format_name, sum(price) as GMV 
- from test_kylin_fact 
- where lstg_format_name='FP-GTC' 
- group by lstg_format_name 

http://git-wip-us.apache.org/repos/asf/kylin/blob/59943fee/query/src/test/resources/query/sql/query01.sql
----------------------------------------------------------------------
diff --git a/query/src/test/resources/query/sql/query01.sql 
b/query/src/test/resources/query/sql/query01.sql
deleted file mode 100644
index 9ed1db3..0000000
--- a/query/src/test/resources/query/sql/query01.sql
+++ /dev/null
@@ -1,20 +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.
---
-
-select LSTG_FORMAT_NAME,slr_segment_cd ,sum(price) as GMV, count(1) as 
TRANS_CNT from test_kylin_fact 
- group by LSTG_FORMAT_NAME ,slr_segment_cd

Reply via email to