Index: ql/src/test/results/clientpositive/lock1.q.out =================================================================== --- ql/src/test/results/clientpositive/lock1.q.out (revision 1036147) +++ ql/src/test/results/clientpositive/lock1.q.out (working copy) @@ -56,7 +56,7 @@ 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 -QUERYID_LOCK:njain_20101104183131_7ee0480d-77f6-4bc2-8cec-26b808b026df +QUERYID_LOCK:njain_20101116183333_f1267a1d-8cc2-4077-ab5d-380708a0494b TIME : 1289961194566 PREHOOK: query: UNLOCK TABLE tstsrc PREHOOK: type: UNLOCKTABLE POSTHOOK: query: UNLOCK TABLE tstsrc Index: ql/src/test/results/clientpositive/lock2.q.out =================================================================== --- ql/src/test/results/clientpositive/lock2.q.out (revision 1036147) +++ ql/src/test/results/clientpositive/lock2.q.out (working copy) @@ -106,7 +106,7 @@ 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 -QUERYID_LOCK:njain_20101105120303_b0e12da7-8ccf-4c7a-822f-166d35c6b6d4 +QUERYID_LOCK:njain_20101116183333_f625d313-c8ac-4ecf-87f8-ef6459651b9d TIME : 1289961212197 PREHOOK: query: UNLOCK TABLE tstsrc PREHOOK: type: UNLOCKTABLE POSTHOOK: query: UNLOCK TABLE tstsrc Index: ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java =================================================================== --- ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (revision 1036147) +++ ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java (working copy) @@ -41,6 +41,7 @@ import java.util.SortedSet; import java.util.TreeSet; import java.util.Map.Entry; +import java.lang.Long; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; @@ -1343,7 +1344,16 @@ outStream.writeBytes(lock.getHiveLockMode().toString()); if (isExt) { outStream.write(terminator); - outStream.writeBytes("QUERYID_LOCK:"+ lock.getHiveLockObject().getData()); + String lockData = lock.getHiveLockObject().getData(); + if (lockData != null) { + String[] lockDataArr = lockData.split(":"); + if (lockDataArr.length == 1) { + outStream.writeBytes("QUERYID_LOCK:" + lockData); + } + else { + outStream.writeBytes("QUERYID_LOCK:" + lockDataArr[0] + " TIME : " + Long.parseLong(lockDataArr[1])); + } + } } outStream.write(terminator); } @@ -1384,8 +1394,10 @@ } Map partSpec = lockTbl.getPartSpec(); + String lockData = lockTbl.getQueryId() + ":" + String.valueOf(System.currentTimeMillis()); + if (partSpec == null) { - HiveLock lck = lockMgr.lock(new HiveLockObject(tbl, lockTbl.getQueryId()), mode, true); + HiveLock lck = lockMgr.lock(new HiveLockObject(tbl, lockData), mode, true); if (lck == null) { return 1; } @@ -1396,7 +1408,7 @@ if (par == null) { throw new HiveException("Partition " + partSpec + " for table " + tabName + " does not exist"); } - HiveLock lck = lockMgr.lock(new HiveLockObject(par, lockTbl.getQueryId()), mode, true); + HiveLock lck = lockMgr.lock(new HiveLockObject(par, lockData), mode, true); if (lck == null) { return 1; }