Repository: phoenix
Updated Branches:
  refs/heads/4.x-HBase-0.98 28197051a -> f0939f235


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/56c37d01
Tree: http://git-wip-us.apache.org/repos/asf/phoenix/tree/56c37d01
Diff: http://git-wip-us.apache.org/repos/asf/phoenix/diff/56c37d01

Branch: refs/heads/4.x-HBase-0.98
Commit: 56c37d01cbf94d6a6b6b69c14fb6edcef581d246
Parents: 2819705
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:15:53 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/56c37d01/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/56c37d01/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;

Reply via email to