You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by dk...@apache.org on 2022/06/08 07:59:28 UTC

[hive] branch master updated: HIVE-26266: Column information is missing from lineage for CTAS when custom/translated location is used (Sourabh Badhya, reviewed by Zoltan Haindrich)

This is an automated email from the ASF dual-hosted git repository.

dkuzmenko pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hive.git


The following commit(s) were added to refs/heads/master by this push:
     new c9e12d84ca0 HIVE-26266: Column information is missing from lineage for CTAS when custom/translated location is used (Sourabh Badhya, reviewed by  Zoltan Haindrich)
c9e12d84ca0 is described below

commit c9e12d84ca0c72732cd24aa0b160f474309f5de9
Author: Sourabh Badhya <42...@users.noreply.github.com>
AuthorDate: Wed Jun 8 13:29:20 2022 +0530

    HIVE-26266: Column information is missing from lineage for CTAS when custom/translated location is used (Sourabh Badhya, reviewed by  Zoltan Haindrich)
    
    Closes #3331
---
 .../ctas_blobstore_to_blobstore.q.out              |  3 +
 .../clientpositive/ctas_hdfs_to_blobstore.q.out    |  3 +
 .../hadoop/hive/ql/parse/SemanticAnalyzer.java     |  8 ++-
 .../clientnegative/ctas_noemptyfolder.q.out        |  2 +
 .../clientpositive/encrypted/encryption_ctas.q.out |  2 +
 .../clientpositive/llap/autoColumnStats_7.q.out    |  2 +
 .../clientpositive/llap/crtseltbl_serdeprops.q.out |  2 +
 .../ctas_direct_with_specified_locations.q.out     | 82 ++++++++++++++++++++++
 .../llap/ctas_direct_with_transformers.q.out       | 82 ++++++++++++++++++++++
 .../llap/ctas_uses_table_location.q.out            |  2 +
 .../test/results/clientpositive/llap/foldts.q.out  |  2 +
 .../results/clientpositive/llap/masking_10.q.out   |  2 +
 .../results/clientpositive/llap/masking_9.q.out    |  2 +
 .../clientpositive/llap/masking_reserved.q.out     |  3 +
 .../results/clientpositive/llap/mm_cttas.q.out     |  2 +
 .../results/clientpositive/llap/mm_loc_ctas.q.out  |  2 +
 .../llap/parquet_thrift_array_of_primitives.q.out  |  1 +
 .../llap/results_cache_temptable.q.out             |  7 ++
 .../clientpositive/llap/stats_partial_size.q.out   |  2 +
 .../results/clientpositive/llap/temp_table.q.out   |  8 +++
 .../clientpositive/llap/temp_table_gb1.q.out       |  2 +
 .../clientpositive/llap/temp_table_join1.q.out     |  2 +
 .../llap/temp_table_llap_partitioned.q.out         |  4 ++
 ...mp_table_parquet_mixed_partition_formats2.q.out |  4 ++
 .../llap/temp_table_partition_ctas.q.out           |  5 ++
 .../llap/temp_table_partition_decode_name.q.out    |  2 +
 .../llap/temp_table_partition_special_char.q.out   |  2 +
 .../clientpositive/llap/temp_table_subquery1.q.out |  2 +
 .../clientpositive/llap/temp_table_truncate.q.out  |  6 ++
 .../llap/vector_tablesample_rows.q.out             |  1 +
 30 files changed, 248 insertions(+), 1 deletion(-)

