You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by am...@apache.org on 2013/05/13 07:35:15 UTC

svn commit: r1481701 - in /hive/branches/HIVE-4115/ql/src: java/org/apache/hadoop/hive/ql/cube/metadata/ test/org/apache/hadoop/hive/ql/cube/metadata/ test/org/apache/hadoop/hive/ql/cube/parse/

Author: amareshwari
Date: Mon May 13 05:35:14 2013
New Revision: 1481701

URL: http://svn.apache.org/r1481701
Log:
Add weight to cube tables - both fact and dimension

Modified:
    hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/AbstractCubeTable.java
    hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/CubeDimensionTable.java
    hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/CubeFactTable.java
    hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/CubeMetastoreClient.java
    hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/MetastoreConstants.java
    hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/MetastoreUtil.java
    hive/branches/HIVE-4115/ql/src/test/org/apache/hadoop/hive/ql/cube/metadata/TestCubeMetastoreClient.java
    hive/branches/HIVE-4115/ql/src/test/org/apache/hadoop/hive/ql/cube/parse/CubeTestSetup.java

Modified: hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/AbstractCubeTable.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/AbstractCubeTable.java?rev=1481701&r1=1481700&r2=1481701&view=diff
==============================================================================
--- hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/AbstractCubeTable.java (original)
+++ hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/AbstractCubeTable.java Mon May 13 05:35:14 2013
@@ -12,11 +12,18 @@ public abstract class AbstractCubeTable 
   private final String name;
   private final List<FieldSchema> columns;
   private final Map<String, String> properties = new HashMap<String, String>();
+  private final double weight;
 
   protected AbstractCubeTable(String name, List<FieldSchema> columns,
       Map<String, String> props) {
+    this(name, columns, props, 0L);
+  }
+
+  protected AbstractCubeTable(String name, List<FieldSchema> columns,
+      Map<String, String> props, double weight) {
     this.name = name;
     this.columns = columns;
+    this.weight = weight;
     this.properties.putAll(props);
   }
 
@@ -24,6 +31,7 @@ public abstract class AbstractCubeTable 
     this.name = hiveTable.getTableName();
     this.columns = hiveTable.getCols();
     this.properties.putAll(hiveTable.getParameters());
+    this.weight = getWeight(getProperties(), getName());
   }
 
   public abstract CubeTableType getTableType();
@@ -34,8 +42,15 @@ public abstract class AbstractCubeTable 
     return properties;
   }
 
+  public static double getWeight(Map<String, String> properties, String name) {
+    String wtStr = properties.get(MetastoreUtil.getCubeTableWeightKey(name));
+     return wtStr == null ? 0L : Double.parseDouble(wtStr);
+  }
+
   protected void addProperties() {
     properties.put(MetastoreConstants.TABLE_TYPE_KEY, getTableType().name());
+    properties.put(MetastoreUtil.getCubeTableWeightKey(name),
+        String.valueOf(weight));
   }
 
   public String getName() {
@@ -46,6 +61,10 @@ public abstract class AbstractCubeTable 
     return columns;
   }
 
+  public double weight() {
+    return weight;
+  }
+
   @Override
   public boolean equals(Object obj) {
     if (this == obj) {
@@ -71,6 +90,9 @@ public abstract class AbstractCubeTable 
         return false;
       }
     }
+    if (this.weight() != other.weight()) {
+      return false;
+    }
     return true;
   }
 

Modified: hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/CubeDimensionTable.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/CubeDimensionTable.java?rev=1481701&r1=1481700&r2=1481701&view=diff
==============================================================================
--- hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/CubeDimensionTable.java (original)
+++ hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/CubeDimensionTable.java Mon May 13 05:35:14 2013
@@ -12,32 +12,53 @@ public final class CubeDimensionTable ex
   private final Map<String, TableReference> dimensionReferences;
   private final Map<String, UpdatePeriod> snapshotDumpPeriods;
 
