You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by jx...@apache.org on 2015/11/04 17:05:04 UTC

hive git commit: HIVE-12317: Emit current database in lineage info (Jimmy, reviewed by Yongzhi)

Repository: hive
Updated Branches:
  refs/heads/branch-1 e3f72d52b -> 8d287c118


HIVE-12317: Emit current database in lineage info (Jimmy, reviewed by Yongzhi)


Project: http://git-wip-us.apache.org/repos/asf/hive/repo
Commit: http://git-wip-us.apache.org/repos/asf/hive/commit/8d287c11
Tree: http://git-wip-us.apache.org/repos/asf/hive/tree/8d287c11
Diff: http://git-wip-us.apache.org/repos/asf/hive/diff/8d287c11

Branch: refs/heads/branch-1
Commit: 8d287c11814355c077d18238f68cf22b50472da0
Parents: e3f72d5
Author: Jimmy Xiang <jx...@apache.org>
Authored: Mon Nov 2 13:43:56 2015 -0800
Committer: Jimmy Xiang <jx...@apache.org>
Committed: Wed Nov 4 08:04:25 2015 -0800

----------------------------------------------------------------------
 .../hadoop/hive/ql/hooks/LineageLogger.java     |  1 +
 .../test/results/clientpositive/lineage2.q.out  | 36 ++++++++++++++++++++
 .../test/results/clientpositive/lineage3.q.out  | 30 ++++++++++++++++
 3 files changed, 67 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hive/blob/8d287c11/ql/src/java/org/apache/hadoop/hive/ql/hooks/LineageLogger.java
----------------------------------------------------------------------
diff --git a/ql/src/java/org/apache/hadoop/hive/ql/hooks/LineageLogger.java b/ql/src/java/org/apache/hadoop/hive/ql/hooks/LineageLogger.java
index 303bfdf..71d97ea 100644
--- a/ql/src/java/org/apache/hadoop/hive/ql/hooks/LineageLogger.java
+++ b/ql/src/java/org/apache/hadoop/hive/ql/hooks/LineageLogger.java
@@ -171,6 +171,7 @@ public class LineageLogger implements ExecuteWithHookContext {
         }
         writer.name("engine").value(
           HiveConf.getVar(conf, HiveConf.ConfVars.HIVE_EXECUTION_ENGINE));
+        writer.name("database").value(ss.getCurrentDatabase());
         writer.name("hash").value(getQueryHash(queryStr));
         writer.name("queryText").value(queryStr);
 