diff --git a/itests/hive-blobstore/src/test/results/clientpositive/ctas_blobstore_to_blobstore.q.out b/itests/hive-blobstore/src/test/results/clientpositive/ctas_blobstore_to_blobstore.q.out
index 3c05822f7c8..1f184d56f92 100644
--- a/itests/hive-blobstore/src/test/results/clientpositive/ctas_blobstore_to_blobstore.q.out
+++ b/itests/hive-blobstore/src/test/results/clientpositive/ctas_blobstore_to_blobstore.q.out
@@ -52,6 +52,9 @@ POSTHOOK: Input: default@blobstore_source
 POSTHOOK: Input: ### test.blobstore.path ###/ctas_blobstore_to_blobstore/blobstore_target
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@blobstore_target
+POSTHOOK: Lineage: blobstore_target.a SIMPLE [(blobstore_source)blobstore_source.FieldSchema(name:a, type:string, comment:null), ]
+POSTHOOK: Lineage: blobstore_target.b SIMPLE [(blobstore_source)blobstore_source.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: blobstore_target.c SIMPLE [(blobstore_source)blobstore_source.FieldSchema(name:c, type:double, comment:null), ]
 PREHOOK: query: DROP DATABASE IF EXISTS target_db
 PREHOOK: type: DROPDATABASE
 POSTHOOK: query: DROP DATABASE IF EXISTS target_db
diff --git a/itests/hive-blobstore/src/test/results/clientpositive/ctas_hdfs_to_blobstore.q.out b/itests/hive-blobstore/src/test/results/clientpositive/ctas_hdfs_to_blobstore.q.out
index 0a82dea2998..3d43f39f87f 100644
--- a/itests/hive-blobstore/src/test/results/clientpositive/ctas_hdfs_to_blobstore.q.out
+++ b/itests/hive-blobstore/src/test/results/clientpositive/ctas_hdfs_to_blobstore.q.out
@@ -48,6 +48,9 @@ POSTHOOK: Input: default@hdfs_source
 POSTHOOK: Input: ### test.blobstore.path ###/ctas_hdfs_to_blobstore/blobstore_target
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@blobstore_target
+POSTHOOK: Lineage: blobstore_target.a SIMPLE [(hdfs_source)hdfs_source.FieldSchema(name:a, type:string, comment:null), ]
+POSTHOOK: Lineage: blobstore_target.b SIMPLE [(hdfs_source)hdfs_source.FieldSchema(name:b, type:string, comment:null), ]
+POSTHOOK: Lineage: blobstore_target.c SIMPLE [(hdfs_source)hdfs_source.FieldSchema(name:c, type:double, comment:null), ]
 PREHOOK: query: DROP DATABASE IF EXISTS target_db
 PREHOOK: type: DROPDATABASE
 POSTHOOK: query: DROP DATABASE IF EXISTS target_db
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 aef1bc6e313..881f265081d 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
@@ -7764,7 +7764,8 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
       boolean isDfsDir = (destType == QBMetaData.DEST_DFS_FILE);
 
       try {
-        destinationTable = tblDesc != null ? tblDesc.toTable(conf) : viewDesc != null ? viewDesc.toTable(conf) : null;
+        destinationTable = tblDesc != null ? db.getTranslateTableDryrun(tblDesc.toTable(conf).getTTable()) :
+                viewDesc != null ? viewDesc.toTable(conf) : null;
       } catch (HiveException e) {
         throw new SemanticException(e);
       }
@@ -8306,6 +8307,11 @@ public class SemanticAnalyzer extends BaseSemanticAnalyzer {
         Warehouse wh = new Warehouse(conf);
         tlocation = wh.getDefaultTablePath(db.getDatabase(tableDesc.getDatabaseName()),
             tName + suffix, tableDesc.isExternal());
+
+        if (destinationTable != null && destinationTable.getSd() != null
+                && destinationTable.getPath() != null) {
+          tlocation = destinationTable.getPath();
+        }
       } catch (MetaException|HiveException e) {
         throw new SemanticException(e);
       }
diff --git a/ql/src/test/results/clientnegative/ctas_noemptyfolder.q.out b/ql/src/test/results/clientnegative/ctas_noemptyfolder.q.out
index 76d7b867f4f..fda0737de16 100644
--- a/ql/src/test/results/clientnegative/ctas_noemptyfolder.q.out
+++ b/ql/src/test/results/clientnegative/ctas_noemptyfolder.q.out
@@ -16,4 +16,6 @@ POSTHOOK: Input: default@src
 #### A masked pattern was here ####
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@ctas1
+POSTHOOK: Lineage: ctas1.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: ctas1.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
 #### A masked pattern was here ####
diff --git a/ql/src/test/results/clientpositive/encrypted/encryption_ctas.q.out b/ql/src/test/results/clientpositive/encrypted/encryption_ctas.q.out
index d8d30b405c4..a33f6d30d3d 100644
--- a/ql/src/test/results/clientpositive/encrypted/encryption_ctas.q.out
+++ b/ql/src/test/results/clientpositive/encrypted/encryption_ctas.q.out
@@ -28,6 +28,8 @@ POSTHOOK: Input: default@src
 POSTHOOK: Input: hdfs://### HDFS PATH ###
 POSTHOOK: Output: database:testct
 POSTHOOK: Output: testCT@encrypted_tablectas
+POSTHOOK: Lineage: encrypted_tablectas.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: encrypted_tablectas.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
 PREHOOK: query: select * from testCT.encrypted_tablectas
 PREHOOK: type: QUERY
 PREHOOK: Input: testct@encrypted_tablectas
diff --git a/ql/src/test/results/clientpositive/llap/autoColumnStats_7.q.out b/ql/src/test/results/clientpositive/llap/autoColumnStats_7.q.out
index 274eeb83ab7..03d2d98cd68 100644
--- a/ql/src/test/results/clientpositive/llap/autoColumnStats_7.q.out
+++ b/ql/src/test/results/clientpositive/llap/autoColumnStats_7.q.out
@@ -16,6 +16,8 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: default@src
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@src_temp
+POSTHOOK: Lineage: src_temp.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src_temp.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
 PREHOOK: query: explain FROM src_temp
 INSERT OVERWRITE TABLE dest_g2_n5 SELECT substr(src_temp.key,1,1), count(DISTINCT substr(src_temp.value,5)), concat(substr(src_temp.key,1,1),sum(substr(src_temp.value,5))) GROUP BY substr(src_temp.key,1,1)
 PREHOOK: type: QUERY
diff --git a/ql/src/test/results/clientpositive/llap/crtseltbl_serdeprops.q.out b/ql/src/test/results/clientpositive/llap/crtseltbl_serdeprops.q.out
index 3af91508951..f885641b975 100644
--- a/ql/src/test/results/clientpositive/llap/crtseltbl_serdeprops.q.out
+++ b/ql/src/test/results/clientpositive/llap/crtseltbl_serdeprops.q.out
@@ -24,6 +24,8 @@ POSTHOOK: Input: default@src
 #### A masked pattern was here ####
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@separator_test
+POSTHOOK: Lineage: separator_test.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: separator_test.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
 "100"|"val_100"
 PREHOOK: query: drop table separator_test
 PREHOOK: type: DROPTABLE
diff --git a/ql/src/test/results/clientpositive/llap/ctas_direct_with_specified_locations.q.out b/ql/src/test/results/clientpositive/llap/ctas_direct_with_specified_locations.q.out
index d701d78daf3..04c2cea67cd 100644
--- a/ql/src/test/results/clientpositive/llap/ctas_direct_with_specified_locations.q.out
+++ b/ql/src/test/results/clientpositive/llap/ctas_direct_with_specified_locations.q.out
@@ -50,6 +50,11 @@ POSTHOOK: Input: default@alltypesorc
 POSTHOOK: Input: hdfs://### HDFS PATH ###
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@source
+POSTHOOK: Lineage: source.cdouble SIMPLE [(alltypesorc)alltypesorc.FieldSchema(name:cdouble, type:double, comment:null), ]
+POSTHOOK: Lineage: source.cfloat SIMPLE [(alltypesorc)alltypesorc.FieldSchema(name:cfloat, type:float, comment:null), ]
+POSTHOOK: Lineage: source.cint SIMPLE [(alltypesorc)alltypesorc.FieldSchema(name:cint, type:int, comment:null), ]
+POSTHOOK: Lineage: source.cstring1 SIMPLE [(alltypesorc)alltypesorc.FieldSchema(name:cstring1, type:string, comment:null), ]
+POSTHOOK: Lineage: source.ctimestamp1 SIMPLE [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp1, type:timestamp, comment:null), ]
 #### A masked pattern was here ####
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@alltypesorc
@@ -62,6 +67,18 @@ POSTHOOK: Input: default@alltypesorc
 POSTHOOK: Input: hdfs://### HDFS PATH ###
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@test_orc_ctas
+POSTHOOK: Lineage: test_orc_ctas.cbigint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cbigint, type:bigint, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.cboolean1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean1, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.cboolean2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean2, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.cdouble EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cdouble, type:double, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.cfloat EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cfloat, type:float, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.cint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cint, type:int, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.csmallint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:csmallint, type:smallint, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.cstring1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring1, type:string, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.cstring2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring2, type:string, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.ctimestamp1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp1, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.ctimestamp2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp2, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.ctinyint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctinyint, type:tinyint, comment:null), ]
 #### A masked pattern was here ####
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@alltypesorc
@@ -74,6 +91,18 @@ POSTHOOK: Input: default@alltypesorc
 POSTHOOK: Input: hdfs://### HDFS PATH ###
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@test_orc_mmctas
+POSTHOOK: Lineage: test_orc_mmctas.cbigint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cbigint, type:bigint, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.cboolean1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean1, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.cboolean2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean2, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.cdouble EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cdouble, type:double, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.cfloat EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cfloat, type:float, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.cint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cint, type:int, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.csmallint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:csmallint, type:smallint, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.cstring1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring1, type:string, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.cstring2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring2, type:string, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.ctimestamp1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp1, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.ctimestamp2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp2, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.ctinyint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctinyint, type:tinyint, comment:null), ]
 #### A masked pattern was here ####
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@alltypesorc
@@ -86,6 +115,18 @@ POSTHOOK: Input: default@alltypesorc
 POSTHOOK: Input: hdfs://### HDFS PATH ###
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@test_parquet_mmctas
+POSTHOOK: Lineage: test_parquet_mmctas.cbigint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cbigint, type:bigint, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.cboolean1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean1, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.cboolean2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean2, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.cdouble EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cdouble, type:double, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.cfloat EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cfloat, type:float, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.cint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cint, type:int, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.csmallint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:csmallint, type:smallint, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.cstring1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring1, type:string, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.cstring2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring2, type:string, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.ctimestamp1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp1, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.ctimestamp2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp2, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.ctinyint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctinyint, type:tinyint, comment:null), ]
 #### A masked pattern was here ####
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@source
@@ -98,6 +139,11 @@ POSTHOOK: Input: default@source
 POSTHOOK: Input: hdfs://### HDFS PATH ###
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@test_avro_mmctas
+POSTHOOK: Lineage: test_avro_mmctas.cdouble EXPRESSION [(source)source.FieldSchema(name:cdouble, type:double, comment:null), ]
+POSTHOOK: Lineage: test_avro_mmctas.cfloat EXPRESSION [(source)source.FieldSchema(name:cfloat, type:float, comment:null), ]
+POSTHOOK: Lineage: test_avro_mmctas.cint EXPRESSION [(source)source.FieldSchema(name:cint, type:int, comment:null), ]
+POSTHOOK: Lineage: test_avro_mmctas.cstring1 EXPRESSION [(source)source.FieldSchema(name:cstring1, type:string, comment:null), ]
+POSTHOOK: Lineage: test_avro_mmctas.ctimestamp1 EXPRESSION [(source)source.FieldSchema(name:ctimestamp1, type:timestamp, comment:null), ]
 #### A masked pattern was here ####
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@alltypesorc
@@ -110,6 +156,18 @@ POSTHOOK: Input: default@alltypesorc
 POSTHOOK: Input: hdfs://### HDFS PATH ###
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@test_textfile_mmctas
+POSTHOOK: Lineage: test_textfile_mmctas.cbigint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cbigint, type:bigint, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.cboolean1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean1, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.cboolean2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean2, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.cdouble EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cdouble, type:double, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.cfloat EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cfloat, type:float, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.cint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cint, type:int, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.csmallint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:csmallint, type:smallint, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.cstring1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring1, type:string, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.cstring2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring2, type:string, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.ctimestamp1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp1, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.ctimestamp2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp2, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.ctinyint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctinyint, type:tinyint, comment:null), ]
 #### A masked pattern was here ####
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@alltypesorc
@@ -823,6 +881,18 @@ POSTHOOK: Input: default@alltypesorc
 POSTHOOK: Input: hdfs://### HDFS PATH ###
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@test_transactional_orc_ctas
+POSTHOOK: Lineage: test_transactional_orc_ctas.cbigint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cbigint, type:bigint, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.cboolean1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean1, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.cboolean2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean2, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.cdouble EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cdouble, type:double, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.cfloat EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cfloat, type:float, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.cint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cint, type:int, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.csmallint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:csmallint, type:smallint, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.cstring1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring1, type:string, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.cstring2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring2, type:string, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.ctimestamp1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp1, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.ctimestamp2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp2, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.ctinyint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctinyint, type:tinyint, comment:null), ]
 #### A masked pattern was here ####
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@alltypesorc
@@ -992,6 +1062,18 @@ POSTHOOK: Input: default@alltypesorc
 POSTHOOK: Input: hdfs://### HDFS PATH ###
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@test_managed_orc_ctas
+POSTHOOK: Lineage: test_managed_orc_ctas.cbigint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cbigint, type:bigint, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.cboolean1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean1, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.cboolean2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean2, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.cdouble EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cdouble, type:double, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.cfloat EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cfloat, type:float, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.cint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cint, type:int, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.csmallint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:csmallint, type:smallint, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.cstring1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring1, type:string, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.cstring2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring2, type:string, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.ctimestamp1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp1, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.ctimestamp2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp2, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.ctinyint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctinyint, type:tinyint, comment:null), ]
 #### A masked pattern was here ####
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@alltypesorc
diff --git a/ql/src/test/results/clientpositive/llap/ctas_direct_with_transformers.q.out b/ql/src/test/results/clientpositive/llap/ctas_direct_with_transformers.q.out
index bb4b4222387..e5ef62a226e 100644
--- a/ql/src/test/results/clientpositive/llap/ctas_direct_with_transformers.q.out
+++ b/ql/src/test/results/clientpositive/llap/ctas_direct_with_transformers.q.out
@@ -1883,6 +1883,11 @@ POSTHOOK: Input: default@alltypesorc
 POSTHOOK: Input: hdfs://### HDFS PATH ###
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@source
+POSTHOOK: Lineage: source.cdouble SIMPLE [(alltypesorc)alltypesorc.FieldSchema(name:cdouble, type:double, comment:null), ]
+POSTHOOK: Lineage: source.cfloat SIMPLE [(alltypesorc)alltypesorc.FieldSchema(name:cfloat, type:float, comment:null), ]
+POSTHOOK: Lineage: source.cint SIMPLE [(alltypesorc)alltypesorc.FieldSchema(name:cint, type:int, comment:null), ]
+POSTHOOK: Lineage: source.cstring1 SIMPLE [(alltypesorc)alltypesorc.FieldSchema(name:cstring1, type:string, comment:null), ]
+POSTHOOK: Lineage: source.ctimestamp1 SIMPLE [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp1, type:timestamp, comment:null), ]
 #### A masked pattern was here ####
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@alltypesorc
@@ -1895,6 +1900,18 @@ POSTHOOK: Input: default@alltypesorc
 POSTHOOK: Input: hdfs://### HDFS PATH ###
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@test_orc_ctas
+POSTHOOK: Lineage: test_orc_ctas.cbigint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cbigint, type:bigint, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.cboolean1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean1, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.cboolean2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean2, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.cdouble EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cdouble, type:double, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.cfloat EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cfloat, type:float, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.cint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cint, type:int, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.csmallint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:csmallint, type:smallint, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.cstring1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring1, type:string, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.cstring2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring2, type:string, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.ctimestamp1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp1, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.ctimestamp2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp2, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_orc_ctas.ctinyint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctinyint, type:tinyint, comment:null), ]
 #### A masked pattern was here ####
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@alltypesorc
@@ -1907,6 +1924,18 @@ POSTHOOK: Input: default@alltypesorc
 POSTHOOK: Input: hdfs://### HDFS PATH ###
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@test_orc_mmctas
+POSTHOOK: Lineage: test_orc_mmctas.cbigint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cbigint, type:bigint, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.cboolean1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean1, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.cboolean2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean2, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.cdouble EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cdouble, type:double, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.cfloat EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cfloat, type:float, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.cint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cint, type:int, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.csmallint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:csmallint, type:smallint, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.cstring1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring1, type:string, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.cstring2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring2, type:string, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.ctimestamp1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp1, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.ctimestamp2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp2, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_orc_mmctas.ctinyint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctinyint, type:tinyint, comment:null), ]
 #### A masked pattern was here ####
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@alltypesorc
@@ -1919,6 +1948,18 @@ POSTHOOK: Input: default@alltypesorc
 POSTHOOK: Input: hdfs://### HDFS PATH ###
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@test_parquet_mmctas
+POSTHOOK: Lineage: test_parquet_mmctas.cbigint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cbigint, type:bigint, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.cboolean1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean1, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.cboolean2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean2, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.cdouble EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cdouble, type:double, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.cfloat EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cfloat, type:float, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.cint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cint, type:int, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.csmallint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:csmallint, type:smallint, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.cstring1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring1, type:string, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.cstring2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring2, type:string, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.ctimestamp1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp1, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.ctimestamp2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp2, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_parquet_mmctas.ctinyint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctinyint, type:tinyint, comment:null), ]
 #### A masked pattern was here ####
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@source
@@ -1931,6 +1972,11 @@ POSTHOOK: Input: default@source
 POSTHOOK: Input: hdfs://### HDFS PATH ###
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@test_avro_mmctas
+POSTHOOK: Lineage: test_avro_mmctas.cdouble EXPRESSION [(source)source.FieldSchema(name:cdouble, type:double, comment:null), ]
+POSTHOOK: Lineage: test_avro_mmctas.cfloat EXPRESSION [(source)source.FieldSchema(name:cfloat, type:float, comment:null), ]
+POSTHOOK: Lineage: test_avro_mmctas.cint EXPRESSION [(source)source.FieldSchema(name:cint, type:int, comment:null), ]
+POSTHOOK: Lineage: test_avro_mmctas.cstring1 EXPRESSION [(source)source.FieldSchema(name:cstring1, type:string, comment:null), ]
+POSTHOOK: Lineage: test_avro_mmctas.ctimestamp1 EXPRESSION [(source)source.FieldSchema(name:ctimestamp1, type:timestamp, comment:null), ]
 #### A masked pattern was here ####
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@alltypesorc
@@ -1943,6 +1989,18 @@ POSTHOOK: Input: default@alltypesorc
 POSTHOOK: Input: hdfs://### HDFS PATH ###
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@test_textfile_mmctas
+POSTHOOK: Lineage: test_textfile_mmctas.cbigint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cbigint, type:bigint, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.cboolean1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean1, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.cboolean2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean2, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.cdouble EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cdouble, type:double, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.cfloat EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cfloat, type:float, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.cint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cint, type:int, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.csmallint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:csmallint, type:smallint, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.cstring1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring1, type:string, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.cstring2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring2, type:string, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.ctimestamp1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp1, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.ctimestamp2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp2, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_textfile_mmctas.ctinyint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctinyint, type:tinyint, comment:null), ]
 #### A masked pattern was here ####
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@alltypesorc
@@ -2656,6 +2714,18 @@ POSTHOOK: Input: default@alltypesorc
 POSTHOOK: Input: hdfs://### HDFS PATH ###
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@test_transactional_orc_ctas
+POSTHOOK: Lineage: test_transactional_orc_ctas.cbigint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cbigint, type:bigint, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.cboolean1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean1, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.cboolean2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean2, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.cdouble EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cdouble, type:double, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.cfloat EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cfloat, type:float, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.cint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cint, type:int, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.csmallint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:csmallint, type:smallint, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.cstring1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring1, type:string, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.cstring2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring2, type:string, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.ctimestamp1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp1, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.ctimestamp2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp2, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_transactional_orc_ctas.ctinyint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctinyint, type:tinyint, comment:null), ]
 #### A masked pattern was here ####
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@alltypesorc
@@ -2825,6 +2895,18 @@ POSTHOOK: Input: default@alltypesorc
 POSTHOOK: Input: hdfs://### HDFS PATH ###
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@test_managed_orc_ctas
+POSTHOOK: Lineage: test_managed_orc_ctas.cbigint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cbigint, type:bigint, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.cboolean1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean1, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.cboolean2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cboolean2, type:boolean, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.cdouble EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cdouble, type:double, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.cfloat EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cfloat, type:float, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.cint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cint, type:int, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.csmallint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:csmallint, type:smallint, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.cstring1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring1, type:string, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.cstring2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:cstring2, type:string, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.ctimestamp1 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp1, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.ctimestamp2 EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctimestamp2, type:timestamp, comment:null), ]
+POSTHOOK: Lineage: test_managed_orc_ctas.ctinyint EXPRESSION [(alltypesorc)alltypesorc.FieldSchema(name:ctinyint, type:tinyint, comment:null), ]
 #### A masked pattern was here ####
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@alltypesorc
diff --git a/ql/src/test/results/clientpositive/llap/ctas_uses_table_location.q.out b/ql/src/test/results/clientpositive/llap/ctas_uses_table_location.q.out
index 05520acb065..9e1f59665c3 100644
--- a/ql/src/test/results/clientpositive/llap/ctas_uses_table_location.q.out
+++ b/ql/src/test/results/clientpositive/llap/ctas_uses_table_location.q.out
@@ -10,3 +10,5 @@ POSTHOOK: Input: default@src
 #### A masked pattern was here ####
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@ctas_table_with_loc
+POSTHOOK: Lineage: ctas_table_with_loc.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: ctas_table_with_loc.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
diff --git a/ql/src/test/results/clientpositive/llap/foldts.q.out b/ql/src/test/results/clientpositive/llap/foldts.q.out
index 50555f370ef..617a3e0100c 100644
--- a/ql/src/test/results/clientpositive/llap/foldts.q.out
+++ b/ql/src/test/results/clientpositive/llap/foldts.q.out
@@ -64,6 +64,8 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: default@src1
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@src1orc
+POSTHOOK: Lineage: src1orc.key SIMPLE [(src1)src1.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src1orc.value SIMPLE [(src1)src1.FieldSchema(name:value, type:string, comment:default), ]
 PREHOOK: query: explain
 select from_unixtime(to_unix_timestamp(ctimestamp1), 'EEEE') from alltypesorc limit 1
 PREHOOK: type: QUERY
diff --git a/ql/src/test/results/clientpositive/llap/masking_10.q.out b/ql/src/test/results/clientpositive/llap/masking_10.q.out
index 9807766be14..02fb7385355 100644
--- a/ql/src/test/results/clientpositive/llap/masking_10.q.out
+++ b/ql/src/test/results/clientpositive/llap/masking_10.q.out
@@ -12,6 +12,8 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 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 2017 as a, value from masking_test group by 1, 2
 PREHOOK: type: QUERY
 PREHOOK: Input: default@masking_test
diff --git a/ql/src/test/results/clientpositive/llap/masking_9.q.out b/ql/src/test/results/clientpositive/llap/masking_9.q.out
index 6ec13475b4a..31b521f6e2a 100644
--- a/ql/src/test/results/clientpositive/llap/masking_9.q.out
+++ b/ql/src/test/results/clientpositive/llap/masking_9.q.out
@@ -12,6 +12,8 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 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 ROW__ID from masking_test
 PREHOOK: type: QUERY
 PREHOOK: Input: default@masking_test
diff --git a/ql/src/test/results/clientpositive/llap/masking_reserved.q.out b/ql/src/test/results/clientpositive/llap/masking_reserved.q.out
index d4742c78596..563fcc5a65f 100644
--- a/ql/src/test/results/clientpositive/llap/masking_reserved.q.out
+++ b/ql/src/test/results/clientpositive/llap/masking_reserved.q.out
@@ -32,6 +32,9 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: default@masking_test_n_masking_reserved
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@masking_test_n_masking_temp
+POSTHOOK: Lineage: masking_test_n_masking_temp.id SIMPLE [(masking_test_n_masking_reserved)masking_test_n_masking_reserved.FieldSchema(name:id, type:int, comment:null), ]
+POSTHOOK: Lineage: masking_test_n_masking_temp.key SIMPLE [(masking_test_n_masking_reserved)masking_test_n_masking_reserved.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: masking_test_n_masking_temp.value EXPRESSION [(masking_test_n_masking_reserved)masking_test_n_masking_reserved.FieldSchema(name:value, type:string, comment:null), ]
 PREHOOK: query: explain select a.`etad`, b.value from keyword_test_off a join masking_test_n_masking_reserved b on b.id = a.id
 PREHOOK: type: QUERY
 PREHOOK: Input: default@keyword_test_off
diff --git a/ql/src/test/results/clientpositive/llap/mm_cttas.q.out b/ql/src/test/results/clientpositive/llap/mm_cttas.q.out
index ab1b374f4f5..2c075a86c67 100644
--- a/ql/src/test/results/clientpositive/llap/mm_cttas.q.out
+++ b/ql/src/test/results/clientpositive/llap/mm_cttas.q.out
@@ -57,6 +57,8 @@ POSTHOOK: Input: default@intermediate_n1@p=456
 POSTHOOK: Input: default@intermediate_n1@p=457
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@cttas1_mm
+POSTHOOK: Lineage: cttas1_mm.key SIMPLE [(intermediate_n1)intermediate_n1.FieldSchema(name:key, type:int, comment:null), ]
+POSTHOOK: Lineage: cttas1_mm.p SIMPLE [(intermediate_n1)intermediate_n1.FieldSchema(name:p, type:int, comment:null), ]
 PREHOOK: query: select * from cttas1_mm
 PREHOOK: type: QUERY
 PREHOOK: Input: default@cttas1_mm
diff --git a/ql/src/test/results/clientpositive/llap/mm_loc_ctas.q.out b/ql/src/test/results/clientpositive/llap/mm_loc_ctas.q.out
index 471d8355f9e..52d8de6700d 100644
--- a/ql/src/test/results/clientpositive/llap/mm_loc_ctas.q.out
+++ b/ql/src/test/results/clientpositive/llap/mm_loc_ctas.q.out
@@ -36,3 +36,5 @@ POSTHOOK: Input: default@test
 #### A masked pattern was here ####
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@test3
+POSTHOOK: Lineage: test3.id SIMPLE [(test)test.FieldSchema(name:id, type:int, comment:null), ]
+POSTHOOK: Lineage: test3.name SIMPLE [(test)test.FieldSchema(name:name, type:string, comment:null), ]
diff --git a/ql/src/test/results/clientpositive/llap/parquet_thrift_array_of_primitives.q.out b/ql/src/test/results/clientpositive/llap/parquet_thrift_array_of_primitives.q.out
index 46afcef34b1..ea2f2a7d54d 100644
--- a/ql/src/test/results/clientpositive/llap/parquet_thrift_array_of_primitives.q.out
+++ b/ql/src/test/results/clientpositive/llap/parquet_thrift_array_of_primitives.q.out
@@ -39,6 +39,7 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: default@parquet_thrift_array_of_primitives
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@temp_parquet_thrift_array_of_primitives
+POSTHOOK: Lineage: temp_parquet_thrift_array_of_primitives.list_of_ints SIMPLE [(parquet_thrift_array_of_primitives)parquet_thrift_array_of_primitives.FieldSchema(name:list_of_ints, type:array<int>, comment:null), ]
 PREHOOK: query: SELECT * FROM temp_parquet_thrift_array_of_primitives
 PREHOOK: type: QUERY
 PREHOOK: Input: default@temp_parquet_thrift_array_of_primitives
diff --git a/ql/src/test/results/clientpositive/llap/results_cache_temptable.q.out b/ql/src/test/results/clientpositive/llap/results_cache_temptable.q.out
index f129a99c228..c68b38ca4af 100644
--- a/ql/src/test/results/clientpositive/llap/results_cache_temptable.q.out
+++ b/ql/src/test/results/clientpositive/llap/results_cache_temptable.q.out
@@ -50,6 +50,8 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: default@src
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@tmptab
+POSTHOOK: Lineage: tmptab.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: tmptab.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
 PREHOOK: query: select count(*) from tmptab where key = 0
 PREHOOK: type: QUERY
 PREHOOK: Input: default@tmptab
@@ -167,6 +169,8 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: default@tmptab
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@rct
+POSTHOOK: Lineage: rct.key SIMPLE [(tmptab)tmptab.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: rct.value SIMPLE [(tmptab)tmptab.FieldSchema(name:value, type:string, comment:null), ]
 test.comment="Cached query does not get used now that it resolves to a temp table"
 PREHOOK: query: explain
 select count(*) from rct where key = 0
@@ -279,6 +283,9 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: default@tmptab
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@rct_part
+POSTHOOK: Lineage: rct_part.ds SIMPLE []
+POSTHOOK: Lineage: rct_part.key SIMPLE [(tmptab)tmptab.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: rct_part.value SIMPLE [(tmptab)tmptab.FieldSchema(name:value, type:string, comment:null), ]
 test.comment="Cached query does not get used now that it resolves to a temp table"
 PREHOOK: query: explain
 select count(*) from rct_part where ds="2008-04-08" and key = 0
diff --git a/ql/src/test/results/clientpositive/llap/stats_partial_size.q.out b/ql/src/test/results/clientpositive/llap/stats_partial_size.q.out
index 7ca6fbdbc4f..055c531b3c0 100644
--- a/ql/src/test/results/clientpositive/llap/stats_partial_size.q.out
+++ b/ql/src/test/results/clientpositive/llap/stats_partial_size.q.out
@@ -27,6 +27,8 @@ POSTHOOK: Input: default@sample_partitioned
 POSTHOOK: Input: default@sample_partitioned@y=1
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@sample
+POSTHOOK: Lineage: sample.x SIMPLE [(sample_partitioned)sample_partitioned.FieldSchema(name:x, type:int, comment:null), ]
+POSTHOOK: Lineage: sample.y SIMPLE [(sample_partitioned)sample_partitioned.FieldSchema(name:y, type:int, comment:null), ]
 PREHOOK: query: analyze table sample compute statistics for columns
 PREHOOK: type: ANALYZE_TABLE
 PREHOOK: Input: default@sample
diff --git a/ql/src/test/results/clientpositive/llap/temp_table.q.out b/ql/src/test/results/clientpositive/llap/temp_table.q.out
index 88c3545f10f..becb6bb4f46 100644
--- a/ql/src/test/results/clientpositive/llap/temp_table.q.out
+++ b/ql/src/test/results/clientpositive/llap/temp_table.q.out
@@ -77,6 +77,8 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: default@src
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@foo
+POSTHOOK: Lineage: foo.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: foo.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
 PREHOOK: query: EXPLAIN CREATE TEMPORARY TABLE bar AS SELECT * FROM src WHERE key % 2 = 1
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@src
@@ -156,6 +158,8 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: default@src
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@bar
+POSTHOOK: Lineage: bar.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: bar.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
 PREHOOK: query: DESCRIBE foo
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: default@foo
@@ -489,6 +493,8 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: default@foo
 POSTHOOK: Output: database:two
 POSTHOOK: Output: two@foo
+POSTHOOK: Lineage: foo.key SIMPLE [(foo)foo.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: foo.value SIMPLE [(foo)foo.FieldSchema(name:value, type:string, comment:null), ]
 PREHOOK: query: SHOW TABLES
 PREHOOK: type: SHOWTABLES
 PREHOOK: Input: database:two
@@ -551,6 +557,8 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: default@s_n4
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@s_n4
+POSTHOOK: Lineage: s_n4.key SIMPLE [(s_n4)s_n4.FieldSchema(name:key, type:string, comment:null), ]
+POSTHOOK: Lineage: s_n4.value SIMPLE [(s_n4)s_n4.FieldSchema(name:value, type:string, comment:null), ]
 PREHOOK: query: select count(*) from s_n4
 PREHOOK: type: QUERY
 PREHOOK: Input: default@s_n4
diff --git a/ql/src/test/results/clientpositive/llap/temp_table_gb1.q.out b/ql/src/test/results/clientpositive/llap/temp_table_gb1.q.out
index 7c9db8a0df8..39269f76454 100644
--- a/ql/src/test/results/clientpositive/llap/temp_table_gb1.q.out
+++ b/ql/src/test/results/clientpositive/llap/temp_table_gb1.q.out
@@ -16,6 +16,8 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: default@src
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@src_temp
+POSTHOOK: Lineage: src_temp.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src_temp.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
 PREHOOK: query: FROM src_temp
 INSERT OVERWRITE TABLE dest_g2_n0 SELECT substr(src_temp.key,1,1), count(DISTINCT substr(src_temp.value,5)), concat(substr(src_temp.key,1,1),sum(substr(src_temp.value,5))) GROUP BY substr(src_temp.key,1,1)
 PREHOOK: type: QUERY
diff --git a/ql/src/test/results/clientpositive/llap/temp_table_join1.q.out b/ql/src/test/results/clientpositive/llap/temp_table_join1.q.out
index 9b261ba08cc..56a6d385ce9 100644
--- a/ql/src/test/results/clientpositive/llap/temp_table_join1.q.out
+++ b/ql/src/test/results/clientpositive/llap/temp_table_join1.q.out
@@ -20,6 +20,8 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: default@src
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@src_temp
+POSTHOOK: Lineage: src_temp.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src_temp.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
 PREHOOK: query: EXPLAIN
 FROM src_nontemp src1 JOIN src_nontemp src2 ON (src1.key = src2.key)
 SELECT src1.key, src2.value
diff --git a/ql/src/test/results/clientpositive/llap/temp_table_llap_partitioned.q.out b/ql/src/test/results/clientpositive/llap/temp_table_llap_partitioned.q.out
index 47a883a53ac..ed714f37349 100644
--- a/ql/src/test/results/clientpositive/llap/temp_table_llap_partitioned.q.out
+++ b/ql/src/test/results/clientpositive/llap/temp_table_llap_partitioned.q.out
@@ -2344,6 +2344,10 @@ POSTHOOK: Input: default@orc_llap_part_temp@ctinyint=9
 POSTHOOK: Input: default@orc_llap_part_temp@ctinyint=__HIVE_DEFAULT_PARTITION__
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@llap_temp_table_n0_temp
+POSTHOOK: Lineage: llap_temp_table_n0_temp.cchar1 SIMPLE [(orc_llap_part_temp)oft.FieldSchema(name:cchar1, type:char(255), comment:null), ]
+POSTHOOK: Lineage: llap_temp_table_n0_temp.cint SIMPLE [(orc_llap_part_temp)oft.FieldSchema(name:cint, type:int, comment:null), ]
+POSTHOOK: Lineage: llap_temp_table_n0_temp.ctinyint SIMPLE [(orc_llap_part_temp)oft.FieldSchema(name:ctinyint, type:tinyint, comment:null), ]
+POSTHOOK: Lineage: llap_temp_table_n0_temp.cvchar1 SIMPLE [(orc_llap_part_temp)oft.FieldSchema(name:cvchar1, type:varchar(255), comment:null), ]
 PREHOOK: query: explain vectorization detail
 select sum(hash(*)) from llap_temp_table_n0_temp
 PREHOOK: type: QUERY
diff --git a/ql/src/test/results/clientpositive/llap/temp_table_parquet_mixed_partition_formats2.q.out b/ql/src/test/results/clientpositive/llap/temp_table_parquet_mixed_partition_formats2.q.out
index d6c9f56535d..21119267f60 100644
--- a/ql/src/test/results/clientpositive/llap/temp_table_parquet_mixed_partition_formats2.q.out
+++ b/ql/src/test/results/clientpositive/llap/temp_table_parquet_mixed_partition_formats2.q.out
@@ -87,6 +87,10 @@ POSTHOOK: Input: default@parquet_table_json_partition_temp
 POSTHOOK: Input: default@parquet_table_json_partition_temp@ts=20150101
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@new_table_temp
+POSTHOOK: Lineage: new_table_temp.address SIMPLE [(parquet_table_json_partition_temp)parquet_table_json_partition_temp.FieldSchema(name:address, type:struct<country:bigint,state:bigint>, comment:from deserializer), ]
+POSTHOOK: Lineage: new_table_temp.id SIMPLE [(parquet_table_json_partition_temp)parquet_table_json_partition_temp.FieldSchema(name:id, type:bigint, comment:from deserializer), ]
+POSTHOOK: Lineage: new_table_temp.reports SIMPLE [(parquet_table_json_partition_temp)parquet_table_json_partition_temp.FieldSchema(name:reports, type:array<bigint>, comment:from deserializer), ]
+POSTHOOK: Lineage: new_table_temp.ts SIMPLE [(parquet_table_json_partition_temp)parquet_table_json_partition_temp.FieldSchema(name:ts, type:string, comment:null), ]
 PREHOOK: query: SELECT * FROM new_table_temp ORDER by id, address, reports
 PREHOOK: type: QUERY
 PREHOOK: Input: default@new_table_temp
diff --git a/ql/src/test/results/clientpositive/llap/temp_table_partition_ctas.q.out b/ql/src/test/results/clientpositive/llap/temp_table_partition_ctas.q.out
index fd256cf8c4b..82dc2967c91 100644
--- a/ql/src/test/results/clientpositive/llap/temp_table_partition_ctas.q.out
+++ b/ql/src/test/results/clientpositive/llap/temp_table_partition_ctas.q.out
@@ -391,6 +391,7 @@ POSTHOOK: Output: default@partition_ctas_2_temp@value=val_291
 POSTHOOK: Output: default@partition_ctas_2_temp@value=val_292
 POSTHOOK: Output: default@partition_ctas_2_temp@value=val_296
 POSTHOOK: Output: default@partition_ctas_2_temp@value=val_298
+POSTHOOK: Lineage: partition_ctas_2_temp.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
 POSTHOOK: Lineage: partition_ctas_2_temp PARTITION(value=val_201).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
 POSTHOOK: Lineage: partition_ctas_2_temp PARTITION(value=val_202).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
 POSTHOOK: Lineage: partition_ctas_2_temp PARTITION(value=val_203).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
@@ -855,6 +856,7 @@ POSTHOOK: Output: default@partition_ctas_diff_order_temp@value=val_291
 POSTHOOK: Output: default@partition_ctas_diff_order_temp@value=val_292
 POSTHOOK: Output: default@partition_ctas_diff_order_temp@value=val_296
 POSTHOOK: Output: default@partition_ctas_diff_order_temp@value=val_298
+POSTHOOK: Lineage: partition_ctas_diff_order_temp.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
 POSTHOOK: Lineage: partition_ctas_diff_order_temp PARTITION(value=val_201).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
 POSTHOOK: Lineage: partition_ctas_diff_order_temp PARTITION(value=val_202).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
 POSTHOOK: Lineage: partition_ctas_diff_order_temp PARTITION(value=val_203).key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
@@ -1009,6 +1011,9 @@ POSTHOOK: Output: default@partition_ctas_complex_order_temp@c0=val_235_0/c4=val_
 POSTHOOK: Output: default@partition_ctas_complex_order_temp@c0=val_237_0/c4=val_237_4/c1=val_237_1
 POSTHOOK: Output: default@partition_ctas_complex_order_temp@c0=val_238_0/c4=val_238_4/c1=val_238_1
 POSTHOOK: Output: default@partition_ctas_complex_order_temp@c0=val_239_0/c4=val_239_4/c1=val_239_1
+POSTHOOK: Lineage: partition_ctas_complex_order_temp.c2 EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+POSTHOOK: Lineage: partition_ctas_complex_order_temp.c3 EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+POSTHOOK: Lineage: partition_ctas_complex_order_temp.c5 EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ]
 POSTHOOK: Lineage: partition_ctas_complex_order_temp PARTITION(c0=val_201_0,c4=val_201_4,c1=val_201_1).c2 EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ]
 POSTHOOK: Lineage: partition_ctas_complex_order_temp PARTITION(c0=val_201_0,c4=val_201_4,c1=val_201_1).c3 EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ]
 POSTHOOK: Lineage: partition_ctas_complex_order_temp PARTITION(c0=val_201_0,c4=val_201_4,c1=val_201_1).c5 EXPRESSION [(src)src.FieldSchema(name:value, type:string, comment:default), ]
diff --git a/ql/src/test/results/clientpositive/llap/temp_table_partition_decode_name.q.out b/ql/src/test/results/clientpositive/llap/temp_table_partition_decode_name.q.out
index deaaf3d8f33..c1549c87e0b 100644
--- a/ql/src/test/results/clientpositive/llap/temp_table_partition_decode_name.q.out
+++ b/ql/src/test/results/clientpositive/llap/temp_table_partition_decode_name.q.out
@@ -18,6 +18,8 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: default@src
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@sc_n0_temp
+POSTHOOK: Lineage: sc_n0_temp._c0 EXPRESSION []
+POSTHOOK: Lineage: sc_n0_temp._c1 EXPRESSION []
 PREHOOK: query: create table sc_part_n0_temp (key string) partitioned by (ts string) stored as rcfile
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
diff --git a/ql/src/test/results/clientpositive/llap/temp_table_partition_special_char.q.out b/ql/src/test/results/clientpositive/llap/temp_table_partition_special_char.q.out
index dd29ff22a9a..cb60230adc3 100644
--- a/ql/src/test/results/clientpositive/llap/temp_table_partition_special_char.q.out
+++ b/ql/src/test/results/clientpositive/llap/temp_table_partition_special_char.q.out
@@ -18,6 +18,8 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: default@src
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@sc_temp
+POSTHOOK: Lineage: sc_temp._c0 EXPRESSION []
+POSTHOOK: Lineage: sc_temp._c1 EXPRESSION []
 PREHOOK: query: create temporary table sc_part_temp (key string) partitioned by (ts string) stored as rcfile
 PREHOOK: type: CREATETABLE
 PREHOOK: Output: database:default
diff --git a/ql/src/test/results/clientpositive/llap/temp_table_subquery1.q.out b/ql/src/test/results/clientpositive/llap/temp_table_subquery1.q.out
index aae1dcb8f93..334f80617db 100644
--- a/ql/src/test/results/clientpositive/llap/temp_table_subquery1.q.out
+++ b/ql/src/test/results/clientpositive/llap/temp_table_subquery1.q.out
@@ -8,6 +8,8 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: default@src
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@src_temp
+POSTHOOK: Lineage: src_temp.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: src_temp.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
 PREHOOK: query: select *
 from src_temp b
 where exists
diff --git a/ql/src/test/results/clientpositive/llap/temp_table_truncate.q.out b/ql/src/test/results/clientpositive/llap/temp_table_truncate.q.out
index c16a7e0706a..118ac7f1fd5 100644
--- a/ql/src/test/results/clientpositive/llap/temp_table_truncate.q.out
+++ b/ql/src/test/results/clientpositive/llap/temp_table_truncate.q.out
@@ -8,6 +8,8 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: default@src
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@tmp_src
+POSTHOOK: Lineage: tmp_src.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: tmp_src.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
 PREHOOK: query: CREATE TEMPORARY TABLE tmp_srcpart AS SELECT * FROM srcpart
 PREHOOK: type: CREATETABLE_AS_SELECT
 PREHOOK: Input: default@srcpart
@@ -26,6 +28,10 @@ POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=11
 POSTHOOK: Input: default@srcpart@ds=2008-04-09/hr=12
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@tmp_srcpart
+POSTHOOK: Lineage: tmp_srcpart.ds SIMPLE [(srcpart)srcpart.FieldSchema(name:ds, type:string, comment:null), ]
+POSTHOOK: Lineage: tmp_srcpart.hr SIMPLE [(srcpart)srcpart.FieldSchema(name:hr, type:string, comment:null), ]
+POSTHOOK: Lineage: tmp_srcpart.key SIMPLE [(srcpart)srcpart.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: tmp_srcpart.value SIMPLE [(srcpart)srcpart.FieldSchema(name:value, type:string, comment:default), ]
 PREHOOK: query: DESCRIBE tmp_src
 PREHOOK: type: DESCTABLE
 PREHOOK: Input: default@tmp_src
diff --git a/ql/src/test/results/clientpositive/llap/vector_tablesample_rows.q.out b/ql/src/test/results/clientpositive/llap/vector_tablesample_rows.q.out
index 841c6f8a89b..173b1a69fc2 100644
--- a/ql/src/test/results/clientpositive/llap/vector_tablesample_rows.q.out
+++ b/ql/src/test/results/clientpositive/llap/vector_tablesample_rows.q.out
@@ -410,6 +410,7 @@ POSTHOOK: type: CREATETABLE_AS_SELECT
 POSTHOOK: Input: _dummy_database@_dummy_table
 POSTHOOK: Output: database:default
 POSTHOOK: Output: default@dual
+POSTHOOK: Lineage: dual._c0 SIMPLE []
 _c0
 PREHOOK: query: select * from dual
 PREHOOK: type: QUERY