phoenix git commit: PHOENIX-1581 Client cache not updated after issuing ALTER TABLE statements for setting phoenix table properties
Repository: phoenix Updated Branches: refs/heads/master 3868997f6 - 3e8b685db PHOENIX-1581 Client cache not updated after issuing ALTER TABLE statements for setting phoenix table properties Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/3e8b685d Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/3e8b685d Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/3e8b685d Branch: refs/heads/master Commit: 3e8b685db0b88430cfa0566302e243c96402e3bf Parents: 3868997 Author: Samarth samarth.j...@salesforce.com Authored: Fri Jan 16 07:14:01 2015 -0800 Committer: Samarth samarth.j...@salesforce.com Committed: Fri Jan 16 07:14:01 2015 -0800 -- .../apache/phoenix/end2end/AlterTableIT.java| 71 .../apache/phoenix/jdbc/PhoenixConnection.java | 14 ++-- .../query/ConnectionQueryServicesImpl.java | 4 +- .../query/ConnectionlessQueryServicesImpl.java | 4 +- .../query/DelegateConnectionQueryServices.java | 4 +- .../apache/phoenix/query/MetaDataMutated.java | 2 +- .../apache/phoenix/schema/MetaDataClient.java | 2 +- .../apache/phoenix/schema/PMetaDataImpl.java| 4 +- .../org/apache/phoenix/schema/PTableImpl.java | 10 ++- 9 files changed, 69 insertions(+), 46 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/3e8b685d/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableIT.java index ac578c9..7f5649b 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableIT.java @@ -48,6 +48,7 @@ import org.apache.phoenix.exception.SQLExceptionCode; import org.apache.phoenix.jdbc.PhoenixConnection; import org.apache.phoenix.jdbc.PhoenixDatabaseMetaData; import org.apache.phoenix.query.QueryConstants; +import org.apache.phoenix.schema.PTable; import org.apache.phoenix.schema.PTableKey; import org.apache.phoenix.schema.TableNotFoundException; import org.apache.phoenix.util.IndexUtil; @@ -56,7 +57,6 @@ import org.apache.phoenix.util.PropertiesUtil; import org.apache.phoenix.util.ReadOnlyProps; import org.apache.phoenix.util.SchemaUtil; import org.junit.BeforeClass; -import org.junit.Ignore; import org.junit.Test; /** @@ -1845,33 +1845,6 @@ public class AlterTableIT extends BaseOwnClusterHBaseManagedTimeIT { } @Test -@Ignore //FIXME: https://issues.apache.org/jira/browse/PHOENIX-1581 -public void testTogglingDisableWal() throws Exception { -Connection conn = DriverManager.getConnection(getUrl()); -try { -String ddl = create table IF NOT EXISTS testReenablingWal ( -+ id char(1) NOT NULL, -+ col1 integer NOT NULL, -+ col2 bigint NOT NULL, -+ CONSTRAINT NAME_PK PRIMARY KEY (id, col1, col2) -+ ); -conn.createStatement().execute(ddl); -asssertIsWALDisabled(conn, testReenablingWal.toUpperCase(), false); - -ddl = ALTER TABLE testReenablingWal SET DISABLE_WAL = true; -conn.createStatement().execute(ddl); -asssertIsWALDisabled(conn, testReenablingWal.toUpperCase(), true); - -ddl = ALTER TABLE testReenablingWal SET DISABLE_WAL = false; -conn.createStatement().execute(ddl); -asssertIsWALDisabled(conn, testReenablingWal.toUpperCase(), false); - -} finally { -conn.close(); -} -} - -@Test public void testAddingPkColAndSettingProperties() throws Exception { Connection conn = DriverManager.getConnection(getUrl()); try { @@ -1943,4 +1916,46 @@ public class AlterTableIT extends BaseOwnClusterHBaseManagedTimeIT { conn.close(); } } + +@Test +public void testClientCacheUpdatedOnChangingPhoenixTableProperties() throws Exception { +Connection conn = DriverManager.getConnection(getUrl()); +try { +String ddl = create table IF NOT EXISTS TESTCHANGEPHOENIXPROPS ( ++ id char(1) NOT NULL, ++ col1 integer NOT NULL, ++ col2 bigint NOT NULL, ++ CONSTRAINT NAME_PK PRIMARY KEY (id, col1, col2) ++ ); +conn.createStatement().execute(ddl); +asssertIsWALDisabled(conn, TESTCHANGEPHOENIXPROPS, false); + +ddl = ALTER TABLE TESTCHANGEPHOENIXPROPS SET DISABLE_WAL
phoenix git commit: PHOENIX-1581 Client cache not updated after issuing ALTER TABLE statements for setting phoenix table properties
Repository: phoenix Updated Branches: refs/heads/4.0 c3d31cdc2 - b1ef44d32 PHOENIX-1581 Client cache not updated after issuing ALTER TABLE statements for setting phoenix table properties Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/b1ef44d3 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/b1ef44d3 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/b1ef44d3 Branch: refs/heads/4.0 Commit: b1ef44d32724ec6be2c63b9cce31f97d745b1364 Parents: c3d31cd Author: Samarth samarth.j...@salesforce.com Authored: Fri Jan 16 07:17:15 2015 -0800 Committer: Samarth samarth.j...@salesforce.com Committed: Fri Jan 16 07:17:15 2015 -0800 -- .../apache/phoenix/end2end/AlterTableIT.java| 71 .../apache/phoenix/jdbc/PhoenixConnection.java | 14 ++-- .../query/ConnectionQueryServicesImpl.java | 4 +- .../query/ConnectionlessQueryServicesImpl.java | 4 +- .../query/DelegateConnectionQueryServices.java | 4 +- .../apache/phoenix/query/MetaDataMutated.java | 2 +- .../apache/phoenix/schema/MetaDataClient.java | 2 +- .../apache/phoenix/schema/PMetaDataImpl.java| 4 +- .../org/apache/phoenix/schema/PTableImpl.java | 10 ++- 9 files changed, 69 insertions(+), 46 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/b1ef44d3/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableIT.java index ac578c9..7f5649b 100644 --- a/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableIT.java +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/AlterTableIT.java @@ -48,6 +48,7 @@ import org.apache.phoenix.exception.SQLExceptionCode; import org.apache.phoenix.jdbc.PhoenixConnection; import org.apache.phoenix.jdbc.PhoenixDatabaseMetaData; import org.apache.phoenix.query.QueryConstants; +import org.apache.phoenix.schema.PTable; import org.apache.phoenix.schema.PTableKey; import org.apache.phoenix.schema.TableNotFoundException; import org.apache.phoenix.util.IndexUtil; @@ -56,7 +57,6 @@ import org.apache.phoenix.util.PropertiesUtil; import org.apache.phoenix.util.ReadOnlyProps; import org.apache.phoenix.util.SchemaUtil; import org.junit.BeforeClass; -import org.junit.Ignore; import org.junit.Test; /** @@ -1845,33 +1845,6 @@ public class AlterTableIT extends BaseOwnClusterHBaseManagedTimeIT { } @Test -@Ignore //FIXME: https://issues.apache.org/jira/browse/PHOENIX-1581 -public void testTogglingDisableWal() throws Exception { -Connection conn = DriverManager.getConnection(getUrl()); -try { -String ddl = create table IF NOT EXISTS testReenablingWal ( -+ id char(1) NOT NULL, -+ col1 integer NOT NULL, -+ col2 bigint NOT NULL, -+ CONSTRAINT NAME_PK PRIMARY KEY (id, col1, col2) -+ ); -conn.createStatement().execute(ddl); -asssertIsWALDisabled(conn, testReenablingWal.toUpperCase(), false); - -ddl = ALTER TABLE testReenablingWal SET DISABLE_WAL = true; -conn.createStatement().execute(ddl); -asssertIsWALDisabled(conn, testReenablingWal.toUpperCase(), true); - -ddl = ALTER TABLE testReenablingWal SET DISABLE_WAL = false; -conn.createStatement().execute(ddl); -asssertIsWALDisabled(conn, testReenablingWal.toUpperCase(), false); - -} finally { -conn.close(); -} -} - -@Test public void testAddingPkColAndSettingProperties() throws Exception { Connection conn = DriverManager.getConnection(getUrl()); try { @@ -1943,4 +1916,46 @@ public class AlterTableIT extends BaseOwnClusterHBaseManagedTimeIT { conn.close(); } } + +@Test +public void testClientCacheUpdatedOnChangingPhoenixTableProperties() throws Exception { +Connection conn = DriverManager.getConnection(getUrl()); +try { +String ddl = create table IF NOT EXISTS TESTCHANGEPHOENIXPROPS ( ++ id char(1) NOT NULL, ++ col1 integer NOT NULL, ++ col2 bigint NOT NULL, ++ CONSTRAINT NAME_PK PRIMARY KEY (id, col1, col2) ++ ); +conn.createStatement().execute(ddl); +asssertIsWALDisabled(conn, TESTCHANGEPHOENIXPROPS, false); + +ddl = ALTER TABLE TESTCHANGEPHOENIXPROPS SET DISABLE_WAL =
Apache-Phoenix | 4.0 | Build Successful
4.0 branch build status Successful Source repository https://git-wip-us.apache.org/repos/asf/incubator-phoenix.git Compiled Artifacts https://builds.apache.org/job/Phoenix-4.0/lastSuccessfulBuild/artifact/ Test Report https://builds.apache.org/job/Phoenix-4.0/lastCompletedBuild/testReport/ Changes [samarth.jain] PHOENIX-1581 Client cache not updated after issuing ALTER TABLE statements for setting phoenix table properties Build times for last couple of runsLatest build time is the right most | Legend blue: normal, red: test failure, gray: timeout
Build failed in Jenkins: Phoenix | Master #553
See https://builds.apache.org/job/Phoenix-master/553/changes Changes: [samarth.jain] PHOENIX-1581 Client cache not updated after issuing ALTER TABLE statements for setting phoenix table properties -- [...truncated 397 lines...] Running org.apache.phoenix.end2end.RowValueConstructorIT Running org.apache.phoenix.end2end.NativeHBaseTypesIT Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.158 sec - in org.apache.phoenix.end2end.NativeHBaseTypesIT Running org.apache.phoenix.end2end.ExtendedQueryExecIT Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.432 sec - in org.apache.phoenix.end2end.ExtendedQueryExecIT Running org.apache.phoenix.end2end.PointInTimeQueryIT Tests run: 50, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 28.046 sec - in org.apache.phoenix.end2end.VariableLengthPKIT Running org.apache.phoenix.end2end.UpsertSelectIT Tests run: 126, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 73.624 sec - in org.apache.phoenix.end2end.QueryIT Running org.apache.phoenix.end2end.GroupByCaseIT Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.003 sec - in org.apache.phoenix.end2end.GroupByCaseIT Running org.apache.phoenix.end2end.ToCharFunctionIT Tests run: 10, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.618 sec - in org.apache.phoenix.end2end.ToCharFunctionIT Running org.apache.phoenix.end2end.salted.SaltedTableIT Tests run: 14, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 24.54 sec - in org.apache.phoenix.end2end.PointInTimeQueryIT Running org.apache.phoenix.end2end.FunkyNamesIT Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 2.607 sec - in org.apache.phoenix.end2end.FunkyNamesIT Running org.apache.phoenix.end2end.AggregateQueryIT Tests run: 36, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 35.233 sec - in org.apache.phoenix.end2end.RowValueConstructorIT Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.285 sec - in org.apache.phoenix.end2end.salted.SaltedTableIT Running org.apache.phoenix.end2end.ProductMetricsIT Running org.apache.phoenix.end2end.ScanQueryIT Tests run: 63, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 41.358 sec - in org.apache.phoenix.end2end.CaseStatementIT Running org.apache.phoenix.end2end.ClientTimeArithmeticQueryIT Tests run: 12, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 28.745 sec - in org.apache.phoenix.end2end.UpsertSelectIT Running org.apache.phoenix.end2end.GroupByIT Tests run: 61, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 18.735 sec - in org.apache.phoenix.end2end.ProductMetricsIT Tests run: 42, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 43.423 sec - in org.apache.phoenix.end2end.AggregateQueryIT Tests run: 91, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 54.553 sec - in org.apache.phoenix.end2end.GroupByIT Tests run: 119, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 62.855 sec - in org.apache.phoenix.end2end.ScanQueryIT Tests run: 210, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 106.819 sec - in org.apache.phoenix.end2end.ClientTimeArithmeticQueryIT Results : Tests run: 1225, Failures: 0, Errors: 0, Skipped: 0 [INFO] [INFO] --- maven-failsafe-plugin:2.18:integration-test (HBaseManagedTimeTests) @ phoenix-core --- [INFO] Failsafe report directory: https://builds.apache.org/job/Phoenix-master/ws/phoenix-core/target/failsafe-reports [INFO] parallel='none', perCoreThreadCount=true, threadCount=0, useUnlimitedThreads=false, threadCountSuites=0, threadCountClasses=0, threadCountMethods=0, parallelOptimized=true --- T E S T S --- Running org.apache.phoenix.end2end.ReverseFunctionIT Running org.apache.phoenix.end2end.RoundFloorCeilFunctionsEnd2EndIT Running org.apache.phoenix.end2end.RegexpSplitFunctionIT Tests run: 5, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.347 sec - in org.apache.phoenix.end2end.ReverseFunctionIT Running org.apache.phoenix.end2end.UpsertSelectAutoCommitIT Running org.apache.phoenix.end2end.SubqueryUsingSortMergeJoinIT Running org.apache.phoenix.end2end.SortOrderFIT Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 5.275 sec - in org.apache.phoenix.end2end.RegexpSplitFunctionIT Running org.apache.phoenix.end2end.EncodeFunctionIT Tests run: 30, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 9.191 sec - in org.apache.phoenix.end2end.RoundFloorCeilFunctionsEnd2EndIT Running org.apache.phoenix.end2end.NthValueFunctionIT Tests run: 30, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 9.708 sec - in org.apache.phoenix.end2end.SortOrderFIT Running org.apache.phoenix.end2end.index.SaltedIndexIT Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 12.263 sec - in org.apache.phoenix.end2end.UpsertSelectAutoCommitIT Running org.apache.phoenix.end2end.index.DropViewIT Tests run: 11, Failures: 0, Errors: 0, Skipped:
Apache-Phoenix | 3.0 | Hadoop1 | Build Successful
3.0 branch build status Successful Source repository https://git-wip-us.apache.org/repos/asf/phoenix.git Last Successful Compiled Artifacts https://builds.apache.org/job/Phoenix-3.0-hadoop1/lastSuccessfulBuild/artifact/ Last Complete Test Report https://builds.apache.org/job/Phoenix-3.0-hadoop1/lastCompletedBuild/testReport/ Changes [maryannxue] PHOENIX-1591 Return all rows instead of no rows if IN clause subquery gets optimized out from semi-join and returns empty result Build times for last couple of runsLatest build time is the right most | Legend blue: normal, red: test failure, gray: timeout
phoenix git commit: PHOENIX-1560 Join between global index and data table if INDEX hint used
Repository: phoenix Updated Branches: refs/heads/master ef3a7e4c4 - b2b5788d9 PHOENIX-1560 Join between global index and data table if INDEX hint used Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/b2b5788d Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/b2b5788d Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/b2b5788d Branch: refs/heads/master Commit: b2b5788d9dd96dc5fa2f0ac0d0b2a792d9bb26b2 Parents: ef3a7e4 Author: maryannxue wei@intel.com Authored: Fri Jan 16 13:57:35 2015 -0500 Committer: maryannxue wei@intel.com Committed: Fri Jan 16 13:57:35 2015 -0500 -- .../index/GlobalIndexOptimizationIT.java| 456 +++ phoenix-core/src/main/antlr3/PhoenixSQL.g | 2 +- .../phoenix/compile/ExpressionCompiler.java | 2 +- .../phoenix/compile/IndexStatementRewriter.java | 12 + .../phoenix/compile/ProjectionCompiler.java | 16 +- .../apache/phoenix/compile/RowProjector.java| 22 +- .../phoenix/compile/SubqueryRewriter.java | 2 +- .../apache/phoenix/execute/BaseQueryPlan.java | 3 +- .../apache/phoenix/execute/HashJoinPlan.java| 5 +- .../phoenix/expression/InListExpression.java| 9 +- .../apache/phoenix/optimize/QueryOptimizer.java | 177 ++- .../java/org/apache/phoenix/parse/HintNode.java | 8 + .../org/apache/phoenix/parse/InParseNode.java | 8 +- .../apache/phoenix/parse/ParseNodeFactory.java | 10 +- .../apache/phoenix/parse/ParseNodeRewriter.java | 2 +- 15 files changed, 688 insertions(+), 46 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/b2b5788d/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexOptimizationIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexOptimizationIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexOptimizationIT.java new file mode 100644 index 000..ee4bdcd --- /dev/null +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexOptimizationIT.java @@ -0,0 +1,456 @@ +/* + * 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.index; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Map; +import java.util.regex.Pattern; + +import org.apache.phoenix.end2end.BaseHBaseManagedTimeIT; +import org.apache.phoenix.end2end.Shadower; +import org.apache.phoenix.query.QueryServices; +import org.apache.phoenix.util.PhoenixRuntime; +import org.apache.phoenix.util.QueryUtil; +import org.apache.phoenix.util.ReadOnlyProps; +import org.apache.phoenix.util.TestUtil; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.google.common.collect.Maps; + +public class GlobalIndexOptimizationIT extends BaseHBaseManagedTimeIT { + +@BeforeClass +@Shadower(classBeingShadowed = BaseHBaseManagedTimeIT.class) +public static void doSetup() throws Exception { +MapString,String props = Maps.newHashMapWithExpectedSize(3); +// Drop the HBase table metadata for this test +props.put(QueryServices.DROP_METADATA_ATTRIB, Boolean.toString(true)); +// Must update config before starting server +setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator())); +} + +private void createBaseTable(String tableName, Integer saltBuckets, String splits, boolean multiTenant) throws SQLException { +Connection conn = DriverManager.getConnection(getUrl()); +String ddl = CREATE TABLE + tableName + (t_id VARCHAR NOT NULL,\n + +k1 INTEGER NOT NULL,\n + +k2 INTEGER NOT NULL,\n + +k3 INTEGER,\n + +v1 VARCHAR,\n + +CONSTRAINT pk PRIMARY KEY (t_id, k1,
phoenix git commit: PHOENIX-1560 Join between global index and data table if INDEX hint used
Repository: phoenix Updated Branches: refs/heads/4.0 1db0777a3 - 7cf8799d9 PHOENIX-1560 Join between global index and data table if INDEX hint used Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/7cf8799d Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/7cf8799d Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/7cf8799d Branch: refs/heads/4.0 Commit: 7cf8799d9378dcb5a3488300234a566c003383f6 Parents: 1db0777 Author: maryannxue wei@intel.com Authored: Fri Jan 16 14:03:00 2015 -0500 Committer: maryannxue wei@intel.com Committed: Fri Jan 16 14:03:00 2015 -0500 -- .../index/GlobalIndexOptimizationIT.java| 456 +++ phoenix-core/src/main/antlr3/PhoenixSQL.g | 2 +- .../phoenix/compile/ExpressionCompiler.java | 2 +- .../phoenix/compile/IndexStatementRewriter.java | 12 + .../phoenix/compile/ProjectionCompiler.java | 16 +- .../apache/phoenix/compile/RowProjector.java| 22 +- .../phoenix/compile/SubqueryRewriter.java | 2 +- .../apache/phoenix/execute/BaseQueryPlan.java | 3 +- .../apache/phoenix/execute/HashJoinPlan.java| 5 +- .../phoenix/expression/InListExpression.java| 9 +- .../apache/phoenix/optimize/QueryOptimizer.java | 177 ++- .../java/org/apache/phoenix/parse/HintNode.java | 8 + .../org/apache/phoenix/parse/InParseNode.java | 8 +- .../apache/phoenix/parse/ParseNodeFactory.java | 10 +- .../apache/phoenix/parse/ParseNodeRewriter.java | 2 +- 15 files changed, 688 insertions(+), 46 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/7cf8799d/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexOptimizationIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexOptimizationIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexOptimizationIT.java new file mode 100644 index 000..ee4bdcd --- /dev/null +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexOptimizationIT.java @@ -0,0 +1,456 @@ +/* + * 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.index; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Map; +import java.util.regex.Pattern; + +import org.apache.phoenix.end2end.BaseHBaseManagedTimeIT; +import org.apache.phoenix.end2end.Shadower; +import org.apache.phoenix.query.QueryServices; +import org.apache.phoenix.util.PhoenixRuntime; +import org.apache.phoenix.util.QueryUtil; +import org.apache.phoenix.util.ReadOnlyProps; +import org.apache.phoenix.util.TestUtil; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.google.common.collect.Maps; + +public class GlobalIndexOptimizationIT extends BaseHBaseManagedTimeIT { + +@BeforeClass +@Shadower(classBeingShadowed = BaseHBaseManagedTimeIT.class) +public static void doSetup() throws Exception { +MapString,String props = Maps.newHashMapWithExpectedSize(3); +// Drop the HBase table metadata for this test +props.put(QueryServices.DROP_METADATA_ATTRIB, Boolean.toString(true)); +// Must update config before starting server +setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator())); +} + +private void createBaseTable(String tableName, Integer saltBuckets, String splits, boolean multiTenant) throws SQLException { +Connection conn = DriverManager.getConnection(getUrl()); +String ddl = CREATE TABLE + tableName + (t_id VARCHAR NOT NULL,\n + +k1 INTEGER NOT NULL,\n + +k2 INTEGER NOT NULL,\n + +k3 INTEGER,\n + +v1 VARCHAR,\n + +CONSTRAINT pk PRIMARY KEY (t_id, k1, k2))\n
Apache-Phoenix | Master | Build Successful
Master branch build status Successful Source repository https://git-wip-us.apache.org/repos/asf/phoenix.git Last Successful Compiled Artifacts https://builds.apache.org/job/Phoenix-master/lastSuccessfulBuild/artifact/ Last Complete Test Report https://builds.apache.org/job/Phoenix-master/lastCompletedBuild/testReport/ Changes [maryannxue] PHOENIX-1560 Join between global index and data table if INDEX hint used Build times for last couple of runsLatest build time is the right most | Legend blue: normal, red: test failure, gray: timeout
phoenix git commit: PHOENIX-1560 Join between global index and data table if INDEX hint used
Repository: phoenix Updated Branches: refs/heads/3.0 21cf00c70 - 2ce227adf PHOENIX-1560 Join between global index and data table if INDEX hint used Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/2ce227ad Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/2ce227ad Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/2ce227ad Branch: refs/heads/3.0 Commit: 2ce227adff493f646fa023eed084f88c17935f63 Parents: 21cf00c Author: maryannxue wei@intel.com Authored: Fri Jan 16 15:10:48 2015 -0500 Committer: maryannxue wei@intel.com Committed: Fri Jan 16 15:10:48 2015 -0500 -- .../index/GlobalIndexOptimizationIT.java| 456 +++ phoenix-core/src/main/antlr3/PhoenixSQL.g | 2 +- .../phoenix/compile/ExpressionCompiler.java | 2 +- .../phoenix/compile/IndexStatementRewriter.java | 12 + .../phoenix/compile/ProjectionCompiler.java | 16 +- .../apache/phoenix/compile/RowProjector.java| 22 +- .../phoenix/compile/SubqueryRewriter.java | 2 +- .../apache/phoenix/execute/BaseQueryPlan.java | 4 + .../apache/phoenix/execute/HashJoinPlan.java| 5 +- .../phoenix/expression/InListExpression.java| 11 +- .../apache/phoenix/optimize/QueryOptimizer.java | 176 ++- .../java/org/apache/phoenix/parse/HintNode.java | 8 + .../org/apache/phoenix/parse/InParseNode.java | 8 +- .../apache/phoenix/parse/ParseNodeFactory.java | 10 +- .../apache/phoenix/parse/ParseNodeRewriter.java | 2 +- .../java/org/apache/phoenix/util/TestUtil.java | 5 + 16 files changed, 696 insertions(+), 45 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/2ce227ad/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexOptimizationIT.java -- diff --git a/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexOptimizationIT.java b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexOptimizationIT.java new file mode 100644 index 000..ee4bdcd --- /dev/null +++ b/phoenix-core/src/it/java/org/apache/phoenix/end2end/index/GlobalIndexOptimizationIT.java @@ -0,0 +1,456 @@ +/* + * 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.index; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.Map; +import java.util.regex.Pattern; + +import org.apache.phoenix.end2end.BaseHBaseManagedTimeIT; +import org.apache.phoenix.end2end.Shadower; +import org.apache.phoenix.query.QueryServices; +import org.apache.phoenix.util.PhoenixRuntime; +import org.apache.phoenix.util.QueryUtil; +import org.apache.phoenix.util.ReadOnlyProps; +import org.apache.phoenix.util.TestUtil; +import org.junit.BeforeClass; +import org.junit.Test; + +import com.google.common.collect.Maps; + +public class GlobalIndexOptimizationIT extends BaseHBaseManagedTimeIT { + +@BeforeClass +@Shadower(classBeingShadowed = BaseHBaseManagedTimeIT.class) +public static void doSetup() throws Exception { +MapString,String props = Maps.newHashMapWithExpectedSize(3); +// Drop the HBase table metadata for this test +props.put(QueryServices.DROP_METADATA_ATTRIB, Boolean.toString(true)); +// Must update config before starting server +setUpTestDriver(new ReadOnlyProps(props.entrySet().iterator())); +} + +private void createBaseTable(String tableName, Integer saltBuckets, String splits, boolean multiTenant) throws SQLException { +Connection conn = DriverManager.getConnection(getUrl()); +String ddl = CREATE TABLE + tableName + (t_id VARCHAR NOT NULL,\n + +k1 INTEGER NOT NULL,\n + +k2 INTEGER NOT NULL,\n + +k3 INTEGER,\n + +v1 VARCHAR,\n + +
Apache-Phoenix | 3.0 | Hadoop1 | Build Successful
3.0 branch build status Successful Source repository https://git-wip-us.apache.org/repos/asf/phoenix.git Last Successful Compiled Artifacts https://builds.apache.org/job/Phoenix-3.0-hadoop1/lastSuccessfulBuild/artifact/ Last Complete Test Report https://builds.apache.org/job/Phoenix-3.0-hadoop1/lastCompletedBuild/testReport/ Changes [maryannxue] PHOENIX-1560 Join between global index and data table if INDEX hint used Build times for last couple of runsLatest build time is the right most | Legend blue: normal, red: test failure, gray: timeout
phoenix git commit: PHOENIX-1592 ORDER BY not closing ResultIterator properly
Repository: phoenix Updated Branches: refs/heads/4.0 7cf8799d9 - 0c6f11ef3 PHOENIX-1592 ORDER BY not closing ResultIterator properly Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/0c6f11ef Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/0c6f11ef Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/0c6f11ef Branch: refs/heads/4.0 Commit: 0c6f11ef3403c3d3d1283776a97c09c9a87debbc Parents: 7cf8799 Author: Jeffrey Zhong jeffr...@apache.org Authored: Fri Jan 16 10:27:10 2015 -0800 Committer: Jeffrey Zhong jeffr...@apache.org Committed: Fri Jan 16 15:20:16 2015 -0800 -- .../apache/phoenix/coprocessor/ScanRegionObserver.java | 12 +++- .../apache/phoenix/iterate/OrderedResultIterator.java | 4 +++- 2 files changed, 14 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/0c6f11ef/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/ScanRegionObserver.java -- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/ScanRegionObserver.java b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/ScanRegionObserver.java index f0ae4a2..9270495 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/ScanRegionObserver.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/ScanRegionObserver.java @@ -22,6 +22,7 @@ import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; +import java.sql.SQLException; import java.util.List; import java.util.Set; @@ -281,7 +282,16 @@ public class ScanRegionObserver extends BaseScannerRegionObserver { try { s.close(); } finally { -chunk.close();} +try { +if(iterator != null) { +iterator.close(); +} +} catch (SQLException e) { + ServerUtil.throwIOException(region.getRegionNameAsString(), e); +} finally { +chunk.close(); +} +} } @Override http://git-wip-us.apache.org/repos/asf/phoenix/blob/0c6f11ef/phoenix-core/src/main/java/org/apache/phoenix/iterate/OrderedResultIterator.java -- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/iterate/OrderedResultIterator.java b/phoenix-core/src/main/java/org/apache/phoenix/iterate/OrderedResultIterator.java index d087f80..7b7d4dc 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/iterate/OrderedResultIterator.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/iterate/OrderedResultIterator.java @@ -185,6 +185,7 @@ public class OrderedResultIterator implements PeekingResultIterator { public Tuple next() throws SQLException { ResultEntry entry = queueEntries.poll(); if (entry == null || (limit != null ++count limit)) { +resultIterator.close(); resultIterator = PeekingResultIterator.EMPTY_ITERATOR; return null; } @@ -239,7 +240,8 @@ public class OrderedResultIterator implements PeekingResultIterator { } @Override -public void close() { +public void close() throws SQLException { +resultIterator.close(); resultIterator = PeekingResultIterator.EMPTY_ITERATOR; }
phoenix git commit: PHOENIX-1592 ORDER BY not closing ResultIterator properly
Repository: phoenix Updated Branches: refs/heads/master b2b5788d9 - 4e8e30b40 PHOENIX-1592 ORDER BY not closing ResultIterator properly Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/4e8e30b4 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/4e8e30b4 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/4e8e30b4 Branch: refs/heads/master Commit: 4e8e30b40f6394f1a3fceffe565ed1ee1d642005 Parents: b2b5788 Author: Jeffrey Zhong jeffr...@apache.org Authored: Fri Jan 16 10:27:10 2015 -0800 Committer: Jeffrey Zhong jeffr...@apache.org Committed: Fri Jan 16 15:21:04 2015 -0800 -- .../apache/phoenix/coprocessor/ScanRegionObserver.java | 12 +++- .../apache/phoenix/iterate/OrderedResultIterator.java | 4 +++- 2 files changed, 14 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/phoenix/blob/4e8e30b4/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/ScanRegionObserver.java -- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/ScanRegionObserver.java b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/ScanRegionObserver.java index f0ae4a2..9270495 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/ScanRegionObserver.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/coprocessor/ScanRegionObserver.java @@ -22,6 +22,7 @@ import java.io.ByteArrayOutputStream; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; +import java.sql.SQLException; import java.util.List; import java.util.Set; @@ -281,7 +282,16 @@ public class ScanRegionObserver extends BaseScannerRegionObserver { try { s.close(); } finally { -chunk.close();} +try { +if(iterator != null) { +iterator.close(); +} +} catch (SQLException e) { + ServerUtil.throwIOException(region.getRegionNameAsString(), e); +} finally { +chunk.close(); +} +} } @Override http://git-wip-us.apache.org/repos/asf/phoenix/blob/4e8e30b4/phoenix-core/src/main/java/org/apache/phoenix/iterate/OrderedResultIterator.java -- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/iterate/OrderedResultIterator.java b/phoenix-core/src/main/java/org/apache/phoenix/iterate/OrderedResultIterator.java index d087f80..7b7d4dc 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/iterate/OrderedResultIterator.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/iterate/OrderedResultIterator.java @@ -185,6 +185,7 @@ public class OrderedResultIterator implements PeekingResultIterator { public Tuple next() throws SQLException { ResultEntry entry = queueEntries.poll(); if (entry == null || (limit != null ++count limit)) { +resultIterator.close(); resultIterator = PeekingResultIterator.EMPTY_ITERATOR; return null; } @@ -239,7 +240,8 @@ public class OrderedResultIterator implements PeekingResultIterator { } @Override -public void close() { +public void close() throws SQLException { +resultIterator.close(); resultIterator = PeekingResultIterator.EMPTY_ITERATOR; }
Build failed in Jenkins: Phoenix | 4.0 #530
See https://builds.apache.org/job/Phoenix-4.0/530/changes Changes: [jeffreyz] PHOENIX-1592 ORDER BY not closing ResultIterator properly -- [...truncated 391 lines...] Tests run: 210, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 121.597 sec - in org.apache.phoenix.end2end.ClientTimeArithmeticQueryIT Results : Tests run: 1225, Failures: 0, Errors: 0, Skipped: 0 [INFO] [failsafe:integration-test {execution: HBaseManagedTimeTests}] [INFO] Failsafe report directory: /x1/jenkins/jenkins-slave/workspace/Phoenix-4.0/phoenix-core/target/failsafe-reports [INFO] parallel='none', perCoreThreadCount=true, threadCount=0, useUnlimitedThreads=false, threadCountSuites=0, threadCountClasses=0, threadCountMethods=0, parallelOptimized=true --- T E S T S --- Running org.apache.phoenix.end2end.QueryExecWithoutSCNIT Running org.apache.phoenix.end2end.TenantSpecificViewIndexIT Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.576 sec - in org.apache.phoenix.end2end.QueryExecWithoutSCNIT Running org.apache.phoenix.end2end.TenantSpecificViewIndexSaltedIT Running org.apache.phoenix.end2end.SkipScanQueryIT Running org.apache.phoenix.end2end.BinaryRowKeyIT Running org.apache.phoenix.end2end.DeleteIT Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.735 sec - in org.apache.phoenix.end2end.BinaryRowKeyIT Running org.apache.phoenix.end2end.EncodeFunctionIT Tests run: 4, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 12.485 sec - in org.apache.phoenix.end2end.TenantSpecificViewIndexSaltedIT Running org.apache.phoenix.end2end.TimezoneOffsetFunctionIT Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.341 sec - in org.apache.phoenix.end2end.TimezoneOffsetFunctionIT Running org.apache.phoenix.end2end.index.GlobalMutableIndexIT Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 10.835 sec - in org.apache.phoenix.end2end.EncodeFunctionIT Running org.apache.phoenix.end2end.index.GlobalIndexOptimizationIT Tests run: 9, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 19.42 sec - in org.apache.phoenix.end2end.SkipScanQueryIT Running org.apache.phoenix.end2end.index.ViewIndexIT Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 22.971 sec - in org.apache.phoenix.end2end.TenantSpecificViewIndexIT Running org.apache.phoenix.end2end.index.DropViewIT Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 6.521 sec - in org.apache.phoenix.end2end.index.ViewIndexIT Running org.apache.phoenix.end2end.index.IndexMetadataIT Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.831 sec - in org.apache.phoenix.end2end.index.DropViewIT Running org.apache.phoenix.end2end.index.SaltedIndexIT Tests run: 20, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 36.656 sec - in org.apache.phoenix.end2end.DeleteIT Running org.apache.phoenix.end2end.index.LocalMutableIndexIT Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 21.831 sec - in org.apache.phoenix.end2end.index.SaltedIndexIT Running org.apache.phoenix.end2end.index.LocalIndexIT Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 46.923 sec - in org.apache.phoenix.end2end.index.IndexMetadataIT Running org.apache.phoenix.end2end.index.ImmutableIndexIT Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 56.858 sec - in org.apache.phoenix.end2end.index.GlobalIndexOptimizationIT Running org.apache.phoenix.end2end.ServerExceptionIT Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.019 sec - in org.apache.phoenix.end2end.ServerExceptionIT Running org.apache.phoenix.end2end.LastValueFunctionIT Tests run: 11, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 7.844 sec - in org.apache.phoenix.end2end.LastValueFunctionIT Running org.apache.phoenix.end2end.HashJoinIT Tests run: 15, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 86.015 sec - in org.apache.phoenix.end2end.index.GlobalMutableIndexIT Running org.apache.phoenix.end2end.SortOrderFIT Tests run: 13, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 35.684 sec - in org.apache.phoenix.end2end.index.ImmutableIndexIT Running org.apache.phoenix.end2end.FirstValueFunctionIT Tests run: 30, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 11.087 sec - in org.apache.phoenix.end2end.SortOrderFIT Tests run: 7, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 4.91 sec - in org.apache.phoenix.end2end.FirstValueFunctionIT Running org.apache.phoenix.end2end.RoundFloorCeilFunctionsEnd2EndIT Running org.apache.phoenix.end2end.CSVCommonsLoaderIT Tests run: 15, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 83.25 sec - in org.apache.phoenix.end2end.index.LocalMutableIndexIT Running org.apache.phoenix.end2end.DynamicFamilyIT Tests run: 30, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 9.129 sec - in
Apache-Phoenix | 3.0 | Hadoop1 | Build Successful
3.0 branch build status Successful Source repository https://git-wip-us.apache.org/repos/asf/phoenix.git Last Successful Compiled Artifacts https://builds.apache.org/job/Phoenix-3.0-hadoop1/lastSuccessfulBuild/artifact/ Last Complete Test Report https://builds.apache.org/job/Phoenix-3.0-hadoop1/lastCompletedBuild/testReport/ Changes [jeffreyz] PHOENIX-1592 ORDER BY not closing ResultIterator properly Build times for last couple of runsLatest build time is the right most | Legend blue: normal, red: test failure, gray: timeout