You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by na...@apache.org on 2012/03/20 01:59:47 UTC

svn commit: r1302739 - in /hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/stats/jdbc: JDBCStatsSetupConstants.java JDBCStatsUtils.java

Author: namit
Date: Tue Mar 20 00:59:47 2012
New Revision: 1302739

URL: http://svn.apache.org/viewvc?rev=1302739&view=rev
Log:
HIVE-2471 Add timestamp column to the partition stats table.
(Kevin Wilfong via namit)


Modified:
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/stats/jdbc/JDBCStatsSetupConstants.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/stats/jdbc/JDBCStatsUtils.java

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/stats/jdbc/JDBCStatsSetupConstants.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/stats/jdbc/JDBCStatsSetupConstants.java?rev=1302739&r1=1302738&r2=1302739&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/stats/jdbc/JDBCStatsSetupConstants.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/stats/jdbc/JDBCStatsSetupConstants.java Tue Mar 20 00:59:47 2012
@@ -21,7 +21,12 @@ public final class JDBCStatsSetupConstan
 
   public static final String PART_STAT_ID_COLUMN_NAME = "ID";
 
-  public static final String PART_STAT_TABLE_NAME = "PARTITION_STATS";
+  public static final String PART_STAT_TIMESTAMP_COLUMN_NAME = "TS";
+
+  // NOTE:
+  // For all table names past and future, Hive will not drop old versions of this table, it is up
+  // to the administrator
+  public static final String PART_STAT_TABLE_NAME = "PARTITION_STATS_V2";
 
   // supported statistics - column names
 

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/stats/jdbc/JDBCStatsUtils.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/stats/jdbc/JDBCStatsUtils.java?rev=1302739&r1=1302738&r2=1302739&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/stats/jdbc/JDBCStatsUtils.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/stats/jdbc/JDBCStatsUtils.java Tue Mar 20 00:59:47 2012
@@ -72,6 +72,10 @@ public class JDBCStatsUtils {
     return JDBCStatsSetupConstants.PART_STAT_ID_COLUMN_NAME;
   }
 
+  public static String getTimestampColumnName() {
+    return JDBCStatsSetupConstants.PART_STAT_TIMESTAMP_COLUMN_NAME;
+  }
+
   public static String getStatTableName() {
     return JDBCStatsSetupConstants.PART_STAT_TABLE_NAME;
   }
@@ -104,7 +108,8 @@ public class JDBCStatsUtils {
    */
   public static String getCreate(String comment) {
     String create = "CREATE TABLE /* " + comment + " */ " + JDBCStatsUtils.getStatTableName() +
-          " (" + JDBCStatsUtils.getIdColumnName() + " VARCHAR(255) PRIMARY KEY ";
+          " (" + getTimestampColumnName() + " TIMESTAMP DEFAULT CURRENT_TIMESTAMP, " +
+          JDBCStatsUtils.getIdColumnName() + " VARCHAR(255) PRIMARY KEY ";
     for (int i = 0; i < supportedStats.size(); i++) {
       create += ", " + getStatColumnName(supportedStats.get(i)) + " BIGINT ";
     }
@@ -120,7 +125,7 @@ public class JDBCStatsUtils {
     for (int i = 0; i < supportedStats.size(); i++) {
       update += columnNameMapping.get(supportedStats.get(i)) + " = ? , ";
     }
-    update = update.substring(0, update.length() - 2);
+    update += getTimestampColumnName() + " = CURRENT_TIMESTAMP";
     update += " WHERE " + JDBCStatsUtils.getIdColumnName() + " = ? AND ? > ( SELECT TEMP."
         + getStatColumnName(getBasicStat()) + " FROM ( " +
         " SELECT " + getStatColumnName(getBasicStat()) + " FROM " + getStatTableName() + " WHERE "
@@ -132,12 +137,15 @@ public class JDBCStatsUtils {
    * Prepares INSERT statement for statistic publishing.
    */
   public static String getInsert(String comment) {
-    String insert = "INSERT INTO /* " + comment + " */ " + getStatTableName() + " VALUES (?, ";
+    String columns = JDBCStatsUtils.getIdColumnName();
+    String values = "?";
+
     for (int i = 0; i < supportedStats.size(); i++) {
-      insert += "? , ";
+      columns += ", " + getStatColumnName(supportedStats.get(i));
+      values += ", ?";
     }
-    insert = insert.substring(0, insert.length() - 3);
-    insert += ")";
+    String insert = "INSERT INTO /* " + comment + " */ " + getStatTableName() + "(" + columns +
+        ") VALUES (" + values + ")";
     return insert;
   }