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 2010/11/06 02:28:43 UTC
svn commit: r1031914 - in /hive/trunk: ./
ql/src/java/org/apache/hadoop/hive/ql/
ql/src/java/org/apache/hadoop/hive/ql/exec/
ql/src/java/org/apache/hadoop/hive/ql/lockmgr/
ql/src/java/org/apache/hadoop/hive/ql/lockmgr/zookeeper/
ql/src/java/org/apache/...
Author: heyongqiang
Date: Sat Nov 6 01:28:42 2010
New Revision: 1031914
URL: http://svn.apache.org/viewvc?rev=1031914&view=rev
Log:
HIVE-1765 Add queryid while locking.(namit via He Yongqiang)
Modified:
hive/trunk/CHANGES.txt
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/lockmgr/zookeeper/ZooKeeperHiveLockManager.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/DDLSemanticAnalyzer.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/LockTableDesc.java
hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ShowLocksDesc.java
hive/trunk/ql/src/test/org/apache/hadoop/hive/ql/QTestUtil.java
hive/trunk/ql/src/test/queries/clientpositive/lock1.q
hive/trunk/ql/src/test/queries/clientpositive/lock2.q
hive/trunk/ql/src/test/results/clientpositive/lock1.q.out
hive/trunk/ql/src/test/results/clientpositive/lock2.q.out
Modified: hive/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/hive/trunk/CHANGES.txt?rev=1031914&r1=1031913&r2=1031914&view=diff
==============================================================================
--- hive/trunk/CHANGES.txt (original)
+++ hive/trunk/CHANGES.txt Sat Nov 6 01:28:42 2010
@@ -226,6 +226,9 @@ Trunk - Unreleased
HIVE-1768 Update transident_lastDdlTime only if not specified
(Paul Yang via namit)
+ HIVE-1765 Add queryid while locking
+ (namit via He Yongqiang)
+
OPTIMIZATIONS
BUG FIXES
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=1031914&r1=1031913&r2=1031914&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 Sat Nov 6 01:28:42 2010
@@ -434,12 +434,12 @@ public class Driver implements CommandPr
List<LockObject> locks = new LinkedList<LockObject>();
if (t != null) {
- locks.add(new LockObject(new HiveLockObject(t), mode));
+ locks.add(new LockObject(new HiveLockObject(t, plan.getQueryId()), mode));
return locks;
}
if (p != null) {
- locks.add(new LockObject(new HiveLockObject(p), mode));
+ locks.add(new LockObject(new HiveLockObject(p, plan.getQueryId()), mode));
// All the parents are locked in shared mode
mode = HiveLockMode.SHARED;
@@ -450,11 +450,13 @@ public class Driver implements CommandPr
for (int idx = 0; idx < partns.length -1; idx++) {
String partn = partns[idx];
partialName += partialName + partn;
- locks.add(new LockObject(new HiveLockObject(new DummyPartition(p.getTable().getDbName() + "@" + p.getTable().getTableName() + "@" + partialName)), mode));
+ locks.add(new LockObject(new HiveLockObject(
+ new DummyPartition(p.getTable().getDbName() + "@" + p.getTable().getTableName() + "@" + partialName),
+ plan.getQueryId()), mode));
partialName += "/";
}
- locks.add(new LockObject(new HiveLockObject(p.getTable()), mode));
+ locks.add(new LockObject(new HiveLockObject(p.getTable(), plan.getQueryId()), mode));
}
return locks;
}
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=1031914&r1=1031913&r2=1031914&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 Sat Nov 6 01:28:42 2010
@@ -1233,6 +1233,7 @@ public class DDLTask extends Task<DDLWor
private int showLocks(ShowLocksDesc showLocks) throws HiveException {
Context ctx = driverContext.getCtx();
HiveLockManager lockMgr = ctx.getHiveLockMgr();
+ boolean isExt = showLocks.isExt();
if (lockMgr == null) {
throw new HiveException("show Locks LockManager not specified");
}
@@ -1279,6 +1280,10 @@ public class DDLTask extends Task<DDLWor
outStream.writeBytes(lock.getHiveLockObject().getName());
outStream.write(separator);
outStream.writeBytes(lock.getHiveLockMode().toString());
+ if (isExt) {
+ outStream.write(terminator);
+ outStream.writeBytes("QUERYID_LOCK:"+ lock.getHiveLockObject().getData());
+ }
outStream.write(terminator);
}
((FSDataOutputStream) outStream).close();
@@ -1319,7 +1324,7 @@ public class DDLTask extends Task<DDLWor
Map<String, String> partSpec = lockTbl.getPartSpec();
if (partSpec == null) {
- HiveLock lck = lockMgr.lock(new HiveLockObject(tbl), mode, true);
+ HiveLock lck = lockMgr.lock(new HiveLockObject(tbl, lockTbl.getQueryId()), mode, true);
if (lck == null) {
return 1;
}
@@ -1330,7 +1335,7 @@ public class DDLTask extends Task<DDLWor
if (par == null) {
throw new HiveException("Partition " + partSpec + " for table " + tabName + " does not exist");
}
- HiveLock lck = lockMgr.lock(new HiveLockObject(par), mode, true);
+ HiveLock lck = lockMgr.lock(new HiveLockObject(par, lockTbl.getQueryId()), mode, true);
if (lck == null) {
return 1;
}
@@ -1347,14 +1352,14 @@ public class DDLTask extends Task<DDLWor
HiveLockObject obj = null;
if (partSpec == null) {
- obj = new HiveLockObject(tbl);
+ obj = new HiveLockObject(tbl, null);
}
else {
Partition par = db.getPartition(tbl, partSpec, false);
if (par == null) {
throw new HiveException("Partition " + partSpec + " for table " + tabName + " does not exist");
}
- obj = new HiveLockObject(par);
+ obj = new HiveLockObject(par, null);
}
return obj;
}
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=1031914&r1=1031913&r2=1031914&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 Sat Nov 6 01:28:42 2010
@@ -32,19 +32,25 @@ public class HiveLockObject {
*/
private Partition p;
+ /* user supplied data for that object */
+ private String data;
+
public HiveLockObject() {
this.t = null;
this.p = null;
+ this.data = null;
}
- public HiveLockObject(Table t) {
+ public HiveLockObject(Table t, String data) {
this.t = t;
this.p = null;
+ this.data = data;
}
- public HiveLockObject(Partition p) {
+ public HiveLockObject(Partition p, String data) {
this.t = null;
this.p = p;
+ this.data = data;
}
public Table getTable() {
@@ -71,4 +77,13 @@ public class HiveLockObject {
return p.getCompleteName();
}
}
+
+ public String getData() {
+ return data;
+ }
+
+ public void setData(String data) {
+ this.data = data;
+ }
+
}
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/zookeeper/ZooKeeperHiveLockManager.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/zookeeper/ZooKeeperHiveLockManager.java?rev=1031914&r1=1031913&r2=1031914&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/zookeeper/ZooKeeperHiveLockManager.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/lockmgr/zookeeper/ZooKeeperHiveLockManager.java Sat Nov 6 01:28:42 2010
@@ -130,10 +130,10 @@ public class ZooKeeperHiveLockManager im
try {
if (keepAlive) {
- res = zooKeeper.create(name, new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);
+ res = zooKeeper.create(name, key.getData().getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.PERSISTENT_SEQUENTIAL);
}
else {
- res = zooKeeper.create(name, new byte[0], Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL);
+ res = zooKeeper.create(name, key.getData().getBytes(), Ids.OPEN_ACL_UNSAFE, CreateMode.EPHEMERAL_SEQUENTIAL);
}
int seqNo = getSequenceNumber(res, name);
@@ -241,14 +241,22 @@ public class ZooKeeperHiveLockManager im
}
for (String child : children) {
+ String data = "NULL";
child = "/" + parent + "/" + child;
- HiveLockMode mode = getLockMode(conf, child);
+ try {
+ data = new String(zkpClient.getData(child, new DummyWatcher(), null));
+ } catch (Exception e) {
+ LOG.error("Error in getting data for " + child + " " + e);
+ // ignore error
+ }
+
+ HiveLockMode mode = getLockMode(conf, child);
if (mode == null) {
continue;
}
- HiveLockObject obj = getLockObject(conf, child, mode);
+ HiveLockObject obj = getLockObject(conf, child, mode, data);
if ((key == null) ||
(obj.getName().equals(key.getName()))) {
HiveLock lck = (HiveLock)(new ZooKeeperHiveLock(child, obj, mode));
@@ -290,7 +298,8 @@ public class ZooKeeperHiveLockManager im
* For eg: if Table T is partitioned by ds, hr and ds=1/hr=1 is a valid partition,
* the lock may also correspond to T@ds=1, which is not a valid object
**/
- private static HiveLockObject getLockObject(HiveConf conf, String path, HiveLockMode mode) throws LockException {
+ private static HiveLockObject getLockObject(HiveConf conf, String path,
+ HiveLockMode mode, String data) throws LockException {
try {
Hive db = Hive.get(conf);
int indx = path.lastIndexOf(mode.toString());
@@ -302,7 +311,7 @@ public class ZooKeeperHiveLockManager im
assert (tab != null);
if (names.length == 2) {
- return new HiveLockObject(tab);
+ return new HiveLockObject(tab, data);
}
String[] parts = names[2].split(conf.getVar(HiveConf.ConfVars.DEFAULT_ZOOKEEPER_PARTITION_NAME));
@@ -322,10 +331,11 @@ public class ZooKeeperHiveLockManager im
if (partn == null) {
return new HiveLockObject(new DummyPartition(
- objName.split("/")[1].replaceAll(conf.getVar(HiveConf.ConfVars.DEFAULT_ZOOKEEPER_PARTITION_NAME), "/")));
+ objName.split("/")[1].replaceAll(conf.getVar(HiveConf.ConfVars.DEFAULT_ZOOKEEPER_PARTITION_NAME), "/")),
+ data);
}
- return new HiveLockObject(partn);
+ return new HiveLockObject(partn, data);
} catch (Exception e) {
LOG.error("Failed to create ZooKeeper object: " + e);
throw new LockException(e);
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=1031914&r1=1031913&r2=1031914&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 Sat Nov 6 01:28:42 2010
@@ -921,8 +921,9 @@ public class DDLSemanticAnalyzer extends
private void analyzeShowLocks(ASTNode ast) throws SemanticException {
String tableName = null;
HashMap<String, String> partSpec = null;
+ boolean isExtended = false;
- if (ast.getChildCount() == 1) {
+ if (ast.getChildCount() >= 1) {
// table for which show locks is being executed
ASTNode tableTypeExpr = (ASTNode) ast.getChild(0);
tableName = getFullyQualifiedName((ASTNode)tableTypeExpr.getChild(0));
@@ -932,10 +933,14 @@ public class DDLSemanticAnalyzer extends
ASTNode partspec = (ASTNode) tableTypeExpr.getChild(1);
partSpec = getPartSpec(partspec);
}
+
+ if (ast.getChildCount() >= 2) {
+ isExtended = (ast.getChild(1).getType() == HiveParser.KW_EXTENDED);
+ }
}
ShowLocksDesc showLocksDesc = new ShowLocksDesc(ctx.getResFile(), tableName,
- partSpec);
+ partSpec, isExtended);
rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(),
showLocksDesc), conf));
setFetchTask(createFetchTask(showLocksDesc.getSchema()));
@@ -966,7 +971,8 @@ public class DDLSemanticAnalyzer extends
partSpec = partSpecs.get(0);
}
- LockTableDesc lockTblDesc = new LockTableDesc(tableName, mode, partSpec);
+ LockTableDesc lockTblDesc = new LockTableDesc(tableName, mode, partSpec,
+ HiveConf.getVar(conf, ConfVars.HIVEQUERYID));
rootTasks.add(TaskFactory.get(new DDLWork(getInputs(), getOutputs(),
lockTblDesc), conf));
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g?rev=1031914&r1=1031913&r2=1031914&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/parse/Hive.g Sat Nov 6 01:28:42 2010
@@ -660,7 +660,7 @@ showStatement
| KW_SHOW KW_TABLE KW_EXTENDED ((KW_FROM|KW_IN) db_name=Identifier)? KW_LIKE showStmtIdentifier partitionSpec?
-> ^(TOK_SHOW_TABLESTATUS showStmtIdentifier $db_name? partitionSpec?)
| KW_SHOW KW_LOCKS -> ^(TOK_SHOWLOCKS)
- | KW_SHOW KW_LOCKS (parttype=partTypeExpr) -> ^(TOK_SHOWLOCKS $parttype)
+ | KW_SHOW KW_LOCKS (parttype=partTypeExpr) (isExtended=KW_EXTENDED)? -> ^(TOK_SHOWLOCKS $parttype $isExtended?)
;
lockStatement
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=1031914&r1=1031913&r2=1031914&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 Sat Nov 6 01:28:42 2010
@@ -34,14 +34,16 @@ public class LockTableDesc extends DDLDe
private String tableName;
private String mode;
private Map<String, String> partSpec;
+ private String queryId;
public LockTableDesc() {
}
- public LockTableDesc(String tableName, String mode, Map<String, String> partSpec) {
+ public LockTableDesc(String tableName, String mode, Map<String, String> partSpec, String queryId) {
this.tableName = tableName;
this.mode = mode;
this.partSpec = partSpec;
+ this.queryId = queryId;
}
public String getTableName() {
@@ -67,4 +69,12 @@ public class LockTableDesc extends DDLDe
public void setPartSpec(Map<String, String> partSpec) {
this.partSpec = partSpec;
}
+
+ public String getQueryId() {
+ return queryId;
+ }
+
+ public void setQueryId(String queryId) {
+ this.queryId = queryId;
+ }
}
Modified: hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ShowLocksDesc.java
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ShowLocksDesc.java?rev=1031914&r1=1031913&r2=1031914&view=diff
==============================================================================
--- hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ShowLocksDesc.java (original)
+++ hive/trunk/ql/src/java/org/apache/hadoop/hive/ql/plan/ShowLocksDesc.java Sat Nov 6 01:28:42 2010
@@ -33,6 +33,7 @@ public class ShowLocksDesc extends DDLDe
String resFile;
String tableName;
HashMap<String, String> partSpec;
+ boolean isExt;
/**
* table name for the result of show locks.
@@ -58,10 +59,11 @@ public class ShowLocksDesc extends DDLDe
* @param resFile
*/
public ShowLocksDesc(Path resFile, String tableName,
- HashMap<String, String> partSpec) {
- this.resFile = resFile.toString();
- this.partSpec = partSpec;
+ HashMap<String, String> partSpec, boolean isExt) {
+ this.resFile = resFile.toString();
+ this.partSpec = partSpec;
this.tableName = tableName;
+ this.isExt = isExt;
}
/**
@@ -111,4 +113,19 @@ public class ShowLocksDesc extends DDLDe
public void setResFile(String resFile) {
this.resFile = resFile;
}
+
+ /**
+ * @return the isExt
+ */
+ public boolean isExt() {
+ return isExt;
+ }
+
+ /**
+ * @param isExt
+ * the isExt to set
+ */
+ public void setExt(boolean isExt) {
+ this.isExt = isExt;
+ }
}
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=1031914&r1=1031913&r2=1031914&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 Sat Nov 6 01:28:42 2010
@@ -897,6 +897,7 @@ public class QTestUtil {
"-I", "at java",
"-I", "at junit",
"-I", "Caused by:",
+ "-I", "QUERYID_LOCK:",
"-I", "[.][.][.] [0-9]* more",
(new File(logDir, tname + ".out")).getPath(),
outFileName };
Modified: hive/trunk/ql/src/test/queries/clientpositive/lock1.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/lock1.q?rev=1031914&r1=1031913&r2=1031914&view=diff
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/lock1.q (original)
+++ hive/trunk/ql/src/test/queries/clientpositive/lock1.q Sat Nov 6 01:28:42 2010
@@ -8,6 +8,8 @@ SHOW LOCKS tstsrc;
LOCK TABLE tstsrc shared;
SHOW LOCKS;
SHOW LOCKS tstsrc;
+SHOW LOCKS tstsrc extended;
+
UNLOCK TABLE tstsrc;
SHOW LOCKS;
SHOW LOCKS tstsrc;
Modified: hive/trunk/ql/src/test/queries/clientpositive/lock2.q
URL: http://svn.apache.org/viewvc/hive/trunk/ql/src/test/queries/clientpositive/lock2.q?rev=1031914&r1=1031913&r2=1031914&view=diff
==============================================================================
--- hive/trunk/ql/src/test/queries/clientpositive/lock2.q (original)
+++ hive/trunk/ql/src/test/queries/clientpositive/lock2.q Sat Nov 6 01:28:42 2010
@@ -14,6 +14,7 @@ LOCK TABLE tstsrcpart PARTITION(ds='2008
SHOW LOCKS;
SHOW LOCKS tstsrcpart;
SHOW LOCKS tstsrcpart PARTITION(ds='2008-04-08', hr='11');
+SHOW LOCKS tstsrcpart PARTITION(ds='2008-04-08', hr='11') extended;
UNLOCK TABLE tstsrc;
SHOW LOCKS;
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=1031914&r1=1031913&r2=1031914&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/lock1.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/lock1.q.out Sat Nov 6 01:28:42 2010
@@ -49,6 +49,14 @@ 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
+PREHOOK: query: SHOW LOCKS tstsrc extended
+PREHOOK: type: SHOWLOCKS
+POSTHOOK: query: SHOW LOCKS tstsrc extended
+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
+QUERYID_LOCK:njain_20101104183131_7ee0480d-77f6-4bc2-8cec-26b808b026df
PREHOOK: query: UNLOCK TABLE tstsrc
PREHOOK: type: UNLOCKTABLE
POSTHOOK: query: UNLOCK TABLE 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=1031914&r1=1031913&r2=1031914&view=diff
==============================================================================
--- hive/trunk/ql/src/test/results/clientpositive/lock2.q.out (original)
+++ hive/trunk/ql/src/test/results/clientpositive/lock2.q.out Sat Nov 6 01:28:42 2010
@@ -97,6 +97,16 @@ 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
+PREHOOK: query: SHOW LOCKS tstsrcpart PARTITION(ds='2008-04-08', hr='11') extended
+PREHOOK: type: SHOWLOCKS
+POSTHOOK: query: SHOW LOCKS tstsrcpart PARTITION(ds='2008-04-08', hr='11') extended
+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), ]
+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
PREHOOK: query: UNLOCK TABLE tstsrc
PREHOOK: type: UNLOCKTABLE
POSTHOOK: query: UNLOCK TABLE tstsrc