You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by he...@apache.org on 2011/09/13 19:31:12 UTC

svn commit: r1170260 - in /hive/trunk/ql/src: java/org/apache/hadoop/hive/ql/ java/org/apache/hadoop/hive/ql/exec/ java/org/apache/hadoop/hive/ql/lockmgr/ java/org/apache/hadoop/hive/ql/parse/ java/org/apache/hadoop/hive/ql/plan/ test/org/apache/hadoop...

Author: heyongqiang
Date: Tue Sep 13 17:31:11 2011
New Revision: 1170260

URL: http://svn.apache.org/viewvc?rev=1170260&view=rev
Log:
HIVE-2217: add Query text for debugging in lock data (Jiayan Jiang via He Yongqiang)

Modified:
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Context.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveLockObject.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
    hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/LockTableDesc.java
    hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java
    hive/trunk/ql/src/test/results/clientpositive/lock1.q.out
    hive/trunk/ql/src/test/results/clientpositive/lock2.q.out

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Context.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Context.java?rev=1170260&r1=1170259&r2=1170260&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Context.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Context.java Tue Sep 13 17:31:11 2011
@@ -73,6 +73,7 @@ public class Context {
   private final Configuration conf;
   protected int pathid = 10000;
   protected boolean explain = false;
+  protected String cmd = "";
   // number of previous attempts
   protected int tryCount = 0;
   private TokenRewriteStream tokenRewriteStream;
@@ -125,6 +126,21 @@ public class Context {
     return explain;
   }
 
+  /**
+   * Set the original query command.
+   * @param cmd the original query command string
+   */
+  public void setCmd(String cmd) {
+    this.cmd = cmd;
+  }
+
+  /**
+   * Find the original query command.
+   * @return the original query command string
+   */
+  public String getCmd () {
+    return cmd;
+  }
 
   /**
    * Get a tmp directory on specified URI

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java?rev=1170260&r1=1170259&r2=1170260&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/Driver.java Tue Sep 13 17:31:11 2011
@@ -410,6 +410,7 @@ public class Driver implements CommandPr
       command = new VariableSubstitution().substitute(conf,command);
       ctx = new Context(conf);
       ctx.setTryCount(getTryCount());
+      ctx.setCmd(command);
 
       ParseDriver pd = new ParseDriver();
       ASTNode tree = pd.parse(command, ctx);
@@ -706,7 +707,8 @@ public class Driver implements CommandPr
     HiveLockObjectData lockData =
       new HiveLockObjectData(plan.getQueryId(),
                              String.valueOf(System.currentTimeMillis()),
-                             "IMPLICIT");
+                             "IMPLICIT",
+                             plan.getQueryStr());
 
     if (t != null) {
       locks.add(new HiveLockObj(new HiveLockObject(t, lockData), mode));
@@ -806,7 +808,8 @@ public class Driver implements CommandPr
       HiveLockObjectData lockData =
         new HiveLockObjectData(plan.getQueryId(),
                                String.valueOf(System.currentTimeMillis()),
-                               "IMPLICIT");
+                               "IMPLICIT",
+                               plan.getQueryStr());
 
       // Lock the database also
       try {

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java?rev=1170260&r1=1170259&r2=1170260&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java Tue Sep 13 17:31:11 2011
@@ -1976,12 +1976,16 @@ public class DDLTask extends Task<DDLWor
         outStream.write(separator);
         outStream.writeBytes(lock.getHiveLockMode().toString());
         if (isExt) {
-          outStream.write(terminator);
           HiveLockObjectData lockData = lock.getHiveLockObject().getData();
           if (lockData != null) {
-            outStream.writeBytes("LOCK_QUERYID:" + lockData.getQueryId() + " ");
-            outStream.writeBytes("LOCK_TIME:" + lockData.getLockTime() + " ");
-            outStream.writeBytes("LOCK_MODE:" + lockData.getLockMode() + " ");
+            outStream.write(terminator);
+            outStream.writeBytes("LOCK_QUERYID:" + lockData.getQueryId());
+            outStream.write(terminator);
+            outStream.writeBytes("LOCK_TIME:" + lockData.getLockTime());
+            outStream.write(terminator);
+            outStream.writeBytes("LOCK_MODE:" + lockData.getLockMode());
+            outStream.write(terminator);
+            outStream.writeBytes("LOCK_QUERYSTRING:" + lockData.getQueryStr());
           }
         }
         outStream.write(terminator);
@@ -2029,7 +2033,8 @@ public class DDLTask extends Task<DDLWor
     HiveLockObjectData lockData =
       new HiveLockObjectData(lockTbl.getQueryId(),
                              String.valueOf(System.currentTimeMillis()),
-                             "EXPLICIT");
+                             "EXPLICIT",
+                             lockTbl.getQueryStr());
 
     if (partSpec == null) {
       HiveLock lck = lockMgr.lock(new HiveLockObject(tbl, lockData), mode, true);

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveLockObject.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveLockObject.java?rev=1170260&r1=1170259&r2=1170260&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveLockObject.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/HiveLockObject.java Tue Sep 13 17:31:11 2011
@@ -31,13 +31,16 @@ public class HiveLockObject {
     private String lockTime; // time at which lock was acquired
     // mode of the lock: EXPLICIT(lock command)/IMPLICIT(query)
     private String lockMode;
+    private String queryStr;
 
     public HiveLockObjectData(String queryId,
                               String lockTime,
-                              String lockMode) {
+                              String lockMode,
+                              String queryStr) {
       this.queryId  = queryId;
       this.lockTime = lockTime;
       this.lockMode = lockMode;
+      this.queryStr = queryStr.trim();
     }
 
 
@@ -50,6 +53,7 @@ public class HiveLockObject {
       queryId  = elem[0];
       lockTime = elem[1];
       lockMode = elem[2];
+      queryStr = elem[3];
     }
 
     public String getQueryId() {
@@ -64,8 +68,12 @@ public class HiveLockObject {
       return lockMode;
     }
 
+    public String getQueryStr() {
+      return queryStr;
+    }
+
     public String toString() {
-      return queryId + ":" + lockTime + ":" + lockMode;
+      return queryId + ":" + lockTime + ":" + lockMode + ":" + queryStr;
     }
   }
 

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java?rev=1170260&r1=1170259&r2=1170260&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java Tue Sep 13 17:31:11 2011
@@ -1571,6 +1571,7 @@ public class DDLSemanticAnalyzer extends
 
     LockTableDesc lockTblDesc = new LockTableDesc(tableName, mode, partSpec,
                                                   HiveConf.getVar(conf, ConfVars.HIVEQUERYID));
+    lockTblDesc.setQueryStr(this.ctx.getCmd());
     rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(),
                                               lockTblDesc), conf));
 

Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/LockTableDesc.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/LockTableDesc.java?rev=1170260&r1=1170259&r2=1170260&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/LockTableDesc.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/LockTableDesc.java Tue Sep 13 17:31:11 2011
@@ -35,6 +35,7 @@ public class LockTableDesc extends DDLDe
   private String mode;
   private Map<String, String> partSpec;
   private String queryId;
+  private String queryStr;
 
   public LockTableDesc() {
   }
@@ -77,4 +78,12 @@ public class LockTableDesc extends DDLDe
   public void setQueryId(String queryId) {
     this.queryId = queryId;
   }
+
+  public String getQueryStr() {
+    return queryStr;
+  }
+
+  public void setQueryStr(String queryStr) {
+    this.queryStr = queryStr;
+  }
 }

Modified: hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java?rev=1170260&r1=1170259&r2=1170260&view=diff
==============================================================================
--- hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java (original)
+++ hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java Tue Sep 13 17:31:11 2011
@@ -948,6 +948,7 @@ public class QTestUtil {
         "-I", "at junit",
         "-I", "Caused by:",
         "-I", "LOCK_QUERYID:",
+        "-I", "LOCK_TIME:",
         "-I", "grantTime",
         "-I", "[.][.][.] [0-9]* more",
         "-I", "job_[0-9]*_[0-9]*",

Modified: hive/trunk/ql/src/test/results/clientpositive/lock1.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/lock1.q.out?rev=1170260&r1=1170259&r2=1170260&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/lock1.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/lock1.q.out Tue Sep 13 17:31:11 2011
@@ -56,7 +56,10 @@ POSTHOOK: type: SHOWLOCKS
 POSTHOOK: Lineage: tstsrc.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
 POSTHOOK: Lineage: tstsrc.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
 default@tstsrc	SHARED
-LOCK_QUERYID:njain_20101206231818_eec284bc-9a38-4ba5-b59e-7bc770db8bd2 LOCK_TIME:1291706323232 LOCK_MODE:EXPLICIT 	 
+LOCK_QUERYID:jiayan_20110907105858_10aedc77-c380-4192-871e-83b17567adab	 
+LOCK_TIME:1315418321759	 
+LOCK_MODE:EXPLICIT	 
+LOCK_QUERYSTRING:LOCK TABLE tstsrc shared	 
 PREHOOK: query: UNLOCK TABLE tstsrc
 PREHOOK: type: UNLOCKTABLE
 POSTHOOK: query: UNLOCK TABLE tstsrc
@@ -101,7 +104,10 @@ POSTHOOK: type: SHOWLOCKS
 POSTHOOK: Lineage: tstsrc.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
 POSTHOOK: Lineage: tstsrc.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
 default@tstsrc	SHARED
-LOCK_QUERYID:njain_20101206231818_8eee6b8f-abba-41f5-8e70-e6c216d488cc LOCK_TIME:1291706324145 LOCK_MODE:EXPLICIT 	 
+LOCK_QUERYID:jiayan_20110907105858_752a7b55-7426-4970-8e3a-af74dc557b70	 
+LOCK_TIME:1315418322548	 
+LOCK_MODE:EXPLICIT	 
+LOCK_QUERYSTRING:lock TABLE tstsrc SHARED	 
 PREHOOK: query: SHOW LOCKS tstsrc
 PREHOOK: type: SHOWLOCKS
 POSTHOOK: query: SHOW LOCKS tstsrc
@@ -130,9 +136,15 @@ POSTHOOK: type: SHOWLOCKS
 POSTHOOK: Lineage: tstsrc.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
 POSTHOOK: Lineage: tstsrc.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
 default@tstsrc	SHARED
-LOCK_QUERYID:njain_20101206231818_d29191d9-ed78-4e6d-80df-2fc47d70adef LOCK_TIME:1291706324583 LOCK_MODE:EXPLICIT 	 
-default@tstsrc	SHARED
-LOCK_QUERYID:njain_20101206231818_8eee6b8f-abba-41f5-8e70-e6c216d488cc LOCK_TIME:1291706324145 LOCK_MODE:EXPLICIT 	 
+LOCK_QUERYID:jiayan_20110907105858_752a7b55-7426-4970-8e3a-af74dc557b70	 
+LOCK_TIME:1315418322548	 
+LOCK_MODE:EXPLICIT	 
+LOCK_QUERYSTRING:lock TABLE tstsrc SHARED	 
+default@tstsrc	SHARED
+LOCK_QUERYID:jiayan_20110907105858_fa544f90-07cc-4176-813c-ed9a91bc56ac	 
+LOCK_TIME:1315418322895	 
+LOCK_MODE:EXPLICIT	 
+LOCK_QUERYSTRING:LOCK TABLE tstsrc SHARED	 
 PREHOOK: query: SHOW LOCKS tstsrc
 PREHOOK: type: SHOWLOCKS
 POSTHOOK: query: SHOW LOCKS tstsrc

Modified: hive/trunk/ql/src/test/results/clientpositive/lock2.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/results/clientpositive/lock2.q.out?rev=1170260&r1=1170259&r2=1170260&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/lock2.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/lock2.q.out Tue Sep 13 17:31:11 2011
@@ -106,7 +106,10 @@ POSTHOOK: Lineage: tstsrc.value SIMPLE [
 POSTHOOK: Lineage: tstsrcpart PARTITION(ds=2008-04-08,hr=11).key SIMPLE [(srcpart)srcpart.FieldSchema(name:key, type:string, comment:default), ]
 POSTHOOK: Lineage: tstsrcpart PARTITION(ds=2008-04-08,hr=11).value SIMPLE [(srcpart)srcpart.FieldSchema(name:value, type:string, comment:default), ]
 default@tstsrcpart@ds=2008-04-08/hr=11	EXCLUSIVE
-LOCK_QUERYID:njain_20101206171111_df7566b7-88ed-482a-827f-6cc3fac55d63 LOCK_TIME:1291684308414 LOCK_MODE:EXPLICIT 	 
+LOCK_QUERYID:jiayan_20110907111919_b1ed9c04-a24b-432e-be72-4953089559b9	 
+LOCK_TIME:1315419586383	 
+LOCK_MODE:EXPLICIT	 
+LOCK_QUERYSTRING:LOCK TABLE tstsrcpart PARTITION(ds='2008-04-08', hr='11') EXCLUSIVE	 
 PREHOOK: query: UNLOCK TABLE tstsrc
 PREHOOK: type: UNLOCKTABLE
 POSTHOOK: query: UNLOCK TABLE tstsrc