blob: 4c949416b18d93c5a56491a8e223f0398bc4ac42 [file] [log] [blame]
// 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.impala.planner;
import java.nio.file.Paths;
import java.util.Set;
import org.junit.BeforeClass;
import org.junit.Test;
import com.google.common.collect.ImmutableSet;
/**
* Plans from the TPC-DS qualification queries at scale factor 1. Single node,
* Distributed and Parallel plans are all included. Cardinality and resource checks are
* also preformed.
*/
public class TpcdsPlannerTest extends PlannerTestBase {
private static Set<PlannerTestOption> testOptions =
ImmutableSet.of(PlannerTestOption.EXTENDED_EXPLAIN,
PlannerTestOption.INCLUDE_RESOURCE_HEADER, PlannerTestOption.VALIDATE_RESOURCES,
PlannerTestOption.VALIDATE_CARDINALITY);
@BeforeClass
public static void setUp() throws Exception {
PlannerTestBase.setUp();
Paths.get(outDir_.toString(), "tpcds").toFile().mkdirs();
}
@Test
public void testQ1() {
runPlannerTestFile("tpcds/tpcds-q01", "tpcds_parquet", testOptions);
}
@Test
public void testQ2() {
runPlannerTestFile("tpcds/tpcds-q02", "tpcds_parquet", testOptions);
}
@Test
public void testQ3() {
runPlannerTestFile("tpcds/tpcds-q03", "tpcds_parquet", testOptions);
}
@Test
public void testQ4() {
runPlannerTestFile("tpcds/tpcds-q04", "tpcds_parquet", testOptions);
}
@Test
public void testQ5() {
runPlannerTestFile("tpcds/tpcds-q05", "tpcds_parquet", testOptions);
}
@Test
public void testQ6() {
runPlannerTestFile("tpcds/tpcds-q06", "tpcds_parquet", testOptions);
}
@Test
public void testQ7() {
runPlannerTestFile("tpcds/tpcds-q07", "tpcds_parquet", testOptions);
}
@Test
public void testQ8() {
runPlannerTestFile("tpcds/tpcds-q08", "tpcds_parquet", testOptions);
}
@Test
public void testQ9() {
runPlannerTestFile("tpcds/tpcds-q09", "tpcds_parquet", testOptions);
}
@Test
public void testQ10() {
// This is an official variant of q10 that uses a rewrite for lack of support for
// multiple subqueries in disjunctive predicates.
runPlannerTestFile("tpcds/tpcds-q10a", "tpcds_parquet", testOptions);
}
@Test
public void testQ11() {
runPlannerTestFile("tpcds/tpcds-q11", "tpcds_parquet", testOptions);
}
@Test
public void testQ12() {
runPlannerTestFile("tpcds/tpcds-q12", "tpcds_parquet", testOptions);
}
@Test
public void testQ13() {
runPlannerTestFile("tpcds/tpcds-q13", "tpcds_parquet", testOptions);
}
@Test
public void testQ14a() {
// First of the two query statements from the official q14.
runPlannerTestFile("tpcds/tpcds-q14a", "tpcds_parquet", testOptions);
}
@Test
public void testQ14b() {
// Second of the two query statements from the official q14.
runPlannerTestFile("tpcds/tpcds-q14b", "tpcds_parquet", testOptions);
}
@Test
public void testQ15() {
runPlannerTestFile("tpcds/tpcds-q15", "tpcds_parquet", testOptions);
}
@Test
public void testQ16() {
runPlannerTestFile("tpcds/tpcds-q16", "tpcds_parquet", testOptions);
}
@Test
public void testQ17() {
runPlannerTestFile("tpcds/tpcds-q17", "tpcds_parquet", testOptions);
}
@Test
public void testQ18() {
runPlannerTestFile("tpcds/tpcds-q18", "tpcds_parquet", testOptions);
}
@Test
public void testQ19() {
runPlannerTestFile("tpcds/tpcds-q19", "tpcds_parquet", testOptions);
}
@Test
public void testQ20() {
runPlannerTestFile("tpcds/tpcds-q20", "tpcds_parquet", testOptions);
}
@Test
public void testQ21() {
runPlannerTestFile("tpcds/tpcds-q21", "tpcds_parquet", testOptions);
}
@Test
public void testQ22() {
runPlannerTestFile("tpcds/tpcds-q22", "tpcds_parquet", testOptions);
}
@Test
public void testQ23a() {
// First of the two query statements from the official q23.
runPlannerTestFile("tpcds/tpcds-q23a", "tpcds_parquet", testOptions);
}
@Test
public void testQ23b() {
// Second of the two query statements from the official q23.
runPlannerTestFile("tpcds/tpcds-q23b", "tpcds_parquet", testOptions);
}
@Test
public void testQ24a() {
// First of the two query statements from the official q24.
runPlannerTestFile("tpcds/tpcds-q24a", "tpcds_parquet", testOptions);
}
@Test
public void testQ24b() {
// Second of the two query statements from the official q24.
runPlannerTestFile("tpcds/tpcds-q24b", "tpcds_parquet", testOptions);
}
@Test
public void testQ25() {
runPlannerTestFile("tpcds/tpcds-q25", "tpcds_parquet", testOptions);
}
@Test
public void testQ26() {
runPlannerTestFile("tpcds/tpcds-q26", "tpcds_parquet", testOptions);
}
@Test
public void testQ27() {
runPlannerTestFile("tpcds/tpcds-q27", "tpcds_parquet", testOptions);
}
@Test
public void testQ28() {
runPlannerTestFile("tpcds/tpcds-q28", "tpcds_parquet", testOptions);
}
@Test
public void testQ29() {
runPlannerTestFile("tpcds/tpcds-q29", "tpcds_parquet", testOptions);
}
@Test
public void testQ30() {
runPlannerTestFile("tpcds/tpcds-q30", "tpcds_parquet", testOptions);
}
@Test
public void testQ31() {
runPlannerTestFile("tpcds/tpcds-q31", "tpcds_parquet", testOptions);
}
@Test
public void testQ32() {
runPlannerTestFile("tpcds/tpcds-q32", "tpcds_parquet", testOptions);
}
@Test
public void testQ33() {
runPlannerTestFile("tpcds/tpcds-q33", "tpcds_parquet", testOptions);
}
@Test
public void testQ34() {
runPlannerTestFile("tpcds/tpcds-q34", "tpcds_parquet", testOptions);
}
@Test
public void testQ35() {
// This is an official variant of q35 that uses a rewrite for lack of support for
// multiple subqueries in disjunctive predicates.
runPlannerTestFile("tpcds/tpcds-q35a", "tpcds_parquet", testOptions);
}
@Test
public void testQ36() {
runPlannerTestFile("tpcds/tpcds-q36", "tpcds_parquet", testOptions);
}
@Test
public void testQ37() {
runPlannerTestFile("tpcds/tpcds-q37", "tpcds_parquet", testOptions);
}
@Test
public void testQ38() {
runPlannerTestFile("tpcds/tpcds-q38", "tpcds_parquet", testOptions);
}
@Test
public void testQ39a() {
// First of the two query statements from the official q39.
runPlannerTestFile("tpcds/tpcds-q39a", "tpcds_parquet", testOptions);
}
@Test
public void testQ39b() {
// Second of the two query statements from the official q39.
runPlannerTestFile("tpcds/tpcds-q39b", "tpcds_parquet", testOptions);
}
@Test
public void testQ40() {
runPlannerTestFile("tpcds/tpcds-q40", "tpcds_parquet", testOptions);
}
@Test
public void testQ41() {
runPlannerTestFile("tpcds/tpcds-q41", "tpcds_parquet", testOptions);
}
@Test
public void testQ42() {
runPlannerTestFile("tpcds/tpcds-q42", "tpcds_parquet", testOptions);
}
@Test
public void testQ43() {
runPlannerTestFile("tpcds/tpcds-q43", "tpcds_parquet", testOptions);
}
@Test
public void testQ44() {
runPlannerTestFile("tpcds/tpcds-q44", "tpcds_parquet", testOptions);
}
@Test
public void testQ45() {
runPlannerTestFile("tpcds/tpcds-q45", "tpcds_parquet", testOptions);
}
@Test
public void testQ46() {
runPlannerTestFile("tpcds/tpcds-q46", "tpcds_parquet", testOptions);
}
@Test
public void testQ47() {
runPlannerTestFile("tpcds/tpcds-q47", "tpcds_parquet", testOptions);
}
@Test
public void testQ48() {
runPlannerTestFile("tpcds/tpcds-q48", "tpcds_parquet", testOptions);
}
@Test
public void testQ49() {
runPlannerTestFile("tpcds/tpcds-q49", "tpcds_parquet", testOptions);
}
@Test
public void testQ50() {
runPlannerTestFile("tpcds/tpcds-q50", "tpcds_parquet", testOptions);
}
@Test
public void testQ51() {
runPlannerTestFile("tpcds/tpcds-q51", "tpcds_parquet", testOptions);
}
@Test
public void testQ52() {
runPlannerTestFile("tpcds/tpcds-q52", "tpcds_parquet", testOptions);
}
@Test
public void testQ53() {
runPlannerTestFile("tpcds/tpcds-q53", "tpcds_parquet", testOptions);
}
@Test
public void testQ54() {
runPlannerTestFile("tpcds/tpcds-q54", "tpcds_parquet", testOptions);
}
@Test
public void testQ55() {
runPlannerTestFile("tpcds/tpcds-q55", "tpcds_parquet", testOptions);
}
@Test
public void testQ56() {
runPlannerTestFile("tpcds/tpcds-q56", "tpcds_parquet", testOptions);
}
@Test
public void testQ57() {
runPlannerTestFile("tpcds/tpcds-q57", "tpcds_parquet", testOptions);
}
@Test
public void testQ58() {
runPlannerTestFile("tpcds/tpcds-q58", "tpcds_parquet", testOptions);
}
@Test
public void testQ59() {
runPlannerTestFile("tpcds/tpcds-q59", "tpcds_parquet", testOptions);
}
@Test
public void testQ60() {
runPlannerTestFile("tpcds/tpcds-q60", "tpcds_parquet", testOptions);
}
@Test
public void testQ61() {
runPlannerTestFile("tpcds/tpcds-q61", "tpcds_parquet", testOptions);
}
@Test
public void testQ62() {
runPlannerTestFile("tpcds/tpcds-q62", "tpcds_parquet", testOptions);
}
@Test
public void testQ63() {
runPlannerTestFile("tpcds/tpcds-q63", "tpcds_parquet", testOptions);
}
@Test
public void testQ64() {
runPlannerTestFile("tpcds/tpcds-q64", "tpcds_parquet", testOptions);
}
@Test
public void testQ65() {
runPlannerTestFile("tpcds/tpcds-q65", "tpcds_parquet", testOptions);
}
@Test
public void testQ66() {
runPlannerTestFile("tpcds/tpcds-q66", "tpcds_parquet", testOptions);
}
@Test
public void testQ67() {
runPlannerTestFile("tpcds/tpcds-q67", "tpcds_parquet", testOptions);
}
@Test
public void testQ68() {
runPlannerTestFile("tpcds/tpcds-q68", "tpcds_parquet", testOptions);
}
@Test
public void testQ69() {
runPlannerTestFile("tpcds/tpcds-q69", "tpcds_parquet", testOptions);
}
@Test
public void testQ70() {
runPlannerTestFile("tpcds/tpcds-q70", "tpcds_parquet", testOptions);
}
@Test
public void testQ71() {
runPlannerTestFile("tpcds/tpcds-q71", "tpcds_parquet", testOptions);
}
@Test
public void testQ72() {
runPlannerTestFile("tpcds/tpcds-q72", "tpcds_parquet", testOptions);
}
@Test
public void testQ73() {
runPlannerTestFile("tpcds/tpcds-q73", "tpcds_parquet", testOptions);
}
@Test
public void testQ74() {
runPlannerTestFile("tpcds/tpcds-q74", "tpcds_parquet", testOptions);
}
@Test
public void testQ75() {
runPlannerTestFile("tpcds/tpcds-q75", "tpcds_parquet", testOptions);
}
@Test
public void testQ76() {
runPlannerTestFile("tpcds/tpcds-q76", "tpcds_parquet", testOptions);
}
@Test
public void testQ77() {
runPlannerTestFile("tpcds/tpcds-q77", "tpcds_parquet", testOptions);
}
@Test
public void testQ78() {
runPlannerTestFile("tpcds/tpcds-q78", "tpcds_parquet", testOptions);
}
@Test
public void testQ79() {
runPlannerTestFile("tpcds/tpcds-q79", "tpcds_parquet", testOptions);
}
@Test
public void testQ80() {
runPlannerTestFile("tpcds/tpcds-q80", "tpcds_parquet", testOptions);
}
@Test
public void testQ81() {
runPlannerTestFile("tpcds/tpcds-q81", "tpcds_parquet", testOptions);
}
@Test
public void testQ82() {
runPlannerTestFile("tpcds/tpcds-q82", "tpcds_parquet", testOptions);
}
@Test
public void testQ83() {
runPlannerTestFile("tpcds/tpcds-q83", "tpcds_parquet", testOptions);
}
@Test
public void testQ84() {
runPlannerTestFile("tpcds/tpcds-q84", "tpcds_parquet", testOptions);
}
@Test
public void testQ85() {
runPlannerTestFile("tpcds/tpcds-q85", "tpcds_parquet", testOptions);
}
@Test
public void testQ86() {
runPlannerTestFile("tpcds/tpcds-q86", "tpcds_parquet", testOptions);
}
@Test
public void testQ87() {
runPlannerTestFile("tpcds/tpcds-q87", "tpcds_parquet", testOptions);
}
@Test
public void testQ88() {
runPlannerTestFile("tpcds/tpcds-q88", "tpcds_parquet", testOptions);
}
@Test
public void testQ89() {
runPlannerTestFile("tpcds/tpcds-q89", "tpcds_parquet", testOptions);
}
@Test
public void testQ90() {
runPlannerTestFile("tpcds/tpcds-q90", "tpcds_parquet", testOptions);
}
@Test
public void testQ91() {
runPlannerTestFile("tpcds/tpcds-q91", "tpcds_parquet", testOptions);
}
@Test
public void testQ92() {
runPlannerTestFile("tpcds/tpcds-q92", "tpcds_parquet", testOptions);
}
@Test
public void testQ93() {
runPlannerTestFile("tpcds/tpcds-q93", "tpcds_parquet", testOptions);
}
@Test
public void testQ94() {
runPlannerTestFile("tpcds/tpcds-q94", "tpcds_parquet", testOptions);
}
@Test
public void testQ95() {
runPlannerTestFile("tpcds/tpcds-q95", "tpcds_parquet", testOptions);
}
@Test
public void testQ96() {
runPlannerTestFile("tpcds/tpcds-q96", "tpcds_parquet", testOptions);
}
@Test
public void testQ97() {
runPlannerTestFile("tpcds/tpcds-q97", "tpcds_parquet", testOptions);
}
@Test
public void testQ98() {
runPlannerTestFile("tpcds/tpcds-q98", "tpcds_parquet", testOptions);
}
@Test
public void testQ99() {
runPlannerTestFile("tpcds/tpcds-q99", "tpcds_parquet", testOptions);
}
}