/** * Use pipelined hash join for inlined VALUES node. */ public void testPipelinedHashJoinUsedForValues() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-used-values",// testURI "pipelined-hashjoin-used-values.rq", // queryURI "pipelined-hashjoin.trig", // dataURI "pipelined-hashjoin-values.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, true, false); }
/** * Do use pipelined hash join for NOT EXISTS clause if LIMIT in query. */ public void testPipelinedHashJoinUsedForNotExists() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-used-notexists",// testURI "pipelined-hashjoin-used-notexists.rq", // queryURI "pipelined-hashjoin.trig", // dataURI "pipelined-hashjoin-notexists.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, true, false); }
/** * Check correct multiplicity for EXISTS. */ public void testPipelinedHashJoinExistsMultiplicity() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-exists-multiplicity",// testURI "pipelined-hashjoin-exists-multiplicity.rq", // queryURI "pipelined-hashjoin-multiplicity.trig", // dataURI "pipelined-hashjoin-exists-multiplicity.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, true, false); }
/** * Check correct multiplicity for EXISTS in analytic mode. */ public void testPipelinedHashJoinExistsMultiplicityAnalyticMode() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-exists-multiplicity-analytic",// testURI "pipelined-hashjoin-exists-multiplicity-analytic.rq", // queryURI "pipelined-hashjoin-multiplicity.trig", // dataURI "pipelined-hashjoin-exists-multiplicity.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, true, true); }
/** * Combination of NOT EXISTS and enablement by query hint. */ public void testPipelinedHashEnabledByQueryHintNotExists() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-used-notexists-hint",// testURI "pipelined-hashjoin-used-notexists-hint.rq", // queryURI "pipelined-hashjoin.trig", // dataURI "pipelined-hashjoin-notexists.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, true, false); }
/** * Use pipelined hash join for inlined VALUES node and analytic mode. */ public void testPipelinedHashJoinUsedForValuesAnalyticMode() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-used-values-analytic",// testURI "pipelined-hashjoin-used-values-analytic.rq", // queryURI "pipelined-hashjoin.trig", // dataURI "pipelined-hashjoin-values.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, true, true); }
/** * Combination of subquery and enablement by query hint. */ public void testPipelinedHashEnabledByQueryHintSubquery() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-used-subquery-hint",// testURI "pipelined-hashjoin-used-subquery-hint.rq", // queryURI "pipelined-hashjoin.trig", // dataURI "pipelined-hashjoin-subquery.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, true, false); }
/** * Combination of EXISTS and enablement by query hint. */ public void testPipelinedHashEnabledByQueryHintExists() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-used-exists-hint",// testURI "pipelined-hashjoin-used-exists-hint.rq", // queryURI "pipelined-hashjoin.trig", // dataURI "pipelined-hashjoin-exists.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, true, false); }
/** * Variant on {@link #test_hash_join_1()} where we force the use of the * {@link HTree}. */ public void test_hash_join_1b() throws Exception { final ASTContainer astContainer = new TestHelper("hash-join-1b") .runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); if (!BOpUtility.visitAll(queryPlan, HTreeHashJoinOp.class).hasNext()) { fail("Expecting an HTree-based hash join in the query plan: " + astContainer.toString()); } }
/** * Do use pipelined hash join for EXISTS clause if LIMIT in query. */ public void testPipelinedHashJoinUsedForExists() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-used-exists",// testURI "pipelined-hashjoin-used-exists.rq", // queryURI "pipelined-hashjoin.trig", // dataURI "pipelined-hashjoin-exists.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, true, false); }
/** * Combination of EXISTS and enablement by query hint. */ public void testPipelinedHashEnabledByQueryHintExists() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-used-exists-hint",// testURI "pipelined-hashjoin-used-exists-hint.rq", // queryURI "pipelined-hashjoin.trig", // dataURI "pipelined-hashjoin-exists.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, true, false); }
/** * Combination of NOT EXISTS and enablement by query hint. */ public void testPipelinedHashDisabledByQueryHintNotExists() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-used-notexists-hintneg",// testURI "pipelined-hashjoin-used-notexists-hintneg.rq", // queryURI "pipelined-hashjoin.trig", // dataURI "pipelined-hashjoin-notexists.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, false, false); }
/** * Combination of VALUES and enablement by query hint. */ public void testPipelinedHashEnabledByQueryHintValues() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-used-values-hint",// testURI "pipelined-hashjoin-used-values-hint.rq", // queryURI "pipelined-hashjoin.trig", // dataURI "pipelined-hashjoin-values.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, true, false); }
/** * Check correct multiplicity for NOT EXISTS. */ public void testPipelinedHashJoinNotExistsMultiplicity() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-notexists-multiplicity",// testURI "pipelined-hashjoin-notexists-multiplicity.rq", // queryURI "pipelined-hashjoin-multiplicity.trig", // dataURI "pipelined-hashjoin-notexists-multiplicity.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, true, false); }
/** * Check correct multiplicity for NOT EXISTS in analytic mode. */ public void testPipelinedHashJoinNotExistsMultiplicityAnalyticMode() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-notexists-multiplicity-analytic",// testURI "pipelined-hashjoin-notexists-multiplicity-analytic.rq", // queryURI "pipelined-hashjoin-multiplicity.trig", // dataURI "pipelined-hashjoin-notexists-multiplicity.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, true, true); }
/** * Use pipelined hash join for SPARQL 1.1 subquery and analytic mode. */ public void testPipelinedHashJoinUsedForSubqueryAnalyticMode() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-used-subquery-analytic",// testURI "pipelined-hashjoin-used-subquery-analytic.rq", // queryURI "pipelined-hashjoin.trig", // dataURI "pipelined-hashjoin-subquery.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, true, true); }
/** * Use pipelined hash join for inlined VALUES node and analytic mode. */ public void testPipelinedHashJoinUsedForValuesAnalyticMode() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-used-values-analytic",// testURI "pipelined-hashjoin-used-values-analytic.rq", // queryURI "pipelined-hashjoin.trig", // dataURI "pipelined-hashjoin-values.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, true, true); }
/** * Combination of NOT EXISTS and enablement by query hint. */ public void testPipelinedHashEnabledByQueryHintNotExists() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-used-notexists-hint",// testURI "pipelined-hashjoin-used-notexists-hint.rq", // queryURI "pipelined-hashjoin.trig", // dataURI "pipelined-hashjoin-notexists.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, true, false); }
/** * Combination of VALUES and enablement by query hint. */ public void testPipelinedHashDisabledByQueryHintValues() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-used-values-hintneg",// testURI "pipelined-hashjoin-used-values-hintneg.rq", // queryURI "pipelined-hashjoin.trig", // dataURI "pipelined-hashjoin-values.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, false, false); }
/** * Check correct multiplicity for EXISTS in analytic mode. */ public void testPipelinedHashJoinExistsMultiplicityAnalyticMode() throws Exception { final ASTContainer astContainer = new TestHelper( "pipelined-hashjoin-exists-multiplicity-analytic",// testURI "pipelined-hashjoin-exists-multiplicity-analytic.rq", // queryURI "pipelined-hashjoin-multiplicity.trig", // dataURI "pipelined-hashjoin-exists-multiplicity.srx" // resultURI ).runTest(); final PipelineOp queryPlan = astContainer.getQueryPlan(); assertPipelinedPlanOrNot(queryPlan, astContainer, true, true); }