-  public CubeDimensionTable(String dimName, List<FieldSchema> columns) {
-    this(dimName, columns, new HashMap<String, TableReference>());
+  public CubeDimensionTable(String dimName, List<FieldSchema> columns,
+      double weight, Map<String, UpdatePeriod> snapshotDumpPeriods) {
+    this(dimName, columns, weight, snapshotDumpPeriods,
+        new HashMap<String, TableReference>(), new HashMap<String, String>());
+  }
+
+  public CubeDimensionTable(String dimName, List<FieldSchema> columns,
+      double weight, Set<String> storages) {
+    this(dimName, columns, weight, getSnapshotDumpPeriods(storages),
+        new HashMap<String, TableReference>(), new HashMap<String, String>());
   }
 
   public CubeDimensionTable(String dimName, List<FieldSchema> columns,
+      double weight, Map<String, UpdatePeriod> snapshotDumpPeriods,
       Map<String, TableReference> dimensionReferences) {
-    this(dimName, columns, dimensionReferences, null);
+    this(dimName, columns, weight, snapshotDumpPeriods, dimensionReferences,
+        new HashMap<String, String>());
   }
 
   public CubeDimensionTable(String dimName, List<FieldSchema> columns,
-      Map<String, TableReference> dimensionReferences,
-      Map<String, UpdatePeriod> snapshotDumpPeriods) {
-    this(dimName, columns, dimensionReferences, new HashMap<String, String>(),
-        snapshotDumpPeriods);
+      double weight, Set<String> storages,
+      Map<String, TableReference> dimensionReferences) {
+    this(dimName, columns, weight, getSnapshotDumpPeriods(storages),
+        dimensionReferences, new HashMap<String, String>());
   }
 
   public CubeDimensionTable(String dimName, List<FieldSchema> columns,
+      double weight,
+      Map<String, UpdatePeriod> snapshotDumpPeriods,
       Map<String, TableReference> dimensionReferences,
-      Map<String, String> properties,
-      Map<String, UpdatePeriod> snapshotDumpPeriods) {
-    super(dimName, columns, properties);
+      Map<String, String> properties) {
+    super(dimName, columns, properties, weight);
     this.dimensionReferences = dimensionReferences;
     this.snapshotDumpPeriods = snapshotDumpPeriods;
     addProperties();
   }
 
+  private static Map<String, UpdatePeriod> getSnapshotDumpPeriods(
+      Set<String> storages) {
+    Map<String, UpdatePeriod> snapshotDumpPeriods =
+        new HashMap<String, UpdatePeriod>();
+    for (String storage : storages) {
+      snapshotDumpPeriods.put(storage, null);
+    }
+    return snapshotDumpPeriods;
+  }
+
   public CubeDimensionTable(Table tbl) {
     super(tbl);
     this.dimensionReferences = getDimensionReferences(getProperties());

Modified: hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/CubeFactTable.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/CubeFactTable.java?rev=1481701&r1=1481700&r2=1481701&view=diff
==============================================================================
--- hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/CubeFactTable.java (original)
+++ hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/CubeFactTable.java Mon May 13 05:35:14 2013
@@ -19,11 +19,6 @@ public final class CubeFactTable extends
   private final String cubeName;
   private final Map<String, List<UpdatePeriod>> storageUpdatePeriods;
 
-  public CubeFactTable(String cubeName, String factName,
-      List<FieldSchema> columns) {
-    this(cubeName, factName, columns, new HashMap<String, List<UpdatePeriod>>());
-  }
-
   public CubeFactTable(Table hiveTable) {
     super(hiveTable);
     this.storageUpdatePeriods = getUpdatePeriods(getName(), getProperties());
@@ -34,15 +29,23 @@ public final class CubeFactTable extends
   public CubeFactTable(String cubeName, String factName,
       List<FieldSchema> columns,
       Map<String, List<UpdatePeriod>> storageUpdatePeriods) {
-    this(cubeName, factName, columns, storageUpdatePeriods,
+    this(cubeName, factName, columns, storageUpdatePeriods, 0L,
+        new HashMap<String, String>());
+  }
+
+  public CubeFactTable(String cubeName, String factName,
+      List<FieldSchema> columns,
+      Map<String, List<UpdatePeriod>> storageUpdatePeriods, double weight) {
+    this(cubeName, factName, columns, storageUpdatePeriods, weight,
         new HashMap<String, String>());
   }
 
   public CubeFactTable(String cubeName, String factName,
       List<FieldSchema> columns,
       Map<String, List<UpdatePeriod>> storageUpdatePeriods,
+      double weight,
       Map<String, String> properties) {
-    super(factName, columns, properties);
+    super(factName, columns, properties, weight);
     this.cubeName = cubeName;
     this.storageUpdatePeriods = storageUpdatePeriods;
     addProperties();

Modified: hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/CubeMetastoreClient.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/CubeMetastoreClient.java?rev=1481701&r1=1481700&r2=1481701&view=diff
==============================================================================
--- hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/CubeMetastoreClient.java (original)
+++ hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/CubeMetastoreClient.java Mon May 13 05:35:14 2013
@@ -4,6 +4,7 @@ import java.text.SimpleDateFormat;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
@@ -154,22 +155,30 @@ public class CubeMetastoreClient {
 
   public void createCubeFactTable(String cubeName, String factName,
       List<FieldSchema> columns,
-      Map<Storage, List<UpdatePeriod>> storageAggregatePeriods)
+      Map<Storage, List<UpdatePeriod>> storageAggregatePeriods, double weight)
       throws HiveException {
     CubeFactTable factTable = new CubeFactTable(cubeName, factName, columns,
-        getUpdatePeriods(storageAggregatePeriods));
+        getUpdatePeriods(storageAggregatePeriods), weight);
     createCubeTable(factTable, storageAggregatePeriods);
   }
 
   public void createCubeDimensionTable(String dimName,
-      List<FieldSchema> columns,
+      List<FieldSchema> columns, double weight,
       Map<String, TableReference> dimensionReferences, Set<Storage> storages)
-      throws HiveException {
+          throws HiveException {
     CubeDimensionTable dimTable = new CubeDimensionTable(dimName, columns,
-        dimensionReferences);
+        weight, getStorageNames(storages), dimensionReferences);
     createCubeTable(dimTable, storages);
   }
 
+  private Set<String> getStorageNames(Set<Storage> storages) {
+    Set<String> storageNames = new HashSet<String>();
+    for (Storage storage : storages) {
+      storageNames.add(storage.getName());
+    }
+    return storageNames;
+  }
+
   private Map<String, UpdatePeriod> getDumpPeriods(
       Map<Storage, UpdatePeriod> storageDumpPeriods) {
     if (storageDumpPeriods != null) {
@@ -186,14 +195,14 @@ public class CubeMetastoreClient {
   }
 
   public void createCubeDimensionTable(String dimName,
-      List<FieldSchema> columns,
+      List<FieldSchema> columns, double weight,
       Map<String, TableReference> dimensionReferences,
       Map<Storage, UpdatePeriod> dumpPeriods)
-      throws HiveException {
+          throws HiveException {
     // add date partitions for storages with dumpPeriods
     addDatePartitions(dumpPeriods);
     CubeDimensionTable dimTable = new CubeDimensionTable(dimName, columns,
-        dimensionReferences, getDumpPeriods(dumpPeriods));
+        weight, getDumpPeriods(dumpPeriods), dimensionReferences);
     createCubeTable(dimTable, dumpPeriods.keySet());
   }
 

Modified: hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/MetastoreConstants.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/MetastoreConstants.java?rev=1481701&r1=1481700&r2=1481701&view=diff
==============================================================================
--- hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/MetastoreConstants.java (original)
+++ hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/MetastoreConstants.java Mon May 13 05:35:14 2013
@@ -2,6 +2,8 @@ package org.apache.hadoop.hive.ql.cube.m
 
 public interface MetastoreConstants {
   public static final String TABLE_TYPE_KEY = "cube.table.type";
+  public static final String CUBE_TABLE_PFX = "cube.table.";
+  public static final String WEIGHT_KEY_SFX = ".weight";
 
   // Cube constants
   public static final String CUBE_KEY_PFX = "cube.";

Modified: hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/MetastoreUtil.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/MetastoreUtil.java?rev=1481701&r1=1481700&r2=1481701&view=diff
==============================================================================
--- hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/MetastoreUtil.java (original)
+++ hive/branches/HIVE-4115/ql/src/java/org/apache/hadoop/hive/ql/cube/metadata/MetastoreUtil.java Mon May 13 05:35:14 2013
@@ -142,6 +142,10 @@ public class MetastoreUtil implements Me
     return getCubePrefix(cubeName) + DIMENSIONS_LIST_SFX;
   }
 
+  public static final String getCubeTableKeyPrefix(String tableName) {
+    return CUBE_TABLE_PFX + tableName.toLowerCase();
+  }
+
   // //////////////////////////
   // Fact propertes ///
   // /////////////////////////
@@ -162,6 +166,10 @@ public class MetastoreUtil implements Me
     return getFactKeyPrefix(name) + CUBE_NAME_SFX;
   }
 
+  public static String getCubeTableWeightKey(String name) {
+    return getCubeTableKeyPrefix(name) + WEIGHT_KEY_SFX;
+  }
+
   // //////////////////////////
   // Utils ///
   // /////////////////////////

Modified: hive/branches/HIVE-4115/ql/src/test/org/apache/hadoop/hive/ql/cube/metadata/TestCubeMetastoreClient.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/ql/src/test/org/apache/hadoop/hive/ql/cube/metadata/TestCubeMetastoreClient.java?rev=1481701&r1=1481700&r2=1481701&view=diff
==============================================================================
--- hive/branches/HIVE-4115/ql/src/test/org/apache/hadoop/hive/ql/cube/metadata/TestCubeMetastoreClient.java (original)
+++ hive/branches/HIVE-4115/ql/src/test/org/apache/hadoop/hive/ql/cube/metadata/TestCubeMetastoreClient.java Mon May 13 05:35:14 2013
@@ -132,7 +132,7 @@ public class TestCubeMetastoreClient {
 
     // create cube fact
     client.createCubeFactTable(cubeName, factName, factColumns,
-        storageAggregatePeriods);
+        storageAggregatePeriods, 0L);
     Assert.assertTrue(client.tableExists(factName));
     Table cubeTbl = client.getHiveTable(factName);
     Assert.assertTrue(client.isFactTable(cubeTbl));
@@ -158,6 +158,62 @@ public class TestCubeMetastoreClient {
   }
 
   @Test
+  public void testCubeFactWithWeight() throws Exception {
+    String factName = "testFactWithWeight";
+    List<FieldSchema> factColumns = new ArrayList<FieldSchema>(
+        cubeMeasures.size());
+    for (CubeMeasure measure : cubeMeasures) {
+      factColumns.add(measure.getColumn());
+    }
+
+    // add one dimension of the cube
+    factColumns.add(new FieldSchema("zipcode","int", "zip"));
+
+    Map<String, List<UpdatePeriod>> updatePeriods =
+        new HashMap<String, List<UpdatePeriod>>();
+    Map<Storage, List<UpdatePeriod>> storageAggregatePeriods =
+        new HashMap<Storage, List<UpdatePeriod>>();
+    List<UpdatePeriod> updates  = new ArrayList<UpdatePeriod>();
+    updates.add(UpdatePeriod.HOURLY);
+    updates.add(UpdatePeriod.DAILY);
+    Storage hdfsStorage = new HDFSStorage("C1",
+        TextInputFormat.class.getCanonicalName(),
+        HiveIgnoreKeyTextOutputFormat.class.getCanonicalName());
+    storageAggregatePeriods.put(hdfsStorage, updates);
+    updatePeriods.put(hdfsStorage.getName(), updates);
+
+    CubeFactTable cubeFact = new CubeFactTable(cubeName, factName, factColumns,
+        updatePeriods, 100L);
+
+    // create cube fact
+    client.createCubeFactTable(cubeName, factName, factColumns,
+        storageAggregatePeriods, 100L);
+    Assert.assertTrue(client.tableExists(factName));
+    Table cubeTbl = client.getHiveTable(factName);
+    Assert.assertTrue(client.isFactTable(cubeTbl));
+    Assert.assertTrue(client.isFactTableForCube(cubeTbl, cube));
+    CubeFactTable cubeFact2 = new CubeFactTable(cubeTbl);
+    Assert.assertTrue(cubeFact.equals(cubeFact2));
+
+    // Assert for storage tables
+    for (Map.Entry<Storage, List<UpdatePeriod>> entry :
+      storageAggregatePeriods.entrySet()) {
+      List<UpdatePeriod> updatePeriodsList = entry.getValue();
+      for (UpdatePeriod period : updatePeriodsList) {
+        String storageTableName = MetastoreUtil.getFactStorageTableName(
+            factName, period, entry.getKey().getPrefix());
+        Assert.assertTrue(client.tableExists(storageTableName));
+      }
+    }
+
+    // test partition
+    client.addPartition(cubeFact, hdfsStorage, UpdatePeriod.HOURLY, now);
+    Assert.assertTrue(client.factPartitionExists(cubeFact, hdfsStorage,
+        UpdatePeriod.HOURLY, now));
+  }
+
+
+  @Test
   public void testCubeFactWithParts() throws Exception {
     List<FieldSchema> factColumns = new ArrayList<FieldSchema>(
         cubeMeasures.size());
@@ -191,7 +247,7 @@ public class TestCubeMetastoreClient {
     CubeFactTable cubeFactWithParts = new CubeFactTable(cubeName,
         factNameWithPart, factColumns, updatePeriods);
     client.createCubeFactTable(cubeName, factNameWithPart, factColumns,
-        storageAggregatePeriods);
+        storageAggregatePeriods, 0L);
     Assert.assertTrue(client.tableExists(factNameWithPart));
     Table cubeTbl = client.getHiveTable(factNameWithPart);
     Assert.assertTrue(client.isFactTable(cubeTbl));
@@ -260,7 +316,7 @@ public class TestCubeMetastoreClient {
     CubeFactTable cubeFactWithTwoStorages = new CubeFactTable(cubeName,
         factName, factColumns, updatePeriods);
     client.createCubeFactTable(cubeName, factName, factColumns,
-        storageAggregatePeriods);
+        storageAggregatePeriods, 0L);
     Assert.assertTrue(client.tableExists(factName));
     Table cubeTbl = client.getHiveTable(factName);
     Assert.assertTrue(client.isFactTable(cubeTbl));
@@ -296,6 +352,51 @@ public class TestCubeMetastoreClient {
   }
 
   @Test
+  public void testCubeDimWithWeight() throws Exception {
+    String dimName = "statetable";
+
+    List<FieldSchema>  dimColumns = new ArrayList<FieldSchema>();
+    dimColumns.add(new FieldSchema("id", "int", "state id"));
+    dimColumns.add(new FieldSchema("name", "string", "field1"));
+    dimColumns.add(new FieldSchema("capital", "string", "field2"));
+    dimColumns.add(new FieldSchema("countryid", "int", "country id"));
+
+    Map<String, TableReference> dimensionReferences =
+        new HashMap<String, TableReference>();
+    dimensionReferences.put("countryid", new TableReference("countrytable", "id"));
+
+    Map<Storage, UpdatePeriod> snapshotDumpPeriods =
+        new HashMap<Storage, UpdatePeriod>();
+    Map<String, UpdatePeriod> dumpPeriods = new HashMap<String, UpdatePeriod>();
+    Storage hdfsStorage = new HDFSStorage("C1",
+        TextInputFormat.class.getCanonicalName(),
+        HiveIgnoreKeyTextOutputFormat.class.getCanonicalName());
+    snapshotDumpPeriods.put(hdfsStorage, UpdatePeriod.HOURLY);
+    dumpPeriods.put(hdfsStorage.getName(), UpdatePeriod.HOURLY);
+    CubeDimensionTable cubeDim = new CubeDimensionTable(dimName,
+        dimColumns, 100L, dumpPeriods, dimensionReferences);
+    client.createCubeDimensionTable(dimName, dimColumns, 100L,
+        dimensionReferences, snapshotDumpPeriods);
+    Assert.assertTrue(client.tableExists(dimName));
+    Table cubeTbl = client.getHiveTable(dimName);
+    Assert.assertTrue(client.isDimensionTable(cubeTbl));
+    CubeDimensionTable cubeDim2 = new CubeDimensionTable(cubeTbl);
+    Assert.assertTrue(cubeDim.equals(cubeDim2));
+
+    // Assert for storage tables
+    for (Storage storage : snapshotDumpPeriods.keySet()) {
+      String storageTableName = MetastoreUtil.getDimStorageTableName(dimName,
+          storage.getPrefix());
+      Assert.assertTrue(client.tableExists(storageTableName));
+    }
+
+    // test partition
+    client.addPartition(cubeDim, hdfsStorage, now);
+    Assert.assertTrue(client.dimPartitionExists(cubeDim, hdfsStorage, now));
+    Assert.assertTrue(client.latestPartitionExists(cubeDim, hdfsStorage));
+  }
+
+  @Test
   public void testCubeDim() throws Exception {
     String dimName = "ziptable";
 
@@ -318,9 +419,9 @@ public class TestCubeMetastoreClient {
     snapshotDumpPeriods.put(hdfsStorage, UpdatePeriod.HOURLY);
     dumpPeriods.put(hdfsStorage.getName(), UpdatePeriod.HOURLY);
     CubeDimensionTable cubeDim = new CubeDimensionTable(dimName,
-        dimColumns, dimensionReferences, dumpPeriods);
-    client.createCubeDimensionTable(dimName, dimColumns, dimensionReferences,
-        snapshotDumpPeriods);
+        dimColumns, 0L, dumpPeriods, dimensionReferences);
+    client.createCubeDimensionTable(dimName, dimColumns, 0L,
+        dimensionReferences, snapshotDumpPeriods);
     Assert.assertTrue(client.tableExists(dimName));
     Table cubeTbl = client.getHiveTable(dimName);
     Assert.assertTrue(client.isDimensionTable(cubeTbl));
@@ -340,6 +441,7 @@ public class TestCubeMetastoreClient {
     Assert.assertTrue(client.latestPartitionExists(cubeDim, hdfsStorage));
   }
 
+
   @Test
   public void testCubeDimWithoutDumps() throws Exception {
     String dimName = "countrytable";
@@ -358,11 +460,13 @@ public class TestCubeMetastoreClient {
         TextInputFormat.class.getCanonicalName(),
         HiveIgnoreKeyTextOutputFormat.class.getCanonicalName());
     Set<Storage> storages = new HashSet<Storage>();
+    Set<String> storageNames = new HashSet<String>();
     storages.add(hdfsStorage);
+    storageNames.add(hdfsStorage.getName());
     CubeDimensionTable cubeDim = new CubeDimensionTable(dimName,
-        dimColumns, dimensionReferences);
-    client.createCubeDimensionTable(dimName, dimColumns, dimensionReferences,
-        storages);
+        dimColumns, 0L, storageNames, dimensionReferences);
+    client.createCubeDimensionTable(dimName, dimColumns, 0L,
+        dimensionReferences, storages);
     Assert.assertTrue(client.tableExists(dimName));
     Table cubeTbl = client.getHiveTable(dimName);
     Assert.assertTrue(client.isDimensionTable(cubeTbl));
@@ -405,9 +509,9 @@ public class TestCubeMetastoreClient {
     snapshotDumpPeriods.put(hdfsStorage2, null);
     dumpPeriods.put(hdfsStorage2.getName(), null);
     CubeDimensionTable cubeDim = new CubeDimensionTable(dimName,
-        dimColumns, dimensionReferences, dumpPeriods);
-    client.createCubeDimensionTable(dimName, dimColumns, dimensionReferences,
-        snapshotDumpPeriods);
+        dimColumns, 0L, dumpPeriods, dimensionReferences);
+    client.createCubeDimensionTable(dimName, dimColumns, 0L,
+        dimensionReferences, snapshotDumpPeriods);
     Assert.assertTrue(client.tableExists(dimName));
     Table cubeTbl = client.getHiveTable(dimName);
     Assert.assertTrue(client.isDimensionTable(cubeTbl));

Modified: hive/branches/HIVE-4115/ql/src/test/org/apache/hadoop/hive/ql/cube/parse/CubeTestSetup.java
URL: http://svn.apache.org/viewvc/hive/branches/HIVE-4115/ql/src/test/org/apache/hadoop/hive/ql/cube/parse/CubeTestSetup.java?rev=1481701&r1=1481700&r2=1481701&view=diff
==============================================================================
--- hive/branches/HIVE-4115/ql/src/test/org/apache/hadoop/hive/ql/cube/parse/CubeTestSetup.java (original)
+++ hive/branches/HIVE-4115/ql/src/test/org/apache/hadoop/hive/ql/cube/parse/CubeTestSetup.java Mon May 13 05:35:14 2013
@@ -118,7 +118,7 @@ public class CubeTestSetup {
 
     // create cube fact
     client.createCubeFactTable(cubeName, factName, factColumns,
-        storageAggregatePeriods);
+        storageAggregatePeriods, 0L);
   }
 
   private void createCubeFactOnlyHourly(CubeMetastoreClient client)
@@ -145,7 +145,7 @@ public class CubeTestSetup {
 
     // create cube fact
     client.createCubeFactTable(cubeName, factName, factColumns,
-        storageAggregatePeriods);
+        storageAggregatePeriods, 0L);
   }
 
   private void createCubeFactMonthly(CubeMetastoreClient client)
@@ -171,7 +171,7 @@ public class CubeTestSetup {
 
     // create cube fact
     client.createCubeFactTable(cubeName, factName, factColumns,
-        storageAggregatePeriods);
+        storageAggregatePeriods, 0L);
   }
 
   //DimWithTwoStorages
@@ -203,8 +203,8 @@ public class CubeTestSetup {
         new HashMap<Storage, UpdatePeriod>();
     snapshotDumpPeriods.put(hdfsStorage1, UpdatePeriod.HOURLY);
     snapshotDumpPeriods.put(hdfsStorage2, null);
-    client.createCubeDimensionTable(dimName, dimColumns, dimensionReferences,
-        snapshotDumpPeriods);
+    client.createCubeDimensionTable(dimName, dimColumns, 0L,
+        dimensionReferences, snapshotDumpPeriods);
   }
 
   private void createZiptable(CubeMetastoreClient client) throws Exception {
@@ -225,8 +225,8 @@ public class CubeTestSetup {
         HiveIgnoreKeyTextOutputFormat.class.getCanonicalName());
     snapshotDumpPeriods.put(hdfsStorage, UpdatePeriod.HOURLY);
     dumpPeriods.put(hdfsStorage.getName(), UpdatePeriod.HOURLY);
-    client.createCubeDimensionTable(dimName, dimColumns, dimensionReferences,
-        snapshotDumpPeriods);
+    client.createCubeDimensionTable(dimName, dimColumns, 0L,
+        dimensionReferences, snapshotDumpPeriods);
   }
 
   private void createCountryTable(CubeMetastoreClient client) throws Exception {
@@ -247,8 +247,8 @@ public class CubeTestSetup {
     Map<Storage, UpdatePeriod> snapshotDumpPeriods =
         new HashMap<Storage, UpdatePeriod>();
     snapshotDumpPeriods.put(hdfsStorage, null);
-    client.createCubeDimensionTable(dimName, dimColumns, dimensionReferences,
-        snapshotDumpPeriods);
+    client.createCubeDimensionTable(dimName, dimColumns, 0L,
+        dimensionReferences, snapshotDumpPeriods);
   }
 
   private void createStateTable(CubeMetastoreClient client) throws Exception {
@@ -271,8 +271,8 @@ public class CubeTestSetup {
     Map<Storage, UpdatePeriod> snapshotDumpPeriods =
         new HashMap<Storage, UpdatePeriod>();
     snapshotDumpPeriods.put(hdfsStorage, UpdatePeriod.HOURLY);
-    client.createCubeDimensionTable(dimName, dimColumns, dimensionReferences,
-        snapshotDumpPeriods);
+    client.createCubeDimensionTable(dimName, dimColumns, 0L,
+        dimensionReferences, snapshotDumpPeriods);
   }
 
   public void createSources() throws Exception {