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);
