LENS-616 : Altering table should not remove existing properties (amareshwari)


Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/ead42f8e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/ead42f8e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/ead42f8e

Branch: refs/heads/current-release-line
Commit: ead42f8e1929bba9c3e71e9c91f348a54a6f233b
Parents: 2a61a7b
Author: Amareshwari Sriramadasu <[email protected]>
Authored: Thu Jun 18 14:22:55 2015 +0530
Committer: Amareshwari Sriramadasu <[email protected]>
Committed: Thu Jun 18 14:22:55 2015 +0530

----------------------------------------------------------------------
 .../java/org/apache/lens/cube/metadata/Storage.java  |  5 ++++-
 .../lens/cube/metadata/TestCubeMetastoreClient.java  | 15 +++++++++++++--
 2 files changed, 17 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/ead42f8e/lens-cube/src/main/java/org/apache/lens/cube/metadata/Storage.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/metadata/Storage.java 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/Storage.java
index d3c9974..c754042 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/Storage.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/Storage.java
@@ -129,7 +129,10 @@ public abstract class Storage extends AbstractCubeTable 
implements PartitionMeta
    */
   public Table getStorageTable(Hive client, Table parent, StorageTableDesc 
crtTbl) throws HiveException {
     String storageTableName = 
MetastoreUtil.getStorageTableName(parent.getTableName(), this.getPrefix());
-    Table tbl = client.newTable(storageTableName);
+    Table tbl = client.getTable(storageTableName, false);
+    if (tbl == null) {
+      tbl = client.newTable(storageTableName);
+    }
     tbl.getTTable().setSd(new StorageDescriptor(parent.getTTable().getSd()));
 
     if (crtTbl.getTblProps() != null) {

http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/ead42f8e/lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java
 
b/lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java
index d481f93..18b6c87 100644
--- 
a/lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java
+++ 
b/lens-cube/src/test/java/org/apache/lens/cube/metadata/TestCubeMetastoreClient.java
@@ -1209,7 +1209,6 @@ public class TestCubeMetastoreClient {
     Assert.assertEquals(timeline1Temp.getClass(), 
EndsAndHolesPartitionTimeline.class);
     Assert.assertEquals(timeline2Temp.getClass(), 
StoreAllPartitionTimeline.class);
 
-
     Assert.assertEquals(client.getAllParts(c1TableName).size(), 3);
     Assert.assertEquals(client.getAllParts(c2TableName).size(), 3);
 
@@ -1297,9 +1296,21 @@ public class TestCubeMetastoreClient {
     assertTimeline(timelineEt, timelineEtC2, UpdatePeriod.HOURLY, nowMinus5, 
nowPlus1, nowMinus4, nowMinus3);
     assertTimeline(timelineIt, timelineItC2, UpdatePeriod.HOURLY, nowMinus5, 
nowPlus1, nowMinus4, nowMinus3, nowMinus2);
 
-
     assertNoPartitionNamedLatest(c1TableName, partColNames);
     assertSameTimelines(factName, storages, UpdatePeriod.HOURLY, partColNames);
+    
Assert.assertEquals(Hive.get(client.getConf()).getTable(c1TableName).getParameters().get(
+      MetastoreUtil.getPartitionTimelineCachePresenceKey()), "true");
+    
Assert.assertEquals(Hive.get(client.getConf()).getTable(c2TableName).getParameters().get(
+      MetastoreUtil.getPartitionTimelineCachePresenceKey()), "true");
+
+    // alter tables and see timeline still exists
+    client.alterCubeFactTable(factName, cubeFact, storageTables);
+    assertSameTimelines(factName, storages, UpdatePeriod.HOURLY, partColNames);
+    
Assert.assertEquals(Hive.get(client.getConf()).getTable(c1TableName).getParameters().get(
+      MetastoreUtil.getPartitionTimelineCachePresenceKey()), "true");
+    
Assert.assertEquals(Hive.get(client.getConf()).getTable(c2TableName).getParameters().get(
+      MetastoreUtil.getPartitionTimelineCachePresenceKey()), "true");
+
 
     client.dropPartition(cubeFact.getName(), c1, timeParts5, null, 
UpdatePeriod.HOURLY);
     client.dropPartition(cubeFact.getName(), c2, timeParts5, null, 
UpdatePeriod.HOURLY);

Reply via email to