[1/9] phoenix git commit: PHOENIX-4288 Indexes not used when ordering by primary key
Repository: phoenix Updated Branches: refs/heads/4.x-HBase-0.98 1e83415f1 -> 9bb7811f0 PHOENIX-4288 Indexes not used when ordering by primary key Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/541d6ac2 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/541d6ac2 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/541d6ac2 Branch: refs/heads/4.x-HBase-0.98 Commit: 541d6ac22866fe7571365e063a23108c6ca1ea63 Parents: 1e83415 Author: maryannxueAuthored: Tue Dec 5 10:52:46 2017 -0800 Committer: maryannxue Committed: Tue Mar 13 17:16:04 2018 -0700 -- .../phoenix/end2end/CostBasedDecisionIT.java| 466 +++ .../phoenix/compile/ListJarsQueryPlan.java | 6 + .../org/apache/phoenix/compile/QueryPlan.java | 5 +- .../apache/phoenix/compile/TraceQueryPlan.java | 6 + .../apache/phoenix/execute/AggregatePlan.java | 30 +- .../apache/phoenix/execute/BaseQueryPlan.java | 19 +- .../phoenix/execute/ClientAggregatePlan.java| 28 ++ .../apache/phoenix/execute/ClientScanPlan.java | 25 + .../apache/phoenix/execute/CorrelatePlan.java | 25 + .../phoenix/execute/DelegateQueryPlan.java | 6 + .../apache/phoenix/execute/HashJoinPlan.java| 29 ++ .../execute/LiteralResultIterationPlan.java | 6 + .../org/apache/phoenix/execute/ScanPlan.java| 25 + .../phoenix/execute/SortMergeJoinPlan.java | 18 + .../org/apache/phoenix/execute/UnionPlan.java | 10 + .../apache/phoenix/jdbc/PhoenixStatement.java | 6 + .../java/org/apache/phoenix/optimize/Cost.java | 123 + .../apache/phoenix/optimize/QueryOptimizer.java | 28 +- .../org/apache/phoenix/query/QueryServices.java | 2 + .../phoenix/query/QueryServicesOptions.java | 6 +- .../java/org/apache/phoenix/util/CostUtil.java | 90 .../query/ParallelIteratorsSplitTest.java | 6 + 22 files changed, 951 insertions(+), 14 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/541d6ac2/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java new file mode 100644 index 000..a3584ce --- /dev/null +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java @@ -0,0 +1,466 @@ +/* + * 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.phoenix.end2end; + +import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES; +import static org.junit.Assert.assertTrue; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.Map; +import java.util.Properties; + +import org.apache.phoenix.query.BaseTest; +import org.apache.phoenix.query.QueryServices; +import org.apache.phoenix.util.PropertiesUtil; +import org.apache.phoenix.util.QueryUtil; +import org.apache.phoenix.util.ReadOnlyProps; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.google.common.collect.Maps; + +public class CostBasedDecisionIT extends BaseUniqueNamesOwnClusterIT { + +@BeforeClass +public static void doSetup() throws Exception { +Map props = Maps.newHashMapWithExpectedSize(1); +props.put(QueryServices.STATS_GUIDEPOST_WIDTH_BYTES_ATTRIB, Long.toString(20)); +props.put(QueryServices.STATS_UPDATE_FREQ_MS_ATTRIB, Long.toString(5)); +props.put(QueryServices.USE_STATS_FOR_PARALLELIZATION, Boolean.toString(true)); +props.put(QueryServices.COST_BASED_OPTIMIZER_ENABLED, Boolean.toString(true)); +setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator())); +} + +@Test +public void testCostOverridesStaticPlanOrdering1() throws Exception { +Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES);
phoenix git commit: PHOENIX-4288 Indexes not used when ordering by primary key
Repository: phoenix Updated Branches: refs/heads/4.x-HBase-1.1 20f4cf99f -> 49f19ba68 PHOENIX-4288 Indexes not used when ordering by primary key Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/49f19ba6 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/49f19ba6 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/49f19ba6 Branch: refs/heads/4.x-HBase-1.1 Commit: 49f19ba684457a6208985d52900da9081fdce7d6 Parents: 20f4cf9 Author: maryannxueAuthored: Tue Dec 5 10:52:46 2017 -0800 Committer: maryannxue Committed: Tue Mar 13 16:43:01 2018 -0700 -- .../phoenix/end2end/CostBasedDecisionIT.java| 466 +++ .../phoenix/compile/ListJarsQueryPlan.java | 6 + .../org/apache/phoenix/compile/QueryPlan.java | 5 +- .../apache/phoenix/compile/TraceQueryPlan.java | 6 + .../apache/phoenix/execute/AggregatePlan.java | 30 +- .../apache/phoenix/execute/BaseQueryPlan.java | 19 +- .../phoenix/execute/ClientAggregatePlan.java| 28 ++ .../apache/phoenix/execute/ClientScanPlan.java | 25 + .../apache/phoenix/execute/CorrelatePlan.java | 25 + .../phoenix/execute/DelegateQueryPlan.java | 6 + .../apache/phoenix/execute/HashJoinPlan.java| 29 ++ .../execute/LiteralResultIterationPlan.java | 6 + .../org/apache/phoenix/execute/ScanPlan.java| 25 + .../phoenix/execute/SortMergeJoinPlan.java | 18 + .../org/apache/phoenix/execute/UnionPlan.java | 10 + .../apache/phoenix/jdbc/PhoenixStatement.java | 6 + .../java/org/apache/phoenix/optimize/Cost.java | 123 + .../apache/phoenix/optimize/QueryOptimizer.java | 28 +- .../org/apache/phoenix/query/QueryServices.java | 2 + .../phoenix/query/QueryServicesOptions.java | 6 +- .../java/org/apache/phoenix/util/CostUtil.java | 90 .../query/ParallelIteratorsSplitTest.java | 6 + 22 files changed, 951 insertions(+), 14 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/49f19ba6/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java new file mode 100644 index 000..a3584ce --- /dev/null +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java @@ -0,0 +1,466 @@ +/* + * 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.phoenix.end2end; + +import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES; +import static org.junit.Assert.assertTrue; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.Map; +import java.util.Properties; + +import org.apache.phoenix.query.BaseTest; +import org.apache.phoenix.query.QueryServices; +import org.apache.phoenix.util.PropertiesUtil; +import org.apache.phoenix.util.QueryUtil; +import org.apache.phoenix.util.ReadOnlyProps; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.google.common.collect.Maps; + +public class CostBasedDecisionIT extends BaseUniqueNamesOwnClusterIT { + +@BeforeClass +public static void doSetup() throws Exception { +Map props = Maps.newHashMapWithExpectedSize(1); +props.put(QueryServices.STATS_GUIDEPOST_WIDTH_BYTES_ATTRIB, Long.toString(20)); +props.put(QueryServices.STATS_UPDATE_FREQ_MS_ATTRIB, Long.toString(5)); +props.put(QueryServices.USE_STATS_FOR_PARALLELIZATION, Boolean.toString(true)); +props.put(QueryServices.COST_BASED_OPTIMIZER_ENABLED, Boolean.toString(true)); +setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator())); +} + +@Test +public void testCostOverridesStaticPlanOrdering1() throws Exception { +Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES); +
phoenix git commit: PHOENIX-4288 Indexes not used when ordering by primary key
Repository: phoenix Updated Branches: refs/heads/5.x-HBase-2.0 0d80b3131 -> a61818e88 PHOENIX-4288 Indexes not used when ordering by primary key Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/a61818e8 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/a61818e8 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/a61818e8 Branch: refs/heads/5.x-HBase-2.0 Commit: a61818e88f5cef93c81b87ff5b47b2230e61bfb5 Parents: 0d80b31 Author: maryannxueAuthored: Tue Dec 5 10:52:46 2017 -0800 Committer: maryannxue Committed: Mon Feb 19 22:15:30 2018 -0800 -- .../phoenix/end2end/CostBasedDecisionIT.java| 466 +++ .../phoenix/compile/ListJarsQueryPlan.java | 6 + .../org/apache/phoenix/compile/QueryPlan.java | 5 +- .../apache/phoenix/compile/TraceQueryPlan.java | 6 + .../apache/phoenix/execute/AggregatePlan.java | 30 +- .../apache/phoenix/execute/BaseQueryPlan.java | 21 +- .../phoenix/execute/ClientAggregatePlan.java| 28 ++ .../apache/phoenix/execute/ClientScanPlan.java | 25 + .../apache/phoenix/execute/CorrelatePlan.java | 25 + .../phoenix/execute/DelegateQueryPlan.java | 6 + .../apache/phoenix/execute/HashJoinPlan.java| 29 ++ .../execute/LiteralResultIterationPlan.java | 6 + .../org/apache/phoenix/execute/ScanPlan.java| 25 + .../phoenix/execute/SortMergeJoinPlan.java | 18 + .../org/apache/phoenix/execute/UnionPlan.java | 10 + .../apache/phoenix/jdbc/PhoenixStatement.java | 6 + .../java/org/apache/phoenix/optimize/Cost.java | 123 + .../apache/phoenix/optimize/QueryOptimizer.java | 30 +- .../org/apache/phoenix/query/QueryServices.java | 3 + .../phoenix/query/QueryServicesOptions.java | 6 +- .../java/org/apache/phoenix/util/CostUtil.java | 90 .../query/ParallelIteratorsSplitTest.java | 6 + 22 files changed, 955 insertions(+), 15 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/a61818e8/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java new file mode 100644 index 000..a3584ce --- /dev/null +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java @@ -0,0 +1,466 @@ +/* + * 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.phoenix.end2end; + +import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES; +import static org.junit.Assert.assertTrue; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.Map; +import java.util.Properties; + +import org.apache.phoenix.query.BaseTest; +import org.apache.phoenix.query.QueryServices; +import org.apache.phoenix.util.PropertiesUtil; +import org.apache.phoenix.util.QueryUtil; +import org.apache.phoenix.util.ReadOnlyProps; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.google.common.collect.Maps; + +public class CostBasedDecisionIT extends BaseUniqueNamesOwnClusterIT { + +@BeforeClass +public static void doSetup() throws Exception { +Map props = Maps.newHashMapWithExpectedSize(1); +props.put(QueryServices.STATS_GUIDEPOST_WIDTH_BYTES_ATTRIB, Long.toString(20)); +props.put(QueryServices.STATS_UPDATE_FREQ_MS_ATTRIB, Long.toString(5)); +props.put(QueryServices.USE_STATS_FOR_PARALLELIZATION, Boolean.toString(true)); +props.put(QueryServices.COST_BASED_OPTIMIZER_ENABLED, Boolean.toString(true)); +setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator())); +} + +@Test +public void testCostOverridesStaticPlanOrdering1() throws Exception { +Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES); +
[17/35] phoenix git commit: PHOENIX-4288 Indexes not used when ordering by primary key
PHOENIX-4288 Indexes not used when ordering by primary key Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/d790c707 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/d790c707 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/d790c707 Branch: refs/heads/4.x-cdh5.11.2 Commit: d790c707550647728afd574e11787503fd0c231a Parents: f94f4eb Author: maryannxueAuthored: Sun Nov 5 02:37:55 2017 + Committer: Pedro Boado Committed: Wed Jan 31 22:24:48 2018 + -- .../phoenix/end2end/CostBasedDecisionIT.java| 466 +++ .../apache/phoenix/end2end/MutationStateIT.java | 17 + .../phoenix/compile/ListJarsQueryPlan.java | 6 + .../org/apache/phoenix/compile/QueryPlan.java | 5 +- .../apache/phoenix/compile/TraceQueryPlan.java | 6 + .../apache/phoenix/execute/AggregatePlan.java | 30 +- .../apache/phoenix/execute/BaseQueryPlan.java | 21 +- .../phoenix/execute/ClientAggregatePlan.java| 28 ++ .../apache/phoenix/execute/ClientScanPlan.java | 25 + .../apache/phoenix/execute/CorrelatePlan.java | 25 + .../phoenix/execute/DelegateQueryPlan.java | 6 + .../apache/phoenix/execute/HashJoinPlan.java| 29 ++ .../execute/LiteralResultIterationPlan.java | 6 + .../org/apache/phoenix/execute/ScanPlan.java| 25 + .../phoenix/execute/SortMergeJoinPlan.java | 18 + .../org/apache/phoenix/execute/UnionPlan.java | 10 + .../apache/phoenix/jdbc/PhoenixStatement.java | 6 + .../java/org/apache/phoenix/optimize/Cost.java | 123 + .../apache/phoenix/optimize/QueryOptimizer.java | 30 +- .../org/apache/phoenix/query/QueryServices.java | 3 + .../phoenix/query/QueryServicesOptions.java | 4 + .../java/org/apache/phoenix/util/CostUtil.java | 90 .../query/ParallelIteratorsSplitTest.java | 6 + 23 files changed, 971 insertions(+), 14 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/d790c707/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java new file mode 100644 index 000..a3584ce --- /dev/null +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java @@ -0,0 +1,466 @@ +/* + * 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.phoenix.end2end; + +import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES; +import static org.junit.Assert.assertTrue; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.Map; +import java.util.Properties; + +import org.apache.phoenix.query.BaseTest; +import org.apache.phoenix.query.QueryServices; +import org.apache.phoenix.util.PropertiesUtil; +import org.apache.phoenix.util.QueryUtil; +import org.apache.phoenix.util.ReadOnlyProps; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.google.common.collect.Maps; + +public class CostBasedDecisionIT extends BaseUniqueNamesOwnClusterIT { + +@BeforeClass +public static void doSetup() throws Exception { +Map props = Maps.newHashMapWithExpectedSize(1); +props.put(QueryServices.STATS_GUIDEPOST_WIDTH_BYTES_ATTRIB, Long.toString(20)); +props.put(QueryServices.STATS_UPDATE_FREQ_MS_ATTRIB, Long.toString(5)); +props.put(QueryServices.USE_STATS_FOR_PARALLELIZATION, Boolean.toString(true)); +props.put(QueryServices.COST_BASED_OPTIMIZER_ENABLED, Boolean.toString(true)); +setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator())); +} + +@Test +public void testCostOverridesStaticPlanOrdering1() throws Exception { +Properties props = PropertiesUtil.deepCopy(TEST_PROPERTIES); +Connection conn =
[21/50] [abbrv] phoenix git commit: PHOENIX-4288 Indexes not used when ordering by primary key
PHOENIX-4288 Indexes not used when ordering by primary key Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/6807dacc Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/6807dacc Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/6807dacc Branch: refs/heads/system-catalog Commit: 6807dacce7d063e14f06bc57888e7d2a5f78863a Parents: 88038a2 Author: maryannxueAuthored: Tue Dec 5 10:52:46 2017 -0800 Committer: maryannxue Committed: Tue Dec 5 10:52:46 2017 -0800 -- .../phoenix/end2end/CostBasedDecisionIT.java| 466 +++ .../apache/phoenix/end2end/MutationStateIT.java | 17 + .../apache/phoenix/end2end/SystemCatalogIT.java | 17 + .../phoenix/compile/ListJarsQueryPlan.java | 6 + .../org/apache/phoenix/compile/QueryPlan.java | 5 +- .../apache/phoenix/compile/TraceQueryPlan.java | 6 + .../apache/phoenix/execute/AggregatePlan.java | 30 +- .../apache/phoenix/execute/BaseQueryPlan.java | 21 +- .../phoenix/execute/ClientAggregatePlan.java| 28 ++ .../apache/phoenix/execute/ClientScanPlan.java | 25 + .../apache/phoenix/execute/CorrelatePlan.java | 25 + .../phoenix/execute/DelegateQueryPlan.java | 6 + .../apache/phoenix/execute/HashJoinPlan.java| 29 ++ .../execute/LiteralResultIterationPlan.java | 6 + .../org/apache/phoenix/execute/ScanPlan.java| 25 + .../phoenix/execute/SortMergeJoinPlan.java | 18 + .../org/apache/phoenix/execute/UnionPlan.java | 10 + .../apache/phoenix/jdbc/PhoenixStatement.java | 6 + .../java/org/apache/phoenix/optimize/Cost.java | 123 + .../apache/phoenix/optimize/QueryOptimizer.java | 30 +- .../org/apache/phoenix/query/QueryServices.java | 3 + .../phoenix/query/QueryServicesOptions.java | 4 + .../java/org/apache/phoenix/util/CostUtil.java | 90 .../query/ParallelIteratorsSplitTest.java | 6 + 24 files changed, 988 insertions(+), 14 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/6807dacc/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java new file mode 100644 index 000..a3584ce --- /dev/null +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java @@ -0,0 +1,466 @@ +/* + * 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.phoenix.end2end; + +import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES; +import static org.junit.Assert.assertTrue; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.Map; +import java.util.Properties; + +import org.apache.phoenix.query.BaseTest; +import org.apache.phoenix.query.QueryServices; +import org.apache.phoenix.util.PropertiesUtil; +import org.apache.phoenix.util.QueryUtil; +import org.apache.phoenix.util.ReadOnlyProps; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.google.common.collect.Maps; + +public class CostBasedDecisionIT extends BaseUniqueNamesOwnClusterIT { + +@BeforeClass +public static void doSetup() throws Exception { +Map props = Maps.newHashMapWithExpectedSize(1); +props.put(QueryServices.STATS_GUIDEPOST_WIDTH_BYTES_ATTRIB, Long.toString(20)); +props.put(QueryServices.STATS_UPDATE_FREQ_MS_ATTRIB, Long.toString(5)); +props.put(QueryServices.USE_STATS_FOR_PARALLELIZATION, Boolean.toString(true)); +props.put(QueryServices.COST_BASED_OPTIMIZER_ENABLED, Boolean.toString(true)); +setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator())); +} + +@Test +public void testCostOverridesStaticPlanOrdering1() throws Exception { +Properties props =
[03/16] phoenix git commit: PHOENIX-4288 Indexes not used when ordering by primary key
PHOENIX-4288 Indexes not used when ordering by primary key Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/597764c0 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/597764c0 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/597764c0 Branch: refs/heads/4.x-HBase-1.2 Commit: 597764c06e2ee5254856a9be58021f0363a9f765 Parents: bd72ce3 Author: maryannxueAuthored: Sun Nov 5 02:37:55 2017 + Committer: James Taylor Committed: Sat Dec 16 16:42:54 2017 -0800 -- .../phoenix/end2end/CostBasedDecisionIT.java| 466 +++ .../apache/phoenix/end2end/MutationStateIT.java | 17 + .../apache/phoenix/end2end/SystemCatalogIT.java | 1 - .../phoenix/compile/ListJarsQueryPlan.java | 6 + .../org/apache/phoenix/compile/QueryPlan.java | 5 +- .../apache/phoenix/compile/TraceQueryPlan.java | 6 + .../apache/phoenix/execute/AggregatePlan.java | 30 +- .../apache/phoenix/execute/BaseQueryPlan.java | 21 +- .../phoenix/execute/ClientAggregatePlan.java| 28 ++ .../apache/phoenix/execute/ClientScanPlan.java | 25 + .../apache/phoenix/execute/CorrelatePlan.java | 25 + .../phoenix/execute/DelegateQueryPlan.java | 6 + .../apache/phoenix/execute/HashJoinPlan.java| 29 ++ .../execute/LiteralResultIterationPlan.java | 6 + .../org/apache/phoenix/execute/ScanPlan.java| 25 + .../phoenix/execute/SortMergeJoinPlan.java | 18 + .../org/apache/phoenix/execute/UnionPlan.java | 10 + .../apache/phoenix/jdbc/PhoenixStatement.java | 6 + .../java/org/apache/phoenix/optimize/Cost.java | 123 + .../apache/phoenix/optimize/QueryOptimizer.java | 30 +- .../org/apache/phoenix/query/QueryServices.java | 3 + .../phoenix/query/QueryServicesOptions.java | 4 + .../java/org/apache/phoenix/util/CostUtil.java | 90 .../query/ParallelIteratorsSplitTest.java | 6 + 24 files changed, 971 insertions(+), 15 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/597764c0/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java new file mode 100644 index 000..a3584ce --- /dev/null +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java @@ -0,0 +1,466 @@ +/* + * 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.phoenix.end2end; + +import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES; +import static org.junit.Assert.assertTrue; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.Map; +import java.util.Properties; + +import org.apache.phoenix.query.BaseTest; +import org.apache.phoenix.query.QueryServices; +import org.apache.phoenix.util.PropertiesUtil; +import org.apache.phoenix.util.QueryUtil; +import org.apache.phoenix.util.ReadOnlyProps; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.google.common.collect.Maps; + +public class CostBasedDecisionIT extends BaseUniqueNamesOwnClusterIT { + +@BeforeClass +public static void doSetup() throws Exception { +Map props = Maps.newHashMapWithExpectedSize(1); +props.put(QueryServices.STATS_GUIDEPOST_WIDTH_BYTES_ATTRIB, Long.toString(20)); +props.put(QueryServices.STATS_UPDATE_FREQ_MS_ATTRIB, Long.toString(5)); +props.put(QueryServices.USE_STATS_FOR_PARALLELIZATION, Boolean.toString(true)); +props.put(QueryServices.COST_BASED_OPTIMIZER_ENABLED, Boolean.toString(true)); +setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator())); +} + +@Test +public void testCostOverridesStaticPlanOrdering1() throws Exception { +Properties props =
phoenix git commit: PHOENIX-4288 Indexes not used when ordering by primary key
Repository: phoenix Updated Branches: refs/heads/master 88038a2da -> 6807dacce PHOENIX-4288 Indexes not used when ordering by primary key Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/6807dacc Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/6807dacc Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/6807dacc Branch: refs/heads/master Commit: 6807dacce7d063e14f06bc57888e7d2a5f78863a Parents: 88038a2 Author: maryannxueAuthored: Tue Dec 5 10:52:46 2017 -0800 Committer: maryannxue Committed: Tue Dec 5 10:52:46 2017 -0800 -- .../phoenix/end2end/CostBasedDecisionIT.java| 466 +++ .../apache/phoenix/end2end/MutationStateIT.java | 17 + .../apache/phoenix/end2end/SystemCatalogIT.java | 17 + .../phoenix/compile/ListJarsQueryPlan.java | 6 + .../org/apache/phoenix/compile/QueryPlan.java | 5 +- .../apache/phoenix/compile/TraceQueryPlan.java | 6 + .../apache/phoenix/execute/AggregatePlan.java | 30 +- .../apache/phoenix/execute/BaseQueryPlan.java | 21 +- .../phoenix/execute/ClientAggregatePlan.java| 28 ++ .../apache/phoenix/execute/ClientScanPlan.java | 25 + .../apache/phoenix/execute/CorrelatePlan.java | 25 + .../phoenix/execute/DelegateQueryPlan.java | 6 + .../apache/phoenix/execute/HashJoinPlan.java| 29 ++ .../execute/LiteralResultIterationPlan.java | 6 + .../org/apache/phoenix/execute/ScanPlan.java| 25 + .../phoenix/execute/SortMergeJoinPlan.java | 18 + .../org/apache/phoenix/execute/UnionPlan.java | 10 + .../apache/phoenix/jdbc/PhoenixStatement.java | 6 + .../java/org/apache/phoenix/optimize/Cost.java | 123 + .../apache/phoenix/optimize/QueryOptimizer.java | 30 +- .../org/apache/phoenix/query/QueryServices.java | 3 + .../phoenix/query/QueryServicesOptions.java | 4 + .../java/org/apache/phoenix/util/CostUtil.java | 90 .../query/ParallelIteratorsSplitTest.java | 6 + 24 files changed, 988 insertions(+), 14 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/6807dacc/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java new file mode 100644 index 000..a3584ce --- /dev/null +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/CostBasedDecisionIT.java @@ -0,0 +1,466 @@ +/* + * 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.phoenix.end2end; + +import static org.apache.phoenix.util.TestUtil.TEST_PROPERTIES; +import static org.junit.Assert.assertTrue; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.Map; +import java.util.Properties; + +import org.apache.phoenix.query.BaseTest; +import org.apache.phoenix.query.QueryServices; +import org.apache.phoenix.util.PropertiesUtil; +import org.apache.phoenix.util.QueryUtil; +import org.apache.phoenix.util.ReadOnlyProps; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.google.common.collect.Maps; + +public class CostBasedDecisionIT extends BaseUniqueNamesOwnClusterIT { + +@BeforeClass +public static void doSetup() throws Exception { +Map props = Maps.newHashMapWithExpectedSize(1); +props.put(QueryServices.STATS_GUIDEPOST_WIDTH_BYTES_ATTRIB, Long.toString(20)); +props.put(QueryServices.STATS_UPDATE_FREQ_MS_ATTRIB, Long.toString(5)); +props.put(QueryServices.USE_STATS_FOR_PARALLELIZATION, Boolean.toString(true)); +props.put(QueryServices.COST_BASED_OPTIMIZER_ENABLED, Boolean.toString(true)); +setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator())); +} + +@Test +public void