Repository: phoenix Updated Branches: refs/heads/4.x-HBase-1.1 5e5f85093 -> a16abdf8c
PHOENIX-4522 Fail to remove the schema from client-side cache (Chia-Ping Tsai) Project: http://git-wip-us.apache.org/repos/asf/phoenix/repo Commit: http://git-wip-us.apache.org/repos/asf/phoenix/commit/bee3d11a Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/bee3d11a Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/bee3d11a Branch: refs/heads/4.x-HBase-1.1 Commit: bee3d11af832bc5d036da514fd42d1a1e02ee3e3 Parents: 5e5f850 Author: James Taylor <jtay...@salesforce.com> Authored: Thu Jan 11 15:11:13 2018 -0800 Committer: James Taylor <jtay...@salesforce.com> Committed: Thu Jan 11 15:20:17 2018 -0800 ---------------------------------------------------------------------- .../apache/phoenix/schema/PMetaDataImpl.java | 2 +- .../phoenix/schema/PMetaDataImplTest.java | 21 +++++++++++++++++++- 2 files changed, 21 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/phoenix/blob/bee3d11a/phoenix-core/src/main/java/org/apache/phoenix/schema/PMetaDataImpl.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/main/java/org/apache/phoenix/schema/PMetaDataImpl.java b/phoenix-core/src/main/java/org/apache/phoenix/schema/PMetaDataImpl.java index 169e78d..17f929f 100644 --- a/phoenix-core/src/main/java/org/apache/phoenix/schema/PMetaDataImpl.java +++ b/phoenix-core/src/main/java/org/apache/phoenix/schema/PMetaDataImpl.java @@ -288,7 +288,7 @@ public class PMetaDataImpl implements PMetaData { @Override public void removeSchema(PSchema schema, long schemaTimeStamp) { - this.metaData.schemas.remove(SchemaUtil.getSchemaKey(schema.getSchemaName())); + this.metaData.schemas.remove(schema.getSchemaKey()); } } http://git-wip-us.apache.org/repos/asf/phoenix/blob/bee3d11a/phoenix-core/src/test/java/org/apache/phoenix/schema/PMetaDataImplTest.java ---------------------------------------------------------------------- diff --git a/phoenix-core/src/test/java/org/apache/phoenix/schema/PMetaDataImplTest.java b/phoenix-core/src/test/java/org/apache/phoenix/schema/PMetaDataImplTest.java index a5660db..01f0d96 100644 --- a/phoenix-core/src/test/java/org/apache/phoenix/schema/PMetaDataImplTest.java +++ b/phoenix-core/src/test/java/org/apache/phoenix/schema/PMetaDataImplTest.java @@ -19,12 +19,15 @@ package org.apache.phoenix.schema; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.fail; import java.sql.SQLException; +import java.util.Collections; import java.util.Map; import java.util.Set; import org.apache.hadoop.hbase.HConstants; +import org.apache.phoenix.parse.PSchema; import org.apache.phoenix.query.QueryServices; import org.apache.phoenix.util.ReadOnlyProps; import org.apache.phoenix.util.TimeKeeper; @@ -207,7 +210,23 @@ public class PMetaDataImplTest { assertEquals(1, metaData.getAge(bTableRef)); assertEquals(2, metaData.getAge(aTableRef)); } - + + @Test + public void testSchema() throws Exception { + TestTimeKeeper timeKeeper = new TestTimeKeeper(); + PMetaData metaData = new PMetaDataImpl(5, timeKeeper, + new ReadOnlyProps(Collections.EMPTY_MAP)); + PSchema schema = new PSchema("testSchema"); + metaData.addSchema(schema); + assertEquals(schema, metaData.getSchema(schema.getSchemaKey())); + metaData.removeSchema(schema, schema.getTimeStamp()); + try { + metaData.getSchema(schema.getSchemaKey()); + fail("the schema should be removed"); + } catch (SchemaNotFoundException e) { + } + } + private static class PSizedTable extends PTableImpl { private final int size; private final PTableKey key;