diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java index fc156c7..3ccf03d 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java @@ -4420,6 +4420,10 @@ private int createView(Hive db, CreateViewDesc crtView) throws HiveException { HiveMaterializedViewsRegistry.get().addMaterializedView(tbl); } addIfAbsentByName(new WriteEntity(tbl, WriteEntity.WriteType.DDL_NO_LOCK)); + + //set lineage info + DataContainer dc = new DataContainer(tbl.getTTable()); + SessionState.get().getLineageState().setLineage(new Path(crtView.getViewName()), dc, tbl.getCols()); } return 0; } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java index f275f6a..ab1fd0d 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java @@ -236,6 +236,8 @@ import org.apache.hadoop.mapred.OutputFormat; import org.apache.hadoop.security.UserGroupInformation; +import com.google.common.base.Splitter; +import com.google.common.base.Strings; import com.google.common.collect.Sets; import com.google.common.math.IntMath; @@ -7141,7 +7143,7 @@ protected Operator genFileSinkPlan(String dest, QB qb, Operator input) if (ltd != null && SessionState.get() != null) { SessionState.get().getLineageState() - .mapDirToFop(ltd.getSourcePath(), (FileSinkOperator) output); + .mapDirToOp(ltd.getSourcePath(), (FileSinkOperator) output); } else if ( queryState.getCommandType().equals(HiveOperation.CREATETABLE_AS_SELECT.getOperationName())) { Path tlocation = null; @@ -7154,7 +7156,7 @@ protected Operator genFileSinkPlan(String dest, QB qb, Operator input) } SessionState.get().getLineageState() - .mapDirToFop(tlocation, (FileSinkOperator) output); + .mapDirToOp(tlocation, (FileSinkOperator) output); } if (LOG.isDebugEnabled()) { @@ -11041,14 +11043,22 @@ void analyzeInternal(ASTNode ast, PlannerContext plannerCtx) throws SemanticExce // Generate lineage info for create view statements // if LineageLogger hook is configured. - if (HiveConf.getVar(conf, HiveConf.ConfVars.POSTEXECHOOKS).contains( - "org.apache.hadoop.hive.ql.hooks.LineageLogger")) { + // Add the transformation that computes the lineage information. + Set postExecHooks = Sets.newHashSet(Splitter.on(",").trimResults() + .omitEmptyStrings() + .split(Strings.nullToEmpty(HiveConf.getVar(conf, HiveConf.ConfVars.POSTEXECHOOKS)))); + if (postExecHooks.contains("org.apache.hadoop.hive.ql.hooks.PostExecutePrinter") + || postExecHooks.contains("org.apache.hadoop.hive.ql.hooks.LineageLogger") + || postExecHooks.contains("org.apache.atlas.hive.hook.HiveHook")) { ArrayList transformations = new ArrayList(); transformations.add(new HiveOpConverterPostProc()); transformations.add(new Generator()); for (Transform t : transformations) { pCtx = t.transform(pCtx); } + // we just use view name as location. + SessionState.get().getLineageState() + .mapDirToOp(new Path(createVwDesc.getViewName()), sinkOp); } return; } diff --git a/ql/src/java/org/apache/hadoop/hive/ql/session/LineageState.java b/ql/src/java/org/apache/hadoop/hive/ql/session/LineageState.java index 223f0ea..0f95063 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/session/LineageState.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/session/LineageState.java @@ -26,6 +26,7 @@ import org.apache.hadoop.hive.metastore.api.FieldSchema; import org.apache.hadoop.hive.ql.exec.ColumnInfo; import org.apache.hadoop.hive.ql.exec.FileSinkOperator; +import org.apache.hadoop.hive.ql.exec.Operator; import org.apache.hadoop.hive.ql.hooks.LineageInfo; import org.apache.hadoop.hive.ql.hooks.LineageInfo.DataContainer; import org.apache.hadoop.hive.ql.optimizer.lineage.LineageCtx.Index; @@ -38,12 +39,12 @@ public class LineageState { /** - * Mapping from the directory name to FileSinkOperator. This + * Mapping from the directory name to FileSinkOperator (may not be FileSinkOperator for views). This * mapping is generated at the filesink operator creation * time and is then later used to created the mapping from * movetask to the set of filesink operators. */ - private final Map dirToFop; + private final Map dirToFop; /** * The lineage context index for this query. @@ -60,7 +61,7 @@ * Constructor. */ public LineageState() { - dirToFop = new HashMap(); + dirToFop = new HashMap(); linfo = new LineageInfo(); index = new Index(); } @@ -69,9 +70,9 @@ public LineageState() { * Adds a mapping from the load work to the file sink operator. * * @param dir The directory name. - * @param fop The file sink operator. + * @param fop The sink operator. */ - public void mapDirToFop(Path dir, FileSinkOperator fop) { + public void mapDirToOp(Path dir, Operator fop) { dirToFop.put(dir, fop); } @@ -85,18 +86,18 @@ public void mapDirToFop(Path dir, FileSinkOperator fop) { public void setLineage(Path dir, DataContainer dc, List cols) { // First lookup the file sink operator from the load work. - FileSinkOperator fop = dirToFop.get(dir); + Operator op = dirToFop.get(dir); // Go over the associated fields and look up the dependencies // by position in the row schema of the filesink operator. - if (fop == null) { + if (op == null) { return; } - List signature = fop.getSchema().getSignature(); + List signature = op.getSchema().getSignature(); int i = 0; for (FieldSchema fs : cols) { - linfo.putDependency(dc, fs, index.getDependency(fop, signature.get(i++))); + linfo.putDependency(dc, fs, index.getDependency(op, signature.get(i++))); } } diff --git a/ql/src/test/results/clientpositive/alter_view_as_select.q.out b/ql/src/test/results/clientpositive/alter_view_as_select.q.out index 9cbaa24..4eddf94 100644 --- a/ql/src/test/results/clientpositive/alter_view_as_select.q.out +++ b/ql/src/test/results/clientpositive/alter_view_as_select.q.out @@ -14,6 +14,10 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@srcpart POSTHOOK: Output: database:tv POSTHOOK: Output: tv@testView +POSTHOOK: Lineage: testView.ds SIMPLE [(srcpart)srcpart.FieldSchema(name:ds, type:string, comment:null), ] +POSTHOOK: Lineage: testView.hr SIMPLE [(srcpart)srcpart.FieldSchema(name:hr, type:string, comment:null), ] +POSTHOOK: Lineage: testView.key SIMPLE [(srcpart)srcpart.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: testView.value SIMPLE [(srcpart)srcpart.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: DESCRIBE FORMATTED tv.testView PREHOOK: type: DESCTABLE PREHOOK: Input: tv@testview diff --git a/ql/src/test/results/clientpositive/alter_view_rename.q.out b/ql/src/test/results/clientpositive/alter_view_rename.q.out index 300b96c..307c0f6 100644 --- a/ql/src/test/results/clientpositive/alter_view_rename.q.out +++ b/ql/src/test/results/clientpositive/alter_view_rename.q.out @@ -28,6 +28,9 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@invites POSTHOOK: Output: database:tv1 POSTHOOK: Output: tv1@view1 +POSTHOOK: Lineage: view1.bar SIMPLE [(invites)invites.FieldSchema(name:bar, type:string, comment:null), ] +POSTHOOK: Lineage: view1.ds SIMPLE [(invites)invites.FieldSchema(name:ds, type:string, comment:null), ] +POSTHOOK: Lineage: view1.foo SIMPLE [(invites)invites.FieldSchema(name:foo, type:int, comment:null), ] PREHOOK: query: DESCRIBE EXTENDED tv1.view1 PREHOOK: type: DESCTABLE PREHOOK: Input: tv1@view1 diff --git a/ql/src/test/results/clientpositive/authorization_8.q.out b/ql/src/test/results/clientpositive/authorization_8.q.out index 9fed5dc..eef4611 100644 --- a/ql/src/test/results/clientpositive/authorization_8.q.out +++ b/ql/src/test/results/clientpositive/authorization_8.q.out @@ -20,6 +20,9 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@tbl_j5jbymsx8e POSTHOOK: Output: database:default POSTHOOK: Output: default@view_j5jbymsx8e_1 +POSTHOOK: Lineage: view_j5jbymsx8e_1.ds SIMPLE [(tbl_j5jbymsx8e)tbl_j5jbymsx8e.FieldSchema(name:ds, type:string, comment:null), ] +POSTHOOK: Lineage: view_j5jbymsx8e_1.key SIMPLE [(tbl_j5jbymsx8e)tbl_j5jbymsx8e.FieldSchema(name:key, type:int, comment:null), ] +POSTHOOK: Lineage: view_j5jbymsx8e_1.value SIMPLE [(tbl_j5jbymsx8e)tbl_j5jbymsx8e.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: DESCRIBE view_j5jbymsx8e_1 PREHOOK: type: DESCTABLE PREHOOK: Input: default@view_j5jbymsx8e_1 diff --git a/ql/src/test/results/clientpositive/authorization_cli_createtab.q.out b/ql/src/test/results/clientpositive/authorization_cli_createtab.q.out index 79456ce..eeebc85 100644 --- a/ql/src/test/results/clientpositive/authorization_cli_createtab.q.out +++ b/ql/src/test/results/clientpositive/authorization_cli_createtab.q.out @@ -24,6 +24,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@t_cli POSTHOOK: Output: database:default POSTHOOK: Output: default@v_cli +POSTHOOK: Lineage: v_cli.i SIMPLE [(t_cli)t_cli.FieldSchema(name:i, type:int, comment:null), ] PREHOOK: query: show grant user hive_test_user on v_cli PREHOOK: type: SHOW_GRANT POSTHOOK: query: show grant user hive_test_user on v_cli diff --git a/ql/src/test/results/clientpositive/authorization_cli_createtab_noauthzapi.q.out b/ql/src/test/results/clientpositive/authorization_cli_createtab_noauthzapi.q.out index 7c8909a..d5a79c6 100644 --- a/ql/src/test/results/clientpositive/authorization_cli_createtab_noauthzapi.q.out +++ b/ql/src/test/results/clientpositive/authorization_cli_createtab_noauthzapi.q.out @@ -16,3 +16,4 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@t_cli POSTHOOK: Output: database:default POSTHOOK: Output: default@v_cli +POSTHOOK: Lineage: v_cli.i SIMPLE [(t_cli)t_cli.FieldSchema(name:i, type:int, comment:null), ] diff --git a/ql/src/test/results/clientpositive/authorization_owner_actions.q.out b/ql/src/test/results/clientpositive/authorization_owner_actions.q.out index 5edce56..779c3ba 100644 --- a/ql/src/test/results/clientpositive/authorization_owner_actions.q.out +++ b/ql/src/test/results/clientpositive/authorization_owner_actions.q.out @@ -40,6 +40,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@t1 POSTHOOK: Output: database:default POSTHOOK: Output: default@vt1 +POSTHOOK: Lineage: vt1.i SIMPLE [(t1)t1.FieldSchema(name:i, type:int, comment:null), ] PREHOOK: query: drop view vt1 PREHOOK: type: DROPVIEW PREHOOK: Input: default@vt1 diff --git a/ql/src/test/results/clientpositive/authorization_view_1.q.out b/ql/src/test/results/clientpositive/authorization_view_1.q.out index 89adf19..31cc0c8 100644 --- a/ql/src/test/results/clientpositive/authorization_view_1.q.out +++ b/ql/src/test/results/clientpositive/authorization_view_1.q.out @@ -20,6 +20,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src_autho_test POSTHOOK: Output: database:default POSTHOOK: Output: default@v +POSTHOOK: Lineage: v.key SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v.value SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: create view v1 as select * from src_autho_test PREHOOK: type: CREATEVIEW PREHOOK: Input: default@src_autho_test @@ -30,6 +32,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src_autho_test POSTHOOK: Output: database:default POSTHOOK: Output: default@v1 +POSTHOOK: Lineage: v1.key SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v1.value SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: create view v2 as select * from src_autho_test PREHOOK: type: CREATEVIEW PREHOOK: Input: default@src_autho_test @@ -40,6 +44,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src_autho_test POSTHOOK: Output: database:default POSTHOOK: Output: default@v2 +POSTHOOK: Lineage: v2.key SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v2.value SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: grant select on table src_autho_test to user hive_test_user PREHOOK: type: GRANT_PRIVILEGE PREHOOK: Output: default@src_autho_test diff --git a/ql/src/test/results/clientpositive/authorization_view_2.q.out b/ql/src/test/results/clientpositive/authorization_view_2.q.out index 9f909be..e4dd059 100644 --- a/ql/src/test/results/clientpositive/authorization_view_2.q.out +++ b/ql/src/test/results/clientpositive/authorization_view_2.q.out @@ -20,6 +20,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src_autho_test POSTHOOK: Output: database:default POSTHOOK: Output: default@v1 +POSTHOOK: Lineage: v1.key SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v1.value SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: create view v2 as select * from v1 PREHOOK: type: CREATEVIEW PREHOOK: Input: default@src_autho_test @@ -32,6 +34,8 @@ POSTHOOK: Input: default@src_autho_test POSTHOOK: Input: default@v1 POSTHOOK: Output: database:default POSTHOOK: Output: default@v2 +POSTHOOK: Lineage: v2.key SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v2.value SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: grant select on table v2 to user hive_test_user PREHOOK: type: GRANT_PRIVILEGE PREHOOK: Output: default@v2 diff --git a/ql/src/test/results/clientpositive/authorization_view_3.q.out b/ql/src/test/results/clientpositive/authorization_view_3.q.out index c9334e3..b2d3b1f 100644 --- a/ql/src/test/results/clientpositive/authorization_view_3.q.out +++ b/ql/src/test/results/clientpositive/authorization_view_3.q.out @@ -20,6 +20,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src_autho_test POSTHOOK: Output: database:default POSTHOOK: Output: default@v1 +POSTHOOK: Lineage: v1.key SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v1.value SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: create view v2 as select * from v1 PREHOOK: type: CREATEVIEW PREHOOK: Input: default@src_autho_test @@ -32,6 +34,8 @@ POSTHOOK: Input: default@src_autho_test POSTHOOK: Input: default@v1 POSTHOOK: Output: database:default POSTHOOK: Output: default@v2 +POSTHOOK: Lineage: v2.key SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v2.value SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: grant select on table v2 to user hive_test_user PREHOOK: type: GRANT_PRIVILEGE PREHOOK: Output: default@v2 diff --git a/ql/src/test/results/clientpositive/authorization_view_4.q.out b/ql/src/test/results/clientpositive/authorization_view_4.q.out index 68fdfb6..c832f11 100644 --- a/ql/src/test/results/clientpositive/authorization_view_4.q.out +++ b/ql/src/test/results/clientpositive/authorization_view_4.q.out @@ -20,6 +20,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@v1 +POSTHOOK: Lineage: v1.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: v1.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: create view v2 as select * from v1 PREHOOK: type: CREATEVIEW PREHOOK: Input: default@src @@ -32,6 +34,8 @@ POSTHOOK: Input: default@src POSTHOOK: Input: default@v1 POSTHOOK: Output: database:default POSTHOOK: Output: default@v2 +POSTHOOK: Lineage: v2.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: v2.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: grant select on table v2 to user hive_test_user PREHOOK: type: GRANT_PRIVILEGE PREHOOK: Output: default@v2 diff --git a/ql/src/test/results/clientpositive/authorization_view_disable_cbo_1.q.out b/ql/src/test/results/clientpositive/authorization_view_disable_cbo_1.q.out index 8395782..edc0d897 100644 --- a/ql/src/test/results/clientpositive/authorization_view_disable_cbo_1.q.out +++ b/ql/src/test/results/clientpositive/authorization_view_disable_cbo_1.q.out @@ -20,6 +20,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src_autho_test POSTHOOK: Output: database:default POSTHOOK: Output: default@v +POSTHOOK: Lineage: v.key SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v.value SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: create view v1 as select * from src_autho_test PREHOOK: type: CREATEVIEW PREHOOK: Input: default@src_autho_test @@ -30,6 +32,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src_autho_test POSTHOOK: Output: database:default POSTHOOK: Output: default@v1 +POSTHOOK: Lineage: v1.key SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v1.value SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: create view v2 as select * from src_autho_test PREHOOK: type: CREATEVIEW PREHOOK: Input: default@src_autho_test @@ -40,6 +44,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src_autho_test POSTHOOK: Output: database:default POSTHOOK: Output: default@v2 +POSTHOOK: Lineage: v2.key SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v2.value SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: grant select on table src_autho_test to user hive_test_user PREHOOK: type: GRANT_PRIVILEGE PREHOOK: Output: default@src_autho_test diff --git a/ql/src/test/results/clientpositive/authorization_view_disable_cbo_2.q.out b/ql/src/test/results/clientpositive/authorization_view_disable_cbo_2.q.out index 9f909be..e4dd059 100644 --- a/ql/src/test/results/clientpositive/authorization_view_disable_cbo_2.q.out +++ b/ql/src/test/results/clientpositive/authorization_view_disable_cbo_2.q.out @@ -20,6 +20,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src_autho_test POSTHOOK: Output: database:default POSTHOOK: Output: default@v1 +POSTHOOK: Lineage: v1.key SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v1.value SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: create view v2 as select * from v1 PREHOOK: type: CREATEVIEW PREHOOK: Input: default@src_autho_test @@ -32,6 +34,8 @@ POSTHOOK: Input: default@src_autho_test POSTHOOK: Input: default@v1 POSTHOOK: Output: database:default POSTHOOK: Output: default@v2 +POSTHOOK: Lineage: v2.key SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v2.value SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: grant select on table v2 to user hive_test_user PREHOOK: type: GRANT_PRIVILEGE PREHOOK: Output: default@v2 diff --git a/ql/src/test/results/clientpositive/authorization_view_disable_cbo_3.q.out b/ql/src/test/results/clientpositive/authorization_view_disable_cbo_3.q.out index c9334e3..b2d3b1f 100644 --- a/ql/src/test/results/clientpositive/authorization_view_disable_cbo_3.q.out +++ b/ql/src/test/results/clientpositive/authorization_view_disable_cbo_3.q.out @@ -20,6 +20,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src_autho_test POSTHOOK: Output: database:default POSTHOOK: Output: default@v1 +POSTHOOK: Lineage: v1.key SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v1.value SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: create view v2 as select * from v1 PREHOOK: type: CREATEVIEW PREHOOK: Input: default@src_autho_test @@ -32,6 +34,8 @@ POSTHOOK: Input: default@src_autho_test POSTHOOK: Input: default@v1 POSTHOOK: Output: database:default POSTHOOK: Output: default@v2 +POSTHOOK: Lineage: v2.key SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v2.value SIMPLE [(src_autho_test)src_autho_test.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: grant select on table v2 to user hive_test_user PREHOOK: type: GRANT_PRIVILEGE PREHOOK: Output: default@v2 diff --git a/ql/src/test/results/clientpositive/authorization_view_disable_cbo_4.q.out b/ql/src/test/results/clientpositive/authorization_view_disable_cbo_4.q.out index 68fdfb6..c832f11 100644 --- a/ql/src/test/results/clientpositive/authorization_view_disable_cbo_4.q.out +++ b/ql/src/test/results/clientpositive/authorization_view_disable_cbo_4.q.out @@ -20,6 +20,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@v1 +POSTHOOK: Lineage: v1.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: v1.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: create view v2 as select * from v1 PREHOOK: type: CREATEVIEW PREHOOK: Input: default@src @@ -32,6 +34,8 @@ POSTHOOK: Input: default@src POSTHOOK: Input: default@v1 POSTHOOK: Output: database:default POSTHOOK: Output: default@v2 +POSTHOOK: Lineage: v2.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: v2.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: grant select on table v2 to user hive_test_user PREHOOK: type: GRANT_PRIVILEGE PREHOOK: Output: default@v2 diff --git a/ql/src/test/results/clientpositive/cbo_const.q.out b/ql/src/test/results/clientpositive/cbo_const.q.out index ecf0269..07a89e5 100644 --- a/ql/src/test/results/clientpositive/cbo_const.q.out +++ b/ql/src/test/results/clientpositive/cbo_const.q.out @@ -91,6 +91,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@t1_new POSTHOOK: Output: database:default POSTHOOK: Output: default@t1 +POSTHOOK: Lineage: t1.key EXPRESSION [(t1_new)t1_new.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: t1.value EXPRESSION [(t1_new)t1_new.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: select * from t1 where ds = '2011-10-15' PREHOOK: type: QUERY PREHOOK: Input: default@t1 diff --git a/ql/src/test/results/clientpositive/cbo_subq_exists.q.out b/ql/src/test/results/clientpositive/cbo_subq_exists.q.out index 45f4524..06dbd30 100644 --- a/ql/src/test/results/clientpositive/cbo_subq_exists.q.out +++ b/ql/src/test/results/clientpositive/cbo_subq_exists.q.out @@ -195,6 +195,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src_cbo POSTHOOK: Output: database:default POSTHOOK: Output: default@cv1 +POSTHOOK: Lineage: cv1.key SIMPLE [(src_cbo)b.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: cv1.value SIMPLE [(src_cbo)b.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: select * from cv1 PREHOOK: type: QUERY PREHOOK: Input: default@cv1 diff --git a/ql/src/test/results/clientpositive/cbo_union_view.q.out b/ql/src/test/results/clientpositive/cbo_union_view.q.out index d179c28..c8504a1 100644 --- a/ql/src/test/results/clientpositive/cbo_union_view.q.out +++ b/ql/src/test/results/clientpositive/cbo_union_view.q.out @@ -50,6 +50,8 @@ POSTHOOK: Input: default@src_union_2 POSTHOOK: Input: default@src_union_3 POSTHOOK: Output: database:default POSTHOOK: Output: default@src_union_view +POSTHOOK: Lineage: src_union_view.key EXPRESSION [(src_union_1)src_union_1.FieldSchema(name:key, type:int, comment:null), (src_union_2)src_union_2.FieldSchema(name:key, type:int, comment:null), (src_union_3)src_union_3.FieldSchema(name:key, type:int, comment:null), ] +POSTHOOK: Lineage: src_union_view.value EXPRESSION [(src_union_1)src_union_1.FieldSchema(name:value, type:string, comment:null), (src_union_2)src_union_2.FieldSchema(name:value, type:string, comment:null), (src_union_3)src_union_3.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: EXPLAIN SELECT key, value, ds FROM src_union_view WHERE key=86 PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN SELECT key, value, ds FROM src_union_view WHERE key=86 diff --git a/ql/src/test/results/clientpositive/concat_op.q.out b/ql/src/test/results/clientpositive/concat_op.q.out index 6afefae..e7fad1f 100644 --- a/ql/src/test/results/clientpositive/concat_op.q.out +++ b/ql/src/test/results/clientpositive/concat_op.q.out @@ -172,6 +172,7 @@ POSTHOOK: Input: default@ct1 POSTHOOK: Input: default@ct2 POSTHOOK: Output: database:default POSTHOOK: Output: default@ct_v1 +POSTHOOK: Lineage: ct_v1.c EXPRESSION [(ct1)ct1.FieldSchema(name:c, type:int, comment:null), (ct2)ct2.FieldSchema(name:c, type:int, comment:null), ] PREHOOK: query: select c,c * c + c || 'x', 'c+c=' || c+c || ', c*c=' || c*c || ', (c&c)=' || (c & c) from ct_v1 PREHOOK: type: QUERY PREHOOK: Input: default@ct1 diff --git a/ql/src/test/results/clientpositive/create_big_view.q.out b/ql/src/test/results/clientpositive/create_big_view.q.out index 08f4c87..e5609e5 100644 --- a/ql/src/test/results/clientpositive/create_big_view.q.out +++ b/ql/src/test/results/clientpositive/create_big_view.q.out @@ -484,6 +484,241 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@big_view +POSTHOOK: Lineage: big_view._c1 SIMPLE [] +POSTHOOK: Lineage: big_view._c10 SIMPLE [] +POSTHOOK: Lineage: big_view._c100 SIMPLE [] +POSTHOOK: Lineage: big_view._c101 SIMPLE [] +POSTHOOK: Lineage: big_view._c102 SIMPLE [] +POSTHOOK: Lineage: big_view._c103 SIMPLE [] +POSTHOOK: Lineage: big_view._c104 SIMPLE [] +POSTHOOK: Lineage: big_view._c105 SIMPLE [] +POSTHOOK: Lineage: big_view._c106 SIMPLE [] +POSTHOOK: Lineage: big_view._c107 SIMPLE [] +POSTHOOK: Lineage: big_view._c108 SIMPLE [] +POSTHOOK: Lineage: big_view._c109 SIMPLE [] +POSTHOOK: Lineage: big_view._c11 SIMPLE [] +POSTHOOK: Lineage: big_view._c110 SIMPLE [] +POSTHOOK: Lineage: big_view._c111 SIMPLE [] +POSTHOOK: Lineage: big_view._c112 SIMPLE [] +POSTHOOK: Lineage: big_view._c113 SIMPLE [] +POSTHOOK: Lineage: big_view._c114 SIMPLE [] +POSTHOOK: Lineage: big_view._c115 SIMPLE [] +POSTHOOK: Lineage: big_view._c116 SIMPLE [] +POSTHOOK: Lineage: big_view._c117 SIMPLE [] +POSTHOOK: Lineage: big_view._c118 SIMPLE [] +POSTHOOK: Lineage: big_view._c119 SIMPLE [] +POSTHOOK: Lineage: big_view._c12 SIMPLE [] +POSTHOOK: Lineage: big_view._c120 SIMPLE [] +POSTHOOK: Lineage: big_view._c121 SIMPLE [] +POSTHOOK: Lineage: big_view._c122 SIMPLE [] +POSTHOOK: Lineage: big_view._c123 SIMPLE [] +POSTHOOK: Lineage: big_view._c124 SIMPLE [] +POSTHOOK: Lineage: big_view._c125 SIMPLE [] +POSTHOOK: Lineage: big_view._c126 SIMPLE [] +POSTHOOK: Lineage: big_view._c127 SIMPLE [] +POSTHOOK: Lineage: big_view._c128 SIMPLE [] +POSTHOOK: Lineage: big_view._c129 SIMPLE [] +POSTHOOK: Lineage: big_view._c13 SIMPLE [] +POSTHOOK: Lineage: big_view._c130 SIMPLE [] +POSTHOOK: Lineage: big_view._c131 SIMPLE [] +POSTHOOK: Lineage: big_view._c132 SIMPLE [] +POSTHOOK: Lineage: big_view._c133 SIMPLE [] +POSTHOOK: Lineage: big_view._c134 SIMPLE [] +POSTHOOK: Lineage: big_view._c135 SIMPLE [] +POSTHOOK: Lineage: big_view._c136 SIMPLE [] +POSTHOOK: Lineage: big_view._c137 SIMPLE [] +POSTHOOK: Lineage: big_view._c138 SIMPLE [] +POSTHOOK: Lineage: big_view._c139 SIMPLE [] +POSTHOOK: Lineage: big_view._c14 SIMPLE [] +POSTHOOK: Lineage: big_view._c140 SIMPLE [] +POSTHOOK: Lineage: big_view._c141 SIMPLE [] +POSTHOOK: Lineage: big_view._c142 SIMPLE [] +POSTHOOK: Lineage: big_view._c143 SIMPLE [] +POSTHOOK: Lineage: big_view._c144 SIMPLE [] +POSTHOOK: Lineage: big_view._c145 SIMPLE [] +POSTHOOK: Lineage: big_view._c146 SIMPLE [] +POSTHOOK: Lineage: big_view._c147 SIMPLE [] +POSTHOOK: Lineage: big_view._c148 SIMPLE [] +POSTHOOK: Lineage: big_view._c149 SIMPLE [] +POSTHOOK: Lineage: big_view._c15 SIMPLE [] +POSTHOOK: Lineage: big_view._c150 SIMPLE [] +POSTHOOK: Lineage: big_view._c151 SIMPLE [] +POSTHOOK: Lineage: big_view._c152 SIMPLE [] +POSTHOOK: Lineage: big_view._c153 SIMPLE [] +POSTHOOK: Lineage: big_view._c154 SIMPLE [] +POSTHOOK: Lineage: big_view._c155 SIMPLE [] +POSTHOOK: Lineage: big_view._c156 SIMPLE [] +POSTHOOK: Lineage: big_view._c157 SIMPLE [] +POSTHOOK: Lineage: big_view._c158 SIMPLE [] +POSTHOOK: Lineage: big_view._c159 SIMPLE [] +POSTHOOK: Lineage: big_view._c16 SIMPLE [] +POSTHOOK: Lineage: big_view._c160 SIMPLE [] +POSTHOOK: Lineage: big_view._c161 SIMPLE [] +POSTHOOK: Lineage: big_view._c162 SIMPLE [] +POSTHOOK: Lineage: big_view._c163 SIMPLE [] +POSTHOOK: Lineage: big_view._c164 SIMPLE [] +POSTHOOK: Lineage: big_view._c165 SIMPLE [] +POSTHOOK: Lineage: big_view._c166 SIMPLE [] +POSTHOOK: Lineage: big_view._c167 SIMPLE [] +POSTHOOK: Lineage: big_view._c168 SIMPLE [] +POSTHOOK: Lineage: big_view._c169 SIMPLE [] +POSTHOOK: Lineage: big_view._c17 SIMPLE [] +POSTHOOK: Lineage: big_view._c170 SIMPLE [] +POSTHOOK: Lineage: big_view._c171 SIMPLE [] +POSTHOOK: Lineage: big_view._c172 SIMPLE [] +POSTHOOK: Lineage: big_view._c173 SIMPLE [] +POSTHOOK: Lineage: big_view._c174 SIMPLE [] +POSTHOOK: Lineage: big_view._c175 SIMPLE [] +POSTHOOK: Lineage: big_view._c176 SIMPLE [] +POSTHOOK: Lineage: big_view._c177 SIMPLE [] +POSTHOOK: Lineage: big_view._c178 SIMPLE [] +POSTHOOK: Lineage: big_view._c179 SIMPLE [] +POSTHOOK: Lineage: big_view._c18 SIMPLE [] +POSTHOOK: Lineage: big_view._c180 SIMPLE [] +POSTHOOK: Lineage: big_view._c181 SIMPLE [] +POSTHOOK: Lineage: big_view._c182 SIMPLE [] +POSTHOOK: Lineage: big_view._c183 SIMPLE [] +POSTHOOK: Lineage: big_view._c184 SIMPLE [] +POSTHOOK: Lineage: big_view._c185 SIMPLE [] +POSTHOOK: Lineage: big_view._c186 SIMPLE [] +POSTHOOK: Lineage: big_view._c187 SIMPLE [] +POSTHOOK: Lineage: big_view._c188 SIMPLE [] +POSTHOOK: Lineage: big_view._c189 SIMPLE [] +POSTHOOK: Lineage: big_view._c19 SIMPLE [] +POSTHOOK: Lineage: big_view._c190 SIMPLE [] +POSTHOOK: Lineage: big_view._c191 SIMPLE [] +POSTHOOK: Lineage: big_view._c192 SIMPLE [] +POSTHOOK: Lineage: big_view._c193 SIMPLE [] +POSTHOOK: Lineage: big_view._c194 SIMPLE [] +POSTHOOK: Lineage: big_view._c195 SIMPLE [] +POSTHOOK: Lineage: big_view._c196 SIMPLE [] +POSTHOOK: Lineage: big_view._c197 SIMPLE [] +POSTHOOK: Lineage: big_view._c198 SIMPLE [] +POSTHOOK: Lineage: big_view._c199 SIMPLE [] +POSTHOOK: Lineage: big_view._c2 SIMPLE [] +POSTHOOK: Lineage: big_view._c20 SIMPLE [] +POSTHOOK: Lineage: big_view._c200 SIMPLE [] +POSTHOOK: Lineage: big_view._c201 SIMPLE [] +POSTHOOK: Lineage: big_view._c202 SIMPLE [] +POSTHOOK: Lineage: big_view._c203 SIMPLE [] +POSTHOOK: Lineage: big_view._c204 SIMPLE [] +POSTHOOK: Lineage: big_view._c205 SIMPLE [] +POSTHOOK: Lineage: big_view._c206 SIMPLE [] +POSTHOOK: Lineage: big_view._c207 SIMPLE [] +POSTHOOK: Lineage: big_view._c208 SIMPLE [] +POSTHOOK: Lineage: big_view._c209 SIMPLE [] +POSTHOOK: Lineage: big_view._c21 SIMPLE [] +POSTHOOK: Lineage: big_view._c210 SIMPLE [] +POSTHOOK: Lineage: big_view._c211 SIMPLE [] +POSTHOOK: Lineage: big_view._c212 SIMPLE [] +POSTHOOK: Lineage: big_view._c213 SIMPLE [] +POSTHOOK: Lineage: big_view._c214 SIMPLE [] +POSTHOOK: Lineage: big_view._c215 SIMPLE [] +POSTHOOK: Lineage: big_view._c216 SIMPLE [] +POSTHOOK: Lineage: big_view._c217 SIMPLE [] +POSTHOOK: Lineage: big_view._c218 SIMPLE [] +POSTHOOK: Lineage: big_view._c219 SIMPLE [] +POSTHOOK: Lineage: big_view._c22 SIMPLE [] +POSTHOOK: Lineage: big_view._c220 SIMPLE [] +POSTHOOK: Lineage: big_view._c221 SIMPLE [] +POSTHOOK: Lineage: big_view._c222 SIMPLE [] +POSTHOOK: Lineage: big_view._c223 SIMPLE [] +POSTHOOK: Lineage: big_view._c224 SIMPLE [] +POSTHOOK: Lineage: big_view._c225 SIMPLE [] +POSTHOOK: Lineage: big_view._c226 SIMPLE [] +POSTHOOK: Lineage: big_view._c227 SIMPLE [] +POSTHOOK: Lineage: big_view._c228 SIMPLE [] +POSTHOOK: Lineage: big_view._c229 SIMPLE [] +POSTHOOK: Lineage: big_view._c23 SIMPLE [] +POSTHOOK: Lineage: big_view._c230 SIMPLE [] +POSTHOOK: Lineage: big_view._c231 SIMPLE [] +POSTHOOK: Lineage: big_view._c232 SIMPLE [] +POSTHOOK: Lineage: big_view._c233 SIMPLE [] +POSTHOOK: Lineage: big_view._c234 SIMPLE [] +POSTHOOK: Lineage: big_view._c24 SIMPLE [] +POSTHOOK: Lineage: big_view._c25 SIMPLE [] +POSTHOOK: Lineage: big_view._c26 SIMPLE [] +POSTHOOK: Lineage: big_view._c27 SIMPLE [] +POSTHOOK: Lineage: big_view._c28 SIMPLE [] +POSTHOOK: Lineage: big_view._c29 SIMPLE [] +POSTHOOK: Lineage: big_view._c3 SIMPLE [] +POSTHOOK: Lineage: big_view._c30 SIMPLE [] +POSTHOOK: Lineage: big_view._c31 SIMPLE [] +POSTHOOK: Lineage: big_view._c32 SIMPLE [] +POSTHOOK: Lineage: big_view._c33 SIMPLE [] +POSTHOOK: Lineage: big_view._c34 SIMPLE [] +POSTHOOK: Lineage: big_view._c35 SIMPLE [] +POSTHOOK: Lineage: big_view._c36 SIMPLE [] +POSTHOOK: Lineage: big_view._c37 SIMPLE [] +POSTHOOK: Lineage: big_view._c38 SIMPLE [] +POSTHOOK: Lineage: big_view._c39 SIMPLE [] +POSTHOOK: Lineage: big_view._c4 SIMPLE [] +POSTHOOK: Lineage: big_view._c40 SIMPLE [] +POSTHOOK: Lineage: big_view._c41 SIMPLE [] +POSTHOOK: Lineage: big_view._c42 SIMPLE [] +POSTHOOK: Lineage: big_view._c43 SIMPLE [] +POSTHOOK: Lineage: big_view._c44 SIMPLE [] +POSTHOOK: Lineage: big_view._c45 SIMPLE [] +POSTHOOK: Lineage: big_view._c46 SIMPLE [] +POSTHOOK: Lineage: big_view._c47 SIMPLE [] +POSTHOOK: Lineage: big_view._c48 SIMPLE [] +POSTHOOK: Lineage: big_view._c49 SIMPLE [] +POSTHOOK: Lineage: big_view._c5 SIMPLE [] +POSTHOOK: Lineage: big_view._c50 SIMPLE [] +POSTHOOK: Lineage: big_view._c51 SIMPLE [] +POSTHOOK: Lineage: big_view._c52 SIMPLE [] +POSTHOOK: Lineage: big_view._c53 SIMPLE [] +POSTHOOK: Lineage: big_view._c54 SIMPLE [] +POSTHOOK: Lineage: big_view._c55 SIMPLE [] +POSTHOOK: Lineage: big_view._c56 SIMPLE [] +POSTHOOK: Lineage: big_view._c57 SIMPLE [] +POSTHOOK: Lineage: big_view._c58 SIMPLE [] +POSTHOOK: Lineage: big_view._c59 SIMPLE [] +POSTHOOK: Lineage: big_view._c6 SIMPLE [] +POSTHOOK: Lineage: big_view._c60 SIMPLE [] +POSTHOOK: Lineage: big_view._c61 SIMPLE [] +POSTHOOK: Lineage: big_view._c62 SIMPLE [] +POSTHOOK: Lineage: big_view._c63 SIMPLE [] +POSTHOOK: Lineage: big_view._c64 SIMPLE [] +POSTHOOK: Lineage: big_view._c65 SIMPLE [] +POSTHOOK: Lineage: big_view._c66 SIMPLE [] +POSTHOOK: Lineage: big_view._c67 SIMPLE [] +POSTHOOK: Lineage: big_view._c68 SIMPLE [] +POSTHOOK: Lineage: big_view._c69 SIMPLE [] +POSTHOOK: Lineage: big_view._c7 SIMPLE [] +POSTHOOK: Lineage: big_view._c70 SIMPLE [] +POSTHOOK: Lineage: big_view._c71 SIMPLE [] +POSTHOOK: Lineage: big_view._c72 SIMPLE [] +POSTHOOK: Lineage: big_view._c73 SIMPLE [] +POSTHOOK: Lineage: big_view._c74 SIMPLE [] +POSTHOOK: Lineage: big_view._c75 SIMPLE [] +POSTHOOK: Lineage: big_view._c76 SIMPLE [] +POSTHOOK: Lineage: big_view._c77 SIMPLE [] +POSTHOOK: Lineage: big_view._c78 SIMPLE [] +POSTHOOK: Lineage: big_view._c79 SIMPLE [] +POSTHOOK: Lineage: big_view._c8 SIMPLE [] +POSTHOOK: Lineage: big_view._c80 SIMPLE [] +POSTHOOK: Lineage: big_view._c81 SIMPLE [] +POSTHOOK: Lineage: big_view._c82 SIMPLE [] +POSTHOOK: Lineage: big_view._c83 SIMPLE [] +POSTHOOK: Lineage: big_view._c84 SIMPLE [] +POSTHOOK: Lineage: big_view._c85 SIMPLE [] +POSTHOOK: Lineage: big_view._c86 SIMPLE [] +POSTHOOK: Lineage: big_view._c87 SIMPLE [] +POSTHOOK: Lineage: big_view._c88 SIMPLE [] +POSTHOOK: Lineage: big_view._c89 SIMPLE [] +POSTHOOK: Lineage: big_view._c9 SIMPLE [] +POSTHOOK: Lineage: big_view._c90 SIMPLE [] +POSTHOOK: Lineage: big_view._c91 SIMPLE [] +POSTHOOK: Lineage: big_view._c92 SIMPLE [] +POSTHOOK: Lineage: big_view._c93 SIMPLE [] +POSTHOOK: Lineage: big_view._c94 SIMPLE [] +POSTHOOK: Lineage: big_view._c95 SIMPLE [] +POSTHOOK: Lineage: big_view._c96 SIMPLE [] +POSTHOOK: Lineage: big_view._c97 SIMPLE [] +POSTHOOK: Lineage: big_view._c98 SIMPLE [] +POSTHOOK: Lineage: big_view._c99 SIMPLE [] +POSTHOOK: Lineage: big_view.a SIMPLE [] PREHOOK: query: SELECT a FROM big_view LIMIT 1 PREHOOK: type: QUERY diff --git a/ql/src/test/results/clientpositive/create_like_tbl_props.q.out b/ql/src/test/results/clientpositive/create_like_tbl_props.q.out index bef54a8..19459fb 100644 --- a/ql/src/test/results/clientpositive/create_like_tbl_props.q.out +++ b/ql/src/test/results/clientpositive/create_like_tbl_props.q.out @@ -186,6 +186,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@test_view +POSTHOOK: Lineage: test_view.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: test_view.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: CREATE TABLE test_table4 LIKE test_view TBLPROPERTIES('key'='value') PREHOOK: type: CREATETABLE PREHOOK: Output: database:default diff --git a/ql/src/test/results/clientpositive/create_like_view.q.out b/ql/src/test/results/clientpositive/create_like_view.q.out index c1b5c7e..9e6dcd1 100644 --- a/ql/src/test/results/clientpositive/create_like_view.q.out +++ b/ql/src/test/results/clientpositive/create_like_view.q.out @@ -75,6 +75,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@table1 POSTHOOK: Output: database:default POSTHOOK: Output: default@view1 +POSTHOOK: Lineage: view1.a SIMPLE [(table1)table1.FieldSchema(name:a, type:string, comment:null), ] +POSTHOOK: Lineage: view1.b SIMPLE [(table1)table1.FieldSchema(name:b, type:string, comment:null), ] PREHOOK: query: CREATE TABLE table2 LIKE view1 PREHOOK: type: CREATETABLE PREHOOK: Output: database:default @@ -259,6 +261,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@srcpart POSTHOOK: Output: database:default POSTHOOK: Output: default@view1 +POSTHOOK: Lineage: view1.key SIMPLE [(srcpart)srcpart.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: view1.value SIMPLE [(srcpart)srcpart.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: create table table1 like view1 PREHOOK: type: CREATETABLE PREHOOK: Output: database:default diff --git a/ql/src/test/results/clientpositive/create_or_replace_view.q.out b/ql/src/test/results/clientpositive/create_or_replace_view.q.out index 2ad6b47..98e0ca2 100644 --- a/ql/src/test/results/clientpositive/create_or_replace_view.q.out +++ b/ql/src/test/results/clientpositive/create_or_replace_view.q.out @@ -14,6 +14,10 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@srcpart POSTHOOK: Output: database:vt POSTHOOK: Output: vt@v +POSTHOOK: Lineage: v.ds SIMPLE [(srcpart)srcpart.FieldSchema(name:ds, type:string, comment:null), ] +POSTHOOK: Lineage: v.hr SIMPLE [(srcpart)srcpart.FieldSchema(name:hr, type:string, comment:null), ] +POSTHOOK: Lineage: v.key SIMPLE [(srcpart)srcpart.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: v.value SIMPLE [(srcpart)srcpart.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: describe formatted vt.v PREHOOK: type: DESCTABLE PREHOOK: Input: vt@v @@ -330,6 +334,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@srcpart_temp POSTHOOK: Output: database:vt POSTHOOK: Output: vt@v +POSTHOOK: Lineage: v.key SIMPLE [(srcpart_temp)srcpart_temp.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: v.value SIMPLE [(srcpart_temp)srcpart_temp.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: drop table srcpart_temp PREHOOK: type: DROPTABLE PREHOOK: Input: default@srcpart_temp diff --git a/ql/src/test/results/clientpositive/create_view.q.out b/ql/src/test/results/clientpositive/create_view.q.out index a7f3229..7deac3e 100644 --- a/ql/src/test/results/clientpositive/create_view.q.out +++ b/ql/src/test/results/clientpositive/create_view.q.out @@ -93,6 +93,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@view1 +POSTHOOK: Lineage: view1.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: CREATE VIEW view2 AS SELECT * FROM src PREHOOK: type: CREATEVIEW PREHOOK: Input: default@src @@ -103,6 +104,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@view2 +POSTHOOK: Lineage: view2.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: view2.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: CREATE VIEW view3(valoo) TBLPROPERTIES ("fear" = "factor") AS SELECT upper(value) FROM src WHERE key=86 @@ -117,6 +120,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@view3 +POSTHOOK: Lineage: view3.valoo EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: SELECT * from view1 PREHOOK: type: QUERY PREHOOK: Input: default@src @@ -479,6 +483,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@table1 POSTHOOK: Output: database:default POSTHOOK: Output: default@view4 +POSTHOOK: Lineage: view4.key SIMPLE [(table1)table1.FieldSchema(name:key, type:int, comment:null), ] PREHOOK: query: SELECT * FROM view4 PREHOOK: type: QUERY PREHOOK: Input: default@table1 @@ -554,6 +559,8 @@ POSTHOOK: Input: default@table1 POSTHOOK: Input: default@view4 POSTHOOK: Output: database:default POSTHOOK: Output: default@view5 +POSTHOOK: Lineage: view5.key1 SIMPLE [(table1)table1.FieldSchema(name:key, type:int, comment:null), ] +POSTHOOK: Lineage: view5.key2 SIMPLE [(table1)table1.FieldSchema(name:key, type:int, comment:null), ] Warning: Shuffle Join JOIN[6][tables = [$hdt$_0, $hdt$_1]] in Stage 'Stage-1:MAPRED' is a cross product PREHOOK: query: SELECT * FROM view5 PREHOOK: type: QUERY @@ -588,6 +595,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@view6 +POSTHOOK: Lineage: view6.valoo EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: DESCRIBE view6 PREHOOK: type: DESCTABLE PREHOOK: Input: default@view6 @@ -613,6 +621,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@view7 +POSTHOOK: Lineage: view7.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: view7.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: SELECT * FROM view7 PREHOOK: type: QUERY PREHOOK: Input: default@src @@ -710,6 +720,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@table1 POSTHOOK: Output: database:default POSTHOOK: Output: default@view8 +POSTHOOK: Lineage: view8.c EXPRESSION [] PREHOOK: query: DESCRIBE EXTENDED view8 PREHOOK: type: DESCTABLE PREHOOK: Input: default@view8 @@ -787,6 +798,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@view9 +POSTHOOK: Lineage: view9.m EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: DESCRIBE EXTENDED view9 PREHOOK: type: DESCTABLE PREHOOK: Input: default@view9 @@ -864,6 +876,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@view9 +POSTHOOK: Lineage: view9.m EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: DESCRIBE EXTENDED view9 PREHOOK: type: DESCTABLE PREHOOK: Input: default@view9 @@ -931,6 +944,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@view10 +POSTHOOK: Lineage: view10.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: view10.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: DESCRIBE EXTENDED view10 PREHOOK: type: DESCTABLE PREHOOK: Input: default@view10 @@ -1006,6 +1021,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@table1 POSTHOOK: Output: database:default POSTHOOK: Output: default@view11 +POSTHOOK: Lineage: view11.boom SCRIPT [] PREHOOK: query: DESCRIBE EXTENDED view11 PREHOOK: type: DESCTABLE PREHOOK: Input: default@view11 @@ -1075,6 +1091,9 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@view12 +POSTHOOK: Lineage: view12.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: view12.mycol SCRIPT [] +POSTHOOK: Lineage: view12.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: DESCRIBE EXTENDED view12 PREHOOK: type: DESCTABLE PREHOOK: Input: default@view12 @@ -1159,6 +1178,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@srcbucket POSTHOOK: Output: database:default POSTHOOK: Output: default@view13 +POSTHOOK: Lineage: view13.key SIMPLE [(srcbucket)s.FieldSchema(name:key, type:int, comment:null), ] PREHOOK: query: DESCRIBE EXTENDED view13 PREHOOK: type: DESCTABLE PREHOOK: Input: default@view13 @@ -1257,6 +1277,10 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@view14 +POSTHOOK: Lineage: view14.k1 EXPRESSION [(src)s2.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: view14.k2 EXPRESSION [(src)s4.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: view14.v1 EXPRESSION [(src)s1.null, (src)s2.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: view14.v2 EXPRESSION [(src)s3.null, (src)s4.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: DESCRIBE EXTENDED view14 PREHOOK: type: DESCTABLE PREHOOK: Input: default@view14 @@ -1390,6 +1414,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@view15 +POSTHOOK: Lineage: view15.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: view15.value_count EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: DESCRIBE EXTENDED view15 PREHOOK: type: DESCTABLE PREHOOK: Input: default@view15 @@ -1478,6 +1504,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@view16 +POSTHOOK: Lineage: view16.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: DESCRIBE EXTENDED view16 PREHOOK: type: DESCTABLE PREHOOK: Input: default@view16 diff --git a/ql/src/test/results/clientpositive/create_view_defaultformats.q.out b/ql/src/test/results/clientpositive/create_view_defaultformats.q.out index 2412513..1ac20c2 100644 --- a/ql/src/test/results/clientpositive/create_view_defaultformats.q.out +++ b/ql/src/test/results/clientpositive/create_view_defaultformats.q.out @@ -16,6 +16,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@sfsrc +POSTHOOK: Lineage: sfsrc.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: sfsrc.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: create view rcsrc as select * from src PREHOOK: type: CREATEVIEW PREHOOK: Input: default@src @@ -26,6 +28,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@rcsrc +POSTHOOK: Lineage: rcsrc.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: rcsrc.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: describe formatted sfsrc PREHOOK: type: DESCTABLE PREHOOK: Input: default@sfsrc diff --git a/ql/src/test/results/clientpositive/create_view_partitioned.q.out b/ql/src/test/results/clientpositive/create_view_partitioned.q.out index 85667b6..46a81c4 100644 --- a/ql/src/test/results/clientpositive/create_view_partitioned.q.out +++ b/ql/src/test/results/clientpositive/create_view_partitioned.q.out @@ -30,6 +30,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@vp1 +POSTHOOK: Lineage: vp1.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] PREHOOK: query: DESCRIBE EXTENDED vp1 PREHOOK: type: DESCTABLE PREHOOK: Input: default@vp1 @@ -239,6 +240,9 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@srcpart POSTHOOK: Output: database:default POSTHOOK: Output: default@vp2 +POSTHOOK: Lineage: vp2.ds SIMPLE [(srcpart)srcpart.FieldSchema(name:ds, type:string, comment:null), ] +POSTHOOK: Lineage: vp2.key SIMPLE [(srcpart)srcpart.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: vp2.value SIMPLE [(srcpart)srcpart.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: DESCRIBE FORMATTED vp2 PREHOOK: type: DESCTABLE PREHOOK: Input: default@vp2 @@ -351,6 +355,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@vp3 +POSTHOOK: Lineage: vp3.k SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] PREHOOK: query: DESCRIBE FORMATTED vp3 PREHOOK: type: DESCTABLE PREHOOK: Input: default@vp3 diff --git a/ql/src/test/results/clientpositive/create_view_translate.q.out b/ql/src/test/results/clientpositive/create_view_translate.q.out index 4b3e196..78614f7 100644 --- a/ql/src/test/results/clientpositive/create_view_translate.q.out +++ b/ql/src/test/results/clientpositive/create_view_translate.q.out @@ -16,6 +16,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@v +POSTHOOK: Lineage: v.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] PREHOOK: query: describe formatted v PREHOOK: type: DESCTABLE PREHOOK: Input: default@v @@ -61,6 +62,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@w +POSTHOOK: Lineage: w.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: w.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: describe formatted w PREHOOK: type: DESCTABLE PREHOOK: Input: default@w @@ -151,6 +154,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@items POSTHOOK: Output: database:default POSTHOOK: Output: default@priceview +POSTHOOK: Lineage: priceview._c1 EXPRESSION [(items)items.FieldSchema(name:info, type:map, comment:null), ] +POSTHOOK: Lineage: priceview.id SIMPLE [(items)items.FieldSchema(name:id, type:int, comment:null), ] PREHOOK: query: select * from priceview PREHOOK: type: QUERY PREHOOK: Input: default@items diff --git a/ql/src/test/results/clientpositive/ctas_char.q.out b/ql/src/test/results/clientpositive/ctas_char.q.out index d5f77cd..e0fc050 100644 --- a/ql/src/test/results/clientpositive/ctas_char.q.out +++ b/ql/src/test/results/clientpositive/ctas_char.q.out @@ -52,6 +52,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@ctas_char_2 POSTHOOK: Output: database:default POSTHOOK: Output: default@ctas_char_3 +POSTHOOK: Lineage: ctas_char_3.key SIMPLE [(ctas_char_2)ctas_char_2.FieldSchema(name:key, type:char(10), comment:null), ] +POSTHOOK: Lineage: ctas_char_3.value SIMPLE [(ctas_char_2)ctas_char_2.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: select key, value from ctas_char_1 PREHOOK: type: QUERY PREHOOK: Input: default@ctas_char_1 diff --git a/ql/src/test/results/clientpositive/ctas_date.q.out b/ql/src/test/results/clientpositive/ctas_date.q.out index cd2a240..44f1126 100644 --- a/ql/src/test/results/clientpositive/ctas_date.q.out +++ b/ql/src/test/results/clientpositive/ctas_date.q.out @@ -59,6 +59,10 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@ctas_date_2 POSTHOOK: Output: database:default POSTHOOK: Output: default@ctas_date_3 +POSTHOOK: Lineage: ctas_date_3._c3 SIMPLE [(ctas_date_2)ctas_date_2.FieldSchema(name:_c3, type:date, comment:null), ] +POSTHOOK: Lineage: ctas_date_3.dd SIMPLE [(ctas_date_2)ctas_date_2.FieldSchema(name:dd, type:date, comment:null), ] +POSTHOOK: Lineage: ctas_date_3.key SIMPLE [(ctas_date_2)ctas_date_2.FieldSchema(name:key, type:int, comment:null), ] +POSTHOOK: Lineage: ctas_date_3.value SIMPLE [(ctas_date_2)ctas_date_2.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: create view ctas_date_4 as select * from ctas_date_2 where dd < date '2000-01-01' PREHOOK: type: CREATEVIEW PREHOOK: Input: default@ctas_date_2 @@ -69,6 +73,10 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@ctas_date_2 POSTHOOK: Output: database:default POSTHOOK: Output: default@ctas_date_4 +POSTHOOK: Lineage: ctas_date_4._c3 SIMPLE [(ctas_date_2)ctas_date_2.FieldSchema(name:_c3, type:date, comment:null), ] +POSTHOOK: Lineage: ctas_date_4.dd SIMPLE [(ctas_date_2)ctas_date_2.FieldSchema(name:dd, type:date, comment:null), ] +POSTHOOK: Lineage: ctas_date_4.key SIMPLE [(ctas_date_2)ctas_date_2.FieldSchema(name:key, type:int, comment:null), ] +POSTHOOK: Lineage: ctas_date_4.value SIMPLE [(ctas_date_2)ctas_date_2.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: select key, value, dd, date '1980-12-12' from ctas_date_1 PREHOOK: type: QUERY PREHOOK: Input: default@ctas_date_1 diff --git a/ql/src/test/results/clientpositive/ctas_varchar.q.out b/ql/src/test/results/clientpositive/ctas_varchar.q.out index 3ed5e86..d9a9519 100644 --- a/ql/src/test/results/clientpositive/ctas_varchar.q.out +++ b/ql/src/test/results/clientpositive/ctas_varchar.q.out @@ -52,6 +52,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@ctas_varchar_2 POSTHOOK: Output: database:default POSTHOOK: Output: default@ctas_varchar_3 +POSTHOOK: Lineage: ctas_varchar_3.key SIMPLE [(ctas_varchar_2)ctas_varchar_2.FieldSchema(name:key, type:varchar(10), comment:null), ] +POSTHOOK: Lineage: ctas_varchar_3.value SIMPLE [(ctas_varchar_2)ctas_varchar_2.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: select key, value from ctas_varchar_1 PREHOOK: type: QUERY PREHOOK: Input: default@ctas_varchar_1 diff --git a/ql/src/test/results/clientpositive/cteViews.q.out b/ql/src/test/results/clientpositive/cteViews.q.out index 69f0a91..3a9bd43 100644 --- a/ql/src/test/results/clientpositive/cteViews.q.out +++ b/ql/src/test/results/clientpositive/cteViews.q.out @@ -35,6 +35,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@v +POSTHOOK: Lineage: v.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] PREHOOK: query: describe extended v PREHOOK: type: DESCTABLE PREHOOK: Input: default@v @@ -107,6 +108,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@v +POSTHOOK: Lineage: v.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: v.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: describe extended v PREHOOK: type: DESCTABLE PREHOOK: Input: default@v @@ -180,6 +183,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@v +POSTHOOK: Lineage: v.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] PREHOOK: query: describe extended v PREHOOK: type: DESCTABLE PREHOOK: Input: default@v @@ -244,6 +248,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@v +POSTHOOK: Lineage: v.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] PREHOOK: query: describe extended v PREHOOK: type: DESCTABLE PREHOOK: Input: default@v diff --git a/ql/src/test/results/clientpositive/cte_2.q.out b/ql/src/test/results/clientpositive/cte_2.q.out index 1506217..c2bc565 100644 --- a/ql/src/test/results/clientpositive/cte_2.q.out +++ b/ql/src/test/results/clientpositive/cte_2.q.out @@ -118,6 +118,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@v1 +POSTHOOK: Lineage: v1.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] PREHOOK: query: select * from v1 PREHOOK: type: QUERY PREHOOK: Input: default@src @@ -153,6 +154,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@v1 +POSTHOOK: Lineage: v1.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] PREHOOK: query: with q1 as ( select key from src where key = '4') select * from v1 PREHOOK: type: QUERY @@ -190,6 +192,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@alltypesorc POSTHOOK: Output: database:default POSTHOOK: Output: default@view_3 +POSTHOOK: Lineage: view_3._c1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cint, type:int, comment:null), ] +POSTHOOK: Lineage: view_3.cstring2 SIMPLE [(alltypesorc)alltypesorc.FieldSchema(name:cstring2, type:string, comment:null), ] PREHOOK: query: drop view if exists view_4 PREHOOK: type: DROPVIEW POSTHOOK: query: drop view if exists view_4 @@ -204,3 +208,5 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@alltypesorc POSTHOOK: Output: database:default POSTHOOK: Output: default@view_4 +POSTHOOK: Lineage: view_4.cstring1 SIMPLE [(alltypesorc)s.FieldSchema(name:cstring1, type:string, comment:null), ] +POSTHOOK: Lineage: view_4.ctimestamp1 SIMPLE [(alltypesorc)v.FieldSchema(name:ctimestamp1, type:timestamp, comment:null), ] diff --git a/ql/src/test/results/clientpositive/cte_4.q.out b/ql/src/test/results/clientpositive/cte_4.q.out index de976c3..ce92dca 100644 --- a/ql/src/test/results/clientpositive/cte_4.q.out +++ b/ql/src/test/results/clientpositive/cte_4.q.out @@ -148,6 +148,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@v1 +POSTHOOK: Lineage: v1.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] PREHOOK: query: select * from v1 PREHOOK: type: QUERY PREHOOK: Input: default@src @@ -183,6 +184,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@v1 +POSTHOOK: Lineage: v1.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] PREHOOK: query: with q1 as ( select key from src where key = '4') select * from v1 PREHOOK: type: QUERY diff --git a/ql/src/test/results/clientpositive/database_drop.q.out b/ql/src/test/results/clientpositive/database_drop.q.out index f37d8f7..9059c38 100644 --- a/ql/src/test/results/clientpositive/database_drop.q.out +++ b/ql/src/test/results/clientpositive/database_drop.q.out @@ -43,6 +43,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: db5@temp_tbl POSTHOOK: Output: database:db5 POSTHOOK: Output: db5@temp_tbl_view +POSTHOOK: Lineage: temp_tbl_view.id SIMPLE [(temp_tbl)temp_tbl.FieldSchema(name:id, type:int, comment:null), ] +POSTHOOK: Lineage: temp_tbl_view.name SIMPLE [(temp_tbl)temp_tbl.FieldSchema(name:name, type:string, comment:null), ] PREHOOK: query: CREATE INDEX idx1 ON TABLE temp_tbl(id) AS 'COMPACT' with DEFERRED REBUILD PREHOOK: type: CREATEINDEX PREHOOK: Input: db5@temp_tbl @@ -89,6 +91,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: db5@temp_tbl2 POSTHOOK: Output: database:db5 POSTHOOK: Output: db5@temp_tbl2_view +POSTHOOK: Lineage: temp_tbl2_view.id SIMPLE [(temp_tbl2)temp_tbl2.FieldSchema(name:id, type:int, comment:null), ] +POSTHOOK: Lineage: temp_tbl2_view.name SIMPLE [(temp_tbl2)temp_tbl2.FieldSchema(name:name, type:string, comment:null), ] #### A masked pattern was here #### PREHOOK: type: CREATEINDEX PREHOOK: Input: db5@temp_tbl2 diff --git a/ql/src/test/results/clientpositive/dbtxnmgr_ddl1.q.out b/ql/src/test/results/clientpositive/dbtxnmgr_ddl1.q.out index f9adbc9..836ab3f 100644 --- a/ql/src/test/results/clientpositive/dbtxnmgr_ddl1.q.out +++ b/ql/src/test/results/clientpositive/dbtxnmgr_ddl1.q.out @@ -224,6 +224,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@t1 POSTHOOK: Output: database:default POSTHOOK: Output: default@V1 +POSTHOOK: Lineage: V1.key SIMPLE [(t1)t1.FieldSchema(name:key, type:string, comment:null), ] PREHOOK: query: alter view V1 set tblproperties ('test'='thisisatest') PREHOOK: type: ALTERVIEW_PROPERTIES PREHOOK: Input: default@v1 diff --git a/ql/src/test/results/clientpositive/dbtxnmgr_query5.q.out b/ql/src/test/results/clientpositive/dbtxnmgr_query5.q.out index a95c5aa..facd497 100644 --- a/ql/src/test/results/clientpositive/dbtxnmgr_query5.q.out +++ b/ql/src/test/results/clientpositive/dbtxnmgr_query5.q.out @@ -35,6 +35,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: foo@t1 POSTHOOK: Output: database:foo POSTHOOK: Output: foo@V1 +POSTHOOK: Lineage: V1.key SIMPLE [(t1)t1.FieldSchema(name:key, type:string, comment:null), ] PREHOOK: query: show tables PREHOOK: type: SHOWTABLES PREHOOK: Input: database:foo diff --git a/ql/src/test/results/clientpositive/describe_formatted_view_partitioned.q.out b/ql/src/test/results/clientpositive/describe_formatted_view_partitioned.q.out index 978df22..c55239b 100644 --- a/ql/src/test/results/clientpositive/describe_formatted_view_partitioned.q.out +++ b/ql/src/test/results/clientpositive/describe_formatted_view_partitioned.q.out @@ -22,6 +22,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@view_partitioned +POSTHOOK: Lineage: view_partitioned.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] PREHOOK: query: ALTER VIEW view_partitioned ADD PARTITION (value='val_86') PREHOOK: type: ALTERTABLE_ADDPARTS diff --git a/ql/src/test/results/clientpositive/describe_formatted_view_partitioned_json.q.out b/ql/src/test/results/clientpositive/describe_formatted_view_partitioned_json.q.out index b0bac90..001abb6 100644 --- a/ql/src/test/results/clientpositive/describe_formatted_view_partitioned_json.q.out +++ b/ql/src/test/results/clientpositive/describe_formatted_view_partitioned_json.q.out @@ -22,6 +22,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@view_partitioned +POSTHOOK: Lineage: view_partitioned.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] PREHOOK: query: ALTER VIEW view_partitioned ADD PARTITION (value='val_86') PREHOOK: type: ALTERTABLE_ADDPARTS diff --git a/ql/src/test/results/clientpositive/escape_comments.q.out b/ql/src/test/results/clientpositive/escape_comments.q.out index 5965c5e..111c103 100644 --- a/ql/src/test/results/clientpositive/escape_comments.q.out +++ b/ql/src/test/results/clientpositive/escape_comments.q.out @@ -34,6 +34,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: escape_comments_db@escape_comments_tbl1 POSTHOOK: Output: database:escape_comments_db POSTHOOK: Output: escape_comments_db@escape_comments_view1 +POSTHOOK: Lineage: escape_comments_view1.col1 SIMPLE [(escape_comments_tbl1)escape_comments_tbl1.FieldSchema(name:col1, type:string, comment:a +b';), ] PREHOOK: query: create index index2 on table escape_comments_tbl1(col1) as 'COMPACT' with deferred rebuild comment 'a\nb' PREHOOK: type: CREATEINDEX PREHOOK: Input: escape_comments_db@escape_comments_tbl1 diff --git a/ql/src/test/results/clientpositive/explain_ddl.q.out b/ql/src/test/results/clientpositive/explain_ddl.q.out index 6da67e7..ee2a60a 100644 --- a/ql/src/test/results/clientpositive/explain_ddl.q.out +++ b/ql/src/test/results/clientpositive/explain_ddl.q.out @@ -8,6 +8,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@V1 +POSTHOOK: Lineage: V1.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: V1.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: select count(*) from V1 where key > 0 PREHOOK: type: QUERY PREHOOK: Input: default@src diff --git a/ql/src/test/results/clientpositive/explain_dependency.q.out b/ql/src/test/results/clientpositive/explain_dependency.q.out index 1b18a32..6ab41c7 100644 --- a/ql/src/test/results/clientpositive/explain_dependency.q.out +++ b/ql/src/test/results/clientpositive/explain_dependency.q.out @@ -8,6 +8,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@V1 +POSTHOOK: Lineage: V1.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: V1.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: CREATE VIEW V2 AS SELECT ds, key, value FROM srcpart WHERE ds IS NOT NULL PREHOOK: type: CREATEVIEW PREHOOK: Input: default@srcpart @@ -18,6 +20,9 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@srcpart POSTHOOK: Output: database:default POSTHOOK: Output: default@V2 +POSTHOOK: Lineage: V2.ds SIMPLE [(srcpart)srcpart.FieldSchema(name:ds, type:string, comment:null), ] +POSTHOOK: Lineage: V2.key SIMPLE [(srcpart)srcpart.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: V2.value SIMPLE [(srcpart)srcpart.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: CREATE VIEW V3 AS SELECT src1.key, src2.value FROM V2 src1 JOIN src src2 ON src1.key = src2.key WHERE src1.ds IS NOT NULL @@ -36,6 +41,8 @@ POSTHOOK: Input: default@srcpart POSTHOOK: Input: default@v2 POSTHOOK: Output: database:default POSTHOOK: Output: default@V3 +POSTHOOK: Lineage: V3.key SIMPLE [(srcpart)srcpart.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: V3.value SIMPLE [(src)src2.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: CREATE VIEW V4 AS SELECT src1.key, src2.value as value1, src3.value as value2 FROM V1 src1 JOIN V2 src2 on src1.key = src2.key JOIN src src3 ON src2.key = src3.key @@ -56,6 +63,9 @@ POSTHOOK: Input: default@v1 POSTHOOK: Input: default@v2 POSTHOOK: Output: database:default POSTHOOK: Output: default@V4 +POSTHOOK: Lineage: V4.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: V4.value1 SIMPLE [(srcpart)srcpart.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: V4.value2 SIMPLE [(src)src3.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: EXPLAIN DEPENDENCY SELECT key, count(1) FROM srcpart WHERE ds IS NOT NULL GROUP BY key PREHOOK: type: QUERY @@ -118,6 +128,10 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@srcpart POSTHOOK: Output: database:default POSTHOOK: Output: default@V5 +POSTHOOK: Lineage: V5.ds SIMPLE [(srcpart)srcpart.FieldSchema(name:ds, type:string, comment:null), ] +POSTHOOK: Lineage: V5.hr SIMPLE [(srcpart)srcpart.FieldSchema(name:hr, type:string, comment:null), ] +POSTHOOK: Lineage: V5.key SIMPLE [(srcpart)srcpart.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: V5.value SIMPLE [(srcpart)srcpart.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: EXPLAIN DEPENDENCY SELECT * FROM V5 PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN DEPENDENCY SELECT * FROM V5 diff --git a/ql/src/test/results/clientpositive/explain_logical.q.out b/ql/src/test/results/clientpositive/explain_logical.q.out index 90f7aca..d1176c1 100644 --- a/ql/src/test/results/clientpositive/explain_logical.q.out +++ b/ql/src/test/results/clientpositive/explain_logical.q.out @@ -8,6 +8,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@V1 +POSTHOOK: Lineage: V1.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: V1.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: CREATE VIEW V2 AS SELECT ds, key, value FROM srcpart WHERE ds IS NOT NULL PREHOOK: type: CREATEVIEW PREHOOK: Input: default@srcpart @@ -18,6 +20,9 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@srcpart POSTHOOK: Output: database:default POSTHOOK: Output: default@V2 +POSTHOOK: Lineage: V2.ds SIMPLE [(srcpart)srcpart.FieldSchema(name:ds, type:string, comment:null), ] +POSTHOOK: Lineage: V2.key SIMPLE [(srcpart)srcpart.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: V2.value SIMPLE [(srcpart)srcpart.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: CREATE VIEW V3 AS SELECT src1.key, src2.value FROM V2 src1 JOIN src src2 ON src1.key = src2.key WHERE src1.ds IS NOT NULL @@ -36,6 +41,8 @@ POSTHOOK: Input: default@srcpart POSTHOOK: Input: default@v2 POSTHOOK: Output: database:default POSTHOOK: Output: default@V3 +POSTHOOK: Lineage: V3.key SIMPLE [(srcpart)srcpart.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: V3.value SIMPLE [(src)src2.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: CREATE VIEW V4 AS SELECT src1.key, src2.value as value1, src3.value as value2 FROM V1 src1 JOIN V2 src2 on src1.key = src2.key JOIN src src3 ON src2.key = src3.key @@ -56,6 +63,9 @@ POSTHOOK: Input: default@v1 POSTHOOK: Input: default@v2 POSTHOOK: Output: database:default POSTHOOK: Output: default@V4 +POSTHOOK: Lineage: V4.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: V4.value1 SIMPLE [(srcpart)srcpart.FieldSchema(name:value, type:string, comment:default), ] +POSTHOOK: Lineage: V4.value2 SIMPLE [(src)src3.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: EXPLAIN LOGICAL SELECT key, count(1) FROM srcpart WHERE ds IS NOT NULL GROUP BY key PREHOOK: type: QUERY @@ -462,6 +472,10 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@srcpart POSTHOOK: Output: database:default POSTHOOK: Output: default@V5 +POSTHOOK: Lineage: V5.ds SIMPLE [(srcpart)srcpart.FieldSchema(name:ds, type:string, comment:null), ] +POSTHOOK: Lineage: V5.hr SIMPLE [(srcpart)srcpart.FieldSchema(name:hr, type:string, comment:null), ] +POSTHOOK: Lineage: V5.key SIMPLE [(srcpart)srcpart.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: V5.value SIMPLE [(srcpart)srcpart.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: EXPLAIN LOGICAL SELECT * FROM V5 PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN LOGICAL SELECT * FROM V5 diff --git a/ql/src/test/results/clientpositive/join_view.q.out b/ql/src/test/results/clientpositive/join_view.q.out index 394706d..1d83742 100644 --- a/ql/src/test/results/clientpositive/join_view.q.out +++ b/ql/src/test/results/clientpositive/join_view.q.out @@ -34,6 +34,9 @@ POSTHOOK: Input: default@invites POSTHOOK: Input: default@invites2 POSTHOOK: Output: database:default POSTHOOK: Output: default@v +POSTHOOK: Lineage: v.bar SIMPLE [(invites)invites.FieldSchema(name:bar, type:string, comment:null), ] +POSTHOOK: Lineage: v.ds SIMPLE [(invites2)invites2.FieldSchema(name:ds, type:string, comment:null), ] +POSTHOOK: Lineage: v.foo SIMPLE [(invites2)invites2.FieldSchema(name:foo, type:int, comment:null), ] Warning: Shuffle Join JOIN[8][tables = [$hdt$_0, $hdt$_1]] in Stage 'Stage-1:MAPRED' is a cross product PREHOOK: query: explain select * from v where ds='2011-09-01' PREHOOK: type: QUERY diff --git a/ql/src/test/results/clientpositive/lateral_view_noalias.q.out b/ql/src/test/results/clientpositive/lateral_view_noalias.q.out index 47b1249..25a85a8 100644 --- a/ql/src/test/results/clientpositive/lateral_view_noalias.q.out +++ b/ql/src/test/results/clientpositive/lateral_view_noalias.q.out @@ -108,6 +108,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@lv_noalias +POSTHOOK: Lineage: lv_noalias.key SCRIPT [] +POSTHOOK: Lineage: lv_noalias.value SCRIPT [] PREHOOK: query: explain select * from lv_noalias a join lv_noalias b on a.key=b.key PREHOOK: type: QUERY POSTHOOK: query: explain select * from lv_noalias a join lv_noalias b on a.key=b.key diff --git a/ql/src/test/results/clientpositive/lateral_view_onview.q.out b/ql/src/test/results/clientpositive/lateral_view_onview.q.out index 6ce31f4..1d3e825 100644 --- a/ql/src/test/results/clientpositive/lateral_view_onview.q.out +++ b/ql/src/test/results/clientpositive/lateral_view_onview.q.out @@ -28,6 +28,10 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@lv_table POSTHOOK: Output: database:default POSTHOOK: Output: default@lv_view +POSTHOOK: Lineage: lv_view.c1 SIMPLE [(lv_table)lv_table.FieldSchema(name:c1, type:string, comment:null), ] +POSTHOOK: Lineage: lv_view.c2 SIMPLE [(lv_table)lv_table.FieldSchema(name:c2, type:array, comment:null), ] +POSTHOOK: Lineage: lv_view.c3 SIMPLE [(lv_table)lv_table.FieldSchema(name:c3, type:int, comment:null), ] +POSTHOOK: Lineage: lv_view.c4 SIMPLE [(lv_table)lv_table.FieldSchema(name:c4, type:char(1), comment:null), ] PREHOOK: query: EXPLAIN SELECT * FROM lv_view LATERAL VIEW explode(array(1,2,3)) myTable AS myCol SORT BY c1 ASC, myCol ASC LIMIT 1 PREHOOK: type: QUERY POSTHOOK: query: EXPLAIN SELECT * FROM lv_view LATERAL VIEW explode(array(1,2,3)) myTable AS myCol SORT BY c1 ASC, myCol ASC LIMIT 1 diff --git a/ql/src/test/results/clientpositive/masking_2.q.out b/ql/src/test/results/clientpositive/masking_2.q.out index 4900a5a..83fca41 100644 --- a/ql/src/test/results/clientpositive/masking_2.q.out +++ b/ql/src/test/results/clientpositive/masking_2.q.out @@ -8,6 +8,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@masking_test +POSTHOOK: Lineage: masking_test.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: masking_test.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: explain select * from masking_test PREHOOK: type: QUERY POSTHOOK: query: explain select * from masking_test diff --git a/ql/src/test/results/clientpositive/masking_6.q.out b/ql/src/test/results/clientpositive/masking_6.q.out index 56e4006..b9004b9 100644 --- a/ql/src/test/results/clientpositive/masking_6.q.out +++ b/ql/src/test/results/clientpositive/masking_6.q.out @@ -12,6 +12,9 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@masking_test +POSTHOOK: Lineage: masking_test._c2 SIMPLE [] +POSTHOOK: Lineage: masking_test.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: masking_test.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: explain select * from masking_test PREHOOK: type: QUERY POSTHOOK: query: explain select * from masking_test @@ -139,6 +142,18 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@masking_test +POSTHOOK: Lineage: masking_test._c1 SIMPLE [] +POSTHOOK: Lineage: masking_test._c10 SIMPLE [] +POSTHOOK: Lineage: masking_test._c11 SIMPLE [] +POSTHOOK: Lineage: masking_test._c2 SIMPLE [] +POSTHOOK: Lineage: masking_test._c3 SIMPLE [] +POSTHOOK: Lineage: masking_test._c4 SIMPLE [] +POSTHOOK: Lineage: masking_test._c5 SIMPLE [] +POSTHOOK: Lineage: masking_test._c6 SIMPLE [] +POSTHOOK: Lineage: masking_test._c7 SIMPLE [] +POSTHOOK: Lineage: masking_test._c8 SIMPLE [] +POSTHOOK: Lineage: masking_test._c9 SIMPLE [] +POSTHOOK: Lineage: masking_test.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] PREHOOK: query: explain select * from masking_test PREHOOK: type: QUERY POSTHOOK: query: explain select * from masking_test diff --git a/ql/src/test/results/clientpositive/masking_7.q.out b/ql/src/test/results/clientpositive/masking_7.q.out index c4531f8..691cd89 100644 --- a/ql/src/test/results/clientpositive/masking_7.q.out +++ b/ql/src/test/results/clientpositive/masking_7.q.out @@ -12,6 +12,10 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@masking_test +POSTHOOK: Lineage: masking_test._c2 SIMPLE [] +POSTHOOK: Lineage: masking_test.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: masking_test.row__id SIMPLE [(src)src.FieldSchema(name:ROW__ID, type:struct, comment:), ] +POSTHOOK: Lineage: masking_test.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: explain select * from masking_test PREHOOK: type: QUERY POSTHOOK: query: explain select * from masking_test @@ -139,6 +143,19 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@masking_test +POSTHOOK: Lineage: masking_test._c1 SIMPLE [] +POSTHOOK: Lineage: masking_test._c10 SIMPLE [] +POSTHOOK: Lineage: masking_test._c11 SIMPLE [] +POSTHOOK: Lineage: masking_test._c12 SIMPLE [] +POSTHOOK: Lineage: masking_test._c3 SIMPLE [] +POSTHOOK: Lineage: masking_test._c4 SIMPLE [] +POSTHOOK: Lineage: masking_test._c5 SIMPLE [] +POSTHOOK: Lineage: masking_test._c6 SIMPLE [] +POSTHOOK: Lineage: masking_test._c7 SIMPLE [] +POSTHOOK: Lineage: masking_test._c8 SIMPLE [] +POSTHOOK: Lineage: masking_test._c9 SIMPLE [] +POSTHOOK: Lineage: masking_test.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: masking_test.row__id SIMPLE [(src)src.FieldSchema(name:ROW__ID, type:struct, comment:), ] PREHOOK: query: explain select * from masking_test PREHOOK: type: QUERY POSTHOOK: query: explain select * from masking_test diff --git a/ql/src/test/results/clientpositive/masking_disablecbo_2.q.out b/ql/src/test/results/clientpositive/masking_disablecbo_2.q.out index 48a366e..a9ace62 100644 --- a/ql/src/test/results/clientpositive/masking_disablecbo_2.q.out +++ b/ql/src/test/results/clientpositive/masking_disablecbo_2.q.out @@ -8,6 +8,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@masking_test +POSTHOOK: Lineage: masking_test.key EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: masking_test.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: explain select * from masking_test PREHOOK: type: QUERY POSTHOOK: query: explain select * from masking_test diff --git a/ql/src/test/results/clientpositive/ppd_field_garbage.q.out b/ql/src/test/results/clientpositive/ppd_field_garbage.q.out index 0dac980..3b9498c 100644 --- a/ql/src/test/results/clientpositive/ppd_field_garbage.q.out +++ b/ql/src/test/results/clientpositive/ppd_field_garbage.q.out @@ -16,6 +16,9 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@test_issue POSTHOOK: Output: database:default POSTHOOK: Output: default@v_test_issue +POSTHOOK: Lineage: v_test_issue.age EXPRESSION [(test_issue)test_issue.FieldSchema(name:test_c, type:struct>, comment:null), ] +POSTHOOK: Lineage: v_test_issue.fileid SIMPLE [(test_issue)test_issue.FieldSchema(name:fileid, type:int, comment:null), ] +POSTHOOK: Lineage: v_test_issue.u SCRIPT [(test_issue)test_issue.FieldSchema(name:infos, type:array>, comment:null), ] PREHOOK: query: LOAD DATA LOCAL INPATH '../../data/files/kv1.txt' INTO TABLE test_issue PREHOOK: type: LOAD #### A masked pattern was here #### diff --git a/ql/src/test/results/clientpositive/quotedid_basic.q.out b/ql/src/test/results/clientpositive/quotedid_basic.q.out index 382c4ad..8897ae9 100644 --- a/ql/src/test/results/clientpositive/quotedid_basic.q.out +++ b/ql/src/test/results/clientpositive/quotedid_basic.q.out @@ -391,6 +391,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@t4 POSTHOOK: Output: database:default POSTHOOK: Output: default@v1 +POSTHOOK: Lineage: v1.x+1` SIMPLE [(t4)t4.FieldSchema(name:x+1`, type:string, comment:null), ] +POSTHOOK: Lineage: v1.y&y SIMPLE [(t4)t4.FieldSchema(name:y&y, type:string, comment:null), ] PREHOOK: query: select `x+1```, `y&y`, rank() over(partition by `x+1``` order by `y&y`) from v1 group by `x+1```, `y&y` diff --git a/ql/src/test/results/clientpositive/show_create_table_view.q.out b/ql/src/test/results/clientpositive/show_create_table_view.q.out index a27209d..7756ef1 100644 --- a/ql/src/test/results/clientpositive/show_create_table_view.q.out +++ b/ql/src/test/results/clientpositive/show_create_table_view.q.out @@ -8,6 +8,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@tmp_copy_src +POSTHOOK: Lineage: tmp_copy_src.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: tmp_copy_src.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: SHOW CREATE TABLE tmp_copy_src PREHOOK: type: SHOW_CREATETABLE PREHOOK: Input: default@tmp_copy_src diff --git a/ql/src/test/results/clientpositive/show_views.q.out b/ql/src/test/results/clientpositive/show_views.q.out index 723b334..41f1e65 100644 --- a/ql/src/test/results/clientpositive/show_views.q.out +++ b/ql/src/test/results/clientpositive/show_views.q.out @@ -34,6 +34,9 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: test1@shtb_test1 POSTHOOK: Output: database:test1 POSTHOOK: Output: test1@shtb_test1_view1 +POSTHOOK: Lineage: shtb_test1_view1.ds SIMPLE [(shtb_test1)shtb_test1.FieldSchema(name:ds, type:string, comment:null), ] +POSTHOOK: Lineage: shtb_test1_view1.key SIMPLE [(shtb_test1)shtb_test1.FieldSchema(name:key, type:int, comment:null), ] +POSTHOOK: Lineage: shtb_test1_view1.value SIMPLE [(shtb_test1)shtb_test1.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: CREATE VIEW shtb_test1_view2 AS SELECT * FROM shtb_test1 where KEY > 100 and KEY < 200 PREHOOK: type: CREATEVIEW PREHOOK: Input: test1@shtb_test1 @@ -44,6 +47,9 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: test1@shtb_test1 POSTHOOK: Output: database:test1 POSTHOOK: Output: test1@shtb_test1_view2 +POSTHOOK: Lineage: shtb_test1_view2.ds SIMPLE [(shtb_test1)shtb_test1.FieldSchema(name:ds, type:string, comment:null), ] +POSTHOOK: Lineage: shtb_test1_view2.key SIMPLE [(shtb_test1)shtb_test1.FieldSchema(name:key, type:int, comment:null), ] +POSTHOOK: Lineage: shtb_test1_view2.value SIMPLE [(shtb_test1)shtb_test1.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: CREATE VIEW shtb_full_view2 AS SELECT * FROM shtb_test1 PREHOOK: type: CREATEVIEW PREHOOK: Input: test1@shtb_test1 @@ -54,6 +60,9 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: test1@shtb_test1 POSTHOOK: Output: database:test1 POSTHOOK: Output: test1@shtb_full_view2 +POSTHOOK: Lineage: shtb_full_view2.ds SIMPLE [(shtb_test1)shtb_test1.FieldSchema(name:ds, type:string, comment:null), ] +POSTHOOK: Lineage: shtb_full_view2.key SIMPLE [(shtb_test1)shtb_test1.FieldSchema(name:key, type:int, comment:null), ] +POSTHOOK: Lineage: shtb_full_view2.value SIMPLE [(shtb_test1)shtb_test1.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: USE test2 PREHOOK: type: SWITCHDATABASE PREHOOK: Input: database:test2 @@ -86,6 +95,9 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: test2@shtb_test1 POSTHOOK: Output: database:test2 POSTHOOK: Output: test2@shtb_test1_view1 +POSTHOOK: Lineage: shtb_test1_view1.ds SIMPLE [(shtb_test1)shtb_test1.FieldSchema(name:ds, type:string, comment:null), ] +POSTHOOK: Lineage: shtb_test1_view1.key SIMPLE [(shtb_test1)shtb_test1.FieldSchema(name:key, type:int, comment:null), ] +POSTHOOK: Lineage: shtb_test1_view1.value SIMPLE [(shtb_test1)shtb_test1.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: CREATE VIEW shtb_test2_view2 AS SELECT * FROM shtb_test2 where KEY > 100 and KEY < 200 PREHOOK: type: CREATEVIEW PREHOOK: Input: test2@shtb_test2 @@ -96,6 +108,9 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: test2@shtb_test2 POSTHOOK: Output: database:test2 POSTHOOK: Output: test2@shtb_test2_view2 +POSTHOOK: Lineage: shtb_test2_view2.ds SIMPLE [(shtb_test2)shtb_test2.FieldSchema(name:ds, type:string, comment:null), ] +POSTHOOK: Lineage: shtb_test2_view2.key SIMPLE [(shtb_test2)shtb_test2.FieldSchema(name:key, type:int, comment:null), ] +POSTHOOK: Lineage: shtb_test2_view2.value SIMPLE [(shtb_test2)shtb_test2.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: USE test1 PREHOOK: type: SWITCHDATABASE PREHOOK: Input: database:test1 @@ -203,6 +218,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: database@foo POSTHOOK: Output: database:database POSTHOOK: Output: database@fooview +POSTHOOK: Lineage: fooview.a SIMPLE [(foo)foo.FieldSchema(name:a, type:int, comment:null), ] PREHOOK: query: USE default PREHOOK: type: SWITCHDATABASE PREHOOK: Input: database:default diff --git a/ql/src/test/results/clientpositive/struct_in_view.q.out b/ql/src/test/results/clientpositive/struct_in_view.q.out index 8d37521..bea35fc 100644 --- a/ql/src/test/results/clientpositive/struct_in_view.q.out +++ b/ql/src/test/results/clientpositive/struct_in_view.q.out @@ -20,6 +20,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@testreserved POSTHOOK: Output: database:default POSTHOOK: Output: default@testreservedview +POSTHOOK: Lineage: testreservedview.data_end EXPRESSION [(testreserved)testreserved.FieldSchema(name:data, type:struct, comment:null), ] +POSTHOOK: Lineage: testreservedview.data_id EXPRESSION [(testreserved)testreserved.FieldSchema(name:data, type:struct, comment:null), ] PREHOOK: query: describe extended testreservedview PREHOOK: type: DESCTABLE PREHOOK: Input: default@testreservedview @@ -72,6 +74,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@s POSTHOOK: Output: database:default POSTHOOK: Output: default@vs1 +POSTHOOK: Lineage: vs1.key EXPRESSION [(s)s.FieldSchema(name:default, type:struct,id:string>,id:string>, comment:null), ] PREHOOK: query: describe extended vs1 PREHOOK: type: DESCTABLE PREHOOK: Input: default@vs1 @@ -91,6 +94,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@s POSTHOOK: Output: database:default POSTHOOK: Output: default@vs2 +POSTHOOK: Lineage: vs2.end EXPRESSION [(s)s.FieldSchema(name:default, type:struct,id:string>,id:string>, comment:null), ] PREHOOK: query: describe extended vs2 PREHOOK: type: DESCTABLE PREHOOK: Input: default@vs2 @@ -126,6 +130,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@v +POSTHOOK: Lineage: v.key EXPRESSION [] PREHOOK: query: desc extended v PREHOOK: type: DESCTABLE PREHOOK: Input: default@v @@ -175,6 +180,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@v +POSTHOOK: Lineage: v.end EXPRESSION [] PREHOOK: query: desc extended v PREHOOK: type: DESCTABLE PREHOOK: Input: default@v diff --git a/ql/src/test/results/clientpositive/subquery_exists.q.out b/ql/src/test/results/clientpositive/subquery_exists.q.out index 9c02d6a..27eff11 100644 --- a/ql/src/test/results/clientpositive/subquery_exists.q.out +++ b/ql/src/test/results/clientpositive/subquery_exists.q.out @@ -221,6 +221,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@cv1 +POSTHOOK: Lineage: cv1.key SIMPLE [(src)b.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: cv1.value SIMPLE [(src)b.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: select * from cv1 PREHOOK: type: QUERY PREHOOK: Input: default@cv1 diff --git a/ql/src/test/results/clientpositive/subquery_exists_having.q.out b/ql/src/test/results/clientpositive/subquery_exists_having.q.out index a369c69..96263bf 100644 --- a/ql/src/test/results/clientpositive/subquery_exists_having.q.out +++ b/ql/src/test/results/clientpositive/subquery_exists_having.q.out @@ -479,6 +479,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@cv1 +POSTHOOK: Lineage: cv1.c EXPRESSION [(src)b.null, ] +POSTHOOK: Lineage: cv1.key SIMPLE [(src)b.FieldSchema(name:key, type:string, comment:default), ] PREHOOK: query: select * from cv1 PREHOOK: type: QUERY PREHOOK: Input: default@cv1 diff --git a/ql/src/test/results/clientpositive/unicode_comments.q.out b/ql/src/test/results/clientpositive/unicode_comments.q.out index 19413b9..ae50c67 100644 --- a/ql/src/test/results/clientpositive/unicode_comments.q.out +++ b/ql/src/test/results/clientpositive/unicode_comments.q.out @@ -34,6 +34,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: unicode_comments_db@unicode_comments_tbl1 POSTHOOK: Output: database:unicode_comments_db POSTHOOK: Output: unicode_comments_db@unicode_comments_view1 +POSTHOOK: Lineage: unicode_comments_view1.col1 SIMPLE [(unicode_comments_tbl1)unicode_comments_tbl1.FieldSchema(name:col1, type:string, comment:第一列), ] PREHOOK: query: create index index2 on table unicode_comments_tbl1(col1) as 'COMPACT' with deferred rebuild comment '索引' PREHOOK: type: CREATEINDEX PREHOOK: Input: unicode_comments_db@unicode_comments_tbl1 diff --git a/ql/src/test/results/clientpositive/unionall_join_nullconstant.q.out b/ql/src/test/results/clientpositive/unionall_join_nullconstant.q.out index cced114..9355b02 100644 --- a/ql/src/test/results/clientpositive/unionall_join_nullconstant.q.out +++ b/ql/src/test/results/clientpositive/unionall_join_nullconstant.q.out @@ -100,6 +100,8 @@ POSTHOOK: Input: default@table_b1 POSTHOOK: Input: default@table_b2 POSTHOOK: Output: database:default POSTHOOK: Output: default@a_view +POSTHOOK: Lineage: a_view.autoname EXPRESSION [(table_a1)a1.FieldSchema(name:composite_key, type:string, comment:null), (table_b1)b1.FieldSchema(name:composite_key, type:string, comment:null), ] +POSTHOOK: Lineage: a_view.col1 EXPRESSION [(table_b1)b1.FieldSchema(name:col1, type:string, comment:null), ] PREHOOK: query: INSERT INTO TABLE table_b1 SELECT * FROM ( SELECT 'something|awful', 'col1' diff --git a/ql/src/test/results/clientpositive/unionall_unbalancedppd.q.out b/ql/src/test/results/clientpositive/unionall_unbalancedppd.q.out index 0e8b897..b3e128a 100644 --- a/ql/src/test/results/clientpositive/unionall_unbalancedppd.q.out +++ b/ql/src/test/results/clientpositive/unionall_unbalancedppd.q.out @@ -532,6 +532,8 @@ POSTHOOK: Input: default@map_json1 POSTHOOK: Input: default@map_json2 POSTHOOK: Output: database:default POSTHOOK: Output: default@explode +POSTHOOK: Lineage: explode.id EXPRESSION [(map_json1)map_json1.FieldSchema(name:id, type:int, comment:null), (map_json2)map_json2.FieldSchema(name:id, type:int, comment:null), (map_json)map_json.FieldSchema(name:id, type:int, comment:null), ] +POSTHOOK: Lineage: explode.l SCRIPT [(map_json1)map_json1.FieldSchema(name:val, type:array, comment:null), (map_json2)map_json2.FieldSchema(name:val, type:array, comment:null), (map_json)map_json.FieldSchema(name:val, type:array, comment:null), ] PREHOOK: query: select count(*) from explode where get_json_object(l, '$') is NOT NULL PREHOOK: type: QUERY PREHOOK: Input: default@explode diff --git a/ql/src/test/results/clientpositive/unset_table_view_property.q.out b/ql/src/test/results/clientpositive/unset_table_view_property.q.out index f306857..f9c9697 100644 --- a/ql/src/test/results/clientpositive/unset_table_view_property.q.out +++ b/ql/src/test/results/clientpositive/unset_table_view_property.q.out @@ -197,6 +197,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:vt POSTHOOK: Output: vt@testView +POSTHOOK: Lineage: testView.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: ALTER VIEW vt.testView SET TBLPROPERTIES ('propA'='100', 'propB'='200') PREHOOK: type: ALTERVIEW_PROPERTIES PREHOOK: Input: vt@testview diff --git a/ql/src/test/results/clientpositive/view.q.out b/ql/src/test/results/clientpositive/view.q.out index 9896d18..07eba08 100644 --- a/ql/src/test/results/clientpositive/view.q.out +++ b/ql/src/test/results/clientpositive/view.q.out @@ -60,6 +60,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: db1@table1 POSTHOOK: Output: database:db1 POSTHOOK: Output: db1@v1 +POSTHOOK: Lineage: v1.key SIMPLE [(table1)table1.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v1.value SIMPLE [(table1)table1.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: CREATE VIEW v2 AS SELECT t1.* FROM table1 t1 PREHOOK: type: CREATEVIEW PREHOOK: Input: db1@table1 @@ -70,6 +72,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: db1@table1 POSTHOOK: Output: database:db1 POSTHOOK: Output: db1@v2 +POSTHOOK: Lineage: v2.key SIMPLE [(table1)t1.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v2.value SIMPLE [(table1)t1.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: CREATE VIEW v3 AS SELECT t1.*, t2.key k FROM table1 t1 JOIN table2 t2 ON t1.key = t2.key PREHOOK: type: CREATEVIEW PREHOOK: Input: db1@table1 @@ -82,6 +86,9 @@ POSTHOOK: Input: db1@table1 POSTHOOK: Input: db1@table2 POSTHOOK: Output: database:db1 POSTHOOK: Output: db1@v3 +POSTHOOK: Lineage: v3.k SIMPLE [(table2)t2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v3.key SIMPLE [(table1)t1.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v3.value SIMPLE [(table1)t1.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: CREATE VIEW v4 AS SELECT * FROM db1.table1 PREHOOK: type: CREATEVIEW PREHOOK: Input: db1@table1 @@ -92,6 +99,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: db1@table1 POSTHOOK: Output: database:db1 POSTHOOK: Output: db1@v4 +POSTHOOK: Lineage: v4.key SIMPLE [(table1)table1.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v4.value SIMPLE [(table1)table1.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: CREATE VIEW v5 AS SELECT t1.* FROM db1.table1 t1 PREHOOK: type: CREATEVIEW PREHOOK: Input: db1@table1 @@ -102,6 +111,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: db1@table1 POSTHOOK: Output: database:db1 POSTHOOK: Output: db1@v5 +POSTHOOK: Lineage: v5.key SIMPLE [(table1)t1.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v5.value SIMPLE [(table1)t1.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: CREATE VIEW v6 AS SELECT t1.*, t2.key k FROM db1.table1 t1 JOIN db1.table2 t2 ON t1.key = t2.key PREHOOK: type: CREATEVIEW PREHOOK: Input: db1@table1 @@ -114,6 +125,9 @@ POSTHOOK: Input: db1@table1 POSTHOOK: Input: db1@table2 POSTHOOK: Output: database:db1 POSTHOOK: Output: db1@v6 +POSTHOOK: Lineage: v6.k SIMPLE [(table2)t2.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v6.key SIMPLE [(table1)t1.FieldSchema(name:key, type:string, comment:null), ] +POSTHOOK: Lineage: v6.value SIMPLE [(table1)t1.FieldSchema(name:value, type:string, comment:null), ] PREHOOK: query: CREATE VIEW v7 AS SELECT key from table1 PREHOOK: type: CREATEVIEW PREHOOK: Input: db1@table1 @@ -124,6 +138,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: db1@table1 POSTHOOK: Output: database:db1 POSTHOOK: Output: db1@v7 +POSTHOOK: Lineage: v7.key SIMPLE [(table1)table1.FieldSchema(name:key, type:string, comment:null), ] PREHOOK: query: CREATE VIEW v8 AS SELECT key from db1.table1 PREHOOK: type: CREATEVIEW PREHOOK: Input: db1@table1 @@ -134,6 +149,7 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: db1@table1 POSTHOOK: Output: database:db1 POSTHOOK: Output: db1@v8 +POSTHOOK: Lineage: v8.key SIMPLE [(table1)table1.FieldSchema(name:key, type:string, comment:null), ] PREHOOK: query: CREATE DATABASE db2 PREHOOK: type: CREATEDATABASE PREHOOK: Output: database:db2 diff --git a/ql/src/test/results/clientpositive/view_alias.q.out b/ql/src/test/results/clientpositive/view_alias.q.out index 4e952bb..0d7e72f 100644 --- a/ql/src/test/results/clientpositive/view_alias.q.out +++ b/ql/src/test/results/clientpositive/view_alias.q.out @@ -12,6 +12,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@v +POSTHOOK: Lineage: v._c1 SIMPLE [] +POSTHOOK: Lineage: v.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] PREHOOK: query: desc formatted v PREHOOK: type: DESCTABLE PREHOOK: Input: default@v @@ -77,6 +79,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@v +POSTHOOK: Lineage: v._c1 SIMPLE [] +POSTHOOK: Lineage: v.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] PREHOOK: query: desc formatted v PREHOOK: type: DESCTABLE PREHOOK: Input: default@v @@ -142,6 +146,9 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@v +POSTHOOK: Lineage: v._c2 SIMPLE [] +POSTHOOK: Lineage: v.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: v.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: desc formatted v PREHOOK: type: DESCTABLE PREHOOK: Input: default@v @@ -208,6 +215,9 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@v +POSTHOOK: Lineage: v._c121 SIMPLE [] +POSTHOOK: Lineage: v.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: v.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: desc formatted v PREHOOK: type: DESCTABLE PREHOOK: Input: default@v @@ -274,6 +284,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@v +POSTHOOK: Lineage: v._c1 EXPRESSION [(src)src.null, ] +POSTHOOK: Lineage: v.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] PREHOOK: query: desc formatted v PREHOOK: type: DESCTABLE PREHOOK: Input: default@v @@ -377,6 +389,13 @@ POSTHOOK: Input: default@a POSTHOOK: Input: default@b POSTHOOK: Output: database:default POSTHOOK: Output: default@v +POSTHOOK: Lineage: v._c0 SIMPLE [] +POSTHOOK: Lineage: v._c3 SIMPLE [] +POSTHOOK: Lineage: v._c6 SIMPLE [] +POSTHOOK: Lineage: v.ca SIMPLE [(a)a.FieldSchema(name:ca, type:string, comment:null), ] +POSTHOOK: Lineage: v.caa SIMPLE [(a)a.FieldSchema(name:caa, type:string, comment:null), ] +POSTHOOK: Lineage: v.cb SIMPLE [(b)b.FieldSchema(name:cb, type:string, comment:null), ] +POSTHOOK: Lineage: v.cbb SIMPLE [(b)b.FieldSchema(name:cbb, type:string, comment:null), ] PREHOOK: query: desc formatted v PREHOOK: type: DESCTABLE PREHOOK: Input: default@v diff --git a/ql/src/test/results/clientpositive/view_authorization_sqlstd.q.out b/ql/src/test/results/clientpositive/view_authorization_sqlstd.q.out index 3832fcf..4130428 100644 --- a/ql/src/test/results/clientpositive/view_authorization_sqlstd.q.out +++ b/ql/src/test/results/clientpositive/view_authorization_sqlstd.q.out @@ -30,6 +30,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@t1 POSTHOOK: Output: database:default POSTHOOK: Output: default@vt1 +POSTHOOK: Lineage: vt1.i SIMPLE [(t1)t1.FieldSchema(name:i, type:int, comment:null), ] +POSTHOOK: Lineage: vt1.k SIMPLE [(t1)t1.FieldSchema(name:k, type:int, comment:null), ] PREHOOK: query: create view vt2 as select * from t1 where i > 1 PREHOOK: type: CREATEVIEW PREHOOK: Input: default@t1 @@ -40,6 +42,9 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@t1 POSTHOOK: Output: database:default POSTHOOK: Output: default@vt2 +POSTHOOK: Lineage: vt2.i SIMPLE [(t1)t1.FieldSchema(name:i, type:int, comment:null), ] +POSTHOOK: Lineage: vt2.j SIMPLE [(t1)t1.FieldSchema(name:j, type:int, comment:null), ] +POSTHOOK: Lineage: vt2.k SIMPLE [(t1)t1.FieldSchema(name:k, type:int, comment:null), ] PREHOOK: query: show grant user user1 on all PREHOOK: type: SHOW_GRANT POSTHOOK: query: show grant user user1 on all @@ -83,6 +88,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@t1 POSTHOOK: Output: database:default POSTHOOK: Output: default@vt3 +POSTHOOK: Lineage: vt3.i SIMPLE [(t1)t1.FieldSchema(name:i, type:int, comment:null), ] +POSTHOOK: Lineage: vt3.k SIMPLE [(t1)t1.FieldSchema(name:k, type:int, comment:null), ] PREHOOK: query: show grant user user3 on table vt1 PREHOOK: type: SHOW_GRANT POSTHOOK: query: show grant user user3 on table vt1 diff --git a/ql/src/test/results/clientpositive/view_cast.q.out b/ql/src/test/results/clientpositive/view_cast.q.out index b771b7f..6c89960 100644 --- a/ql/src/test/results/clientpositive/view_cast.q.out +++ b/ql/src/test/results/clientpositive/view_cast.q.out @@ -63,6 +63,13 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@atab POSTHOOK: Output: database:default POSTHOOK: Output: default@aa_view_tw +POSTHOOK: Lineage: aa_view_tw.act SIMPLE [(atab)atab.FieldSchema(name:act, type:string, comment:null), ] +POSTHOOK: Lineage: aa_view_tw.act_date EXPRESSION [(atab)atab.FieldSchema(name:tstamp, type:string, comment:null), ] +POSTHOOK: Lineage: aa_view_tw.at_ks_uid SIMPLE [(atab)atab.FieldSchema(name:at_ks_uid, type:bigint, comment:null), ] +POSTHOOK: Lineage: aa_view_tw.at_sr_uid SIMPLE [(atab)atab.FieldSchema(name:at_sr_uid, type:string, comment:null), ] +POSTHOOK: Lineage: aa_view_tw.content_creation_date EXPRESSION [(atab)atab.FieldSchema(name:original_tstamp, type:string, comment:null), ] +POSTHOOK: Lineage: aa_view_tw.ks_uid SIMPLE [(atab)atab.FieldSchema(name:ks_uid, type:bigint, comment:null), ] +POSTHOOK: Lineage: aa_view_tw.sr_id SIMPLE [(atab)atab.FieldSchema(name:sr_id, type:string, comment:null), ] PREHOOK: query: DROP VIEW IF EXISTS joined_aa_view_tw PREHOOK: type: DROPVIEW POSTHOOK: query: DROP VIEW IF EXISTS joined_aa_view_tw @@ -81,6 +88,15 @@ POSTHOOK: Input: default@atab POSTHOOK: Input: default@mstab POSTHOOK: Output: database:default POSTHOOK: Output: default@joined_aa_view_tw +POSTHOOK: Lineage: joined_aa_view_tw.act SIMPLE [(atab)atab.FieldSchema(name:act, type:string, comment:null), ] +POSTHOOK: Lineage: joined_aa_view_tw.act_date EXPRESSION [(atab)atab.FieldSchema(name:tstamp, type:string, comment:null), ] +POSTHOOK: Lineage: joined_aa_view_tw.at_ks_uid SIMPLE [(atab)atab.FieldSchema(name:at_ks_uid, type:bigint, comment:null), ] +POSTHOOK: Lineage: joined_aa_view_tw.at_ksc EXPRESSION [(mstab)mstab.FieldSchema(name:csc, type:int, comment:null), ] +POSTHOOK: Lineage: joined_aa_view_tw.at_sr_uid SIMPLE [(atab)atab.FieldSchema(name:at_sr_uid, type:string, comment:null), ] +POSTHOOK: Lineage: joined_aa_view_tw.content_creation_date EXPRESSION [(atab)atab.FieldSchema(name:original_tstamp, type:string, comment:null), ] +POSTHOOK: Lineage: joined_aa_view_tw.ks_uid SIMPLE [(atab)atab.FieldSchema(name:ks_uid, type:bigint, comment:null), ] +POSTHOOK: Lineage: joined_aa_view_tw.self_ksc EXPRESSION [(mstab)mstab.FieldSchema(name:csc, type:int, comment:null), ] +POSTHOOK: Lineage: joined_aa_view_tw.sr_id SIMPLE [(atab)atab.FieldSchema(name:sr_id, type:string, comment:null), ] PREHOOK: query: SELECT * FROM joined_aa_view_tw PREHOOK: type: QUERY PREHOOK: Input: default@aa_view_tw diff --git a/ql/src/test/results/clientpositive/view_inputs.q.out b/ql/src/test/results/clientpositive/view_inputs.q.out index aa52b33..f4d679f 100644 --- a/ql/src/test/results/clientpositive/view_inputs.q.out +++ b/ql/src/test/results/clientpositive/view_inputs.q.out @@ -8,6 +8,8 @@ POSTHOOK: type: CREATEVIEW POSTHOOK: Input: default@src POSTHOOK: Output: database:default POSTHOOK: Output: default@test_view1 +POSTHOOK: Lineage: test_view1.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: test_view1.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: CREATE VIEW test_view2 AS SELECT * FROM test_view1 PREHOOK: type: CREATEVIEW PREHOOK: Input: default@src @@ -20,6 +22,8 @@ POSTHOOK: Input: default@src POSTHOOK: Input: default@test_view1 POSTHOOK: Output: database:default POSTHOOK: Output: default@test_view2 +POSTHOOK: Lineage: test_view2.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: test_view2.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] PREHOOK: query: SELECT COUNT(*) FROM test_view1 a JOIN test_view2 b ON a.key = b.key PREHOOK: type: QUERY PREHOOK: Input: default@src