HiveTxnManager txnManager = ctx.getHiveTxnManager();
if (!txnManager.supportsExplicitLock()) {
throw new HiveException(ErrorMsg.LOCK_REQUEST_UNSUPPORTED,
conf.getVar(HiveConf.ConfVars.HIVE_TXN_MANAGER));
}
HiveLockManager lockMgr = txnManager.getLockManager();
if (lockMgr == null) {
throw new HiveException("unlock Table LockManager not specified");
}
String tabName = unlockTbl.getTableName();
HiveLockObject obj = getHiveObject(tabName, unlockTbl.getPartSpec());
List<HiveLock> locks = lockMgr.getLocks(obj, false, false);
if ((locks == null) || (locks.isEmpty())) {
throw new HiveException("Table " + tabName + " is not locked ");
}
Iterator<HiveLock> locksIter = locks.iterator();
while (locksIter.hasNext()) {
HiveLock lock = locksIter.next();
lockMgr.unlock(lock);
}
return 0;
}