Repository: incubator-lens Updated Branches: refs/heads/master 683516c95 -> 803448a18
http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/803448a1/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java ---------------------------------------------------------------------- diff --git a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java index 3c96062..0669074 100644 --- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java +++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestCubeRewriter.java @@ -271,8 +271,9 @@ public class TestCubeRewriter extends TestQueryRewrite { @Test public void testCubeWhereQuery() throws Exception { - String hqlQuery = rewrite("select SUM(msr2) from testCube" + " where " + TWO_DAYS_RANGE, getConf()); - String expected = + String hqlQuery, expected; + hqlQuery = rewrite("select SUM(msr2) from testCube" + " where " + TWO_DAYS_RANGE, getConf()); + expected = getExpectedQuery(cubeName, "select sum(testcube.msr2) FROM ", null, null, getWhereForDailyAndHourly2days(cubeName, "C2_testfact")); compareQueries(expected, hqlQuery); @@ -1192,8 +1193,13 @@ public class TestCubeRewriter extends TestQueryRewrite { Configuration conf = getConf(); conf.set(CubeQueryConfUtil.PROCESS_TIME_PART_COL, "pt"); + conf.setClass(CubeQueryConfUtil.TIME_RANGE_WRITER_CLASS, AbridgedTimeRangeWriter.class, TimeRangeWriter.class); String hqlQuery = rewrite("select dim1, max(msr3)," + " msr2 from testCube" + " where " + twoDaysITRange, conf); System.out.println("Query With process time col:" + hqlQuery); + String expected = getExpectedQuery(cubeName, "select testcube.dim1, max(testcube.msr3), sum(testcube.msr2) FROM ", + null, " GROUP BY ( testcube . dim1 )", + getWhereForDailyAndHourly2daysWithTimeDim(cubeName, "it", "C2_summary1"), + getNotLatestConditions(cubeName, "it", "C2_summary1")); // TODO compare queries // compareQueries(expected, hqlQuery); hqlQuery = @@ -1480,8 +1486,7 @@ public class TestCubeRewriter extends TestQueryRewrite { // Run explain on this command, it should pass successfully. CommandProcessorResponse inExplainResponse = runExplain(hqlWithInClause, conf); Assert.assertNotNull(inExplainResponse); - Assert.assertTrue(hqlWithInClause.contains("in") - && (hqlWithInClause.contains("OR") || hqlWithInClause.contains("or"))); + Assert.assertTrue(hqlWithInClause.contains("in")); // Test 2 - check for single part column // Verify for large number of partitions, single column. This is just to check if we don't see http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/803448a1/lens-cube/src/test/java/org/apache/lens/cube/parse/TestStorageUtil.java ---------------------------------------------------------------------- diff --git a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestStorageUtil.java b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestStorageUtil.java index 911bcef..1a31121 100644 --- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestStorageUtil.java +++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestStorageUtil.java @@ -21,6 +21,7 @@ package org.apache.lens.cube.parse; import java.util.*; +import org.apache.lens.cube.metadata.FactPartition; import org.apache.lens.cube.metadata.UpdatePeriod; import org.apache.hadoop.conf.Configuration; http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/803448a1/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeWriter.java ---------------------------------------------------------------------- diff --git a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeWriter.java b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeWriter.java index 418fb08..106660e 100644 --- a/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeWriter.java +++ b/lens-cube/src/test/java/org/apache/lens/cube/parse/TestTimeRangeWriter.java @@ -24,6 +24,7 @@ import java.text.SimpleDateFormat; import java.util.LinkedHashSet; import java.util.Set; +import org.apache.lens.cube.metadata.FactPartition; import org.apache.lens.cube.metadata.UpdatePeriod; import org.apache.hadoop.hive.ql.ErrorMsg; http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/803448a1/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 4047e0c..87b12fe 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 @@ -1343,41 +1343,8 @@ public class CubeMetastoreServiceImpl extends LensService implements CubeMetasto throw new BadRequestException("cubeName : " + cubeName + " is not a base cube."); } Cube c = (Cube) ci; - String partitionColumn = c.getPartitionColumnOfTimeDim(timeDimension); - - // getting all facts->storages->partitions and iterating over them to get - // latest date - List<XFactTable> factTables = getAllFactsOfCube(sessionid, cubeName); - - Date latestDate = null; - if (factTables != null && !factTables.isEmpty()) { - for (XFactTable factTable : factTables) { - List<String> storages = getStoragesOfFact(sessionid, factTable.getName()); - - if (storages != null && !storages.isEmpty()) { - for (String storage : storages) { - String storageTableName = MetastoreUtil.getFactStorageTableName(factTable.getName(), storage); - List<Partition> parts = new LinkedList<Partition>(); - try { - parts = getClient(sessionid).getPartitionsByFilter(storageTableName, - StorageConstants.getLatestPartFilter(partitionColumn)); - } catch (HiveException e) { - LOG.info("Storage Table " + storageTableName + " skipped while finding latestDate due to exception: ", e); - } - if (parts.size() == 1) { - Date tmpDate = getClient(sessionid).getLatestTimeStamp(parts.get(0), partitionColumn); - if (latestDate == null || latestDate.before(tmpDate)) { - latestDate = tmpDate; - } - } else if (parts.size() > 1) { - throw new LensException("CubeMetastoreClient return more than 1 partitions for filter " - + partitionColumn + "='latest'"); - } - } - } - } - } + Date latest = getClient(sessionid).getLatestDateOfCube(c, timeDimension); release(sessionid); - return latestDate; + return latest; } } http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/803448a1/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java ---------------------------------------------------------------------- diff --git a/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java b/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java index 9f4595f..1c63861 100644 --- a/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java +++ b/lens-server/src/test/java/org/apache/lens/server/metastore/TestMetastoreService.java @@ -273,7 +273,6 @@ public class TestMetastoreService extends LensJerseyTest { cube.setMeasures(new XMeasures()); cube.setJoinChains(new XJoinChains()); cube.setProperties(new XProperties()); - XDimAttribute xd1 = cubeObjectFactory.createXDimAttribute(); xd1.setName("dim1"); xd1.setType("STRING"); @@ -1795,6 +1794,7 @@ public class TestMetastoreService extends LensJerseyTest { XFactTable f = createFactTable(table); f.getStorageTables().getStorageTable().add(createStorageTblElement("S1", table, "HOURLY")); f.getStorageTables().getStorageTable().add(createStorageTblElement("S2", table, "DAILY")); + f.getStorageTables().getStorageTable().add(createStorageTblElement("S2", table, "HOURLY")); final FormDataMultiPart mp = new FormDataMultiPart(); mp.bodyPart(new FormDataBodyPart(FormDataContentDisposition.name("sessionid").build(), lensSessionId, medType)); @@ -1830,7 +1830,7 @@ public class TestMetastoreService extends LensJerseyTest { XPartitionList partitions = partitionsElement.getValue(); assertNotNull(partitions); - assertEquals(partitions.getPartition().size(), 2); + assertEquals(partitions.getPartition().size(), 1); DateTime date = target().path("metastore/cubes").path("testCube").path("latestdate").queryParam("timeDimension", "dt") @@ -1875,7 +1875,7 @@ public class TestMetastoreService extends LensJerseyTest { partitions = partitionsElement.getValue(); assertNotNull(partitions); - assertEquals(partitions.getPartition().size(), 2); + assertEquals(partitions.getPartition().size(), 1); // Drop again by values String[] val = new String[]{UpdatePeriod.HOURLY.format().format(partDate)};