Repository: phoenix Updated Branches: refs/heads/master 01642d5f9 -> 83adf0d1a
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/5f733b38 Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/5f733b38 Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/5f733b38 Branch: refs/heads/master Commit: 5f733b38978c7caaab3428fa5680eab614f56cb2 Parents: 01642d5 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:11:13 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/5f733b38/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/5f733b38/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;