Repository: lens
Updated Branches:
  refs/heads/master c2100fa2d -> 2e56643b8


LENS-1289 : Fact column start_time and end_time not getting reflected with 
update fact command


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

Branch: refs/heads/master
Commit: 2e56643b81cfb871bd133bbf9df55707e973f3ae
Parents: c2100fa
Author: Sushil Mohanty <[email protected]>
Authored: Fri Aug 26 13:17:56 2016 +0530
Committer: sushilmohanty <[email protected]>
Committed: Fri Aug 26 13:17:56 2016 +0530

----------------------------------------------------------------------
 .../test/java/org/apache/lens/cli/TestLensFactCommands.java  | 7 ++++++-
 .../org/apache/lens/cube/metadata/CubeMetastoreClient.java   | 7 ++++++-
 .../apache/lens/cube/metadata/TestCubeMetastoreClient.java   | 8 ++++----
 .../lens/server/metastore/CubeMetastoreServiceImpl.java      | 3 ++-
 4 files changed, 18 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lens/blob/2e56643b/lens-cli/src/test/java/org/apache/lens/cli/TestLensFactCommands.java
----------------------------------------------------------------------
diff --git 
a/lens-cli/src/test/java/org/apache/lens/cli/TestLensFactCommands.java 
b/lens-cli/src/test/java/org/apache/lens/cli/TestLensFactCommands.java
index 9670d8f..b4cbf34 100644
--- a/lens-cli/src/test/java/org/apache/lens/cli/TestLensFactCommands.java
+++ b/lens-cli/src/test/java/org/apache/lens/cli/TestLensFactCommands.java
@@ -162,6 +162,10 @@ public class TestLensFactCommands extends 
LensCliApplicationTest {
       xmlContent = xmlContent.replace("<property name=\"fact1.prop\" 
value=\"f1\"/>\n",
         "<property name=\"fact1.prop\" value=\"f1\"/>" + "\n<property 
name=\"fact1.prop1\" value=\"f2\"/>\n");
 
+      xmlContent = xmlContent.replace("<column comment=\"\" name=\"measure3\" 
_type=\"FLOAT\"/>",
+          "<column comment=\"\" name=\"measure3\" _type=\"FLOAT\"/>"
+              + "\n<column comment=\"\" name=\"measure4\" _type=\"FLOAT\" 
start_time=\"2015-01-01\"/>\n");
+
       File newFile = new File("target/local-fact1.xml");
       Writer writer = new OutputStreamWriter(new FileOutputStream(newFile));
       writer.write(xmlContent);
@@ -171,7 +175,7 @@ public class TestLensFactCommands extends 
LensCliApplicationTest {
       log.debug(desc);
       String propString = "fact1.prop: f1";
       String propString1 = "fact1.prop1: f2";
-
+      String propStringColStartTime = "cube.fact.col.start.time.measure4: 
2015-01-01";
       assertTrue(desc.contains(propString));
 
       command.updateFactTable("fact1", new File("target/local-fact1.xml"));
@@ -179,6 +183,7 @@ public class TestLensFactCommands extends 
LensCliApplicationTest {
       log.debug(desc);
       assertTrue(desc.contains(propString), "The sample property value is not 
set");
       assertTrue(desc.contains(propString1), "The sample property value is not 
set");
+      assertTrue(desc.contains(propStringColStartTime), "The sample property 
value is not set");
 
       newFile.delete();
 

http://git-wip-us.apache.org/repos/asf/lens/blob/2e56643b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMetastoreClient.java
----------------------------------------------------------------------
diff --git 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMetastoreClient.java
 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMetastoreClient.java
index 0dce6c4..e14c43f 100644
--- 
a/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMetastoreClient.java
+++ 
b/lens-cube/src/main/java/org/apache/lens/cube/metadata/CubeMetastoreClient.java
@@ -2275,8 +2275,13 @@ public class CubeMetastoreClient {
    * @throws HiveException
    */
   public void alterCubeFactTable(String factTableName, CubeFactTable 
cubeFactTable,
-    Map<String, StorageTableDesc> storageTableDescs) throws HiveException, 
LensException {
+                                 Map<String, StorageTableDesc> 
storageTableDescs,
+                                 Map<String, String> props)
+    throws HiveException, LensException {
     Table factTbl = getTableWithTypeFailFast(factTableName, 
CubeTableType.FACT);
+    if (!props.isEmpty()) {
+      cubeFactTable.getProperties().putAll(props);
+    }
     alterCubeTable(factTableName, factTbl, cubeFactTable);
     if (storageTableDescs != null) {
       // create/alter tables for each storage

http://git-wip-us.apache.org/repos/asf/lens/blob/2e56643b/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 62c7ec9..e21dc2a 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
@@ -1062,7 +1062,7 @@ public class TestCubeMetastoreClient {
     // Partition with different schema
     FieldSchema newcol = new FieldSchema("newcol", "int", "new col for part");
     cubeFact.alterColumn(newcol);
-    client.alterCubeFactTable(cubeFact.getName(), cubeFact, storageTables);
+    client.alterCubeFactTable(cubeFact.getName(), cubeFact, storageTables, new 
HashMap<String, String>());
     String storageTableName = getFactOrDimtableStorageTableName(factName, c1);
     assertEquals(client.getAllParts(storageTableName).size(), 1);
     List<Partition> parts = client.getPartitionsByFilter(storageTableName, 
"dt='latest'");
@@ -1202,7 +1202,7 @@ public class TestCubeMetastoreClient {
     Set<UpdatePeriod> alterupdates = Sets.newHashSet(HOURLY, DAILY, MONTHLY);
     factTable.alterStorage(c2, alterupdates);
 
-    client.alterCubeFactTable(factName, factTable, storageTables);
+    client.alterCubeFactTable(factName, factTable, storageTables, new 
HashMap<String, String>());
 
     Table factHiveTable = Hive.get(conf).getTable(factName);
     CubeFactTable altered = new CubeFactTable(factHiveTable);
@@ -1239,7 +1239,7 @@ public class TestCubeMetastoreClient {
     storageTables.put(c1, s1);
     storageTables.put(c4, s1);
     factTable.addStorage(c4, hourlyAndDaily);
-    client.alterCubeFactTable(factName, factTable, storageTables);
+    client.alterCubeFactTable(factName, factTable, storageTables, new 
HashMap<String, String>());
     CubeFactTable altered2 = client.getCubeFact(factName);
     assertTrue(client.tableExists(c1TableName));
     Table alteredC1Table = client.getTable(c1TableName);
@@ -1541,7 +1541,7 @@ public class TestCubeMetastoreClient {
       getPartitionTimelineCachePresenceKey()), "true");
 
     // alter tables and see timeline still exists
-    client.alterCubeFactTable(factName, cubeFact, storageTables);
+    client.alterCubeFactTable(factName, cubeFact, storageTables, new 
HashMap<String, String>());
     assertSameTimelines(factName, storages, HOURLY, partColNames);
     
assertEquals(Hive.get(client.getConf()).getTable(c1TableName).getParameters().get(
       getPartitionTimelineCachePresenceKey()), "true");

http://git-wip-us.apache.org/repos/asf/lens/blob/2e56643b/lens-server/src/main/java/org/apache/lens/server/metastore/CubeMetastoreServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/lens-server/src/main/java/org/apache/lens/server/metastore/CubeMetastoreServiceImpl.java
 
b/lens-server/src/main/java/org/apache/lens/server/metastore/CubeMetastoreServiceImpl.java
index 31b8ce4..8b10d1d 100644
--- 
a/lens-server/src/main/java/org/apache/lens/server/metastore/CubeMetastoreServiceImpl.java
+++ 
b/lens-server/src/main/java/org/apache/lens/server/metastore/CubeMetastoreServiceImpl.java
@@ -460,7 +460,8 @@ public class CubeMetastoreServiceImpl extends 
BaseLensService implements CubeMet
   public void updateFactTable(LensSessionHandle sessionid, XFactTable fact) 
throws LensException {
     try (SessionContext ignored = new SessionContext(sessionid)){
       getClient(sessionid).alterCubeFactTable(fact.getName(), 
JAXBUtils.cubeFactFromFactTable(fact),
-        JAXBUtils.storageTableMapFromXStorageTables(fact.getStorageTables()));
+        JAXBUtils.storageTableMapFromXStorageTables(fact.getStorageTables()),
+          JAXBUtils.columnStartAndEndTimeFromXColumns(fact.getColumns()));
       log.info("Updated fact table " + fact.getName());
     } catch (HiveException e) {
       throw new LensException(e);

Reply via email to