You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hive.apache.org by br...@apache.org on 2013/08/06 16:36:14 UTC
svn commit: r1510973 - in /hive/trunk/hbase-handler/src:
java/org/apache/hadoop/hive/hbase/HiveHBaseTableInputFormat.java
test/queries/positive/hbase_binary_map_queries_prefix.q
test/results/positive/hbase_binary_map_queries_prefix.q.out
Author: brock
Date: Tue Aug 6 14:36:14 2013
New Revision: 1510973
URL: http://svn.apache.org/r1510973
Log:
HIVE-4995: select * may incorrectly return empty fields with hbase-handler (Swarnim Kulkarni via Brock Noland)
Added:
hive/trunk/hbase-handler/src/test/queries/positive/hbase_binary_map_queries_prefix.q
hive/trunk/hbase-handler/src/test/results/positive/hbase_binary_map_queries_prefix.q.out
Modified:
hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableInputFormat.java
Modified: hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableInputFormat.java
URL: http://svn.apache.org/viewvc/hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableInputFormat.java?rev=1510973&r1=1510972&r2=1510973&view=diff
==============================================================================
--- hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableInputFormat.java (original)
+++ hive/trunk/hbase-handler/src/java/org/apache/hadoop/hive/hbase/HiveHBaseTableInputFormat.java Tue Aug 6 14:36:14 2013
@@ -109,6 +109,9 @@ public class HiveHBaseTableInputFormat e
Scan scan = new Scan();
boolean empty = true;
+ // The list of families that have been added to the scan
+ List<String> addedFamilies = new ArrayList<String>();
+
if (!addAll) {
for (int i : readColIDs) {
ColumnMapping colMap = columnsMapping.get(i);
@@ -118,8 +121,12 @@ public class HiveHBaseTableInputFormat e
if (colMap.qualifierName == null) {
scan.addFamily(colMap.familyNameBytes);
+ addedFamilies.add(colMap.familyName);
} else {
- scan.addColumn(colMap.familyNameBytes, colMap.qualifierNameBytes);
+ if(!addedFamilies.contains(colMap.familyName)){
+ // add only if the corresponding family has not already been added
+ scan.addColumn(colMap.familyNameBytes, colMap.qualifierNameBytes);
+ }
}
empty = false;
@@ -458,6 +465,9 @@ public class HiveHBaseTableInputFormat e
Scan scan = new Scan();
+ // The list of families that have been added to the scan
+ List<String> addedFamilies = new ArrayList<String>();
+
// REVIEW: are we supposed to be applying the getReadColumnIDs
// same as in getRecordReader?
for (int i = 0; i <columnsMapping.size(); i++) {
@@ -468,8 +478,12 @@ public class HiveHBaseTableInputFormat e
if (colMap.qualifierName == null) {
scan.addFamily(colMap.familyNameBytes);
+ addedFamilies.add(colMap.familyName);
} else {
- scan.addColumn(colMap.familyNameBytes, colMap.qualifierNameBytes);
+ if(!addedFamilies.contains(colMap.familyName)){
+ // add the column only if the family has not already been added
+ scan.addColumn(colMap.familyNameBytes, colMap.qualifierNameBytes);
+ }
}
}
Added: hive/trunk/hbase-handler/src/test/queries/positive/hbase_binary_map_queries_prefix.q
URL: http://svn.apache.org/viewvc/hive/trunk/hbase-handler/src/test/queries/positive/hbase_binary_map_queries_prefix.q?rev=1510973&view=auto
==============================================================================
--- hive/trunk/hbase-handler/src/test/queries/positive/hbase_binary_map_queries_prefix.q (added)
+++ hive/trunk/hbase-handler/src/test/queries/positive/hbase_binary_map_queries_prefix.q Tue Aug 6 14:36:14 2013
@@ -0,0 +1,52 @@
+DROP TABLE hbase_src;
+
+CREATE TABLE hbase_src(key STRING,
+ tinyint_col TINYINT,
+ smallint_col SMALLINT,
+ int_col INT,
+ bigint_col BIGINT,
+ float_col FLOAT,
+ double_col DOUBLE,
+ string_col STRING);
+
+INSERT OVERWRITE TABLE hbase_src
+ SELECT key, key, key, key, key, key, key, value
+ FROM src
+ WHERE key = 125 OR key = 126 OR key = 127;
+
+DROP TABLE t_hbase_maps;
+
+CREATE TABLE t_hbase_maps(key STRING,
+ string_map_col MAP<STRING, STRING>,
+ simple_string_col STRING)
+STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
+WITH SERDEPROPERTIES ("hbase.columns.mapping"=":key,cf-string:,cf-string:simple_string_col")
+TBLPROPERTIES ("hbase.table.name"="t_hive_maps");
+
+INSERT OVERWRITE TABLE t_hbase_maps
+ SELECT key,
+ map("string_col", string_col),
+ string_col
+ FROM hbase_src
+ WHERE key = 125;
+
+INSERT OVERWRITE TABLE t_hbase_maps
+ SELECT key,
+ map("string_col", string_col),
+ string_col
+ FROM hbase_src
+ WHERE key = 126;
+
+SELECT * FROM t_hbase_maps ORDER BY key;
+
+DROP TABLE t_ext_hbase_maps;
+
+CREATE EXTERNAL TABLE t_ext_hbase_maps(key STRING,
+ string_map_cols MAP<STRING, STRING>, simple_string_col STRING)
+STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
+WITH SERDEPROPERTIES ("hbase.columns.mapping"=":key,cf-string:string_col.*,cf-string:simple_string_col")
+TBLPROPERTIES ("hbase.table.name"="t_hive_maps");
+
+SELECT * FROM t_ext_hbase_maps ORDER BY key;
+
+DROP TABLE t_ext_hbase_maps;
\ No newline at end of file
Added: hive/trunk/hbase-handler/src/test/results/positive/hbase_binary_map_queries_prefix.q.out
URL: http://svn.apache.org/viewvc/hive/trunk/hbase-handler/src/test/results/positive/hbase_binary_map_queries_prefix.q.out?rev=1510973&view=auto
==============================================================================
--- hive/trunk/hbase-handler/src/test/results/positive/hbase_binary_map_queries_prefix.q.out (added)
+++ hive/trunk/hbase-handler/src/test/results/positive/hbase_binary_map_queries_prefix.q.out Tue Aug 6 14:36:14 2013
@@ -0,0 +1,217 @@
+PREHOOK: query: DROP TABLE hbase_src
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE hbase_src
+POSTHOOK: type: DROPTABLE
+PREHOOK: query: CREATE TABLE hbase_src(key STRING,
+ tinyint_col TINYINT,
+ smallint_col SMALLINT,
+ int_col INT,
+ bigint_col BIGINT,
+ float_col FLOAT,
+ double_col DOUBLE,
+ string_col STRING)
+PREHOOK: type: CREATETABLE
+POSTHOOK: query: CREATE TABLE hbase_src(key STRING,
+ tinyint_col TINYINT,
+ smallint_col SMALLINT,
+ int_col INT,
+ bigint_col BIGINT,
+ float_col FLOAT,
+ double_col DOUBLE,
+ string_col STRING)
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: default@hbase_src
+PREHOOK: query: INSERT OVERWRITE TABLE hbase_src
+ SELECT key, key, key, key, key, key, key, value
+ FROM src
+ WHERE key = 125 OR key = 126 OR key = 127
+PREHOOK: type: QUERY
+PREHOOK: Input: default@src
+PREHOOK: Output: default@hbase_src
+POSTHOOK: query: INSERT OVERWRITE TABLE hbase_src
+ SELECT key, key, key, key, key, key, key, value
+ FROM src
+ WHERE key = 125 OR key = 126 OR key = 127
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@src
+POSTHOOK: Output: default@hbase_src
+POSTHOOK: Lineage: hbase_src.bigint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.double_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.float_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.int_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.smallint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.string_col SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.tinyint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+PREHOOK: query: DROP TABLE t_hbase_maps
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE t_hbase_maps
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Lineage: hbase_src.bigint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.double_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.float_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.int_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.smallint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.string_col SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.tinyint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+PREHOOK: query: CREATE TABLE t_hbase_maps(key STRING,
+ string_map_col MAP<STRING, STRING>,
+ simple_string_col STRING)
+STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
+WITH SERDEPROPERTIES ("hbase.columns.mapping"=":key,cf-string:,cf-string:simple_string_col")
+TBLPROPERTIES ("hbase.table.name"="t_hive_maps")
+PREHOOK: type: CREATETABLE
+POSTHOOK: query: CREATE TABLE t_hbase_maps(key STRING,
+ string_map_col MAP<STRING, STRING>,
+ simple_string_col STRING)
+STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
+WITH SERDEPROPERTIES ("hbase.columns.mapping"=":key,cf-string:,cf-string:simple_string_col")
+TBLPROPERTIES ("hbase.table.name"="t_hive_maps")
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: default@t_hbase_maps
+POSTHOOK: Lineage: hbase_src.bigint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.double_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.float_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.int_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.smallint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.string_col SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.tinyint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+PREHOOK: query: INSERT OVERWRITE TABLE t_hbase_maps
+ SELECT key,
+ map("string_col", string_col),
+ string_col
+ FROM hbase_src
+ WHERE key = 125
+PREHOOK: type: QUERY
+PREHOOK: Input: default@hbase_src
+PREHOOK: Output: default@t_hbase_maps
+POSTHOOK: query: INSERT OVERWRITE TABLE t_hbase_maps
+ SELECT key,
+ map("string_col", string_col),
+ string_col
+ FROM hbase_src
+ WHERE key = 125
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@hbase_src
+POSTHOOK: Output: default@t_hbase_maps
+POSTHOOK: Lineage: hbase_src.bigint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.double_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.float_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.int_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.smallint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.string_col SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.tinyint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+PREHOOK: query: INSERT OVERWRITE TABLE t_hbase_maps
+ SELECT key,
+ map("string_col", string_col),
+ string_col
+ FROM hbase_src
+ WHERE key = 126
+PREHOOK: type: QUERY
+PREHOOK: Input: default@hbase_src
+PREHOOK: Output: default@t_hbase_maps
+POSTHOOK: query: INSERT OVERWRITE TABLE t_hbase_maps
+ SELECT key,
+ map("string_col", string_col),
+ string_col
+ FROM hbase_src
+ WHERE key = 126
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@hbase_src
+POSTHOOK: Output: default@t_hbase_maps
+POSTHOOK: Lineage: hbase_src.bigint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.double_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.float_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.int_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.smallint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.string_col SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.tinyint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+PREHOOK: query: SELECT * FROM t_hbase_maps ORDER BY key
+PREHOOK: type: QUERY
+PREHOOK: Input: default@t_hbase_maps
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM t_hbase_maps ORDER BY key
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@t_hbase_maps
+#### A masked pattern was here ####
+POSTHOOK: Lineage: hbase_src.bigint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.double_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.float_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.int_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.smallint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.string_col SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.tinyint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+125 {"simple_string_col":"val_125","string_col":"val_125"} val_125
+126 {"simple_string_col":"val_126","string_col":"val_126"} val_126
+PREHOOK: query: DROP TABLE t_ext_hbase_maps
+PREHOOK: type: DROPTABLE
+POSTHOOK: query: DROP TABLE t_ext_hbase_maps
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Lineage: hbase_src.bigint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.double_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.float_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.int_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.smallint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.string_col SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.tinyint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+PREHOOK: query: CREATE EXTERNAL TABLE t_ext_hbase_maps(key STRING,
+ string_map_cols MAP<STRING, STRING>, simple_string_col STRING)
+STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
+WITH SERDEPROPERTIES ("hbase.columns.mapping"=":key,cf-string:string_col.*,cf-string:simple_string_col")
+TBLPROPERTIES ("hbase.table.name"="t_hive_maps")
+PREHOOK: type: CREATETABLE
+POSTHOOK: query: CREATE EXTERNAL TABLE t_ext_hbase_maps(key STRING,
+ string_map_cols MAP<STRING, STRING>, simple_string_col STRING)
+STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
+WITH SERDEPROPERTIES ("hbase.columns.mapping"=":key,cf-string:string_col.*,cf-string:simple_string_col")
+TBLPROPERTIES ("hbase.table.name"="t_hive_maps")
+POSTHOOK: type: CREATETABLE
+POSTHOOK: Output: default@t_ext_hbase_maps
+POSTHOOK: Lineage: hbase_src.bigint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.double_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.float_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.int_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.smallint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.string_col SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.tinyint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+PREHOOK: query: SELECT * FROM t_ext_hbase_maps ORDER BY key
+PREHOOK: type: QUERY
+PREHOOK: Input: default@t_ext_hbase_maps
+#### A masked pattern was here ####
+POSTHOOK: query: SELECT * FROM t_ext_hbase_maps ORDER BY key
+POSTHOOK: type: QUERY
+POSTHOOK: Input: default@t_ext_hbase_maps
+#### A masked pattern was here ####
+POSTHOOK: Lineage: hbase_src.bigint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.double_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.float_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.int_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.smallint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.string_col SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.tinyint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+125 {"string_col":"val_125"} val_125
+126 {"string_col":"val_126"} val_126
+PREHOOK: query: DROP TABLE t_ext_hbase_maps
+PREHOOK: type: DROPTABLE
+PREHOOK: Input: default@t_ext_hbase_maps
+PREHOOK: Output: default@t_ext_hbase_maps
+POSTHOOK: query: DROP TABLE t_ext_hbase_maps
+POSTHOOK: type: DROPTABLE
+POSTHOOK: Input: default@t_ext_hbase_maps
+POSTHOOK: Output: default@t_ext_hbase_maps
+POSTHOOK: Lineage: hbase_src.bigint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.double_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.float_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.int_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.smallint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.string_col SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ]
+POSTHOOK: Lineage: hbase_src.tinyint_col EXPRESSION [(src)src.FieldSchema(name:key, type:string, comment:default), ]