http://git-wip-us.apache.org/repos/asf/hive/blob/8d287c11/ql/src/test/results/clientpositive/lineage2.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/lineage2.q.out b/ql/src/test/results/clientpositive/lineage2.q.out
index a4be18a..88c743f 100644
--- a/ql/src/test/results/clientpositive/lineage2.q.out
+++ b/ql/src/test/results/clientpositive/lineage2.q.out
@@ -8,6 +8,7 @@ PREHOOK: Output: default@src2
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "3a39d46286e4c2cd2139c9bb248f7b4f",
   "queryText": "create table src2 as select key key2, value value2 from src1",
   "edges": [
@@ -60,6 +61,7 @@ PREHOOK: Input: default@src1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "b5b224847b2333e790a2c229434a04c8",
   "queryText": "select * from src1 where key is not null and value is not null limit 3",
   "edges": [
@@ -127,6 +129,7 @@ PREHOOK: Input: default@src1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "773d9d0ea92e797eae292ae1eeea11ab",
   "queryText": "select * from src1 where key > 10 and value > 'val' order by key limit 5",
   "edges": [
@@ -199,6 +202,7 @@ PREHOOK: Output: default@dest1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "712fe958c357bcfc978b95c43eb19084",
   "queryText": "create table dest1 as select * from src1",
   "edges": [
@@ -251,6 +255,7 @@ PREHOOK: Output: default@dest1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "ecc718a966d8887b18084a55dd96f0bc",
   "queryText": "insert into table dest1 select * from src2",
   "edges": [
@@ -303,6 +308,7 @@ PREHOOK: Input: default@dest1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "416b6f4cd63edd4f9d8213d2d7819d21",
   "queryText": "select key k, dest1.value from dest1",
   "edges": [
@@ -406,6 +412,7 @@ PREHOOK: Input: default@src2
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "50fa3d1074b3fda37ce11dc6ec92ebf3",
   "queryText": "select key from src1 union select key2 from src2 order by key",
   "edges": [
@@ -463,6 +470,7 @@ PREHOOK: Input: default@src2
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "a739460bd79c8c91ec35e22c97329769",
   "queryText": "select key k from src1 union select key2 from src2 order by k",
   "edges": [
@@ -519,6 +527,7 @@ PREHOOK: Input: default@dest1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "3901b5e3a164064736b3234355046340",
   "queryText": "select key, count(1) a from dest1 group by key",
   "edges": [
@@ -588,6 +597,7 @@ PREHOOK: Input: default@dest1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "0d5a212f10847aeaab31e8c31121e6d4",
   "queryText": "select key k, count(*) from dest1 group by key",
   "edges": [
@@ -657,6 +667,7 @@ PREHOOK: Input: default@dest1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "56429eccb04ded722f5bd9d9d8cf7260",
   "queryText": "select key k, count(value) from dest1 group by key",
   "edges": [
@@ -726,6 +737,7 @@ PREHOOK: Input: default@dest1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "7e1cfc3dece85b41b6f7c46365580cde",
   "queryText": "select value, max(length(key)) from dest1 group by value",
   "edges": [
@@ -798,6 +810,7 @@ PREHOOK: Input: default@dest1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "c6578ce1dd72498c4af33f20f164e483",
   "queryText": "select value, max(length(key)) from dest1 group by value order by value limit 5",
   "edges": [
@@ -856,6 +869,7 @@ PREHOOK: Input: default@dest1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "91fbcea5cb34362071555cd93e8d0abe",
   "queryText": "select key, length(value) from dest1",
   "edges": [
@@ -959,6 +973,7 @@ PREHOOK: Input: default@dest1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "3d8a347cc9052111cb328938d37b9b03",
   "queryText": "select length(value) + 3 from dest1",
   "edges": [
@@ -1043,6 +1058,7 @@ PREHOOK: Input: default@dest1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "bae960bf4376ec00e37258469b17360d",
   "queryText": "select 5 from dest1",
   "edges": [
@@ -1120,6 +1136,7 @@ PREHOOK: Input: default@dest1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "753abad4d55afd3df34fdc73abfcd44d",
   "queryText": "select 3 * 5 from dest1",
   "edges": [
@@ -1201,6 +1218,7 @@ PREHOOK: Output: default@dest2
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "386791c174a4999fc916e300b5e76bf2",
   "queryText": "create table dest2 as select * from src1 JOIN src2 ON src1.key = src2.key2",
   "edges": [
@@ -1306,6 +1324,7 @@ PREHOOK: Output: default@dest2
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "e494b771d94800dc3430bf5d0810cd9f",
   "queryText": "insert overwrite table dest2 select * from src1 JOIN src2 ON src1.key = src2.key2",
   "edges": [
@@ -1411,6 +1430,7 @@ PREHOOK: Output: default@dest2
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "efeaddd0d36105b1013b414627850dc2",
   "queryText": "insert into table dest2 select * from src1 JOIN src2 ON src1.key = src2.key2",
   "edges": [
@@ -1517,6 +1537,7 @@ PREHOOK: Output: default@dest2
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "e9450a56b3d103642e06bef0e4f0d482",
   "queryText": "insert into table dest2\n  select * from src1 JOIN src2 ON length(src1.value) = length(src2.value2) + 1",
   "edges": [
@@ -1621,6 +1642,7 @@ PREHOOK: Input: default@src1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "4028c94d222d5dd221f651d414386972",
   "queryText": "select * from src1 where length(key) > 2",
   "edges": [
@@ -1697,6 +1719,7 @@ PREHOOK: Input: default@src1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "5727531f7743cfcd60d634d8c835515f",
   "queryText": "select * from src1 where length(key) > 2 and value > 'a'",
   "edges": [
@@ -1776,6 +1799,7 @@ PREHOOK: Output: default@dest3
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "a2c4e9a3ec678039814f5d84b1e38ce4",
   "queryText": "create table dest3 as\n  select * from src1 JOIN src2 ON src1.key = src2.key2 WHERE length(key) > 1",
   "edges": [
@@ -1895,6 +1919,7 @@ PREHOOK: Output: default@dest2
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "76d84512204ddc576ad4d93f252e4358",
   "queryText": "insert overwrite table dest2\n  select * from src1 JOIN src2 ON src1.key = src2.key2 WHERE length(key) > 3",
   "edges": [
@@ -2029,6 +2054,7 @@ PREHOOK: Output: default@dest_l1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "60b589744e2527dd235a6c8168d6a653",
   "queryText": "INSERT OVERWRITE TABLE dest_l1\nSELECT j.*\nFROM (SELECT t1.key, p1.value\n      FROM src1 t1\n      LEFT OUTER JOIN src p1\n      ON (t1.key = p1.key)\n      UNION ALL\n      SELECT t2.key, p2.value\n      FROM src1 t2\n      LEFT OUTER JOIN src p2\n      ON (t2.key = p2.key)) j",
   "edges": [
@@ -2136,6 +2162,7 @@ PREHOOK: Output: default@tgt
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "f59797e0422d2e51515063374dfac361",
   "queryText": "INSERT INTO TABLE tgt\nSELECT emd.dept_name, emd.name, emd.emp_id, emd.mgr_id, p.project_id, p.project_name\nFROM (\n  SELECT d.dept_name, em.name, em.emp_id, em.mgr_id, em.dept_id\n  FROM (\n    SELECT e.name, e.dept_id, e.emp_id emp_id, m.emp_id mgr_id\n    FROM emp e JOIN emp m ON e.emp_id = m.emp_id\n    ) em\n  JOIN dept d ON d.dept_id = em.dept_id\n  ) emd JOIN project p ON emd.dept_id = p.project_id",
   "edges": [
@@ -2325,6 +2352,7 @@ PREHOOK: Output: default@dest_l2
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "e001334e3f8384806b0f25a7c303045f",
   "queryText": "insert into dest_l2 values(0, 1, 100, 10000)",
   "edges": [
@@ -2394,6 +2422,7 @@ PREHOOK: Input: default@dest_l2
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "a2c96a96be9d315ede966be5b45ef20e",
   "queryText": "select * from (\n  select c1 + c2 x from dest_l2\n  union all\n  select sum(c3) y from (select c3 from dest_l2) v1) v2 order by x",
   "edges": [
@@ -2448,6 +2477,7 @@ PREHOOK: Output: default@dest_l3
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "09df51ba6ba2d07f2304523ee505f094",
   "queryText": "insert into dest_l3 values(0, \"s1\", \"s2\", 15)",
   "edges": [
@@ -2510,6 +2540,7 @@ PREHOOK: Input: default@dest_l2
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "0ae7aa4a0cbd1283210fa79e8a19104a",
   "queryText": "select sum(a.c1) over (partition by a.c1 order by a.id)\nfrom dest_l2 a\nwhere a.c2 != 10\ngroup by a.c1, a.c2, a.id\nhaving count(a.c2) > 0",
   "edges": [
@@ -2583,6 +2614,7 @@ PREHOOK: Input: default@dest_l3
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "01879c619517509d9f5b6ead998bb4bb",
   "queryText": "select sum(a.c1), count(b.c1), b.c2, b.c3\nfrom dest_l2 a join dest_l3 b on (a.id = b.id)\nwhere a.c2 != 10 and b.c3 > 0\ngroup by a.c1, a.c2, a.id, b.c1, b.c2, b.c3\nhaving count(a.c2) > 0\norder by b.c3 limit 5",
   "edges": [
@@ -2739,6 +2771,7 @@ PREHOOK: Output: default@t
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "0d2f15b494111ffe236d5be42a76fa28",
   "queryText": "create table t as\nselect distinct a.c2, a.c3 from dest_l2 a\ninner join dest_l3 b on (a.id = b.id)\nwhere a.id > 0 and b.c3 = 15",
   "edges": [
@@ -2833,6 +2866,7 @@ PREHOOK: Input: default@src1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "5b1022708124ee2b80f9e2e8a0dcb15c",
   "queryText": "SELECT substr(src1.key,1,1), count(DISTINCT substr(src1.value,5)),\nconcat(substr(src1.key,1,1),sum(substr(src1.value,5)))\nfrom src1\nGROUP BY substr(src1.key,1,1)",
   "edges": [
@@ -2927,6 +2961,7 @@ PREHOOK: Input: default@relations
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "bb30b94d13d0b35802db85b4e33230b3",
   "queryText": "select identity, ep1_id from relations\n  lateral view explode(ep1_ids) nav_rel as ep1_id",
   "edges": [
@@ -2983,6 +3018,7 @@ PREHOOK: Output: default@rels_exploded
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "e76d2efade744d1d5cf74fda064ba6c6",
   "queryText": "insert into rels_exploded select identity, type,\n  ep1_src_type, ep1_type, ep2_src_type, ep2_type, ep1_id, ep2_id\nfrom relations lateral view explode(ep1_ids) rel1 as ep1_id\n  lateral view explode (ep2_ids) rel2 as ep2_id",
   "edges": [

http://git-wip-us.apache.org/repos/asf/hive/blob/8d287c11/ql/src/test/results/clientpositive/lineage3.q.out
----------------------------------------------------------------------
diff --git a/ql/src/test/results/clientpositive/lineage3.q.out b/ql/src/test/results/clientpositive/lineage3.q.out
index 562efc6..50b5b12 100644
--- a/ql/src/test/results/clientpositive/lineage3.q.out
+++ b/ql/src/test/results/clientpositive/lineage3.q.out
@@ -13,6 +13,7 @@ PREHOOK: Output: default@d1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "4c9b7b8d89403cef78668f15d393e542",
   "queryText": "from (select a.ctinyint x, b.cstring1 y\nfrom alltypesorc a join alltypesorc b on a.cint = b.cbigint) t\ninsert into table d1 select x + length(y)",
   "edges": [
@@ -84,6 +85,7 @@ PREHOOK: Output: default@d2
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "8703e4091ebd4c96afd3cac83e3a2957",
   "queryText": "from (select a.ctinyint x, b.cstring1 y\nfrom alltypesorc a join alltypesorc b on a.cint = b.cbigint) t\ninsert into table d1 select x where y is null\ninsert into table d2 select y where x > 0",
   "edges": [
@@ -186,6 +188,7 @@ PREHOOK: Output: default@t
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "761b3a1f405d8e719d3f0c9147b57a23",
   "queryText": "create table t as\nselect * from\n  (select * from\n     (select key from src1 limit 1) v1) v2",
   "edges": [
@@ -229,6 +232,7 @@ PREHOOK: Output: default@dest_l1@ds=today
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "2b5891d094ff74e23ec6acf5b4990f45",
   "queryText": "insert into table dest_l1 partition (ds='today')\nselect cint, cast(cstring1 as varchar(128)) as cs\nfrom alltypesorc\nwhere cint is not null and cint < 0 order by cint, cs limit 5",
   "edges": [
@@ -298,6 +302,7 @@ PREHOOK: Output: default@dest_l1@ds=tomorrow
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "4ad6338a8abfe3fe0342198fcbd1f11d",
   "queryText": "insert into table dest_l1 partition (ds='tomorrow')\nselect min(cint), cast(min(cstring1) as varchar(128)) as cs\nfrom alltypesorc\nwhere cint is not null and cboolean1 = true\ngroup by csmallint\nhaving min(cbigint) > 10",
   "edges": [
@@ -386,6 +391,7 @@ PREHOOK: Input: default@alltypesorc
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "351b08ec58591554ec10a6ded68ef25f",
   "queryText": "select cint, rank() over(order by cint) from alltypesorc\nwhere cint > 10 and cint < 10000 limit 10",
   "edges": [
@@ -525,6 +531,7 @@ PREHOOK: Input: default@alltypesorc
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "40c3faa7abd1cdb7f12c1047a8a1d2ce",
   "queryText": "select a.ctinyint, a.cint, count(a.cdouble)\n  over(partition by a.ctinyint order by a.cint desc\n    rows between 1 preceding and 1 following)\nfrom alltypesorc a inner join alltypesorc b on a.cint = b.cbigint\norder by a.ctinyint, a.cint",
   "edges": [
@@ -624,6 +631,7 @@ PREHOOK: Input: default@alltypesorc
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "a083a5322b6a83af6f614f299d0361e4",
   "queryText": "with v2 as\n  (select cdouble, count(cint) over() a,\n    sum(cint + cbigint) over(partition by cboolean1) b\n    from (select * from alltypesorc) v1)\nselect cdouble, a, b, a + b, cdouble + a from v2\nwhere cdouble is not null\norder by cdouble, a, b limit 5",
   "edges": [
@@ -844,6 +852,7 @@ PREHOOK: Input: default@alltypesorc
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "afd760470fc5aa6d3e8348dee03af97f",
   "queryText": "select a.cbigint, a.ctinyint, b.cint, b.ctinyint\nfrom\n  (select ctinyint, cbigint from alltypesorc\n   union all\n   select ctinyint, cbigint from alltypesorc) a\n  inner join\n  alltypesorc b\n  on (a.ctinyint = b.ctinyint)\nwhere b.ctinyint < 100 and a.cbigint is not null and b.cint is not null\norder by a.cbigint, a.ctinyint, b.cint, b.ctinyint limit 5",
   "edges": [
@@ -1011,6 +1020,7 @@ PREHOOK: Input: default@alltypesorc
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "3a12ad24b2622a8958df12d0bdc60f8a",
   "queryText": "select x.ctinyint, x.cint, c.cbigint-100, c.cstring1\nfrom alltypesorc c\njoin (\n   select a.ctinyint ctinyint, b.cint cint\n   from (select * from alltypesorc a where cboolean1=false) a\n   join alltypesorc b on (a.cint = b.cbigint - 224870380)\n ) x on (x.cint = c.cint)\nwhere x.ctinyint > 10\nand x.cint < 4.5\nand x.ctinyint + length(c.cstring2) < 1000",
   "edges": [
@@ -1224,6 +1234,7 @@ PREHOOK: Input: default@alltypesorc
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "bc64f8bec21631969a17930ec609cde9",
   "queryText": "select c1, x2, x3\nfrom (\n  select c1, min(c2) x2, sum(c3) x3\n  from (\n    select c1, c2, c3\n    from (\n      select cint c1, ctinyint c2, min(cbigint) c3\n      from alltypesorc\n      where cint is not null\n      group by cint, ctinyint\n      order by cint, ctinyint\n      limit 5\n    ) x\n  ) x2\n  group by c1\n) y\nwhere x2 > 0\norder by x2, c1 desc",
   "edges": [
@@ -1324,6 +1335,7 @@ PREHOOK: Input: default@src1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "8b9d63653e36ecf4dd425d3cc3de9199",
   "queryText": "select key, value from src1\nwhere key in (select key+18 from src1) order by key",
   "edges": [
@@ -1403,6 +1415,7 @@ PREHOOK: Input: default@src1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "8bf193b0658183be94e2428a79d91d10",
   "queryText": "select * from src1 a\nwhere exists\n  (select cint from alltypesorc b\n   where a.key = b.ctinyint + 300)\nand key > 300",
   "edges": [
@@ -1495,6 +1508,7 @@ PREHOOK: Input: default@src1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "9b488fe1d7cf018aad3825173808cd36",
   "queryText": "select key, value from src1\nwhere key not in (select key+18 from src1) order by key",
   "edges": [
@@ -1619,6 +1633,7 @@ PREHOOK: Input: default@src1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "53191056e05af9080a30de853e8cea9c",
   "queryText": "select * from src1 a\nwhere not exists\n  (select cint from alltypesorc b\n   where a.key = b.ctinyint + 300)\nand key > 300",
   "edges": [
@@ -1732,6 +1747,7 @@ PREHOOK: Input: default@src1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "d40d80b93db06c12df9a6ccdc108a9d1",
   "queryText": "with t as (select key x, value y from src1 where key > '2')\nselect x, y from t where y > 'v' order by x, y limit 5",
   "edges": [
@@ -1812,6 +1828,7 @@ PREHOOK: Input: default@src1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "9180b71a610dbcf5e636a3c03e48ca3b",
   "queryText": "from (select key x, value y from src1 where key > '2') t\nselect x, y where y > 'v' order by x, y limit 5",
   "edges": [
@@ -1895,6 +1912,7 @@ PREHOOK: Output: default@dest_v1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "a3b2d2665c90fd669400f247f751f081",
   "queryText": "create view dest_v1 as\n  select ctinyint, cint from alltypesorc where ctinyint is not null",
   "edges": [
@@ -1959,6 +1977,7 @@ PREHOOK: Input: default@dest_v1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "75e07b246069a5541af4a3983500b439",
   "queryText": "select * from dest_v1 order by ctinyint, cint limit 2",
   "edges": [
@@ -2025,6 +2044,7 @@ PREHOOK: Output: default@dest_v1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "bcab8b0c498b0d94e0967170956392b6",
   "queryText": "alter view dest_v1 as select ctinyint from alltypesorc",
   "edges": [
@@ -2060,6 +2080,7 @@ PREHOOK: Input: default@dest_v1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "b0192d4da86f4bef38fe7ab1fc607906",
   "queryText": "select t.ctinyint from (select * from dest_v1 where ctinyint is not null) t\nwhere ctinyint > 10 order by ctinyint limit 2",
   "edges": [
@@ -2133,6 +2154,7 @@ PREHOOK: Output: default@dest_v2
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "eda442b42b9c3a9cbdb7aff1984ad2dd",
   "queryText": "create view dest_v2 (a, b) as select c1, x2\nfrom (\n  select c1, min(c2) x2\n  from (\n    select c1, c2, c3\n    from (\n      select cint c1, ctinyint c2, min(cfloat) c3\n      from alltypesorc\n      group by cint, ctinyint\n      order by cint, ctinyint\n      limit 1\n    ) x\n  ) x2\n  group by c1\n) y\norder by x2,c1 desc",
   "edges": [
@@ -2202,6 +2224,7 @@ PREHOOK: Output: default@dest_v3
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "a0c2481ce1c24895a43a950f93a10da7",
   "queryText": "create view dest_v3 (a1, a2, a3, a4, a5, a6, a7) as\n  select x.csmallint, x.cbigint bint1, x.ctinyint, c.cbigint bint2, x.cint, x.cfloat, c.cstring1\n  from alltypesorc c\n  join (\n     select a.csmallint csmallint, a.ctinyint ctinyint, a.cstring2 cstring2,\n           a.cint cint, a.cstring1 ctring1, b.cfloat cfloat, b.cbigint cbigint\n     from ( select * from alltypesorc a where cboolean1=true ) a\n     join alltypesorc b on (a.csmallint = b.cint)\n   ) x on (x.ctinyint = c.cbigint)\n  where x.csmallint=11\n  and x.cint > 899\n  and x.cfloat > 4.5\n  and c.cstring1 < '7'\n  and x.cint + x.cfloat + length(c.cstring1) < 1000",
   "edges": [
@@ -2422,6 +2445,7 @@ PREHOOK: Output: default@dest_v3
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "949093880975cc807ad1a8003e8a8c7c",
   "queryText": "alter view dest_v3 as\n  select * from (\n    select sum(a.ctinyint) over (partition by a.csmallint order by a.csmallint) a,\n      count(b.cstring1) x, b.cboolean1\n    from alltypesorc a join alltypesorc b on (a.cint = b.cint)\n    where a.cboolean2 = true and b.cfloat > 0\n    group by a.ctinyint, a.csmallint, b.cboolean1\n    having count(a.cint) > 10\n    order by a, x, b.cboolean1 limit 10) t",
   "edges": [
@@ -2557,6 +2581,7 @@ PREHOOK: Input: default@dest_v3
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "40bccc0722002f798d0548b59e369e83",
   "queryText": "select * from dest_v3 limit 2",
   "edges": [
@@ -2728,6 +2753,7 @@ PREHOOK: Output: default@dest_dp1
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "b2d38401a3281e74a003d9650df97060",
   "queryText": "insert into dest_dp1 partition (year) select first, word, year from src_dp",
   "edges": [
@@ -2799,6 +2825,7 @@ PREHOOK: Output: default@dest_dp2
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "237302d8ffd62b5b71d9544b22de7770",
   "queryText": "insert into dest_dp2 partition (y, m) select first, word, year, month from src_dp",
   "edges": [
@@ -2889,6 +2916,7 @@ PREHOOK: Output: default@dest_dp2@y=0
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "63e990b47e7ab4eb6f2ea09dfb7453ff",
   "queryText": "insert into dest_dp2 partition (y=0, m) select first, word, month from src_dp where year=0",
   "edges": [
@@ -2977,6 +3005,7 @@ PREHOOK: Output: default@dest_dp3@y=0
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "6bf71a9d02c0612c63b6f40b15c1e8b3",
   "queryText": "insert into dest_dp3 partition (y=0, m, d) select first, word, month m, day d from src_dp where year=0",
   "edges": [
@@ -3102,6 +3131,7 @@ PREHOOK: Output: default@dest_dp3@y=2
 POSTHOOK: LINEAGE: {
   "version": "1.0",
   "engine": "mr",
+  "database": "default",
   "hash": "44f16edbf35cfeaf3d4f7b0113a69b74",
   "queryText": "from src_dp, src_dp1\ninsert into dest_dp1 partition (year) select first, word, year\ninsert into dest_dp2 partition (y, m) select first, word, year, month\ninsert into dest_dp3 partition (y=2, m, d) select first, word, month m, day d where year=2\ninsert into dest_dp2 partition (y=1, m) select f, w, m\ninsert into dest_dp1 partition (year=0) select f, w",
   "edges": [