diff --git a/common/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java b/common/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java index 5b9279b76fc3..1a3ad38acef1 100644 --- a/common/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java +++ b/common/src/java/org/apache/hadoop/hive/ql/ErrorMsg.java @@ -524,6 +524,7 @@ public enum ErrorMsg { CTLF_MISSING_STORAGE_FORMAT_DESCRIPTOR(20021, "Failed to find StorageFormatDescriptor for file format ''{0}''", true), PARQUET_FOOTER_ERROR(20022, "Failed to read parquet footer:"), PARQUET_UNHANDLED_TYPE(20023, "Unhandled type {0}", true), + ORC_FOOTER_ERROR(20024, "Failed to read orc footer:"), // An exception from runtime that will show the full stack to client UNRESOLVED_RT_EXCEPTION(29999, "Runtime Error: {0}", "58004", true), diff --git a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcSerde.java b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcSerde.java index c660dac8ff22..4e92edee0134 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcSerde.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcSerde.java @@ -20,13 +20,19 @@ import java.io.DataInput; import java.io.DataOutput; import java.io.IOException; +import java.util.ArrayList; import java.util.Collections; import java.util.List; import java.util.Properties; +import java.util.regex.Pattern; import org.apache.hadoop.conf.Configuration; +import org.apache.hadoop.fs.Path; +import org.apache.hadoop.hive.metastore.api.FieldSchema; +import org.apache.hadoop.hive.ql.ErrorMsg; import org.apache.hadoop.hive.serde.serdeConstants; import org.apache.hadoop.hive.serde2.AbstractSerDe; +import org.apache.hadoop.hive.serde2.SchemaInference; import org.apache.hadoop.hive.serde2.SerDeException; import org.apache.hadoop.hive.serde2.SerDeSpec; import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector; @@ -34,6 +40,11 @@ import org.apache.hadoop.hive.serde2.typeinfo.TypeInfo; import org.apache.hadoop.hive.serde2.typeinfo.TypeInfoFactory; import org.apache.hadoop.io.Writable; +import org.apache.orc.OrcFile; +import org.apache.orc.Reader; +import org.apache.orc.TypeDescription; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * A serde class for ORC. It transparently passes the object to/from the ORC @@ -41,12 +52,14 @@ * size doesn't make sense in the context of ORC files. */ @SerDeSpec(schemaProps = {serdeConstants.LIST_COLUMNS, serdeConstants.LIST_COLUMN_TYPES, OrcSerde.COMPRESSION}) -public class OrcSerde extends AbstractSerDe { +public class OrcSerde extends AbstractSerDe implements SchemaInference { + private static final Logger LOG = LoggerFactory.getLogger(OrcSerde.class); private final OrcSerdeRow row = new OrcSerdeRow(); private ObjectInspector inspector = null; static final String COMPRESSION = "orc.compress"; + static final Pattern UNQUOTED_NAMES = Pattern.compile("^[a-zA-Z0-9_]+$"); final class OrcSerdeRow implements Writable { Object realRow; @@ -117,4 +130,85 @@ public ObjectInspector getObjectInspector() throws SerDeException { return inspector; } + @Override + public List readSchema(Configuration conf, String file) throws SerDeException { + List fieldNames; + List fieldTypes; + try (Reader reader = OrcFile.createReader(new Path(file), OrcFile.readerOptions(conf))) { + fieldNames = reader.getSchema().getFieldNames(); + fieldTypes = reader.getSchema().getChildren(); + } catch (Exception e) { + throw new SerDeException(ErrorMsg.ORC_FOOTER_ERROR.getErrorCodedMsg(), e); + } + + List schema = new ArrayList<>(); + for (int i = 0; i < fieldNames.size(); i++) { + FieldSchema fieldSchema = convertOrcTypeToFieldSchema(fieldNames.get(i), fieldTypes.get(i)); + schema.add(fieldSchema); + LOG.debug("Inferred field schema {}", fieldSchema); + } + return schema; + } + + private FieldSchema convertOrcTypeToFieldSchema(String fieldName, TypeDescription fieldType) { + String typeName = convertOrcTypeToFieldType(fieldType); + return new FieldSchema(fieldName, typeName, "Inferred from Orc file."); + } + + private String convertOrcTypeToFieldType(TypeDescription fieldType) { + if (fieldType.getCategory().isPrimitive()) { + return convertPrimitiveType(fieldType); + } + return convertComplexType(fieldType); + } + + private String convertPrimitiveType(TypeDescription fieldType) { + if (fieldType.getCategory().getName().equals("timestamp with local time zone")) { + throw new IllegalArgumentException("Unhandled ORC type " + fieldType.getCategory().getName()); + } + return fieldType.toString(); + } + + private String convertComplexType(TypeDescription fieldType) { + StringBuilder buffer = new StringBuilder(); + buffer.append(fieldType.getCategory().getName()); + switch (fieldType.getCategory()) { + case LIST: + case MAP: + case UNION: + buffer.append('<'); + for (int i = 0; i < fieldType.getChildren().size(); i++) { + if (i != 0) { + buffer.append(','); + } + buffer.append(convertOrcTypeToFieldType(fieldType.getChildren().get(i))); + } + buffer.append('>'); + break; + case STRUCT: + buffer.append('<'); + for (int i = 0; i < fieldType.getChildren().size(); ++i) { + if (i != 0) { + buffer.append(','); + } + getStructFieldName(buffer, fieldType.getFieldNames().get(i)); + buffer.append(':'); + buffer.append(convertOrcTypeToFieldType(fieldType.getChildren().get(i))); + } + buffer.append('>'); + break; + default: + throw new IllegalArgumentException("ORC doesn't handle " + + fieldType.getCategory()); + } + return buffer.toString(); + } + + static void getStructFieldName(StringBuilder buffer, String name) { + if (UNQUOTED_NAMES.matcher(name).matches()) { + buffer.append(name); + } else { + buffer.append('`').append(name.replace("`", "``")).append('`'); + } + } } diff --git a/ql/src/test/queries/clientpositive/create_table_like_file_orc.q b/ql/src/test/queries/clientpositive/create_table_like_file_orc.q new file mode 100644 index 000000000000..e4ffc170b068 --- /dev/null +++ b/ql/src/test/queries/clientpositive/create_table_like_file_orc.q @@ -0,0 +1,88 @@ +-- all primitive types +-- timestamp_w_tz TIMESTAMP WITH LOCAL TIME ZONE is not supported by hive's orc implementation +CREATE EXTERNAL TABLE test_all_orc_types(tinyint_type TINYINT, smallint_type SMALLINT, bigint_type BIGINT, int_type INT, float_type FLOAT, double_type double, decimal_type DECIMAL(4,2), timestamp_type TIMESTAMP, date_type DATE, string_type STRING, varchar_type VARCHAR(100), char_type CHAR(34), boolean_type BOOLEAN, binary_type BINARY) STORED AS ORC LOCATION '${system:test.tmp.dir}/test_all_orc_types'; +-- insert two rows (the other tables only have 1 row) +INSERT INTO test_all_orc_types VALUES (1, 2, 3, 4, 2.2, 2.2, 20.20, '2022-06-30 10:20:30', '2020-04-23', 'str1', 'varchar1', 'char', true, 'binary_maybe'), + (1, 2, 3, 4, 2.2, 2.2, 20.20, '2022-06-30 10:20:30', '2020-04-23', 'str1', 'varchar1', 'char', true, 'binary_maybe'); + SELECT * FROM test_all_orc_types; +DESCRIBE test_all_orc_types; +-- CREATE A LIKE table +CREATE TABLE like_test_all_orc_types LIKE FILE ORC '${system:test.tmp.dir}/test_all_orc_types/000000_0'; +INSERT INTO like_test_all_orc_types VALUES (1, 2, 3, 4, 2.2, 2.2, 20.20, '2022-06-30 10:20:30', '2020-04-23', 'str1', 'varchar1', 'char', true, 'binary_maybe'), + (1, 2, 3, 4, 2.2, 2.2, 20.20, '2022-06-30 10:20:30', '2020-04-23', 'str1', 'varchar1', 'char', true, 'binary_maybe'); +SELECT * FROM like_test_all_orc_types; +DESCRIBE like_test_all_orc_types; +DROP TABLE test_all_orc_types; +DROP TABLE like_test_all_orc_types; + +-- complex types (array, map, union, struct) +-- array +CREATE EXTERNAL TABLE test_orc_array(str_array array) STORED AS ORC LOCATION '${system:test.tmp.dir}/test_orc_array'; +DESCRIBE test_orc_array; +INSERT INTO test_orc_array SELECT array("bob", "sue"); +SELECT * FROM test_orc_array; +CREATE TABLE like_test_orc_array LIKE FILE ORC '${system:test.tmp.dir}/test_orc_array/000000_0'; +DESCRIBE like_test_orc_array; +INSERT INTO like_test_orc_array SELECT array("bob", "sue"); +SELECT * FROM like_test_orc_array; +DROP TABLE like_test_orc_array; + +-- map +CREATE EXTERNAL TABLE test_orc_map(simple_map map, map_to_struct map>, map_to_map map>, map_to_array map>>) STORED AS ORC LOCATION '${system:test.tmp.dir}/test_orc_map'; +DESCRIBE test_orc_map; +INSERT INTO test_orc_map SELECT map(10, "foo"), map("bar", named_struct("i", 99)), map(cast('1984-01-01' as date), map(10, "goodbye")), map(cast("binary" as binary), array(array(1,2,3))); +SELECT * FROM test_orc_map; +CREATE TABLE like_test_orc_map LIKE FILE ORC '${system:test.tmp.dir}/test_orc_map/000000_0'; +DESCRIBE like_test_orc_map; +INSERT INTO like_test_orc_map SELECT map(10, "foo"), map("bar", named_struct("i", 99)), map(cast('1984-01-01' as date), map(10, "goodbye")), map(cast("binary" as binary), array(array(1,2,3))); +SELECT * FROM like_test_orc_map; +DROP TABLE like_test_orc_map; + +-- union +CREATE TABLE src_tbl (key STRING, value STRING) STORED AS TEXTFILE; +INSERT INTO src_tbl VALUES ('hello', 'world'); +CREATE TABLE test_orc_union (foo UNIONTYPE) STORED AS ORC LOCATION '${system:test.tmp.dir}/test_orc_union'; +INSERT INTO test_orc_union SELECT create_union(0, key) FROM src_tbl LIMIT 2; +CREATE TABLE like_test_orc_union LIKE FILE ORC '${system:test.tmp.dir}/test_orc_union/000000_0'; +DESCRIBE test_orc_union; +INSERT INTO like_test_orc_union SELECT create_union(0, key) FROM src_tbl LIMIT 2; +SELECT * FROM like_test_orc_union; +DROP TABLE like_test_orc_union; + +-- struct +CREATE EXTERNAL TABLE test_complex_orc_struct(struct_type struct) STORED AS ORC LOCATION '${system:test.tmp.dir}/test_complex_orc_struct'; +DESCRIBE test_complex_orc_struct; +-- disable CBO due to the fact that type conversion causes CBO failure which causes the test to fail +-- non-CBO path works (HIVE-26398) +SET hive.cbo.enable=false; +INSERT INTO test_complex_orc_struct SELECT named_struct("tinyint_type", cast(1 as tinyint), "smallint_type", cast(2 as smallint), "bigint_type", cast(3 as bigint), "int_type", 4, "float_type", cast(2.2 as float), "double_type", cast(2.2 as double), "decimal_type", cast(20.22 as decimal(4,2)), "timestamp_type", cast('2022-06-30 10:20:30' as timestamp), "date_type", cast('2020-04-23' as date), "string_type", 'str1', "varchar_type", cast('varchar1' as varchar(100)), "char_type", cast('char' as char(34)), "boolean_type", true, "binary_type", cast('binary_maybe' as binary)); +SET hive.cbo.enable=true; +SELECT * FROM test_complex_orc_struct; +CREATE TABLE like_test_complex_orc_struct LIKE FILE ORC '${system:test.tmp.dir}/test_complex_orc_struct/000000_0'; +DESCRIBE like_test_complex_orc_struct; +-- disable CBO due to the fact that type conversion causes CBO failure which causes the test to fail +-- non-CBO path works (HIVE-26398) +SET hive.cbo.enable=false; +INSERT INTO like_test_complex_orc_struct SELECT named_struct("tinyint_type", cast(1 as tinyint), "smallint_type", cast(2 as smallint), "bigint_type", cast(3 as bigint), "int_type", 4, "float_type", cast(2.2 as float), "double_type", cast(2.2 as double), "decimal_type", cast(20.22 as decimal(4,2)), "timestamp_type", cast('2022-06-30 10:20:30' as timestamp), "date_type", cast('2020-04-23' as date), "string_type", 'str1', "varchar_type", cast('varchar1' as varchar(100)), "char_type", cast('char' as char(34)), "boolean_type", true, "binary_type", cast('binary_maybe' as binary)); +SET hive.cbo.enable=true; +SELECT * FROM like_test_complex_orc_struct; +DROP TABLE like_test_complex_orc_struct; + +-- test complex types that contain other complex types +CREATE EXTERNAL TABLE test_orc_complex_complex(struct_type struct>, struct_i : struct>) STORED AS ORC LOCATION '${system:test.tmp.dir}/test_orc_complex_complex'; +DESCRIBE test_orc_complex_complex; +INSERT INTO test_orc_complex_complex SELECT named_struct("i", 10, "s", "hello, world", "m", map("arr", array(1,2,3,4)), "struct_i", named_struct("str", "test_str")); +SELECT * FROM test_orc_complex_complex; +CREATE TABLE like_test_orc_complex_complex LIKE FILE ORC '${system:test.tmp.dir}/test_orc_complex_complex/000000_0'; +DESCRIBE like_test_orc_complex_complex; +INSERT INTO like_test_orc_complex_complex SELECT named_struct("i", 10, "s", "hello, world", "m", map("arr", array(1,2,3,4)), "struct_i", named_struct("str", "test_str")); +SELECT * FROM like_test_orc_complex_complex; +DROP TABLE like_test_orc_complex_complex; + +-- test adding partitioning to the destination table +CREATE TABLE like_test_orc_partitioning LIKE FILE ORC '${system:test.tmp.dir}/test_all_orc_types/000000_0' PARTITIONED BY (year STRING, month STRING); +DESCRIBE like_test_orc_partitioning; +INSERT INTO like_test_orc_partitioning PARTITION (year='1984', month='1') VALUES (1, 2, 3, 4, 2.2, 2.2, 20.20, '2022-06-30 10:20:30', '2020-04-23', 'str1', 'varchar1', 'char', true, 'binary_maybe'), + (1, 2, 3, 4, 2.2, 2.2, 20.20, '2022-06-30 10:20:30', '2020-04-23', 'str1', 'varchar1', 'char', true, 'binary_maybe'); +SELECT * FROM like_test_orc_partitioning; +DROP TABLE like_test_orc_partitioning; \ No newline at end of file diff --git a/ql/src/test/results/clientpositive/llap/create_table_like_file_orc.q.out b/ql/src/test/results/clientpositive/llap/create_table_like_file_orc.q.out new file mode 100644 index 000000000000..fffd1502bee1 --- /dev/null +++ b/ql/src/test/results/clientpositive/llap/create_table_like_file_orc.q.out @@ -0,0 +1,615 @@ +#### A masked pattern was here #### +PREHOOK: type: CREATETABLE +#### A masked pattern was here #### +PREHOOK: Output: database:default +PREHOOK: Output: default@test_all_orc_types +#### A masked pattern was here #### +POSTHOOK: type: CREATETABLE +#### A masked pattern was here #### +POSTHOOK: Output: database:default +POSTHOOK: Output: default@test_all_orc_types +PREHOOK: query: INSERT INTO test_all_orc_types VALUES (1, 2, 3, 4, 2.2, 2.2, 20.20, '2022-06-30 10:20:30', '2020-04-23', 'str1', 'varchar1', 'char', true, 'binary_maybe'), + (1, 2, 3, 4, 2.2, 2.2, 20.20, '2022-06-30 10:20:30', '2020-04-23', 'str1', 'varchar1', 'char', true, 'binary_maybe') +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@test_all_orc_types +POSTHOOK: query: INSERT INTO test_all_orc_types VALUES (1, 2, 3, 4, 2.2, 2.2, 20.20, '2022-06-30 10:20:30', '2020-04-23', 'str1', 'varchar1', 'char', true, 'binary_maybe'), + (1, 2, 3, 4, 2.2, 2.2, 20.20, '2022-06-30 10:20:30', '2020-04-23', 'str1', 'varchar1', 'char', true, 'binary_maybe') +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@test_all_orc_types +POSTHOOK: Lineage: test_all_orc_types.bigint_type SCRIPT [] +POSTHOOK: Lineage: test_all_orc_types.binary_type SCRIPT [] +POSTHOOK: Lineage: test_all_orc_types.boolean_type SCRIPT [] +POSTHOOK: Lineage: test_all_orc_types.char_type SCRIPT [] +POSTHOOK: Lineage: test_all_orc_types.date_type SCRIPT [] +POSTHOOK: Lineage: test_all_orc_types.decimal_type SCRIPT [] +POSTHOOK: Lineage: test_all_orc_types.double_type SCRIPT [] +POSTHOOK: Lineage: test_all_orc_types.float_type SCRIPT [] +POSTHOOK: Lineage: test_all_orc_types.int_type SCRIPT [] +POSTHOOK: Lineage: test_all_orc_types.smallint_type SCRIPT [] +POSTHOOK: Lineage: test_all_orc_types.string_type SCRIPT [] +POSTHOOK: Lineage: test_all_orc_types.timestamp_type SCRIPT [] +POSTHOOK: Lineage: test_all_orc_types.tinyint_type SCRIPT [] +POSTHOOK: Lineage: test_all_orc_types.varchar_type SCRIPT [] +PREHOOK: query: SELECT * FROM test_all_orc_types +PREHOOK: type: QUERY +PREHOOK: Input: default@test_all_orc_types +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM test_all_orc_types +POSTHOOK: type: QUERY +POSTHOOK: Input: default@test_all_orc_types +#### A masked pattern was here #### +1 2 3 4 2.2 2.2 20.20 2022-06-30 10:20:30 2020-04-23 str1 varchar1 char true binary_maybe +1 2 3 4 2.2 2.2 20.20 2022-06-30 10:20:30 2020-04-23 str1 varchar1 char true binary_maybe +PREHOOK: query: DESCRIBE test_all_orc_types +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@test_all_orc_types +POSTHOOK: query: DESCRIBE test_all_orc_types +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@test_all_orc_types +tinyint_type tinyint +smallint_type smallint +bigint_type bigint +int_type int +float_type float +double_type double +decimal_type decimal(4,2) +timestamp_type timestamp +date_type date +string_type string +varchar_type varchar(100) +char_type char(34) +boolean_type boolean +binary_type binary +#### A masked pattern was here #### +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@like_test_all_orc_types +#### A masked pattern was here #### +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@like_test_all_orc_types +PREHOOK: query: INSERT INTO like_test_all_orc_types VALUES (1, 2, 3, 4, 2.2, 2.2, 20.20, '2022-06-30 10:20:30', '2020-04-23', 'str1', 'varchar1', 'char', true, 'binary_maybe'), + (1, 2, 3, 4, 2.2, 2.2, 20.20, '2022-06-30 10:20:30', '2020-04-23', 'str1', 'varchar1', 'char', true, 'binary_maybe') +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@like_test_all_orc_types +POSTHOOK: query: INSERT INTO like_test_all_orc_types VALUES (1, 2, 3, 4, 2.2, 2.2, 20.20, '2022-06-30 10:20:30', '2020-04-23', 'str1', 'varchar1', 'char', true, 'binary_maybe'), + (1, 2, 3, 4, 2.2, 2.2, 20.20, '2022-06-30 10:20:30', '2020-04-23', 'str1', 'varchar1', 'char', true, 'binary_maybe') +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@like_test_all_orc_types +POSTHOOK: Lineage: like_test_all_orc_types.bigint_type SCRIPT [] +POSTHOOK: Lineage: like_test_all_orc_types.binary_type SCRIPT [] +POSTHOOK: Lineage: like_test_all_orc_types.boolean_type SCRIPT [] +POSTHOOK: Lineage: like_test_all_orc_types.char_type SCRIPT [] +POSTHOOK: Lineage: like_test_all_orc_types.date_type SCRIPT [] +POSTHOOK: Lineage: like_test_all_orc_types.decimal_type SCRIPT [] +POSTHOOK: Lineage: like_test_all_orc_types.double_type SCRIPT [] +POSTHOOK: Lineage: like_test_all_orc_types.float_type SCRIPT [] +POSTHOOK: Lineage: like_test_all_orc_types.int_type SCRIPT [] +POSTHOOK: Lineage: like_test_all_orc_types.smallint_type SCRIPT [] +POSTHOOK: Lineage: like_test_all_orc_types.string_type SCRIPT [] +POSTHOOK: Lineage: like_test_all_orc_types.timestamp_type SCRIPT [] +POSTHOOK: Lineage: like_test_all_orc_types.tinyint_type SCRIPT [] +POSTHOOK: Lineage: like_test_all_orc_types.varchar_type SCRIPT [] +PREHOOK: query: SELECT * FROM like_test_all_orc_types +PREHOOK: type: QUERY +PREHOOK: Input: default@like_test_all_orc_types +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM like_test_all_orc_types +POSTHOOK: type: QUERY +POSTHOOK: Input: default@like_test_all_orc_types +#### A masked pattern was here #### +1 2 3 4 2.2 2.2 20.20 2022-06-30 10:20:30 2020-04-23 str1 varchar1 char true binary_maybe +1 2 3 4 2.2 2.2 20.20 2022-06-30 10:20:30 2020-04-23 str1 varchar1 char true binary_maybe +PREHOOK: query: DESCRIBE like_test_all_orc_types +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@like_test_all_orc_types +POSTHOOK: query: DESCRIBE like_test_all_orc_types +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@like_test_all_orc_types +tinyint_type tinyint Inferred from Orc file. +smallint_type smallint Inferred from Orc file. +bigint_type bigint Inferred from Orc file. +int_type int Inferred from Orc file. +float_type float Inferred from Orc file. +double_type double Inferred from Orc file. +decimal_type decimal(4,2) Inferred from Orc file. +timestamp_type timestamp Inferred from Orc file. +date_type date Inferred from Orc file. +string_type string Inferred from Orc file. +varchar_type varchar(100) Inferred from Orc file. +char_type char(34) Inferred from Orc file. +boolean_type boolean Inferred from Orc file. +binary_type binary Inferred from Orc file. +PREHOOK: query: DROP TABLE test_all_orc_types +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@test_all_orc_types +PREHOOK: Output: default@test_all_orc_types +POSTHOOK: query: DROP TABLE test_all_orc_types +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@test_all_orc_types +POSTHOOK: Output: default@test_all_orc_types +PREHOOK: query: DROP TABLE like_test_all_orc_types +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@like_test_all_orc_types +PREHOOK: Output: default@like_test_all_orc_types +POSTHOOK: query: DROP TABLE like_test_all_orc_types +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@like_test_all_orc_types +POSTHOOK: Output: default@like_test_all_orc_types +#### A masked pattern was here #### +PREHOOK: type: CREATETABLE +#### A masked pattern was here #### +PREHOOK: Output: database:default +PREHOOK: Output: default@test_orc_array +#### A masked pattern was here #### +POSTHOOK: type: CREATETABLE +#### A masked pattern was here #### +POSTHOOK: Output: database:default +POSTHOOK: Output: default@test_orc_array +PREHOOK: query: DESCRIBE test_orc_array +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@test_orc_array +POSTHOOK: query: DESCRIBE test_orc_array +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@test_orc_array +str_array array +PREHOOK: query: INSERT INTO test_orc_array SELECT array("bob", "sue") +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@test_orc_array +POSTHOOK: query: INSERT INTO test_orc_array SELECT array("bob", "sue") +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@test_orc_array +POSTHOOK: Lineage: test_orc_array.str_array EXPRESSION [] +PREHOOK: query: SELECT * FROM test_orc_array +PREHOOK: type: QUERY +PREHOOK: Input: default@test_orc_array +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM test_orc_array +POSTHOOK: type: QUERY +POSTHOOK: Input: default@test_orc_array +#### A masked pattern was here #### +["bob","sue"] +#### A masked pattern was here #### +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@like_test_orc_array +#### A masked pattern was here #### +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@like_test_orc_array +PREHOOK: query: DESCRIBE like_test_orc_array +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@like_test_orc_array +POSTHOOK: query: DESCRIBE like_test_orc_array +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@like_test_orc_array +str_array array Inferred from Orc file. +PREHOOK: query: INSERT INTO like_test_orc_array SELECT array("bob", "sue") +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@like_test_orc_array +POSTHOOK: query: INSERT INTO like_test_orc_array SELECT array("bob", "sue") +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@like_test_orc_array +POSTHOOK: Lineage: like_test_orc_array.str_array EXPRESSION [] +PREHOOK: query: SELECT * FROM like_test_orc_array +PREHOOK: type: QUERY +PREHOOK: Input: default@like_test_orc_array +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM like_test_orc_array +POSTHOOK: type: QUERY +POSTHOOK: Input: default@like_test_orc_array +#### A masked pattern was here #### +["bob","sue"] +PREHOOK: query: DROP TABLE like_test_orc_array +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@like_test_orc_array +PREHOOK: Output: default@like_test_orc_array +POSTHOOK: query: DROP TABLE like_test_orc_array +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@like_test_orc_array +POSTHOOK: Output: default@like_test_orc_array +#### A masked pattern was here #### +PREHOOK: type: CREATETABLE +#### A masked pattern was here #### +PREHOOK: Output: database:default +PREHOOK: Output: default@test_orc_map +#### A masked pattern was here #### +POSTHOOK: type: CREATETABLE +#### A masked pattern was here #### +POSTHOOK: Output: database:default +POSTHOOK: Output: default@test_orc_map +PREHOOK: query: DESCRIBE test_orc_map +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@test_orc_map +POSTHOOK: query: DESCRIBE test_orc_map +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@test_orc_map +simple_map map +map_to_struct map> +map_to_map map> +map_to_array map>> +PREHOOK: query: INSERT INTO test_orc_map SELECT map(10, "foo"), map("bar", named_struct("i", 99)), map(cast('1984-01-01' as date), map(10, "goodbye")), map(cast("binary" as binary), array(array(1,2,3))) +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@test_orc_map +POSTHOOK: query: INSERT INTO test_orc_map SELECT map(10, "foo"), map("bar", named_struct("i", 99)), map(cast('1984-01-01' as date), map(10, "goodbye")), map(cast("binary" as binary), array(array(1,2,3))) +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@test_orc_map +POSTHOOK: Lineage: test_orc_map.map_to_array EXPRESSION [] +POSTHOOK: Lineage: test_orc_map.map_to_map EXPRESSION [] +POSTHOOK: Lineage: test_orc_map.map_to_struct EXPRESSION [] +POSTHOOK: Lineage: test_orc_map.simple_map EXPRESSION [] +PREHOOK: query: SELECT * FROM test_orc_map +PREHOOK: type: QUERY +PREHOOK: Input: default@test_orc_map +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM test_orc_map +POSTHOOK: type: QUERY +POSTHOOK: Input: default@test_orc_map +#### A masked pattern was here #### +{10:"foo"} {"bar":{"i":99}} {"1984-01-01":{10:"goodbye"}} {binary:[[1,2,3]]} +#### A masked pattern was here #### +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@like_test_orc_map +#### A masked pattern was here #### +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@like_test_orc_map +PREHOOK: query: DESCRIBE like_test_orc_map +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@like_test_orc_map +POSTHOOK: query: DESCRIBE like_test_orc_map +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@like_test_orc_map +simple_map map Inferred from Orc file. +map_to_struct map> Inferred from Orc file. +map_to_map map> Inferred from Orc file. +map_to_array map>> Inferred from Orc file. +PREHOOK: query: INSERT INTO like_test_orc_map SELECT map(10, "foo"), map("bar", named_struct("i", 99)), map(cast('1984-01-01' as date), map(10, "goodbye")), map(cast("binary" as binary), array(array(1,2,3))) +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@like_test_orc_map +POSTHOOK: query: INSERT INTO like_test_orc_map SELECT map(10, "foo"), map("bar", named_struct("i", 99)), map(cast('1984-01-01' as date), map(10, "goodbye")), map(cast("binary" as binary), array(array(1,2,3))) +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@like_test_orc_map +POSTHOOK: Lineage: like_test_orc_map.map_to_array EXPRESSION [] +POSTHOOK: Lineage: like_test_orc_map.map_to_map EXPRESSION [] +POSTHOOK: Lineage: like_test_orc_map.map_to_struct EXPRESSION [] +POSTHOOK: Lineage: like_test_orc_map.simple_map EXPRESSION [] +PREHOOK: query: SELECT * FROM like_test_orc_map +PREHOOK: type: QUERY +PREHOOK: Input: default@like_test_orc_map +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM like_test_orc_map +POSTHOOK: type: QUERY +POSTHOOK: Input: default@like_test_orc_map +#### A masked pattern was here #### +{10:"foo"} {"bar":{"i":99}} {"1984-01-01":{10:"goodbye"}} {binary:[[1,2,3]]} +PREHOOK: query: DROP TABLE like_test_orc_map +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@like_test_orc_map +PREHOOK: Output: default@like_test_orc_map +POSTHOOK: query: DROP TABLE like_test_orc_map +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@like_test_orc_map +POSTHOOK: Output: default@like_test_orc_map +PREHOOK: query: CREATE TABLE src_tbl (key STRING, value STRING) STORED AS TEXTFILE +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@src_tbl +POSTHOOK: query: CREATE TABLE src_tbl (key STRING, value STRING) STORED AS TEXTFILE +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@src_tbl +PREHOOK: query: INSERT INTO src_tbl VALUES ('hello', 'world') +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@src_tbl +POSTHOOK: query: INSERT INTO src_tbl VALUES ('hello', 'world') +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@src_tbl +POSTHOOK: Lineage: src_tbl.key SCRIPT [] +POSTHOOK: Lineage: src_tbl.value SCRIPT [] +#### A masked pattern was here #### +PREHOOK: type: CREATETABLE +#### A masked pattern was here #### +PREHOOK: Output: database:default +PREHOOK: Output: default@test_orc_union +#### A masked pattern was here #### +POSTHOOK: type: CREATETABLE +#### A masked pattern was here #### +POSTHOOK: Output: database:default +POSTHOOK: Output: default@test_orc_union +PREHOOK: query: INSERT INTO test_orc_union SELECT create_union(0, key) FROM src_tbl LIMIT 2 +PREHOOK: type: QUERY +PREHOOK: Input: default@src_tbl +PREHOOK: Output: default@test_orc_union +POSTHOOK: query: INSERT INTO test_orc_union SELECT create_union(0, key) FROM src_tbl LIMIT 2 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src_tbl +POSTHOOK: Output: default@test_orc_union +POSTHOOK: Lineage: test_orc_union.foo EXPRESSION [(src_tbl)src_tbl.FieldSchema(name:key, type:string, comment:null), ] +#### A masked pattern was here #### +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@like_test_orc_union +#### A masked pattern was here #### +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@like_test_orc_union +PREHOOK: query: DESCRIBE test_orc_union +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@test_orc_union +POSTHOOK: query: DESCRIBE test_orc_union +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@test_orc_union +foo uniontype +PREHOOK: query: INSERT INTO like_test_orc_union SELECT create_union(0, key) FROM src_tbl LIMIT 2 +PREHOOK: type: QUERY +PREHOOK: Input: default@src_tbl +PREHOOK: Output: default@like_test_orc_union +POSTHOOK: query: INSERT INTO like_test_orc_union SELECT create_union(0, key) FROM src_tbl LIMIT 2 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src_tbl +POSTHOOK: Output: default@like_test_orc_union +POSTHOOK: Lineage: like_test_orc_union.foo EXPRESSION [(src_tbl)src_tbl.FieldSchema(name:key, type:string, comment:null), ] +PREHOOK: query: SELECT * FROM like_test_orc_union +PREHOOK: type: QUERY +PREHOOK: Input: default@like_test_orc_union +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM like_test_orc_union +POSTHOOK: type: QUERY +POSTHOOK: Input: default@like_test_orc_union +#### A masked pattern was here #### +{0:"hello"} +PREHOOK: query: DROP TABLE like_test_orc_union +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@like_test_orc_union +PREHOOK: Output: default@like_test_orc_union +POSTHOOK: query: DROP TABLE like_test_orc_union +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@like_test_orc_union +POSTHOOK: Output: default@like_test_orc_union +#### A masked pattern was here #### +PREHOOK: type: CREATETABLE +#### A masked pattern was here #### +PREHOOK: Output: database:default +PREHOOK: Output: default@test_complex_orc_struct +#### A masked pattern was here #### +POSTHOOK: type: CREATETABLE +#### A masked pattern was here #### +POSTHOOK: Output: database:default +POSTHOOK: Output: default@test_complex_orc_struct +PREHOOK: query: DESCRIBE test_complex_orc_struct +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@test_complex_orc_struct +POSTHOOK: query: DESCRIBE test_complex_orc_struct +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@test_complex_orc_struct +struct_type struct +PREHOOK: query: INSERT INTO test_complex_orc_struct SELECT named_struct("tinyint_type", cast(1 as tinyint), "smallint_type", cast(2 as smallint), "bigint_type", cast(3 as bigint), "int_type", 4, "float_type", cast(2.2 as float), "double_type", cast(2.2 as double), "decimal_type", cast(20.22 as decimal(4,2)), "timestamp_type", cast('2022-06-30 10:20:30' as timestamp), "date_type", cast('2020-04-23' as date), "string_type", 'str1', "varchar_type", cast('varchar1' as varchar(100)), "char_type", cast('char' as char(34)), "boolean_type", true, "binary_type", cast('binary_maybe' as binary)) +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@test_complex_orc_struct +POSTHOOK: query: INSERT INTO test_complex_orc_struct SELECT named_struct("tinyint_type", cast(1 as tinyint), "smallint_type", cast(2 as smallint), "bigint_type", cast(3 as bigint), "int_type", 4, "float_type", cast(2.2 as float), "double_type", cast(2.2 as double), "decimal_type", cast(20.22 as decimal(4,2)), "timestamp_type", cast('2022-06-30 10:20:30' as timestamp), "date_type", cast('2020-04-23' as date), "string_type", 'str1', "varchar_type", cast('varchar1' as varchar(100)), "char_type", cast('char' as char(34)), "boolean_type", true, "binary_type", cast('binary_maybe' as binary)) +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@test_complex_orc_struct +POSTHOOK: Lineage: test_complex_orc_struct.struct_type EXPRESSION [] +PREHOOK: query: SELECT * FROM test_complex_orc_struct +PREHOOK: type: QUERY +PREHOOK: Input: default@test_complex_orc_struct +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM test_complex_orc_struct +POSTHOOK: type: QUERY +POSTHOOK: Input: default@test_complex_orc_struct +#### A masked pattern was here #### +{"tinyint_type":1,"smallint_type":2,"bigint_type":3,"int_type":4,"float_type":2.2,"double_type":2.2,"decimal_type":20.22,"timestamp_type":"2022-06-30 10:20:30","date_type":"2020-04-23","string_type":"str1","varchar_type":"varchar1","char_type":"char ","boolean_type":true,"binary_type":binary_maybe} +#### A masked pattern was here #### +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@like_test_complex_orc_struct +#### A masked pattern was here #### +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@like_test_complex_orc_struct +PREHOOK: query: DESCRIBE like_test_complex_orc_struct +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@like_test_complex_orc_struct +POSTHOOK: query: DESCRIBE like_test_complex_orc_struct +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@like_test_complex_orc_struct +struct_type struct Inferred from Orc file. +PREHOOK: query: INSERT INTO like_test_complex_orc_struct SELECT named_struct("tinyint_type", cast(1 as tinyint), "smallint_type", cast(2 as smallint), "bigint_type", cast(3 as bigint), "int_type", 4, "float_type", cast(2.2 as float), "double_type", cast(2.2 as double), "decimal_type", cast(20.22 as decimal(4,2)), "timestamp_type", cast('2022-06-30 10:20:30' as timestamp), "date_type", cast('2020-04-23' as date), "string_type", 'str1', "varchar_type", cast('varchar1' as varchar(100)), "char_type", cast('char' as char(34)), "boolean_type", true, "binary_type", cast('binary_maybe' as binary)) +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@like_test_complex_orc_struct +POSTHOOK: query: INSERT INTO like_test_complex_orc_struct SELECT named_struct("tinyint_type", cast(1 as tinyint), "smallint_type", cast(2 as smallint), "bigint_type", cast(3 as bigint), "int_type", 4, "float_type", cast(2.2 as float), "double_type", cast(2.2 as double), "decimal_type", cast(20.22 as decimal(4,2)), "timestamp_type", cast('2022-06-30 10:20:30' as timestamp), "date_type", cast('2020-04-23' as date), "string_type", 'str1', "varchar_type", cast('varchar1' as varchar(100)), "char_type", cast('char' as char(34)), "boolean_type", true, "binary_type", cast('binary_maybe' as binary)) +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@like_test_complex_orc_struct +POSTHOOK: Lineage: like_test_complex_orc_struct.struct_type EXPRESSION [] +PREHOOK: query: SELECT * FROM like_test_complex_orc_struct +PREHOOK: type: QUERY +PREHOOK: Input: default@like_test_complex_orc_struct +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM like_test_complex_orc_struct +POSTHOOK: type: QUERY +POSTHOOK: Input: default@like_test_complex_orc_struct +#### A masked pattern was here #### +{"tinyint_type":1,"smallint_type":2,"bigint_type":3,"int_type":4,"float_type":2.2,"double_type":2.2,"decimal_type":20.22,"timestamp_type":"2022-06-30 10:20:30","date_type":"2020-04-23","string_type":"str1","varchar_type":"varchar1","char_type":"char ","boolean_type":true,"binary_type":binary_maybe} +PREHOOK: query: DROP TABLE like_test_complex_orc_struct +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@like_test_complex_orc_struct +PREHOOK: Output: default@like_test_complex_orc_struct +POSTHOOK: query: DROP TABLE like_test_complex_orc_struct +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@like_test_complex_orc_struct +POSTHOOK: Output: default@like_test_complex_orc_struct +#### A masked pattern was here #### +PREHOOK: type: CREATETABLE +#### A masked pattern was here #### +PREHOOK: Output: database:default +PREHOOK: Output: default@test_orc_complex_complex +#### A masked pattern was here #### +POSTHOOK: type: CREATETABLE +#### A masked pattern was here #### +POSTHOOK: Output: database:default +POSTHOOK: Output: default@test_orc_complex_complex +PREHOOK: query: DESCRIBE test_orc_complex_complex +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@test_orc_complex_complex +POSTHOOK: query: DESCRIBE test_orc_complex_complex +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@test_orc_complex_complex +struct_type struct>,struct_i:struct> +PREHOOK: query: INSERT INTO test_orc_complex_complex SELECT named_struct("i", 10, "s", "hello, world", "m", map("arr", array(1,2,3,4)), "struct_i", named_struct("str", "test_str")) +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@test_orc_complex_complex +POSTHOOK: query: INSERT INTO test_orc_complex_complex SELECT named_struct("i", 10, "s", "hello, world", "m", map("arr", array(1,2,3,4)), "struct_i", named_struct("str", "test_str")) +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@test_orc_complex_complex +POSTHOOK: Lineage: test_orc_complex_complex.struct_type EXPRESSION [] +PREHOOK: query: SELECT * FROM test_orc_complex_complex +PREHOOK: type: QUERY +PREHOOK: Input: default@test_orc_complex_complex +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM test_orc_complex_complex +POSTHOOK: type: QUERY +POSTHOOK: Input: default@test_orc_complex_complex +#### A masked pattern was here #### +{"i":10,"s":"hello, world","m":{"arr":[1,2,3,4]},"struct_i":{"str":"test_str"}} +#### A masked pattern was here #### +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@like_test_orc_complex_complex +#### A masked pattern was here #### +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@like_test_orc_complex_complex +PREHOOK: query: DESCRIBE like_test_orc_complex_complex +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@like_test_orc_complex_complex +POSTHOOK: query: DESCRIBE like_test_orc_complex_complex +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@like_test_orc_complex_complex +struct_type struct>,struct_i:struct> Inferred from Orc file. +PREHOOK: query: INSERT INTO like_test_orc_complex_complex SELECT named_struct("i", 10, "s", "hello, world", "m", map("arr", array(1,2,3,4)), "struct_i", named_struct("str", "test_str")) +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@like_test_orc_complex_complex +POSTHOOK: query: INSERT INTO like_test_orc_complex_complex SELECT named_struct("i", 10, "s", "hello, world", "m", map("arr", array(1,2,3,4)), "struct_i", named_struct("str", "test_str")) +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@like_test_orc_complex_complex +POSTHOOK: Lineage: like_test_orc_complex_complex.struct_type EXPRESSION [] +PREHOOK: query: SELECT * FROM like_test_orc_complex_complex +PREHOOK: type: QUERY +PREHOOK: Input: default@like_test_orc_complex_complex +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM like_test_orc_complex_complex +POSTHOOK: type: QUERY +POSTHOOK: Input: default@like_test_orc_complex_complex +#### A masked pattern was here #### +{"i":10,"s":"hello, world","m":{"arr":[1,2,3,4]},"struct_i":{"str":"test_str"}} +PREHOOK: query: DROP TABLE like_test_orc_complex_complex +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@like_test_orc_complex_complex +PREHOOK: Output: default@like_test_orc_complex_complex +POSTHOOK: query: DROP TABLE like_test_orc_complex_complex +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@like_test_orc_complex_complex +POSTHOOK: Output: default@like_test_orc_complex_complex +#### A masked pattern was here #### +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@like_test_orc_partitioning +#### A masked pattern was here #### +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@like_test_orc_partitioning +PREHOOK: query: DESCRIBE like_test_orc_partitioning +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@like_test_orc_partitioning +POSTHOOK: query: DESCRIBE like_test_orc_partitioning +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@like_test_orc_partitioning +tinyint_type tinyint Inferred from Orc file. +smallint_type smallint Inferred from Orc file. +bigint_type bigint Inferred from Orc file. +int_type int Inferred from Orc file. +float_type float Inferred from Orc file. +double_type double Inferred from Orc file. +decimal_type decimal(4,2) Inferred from Orc file. +timestamp_type timestamp Inferred from Orc file. +date_type date Inferred from Orc file. +string_type string Inferred from Orc file. +varchar_type varchar(100) Inferred from Orc file. +char_type char(34) Inferred from Orc file. +boolean_type boolean Inferred from Orc file. +binary_type binary Inferred from Orc file. +year string +month string + +# Partition Information +# col_name data_type comment +year string +month string +PREHOOK: query: INSERT INTO like_test_orc_partitioning PARTITION (year='1984', month='1') VALUES (1, 2, 3, 4, 2.2, 2.2, 20.20, '2022-06-30 10:20:30', '2020-04-23', 'str1', 'varchar1', 'char', true, 'binary_maybe'), + (1, 2, 3, 4, 2.2, 2.2, 20.20, '2022-06-30 10:20:30', '2020-04-23', 'str1', 'varchar1', 'char', true, 'binary_maybe') +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@like_test_orc_partitioning@year=1984/month=1 +POSTHOOK: query: INSERT INTO like_test_orc_partitioning PARTITION (year='1984', month='1') VALUES (1, 2, 3, 4, 2.2, 2.2, 20.20, '2022-06-30 10:20:30', '2020-04-23', 'str1', 'varchar1', 'char', true, 'binary_maybe'), + (1, 2, 3, 4, 2.2, 2.2, 20.20, '2022-06-30 10:20:30', '2020-04-23', 'str1', 'varchar1', 'char', true, 'binary_maybe') +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@like_test_orc_partitioning@year=1984/month=1 +POSTHOOK: Lineage: like_test_orc_partitioning PARTITION(year=1984,month=1).bigint_type SCRIPT [] +POSTHOOK: Lineage: like_test_orc_partitioning PARTITION(year=1984,month=1).binary_type SCRIPT [] +POSTHOOK: Lineage: like_test_orc_partitioning PARTITION(year=1984,month=1).boolean_type SCRIPT [] +POSTHOOK: Lineage: like_test_orc_partitioning PARTITION(year=1984,month=1).char_type SCRIPT [] +POSTHOOK: Lineage: like_test_orc_partitioning PARTITION(year=1984,month=1).date_type SCRIPT [] +POSTHOOK: Lineage: like_test_orc_partitioning PARTITION(year=1984,month=1).decimal_type SCRIPT [] +POSTHOOK: Lineage: like_test_orc_partitioning PARTITION(year=1984,month=1).double_type SCRIPT [] +POSTHOOK: Lineage: like_test_orc_partitioning PARTITION(year=1984,month=1).float_type SCRIPT [] +POSTHOOK: Lineage: like_test_orc_partitioning PARTITION(year=1984,month=1).int_type SCRIPT [] +POSTHOOK: Lineage: like_test_orc_partitioning PARTITION(year=1984,month=1).smallint_type SCRIPT [] +POSTHOOK: Lineage: like_test_orc_partitioning PARTITION(year=1984,month=1).string_type SCRIPT [] +POSTHOOK: Lineage: like_test_orc_partitioning PARTITION(year=1984,month=1).timestamp_type SCRIPT [] +POSTHOOK: Lineage: like_test_orc_partitioning PARTITION(year=1984,month=1).tinyint_type SCRIPT [] +POSTHOOK: Lineage: like_test_orc_partitioning PARTITION(year=1984,month=1).varchar_type SCRIPT [] +PREHOOK: query: SELECT * FROM like_test_orc_partitioning +PREHOOK: type: QUERY +PREHOOK: Input: default@like_test_orc_partitioning +PREHOOK: Input: default@like_test_orc_partitioning@year=1984/month=1 +#### A masked pattern was here #### +POSTHOOK: query: SELECT * FROM like_test_orc_partitioning +POSTHOOK: type: QUERY +POSTHOOK: Input: default@like_test_orc_partitioning +POSTHOOK: Input: default@like_test_orc_partitioning@year=1984/month=1 +#### A masked pattern was here #### +1 2 3 4 2.2 2.2 20.20 2022-06-30 10:20:30 2020-04-23 str1 varchar1 char true binary_maybe 1984 1 +1 2 3 4 2.2 2.2 20.20 2022-06-30 10:20:30 2020-04-23 str1 varchar1 char true binary_maybe 1984 1 +PREHOOK: query: DROP TABLE like_test_orc_partitioning +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@like_test_orc_partitioning +PREHOOK: Output: default@like_test_orc_partitioning +POSTHOOK: query: DROP TABLE like_test_orc_partitioning +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@like_test_orc_partitioning +POSTHOOK: Output: default@like_test_orc_partitioning