diff --git a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java index e7f5fc0c6a..ba3f99d248 100644 --- a/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java +++ b/common/src/java/org/apache/hadoop/hive/conf/HiveConf.java @@ -2845,10 +2845,6 @@ private static void populateLlapDaemonVarsSet(Set llapDaemonVarsSetLocal " on the assumption that data changes by external applications may have negative effects" + " on these operations."), - HIVE_STRICT_MANAGED_TABLES("hive.strict.managed.tables", false, - "Whether strict managed tables mode is enabled. With this mode enabled, " + - "only transactional tables (both full and insert-only) are allowed to be created as managed tables"), - HIVE_ERROR_ON_EMPTY_PARTITION("hive.error.on.empty.partition", false, "Whether to throw an exception if dynamic partition insert generates empty results."), diff --git a/itests/src/test/resources/testconfiguration.properties b/itests/src/test/resources/testconfiguration.properties index a3ddbda27f..bd3aa27125 100644 --- a/itests/src/test/resources/testconfiguration.properties +++ b/itests/src/test/resources/testconfiguration.properties @@ -678,6 +678,8 @@ minillaplocal.query.files=\ sqlmerge.q,\ stats_based_fetch_decision.q,\ stats_only_external.q,\ + strict_managed_tables_sysdb.q,\ + strict_managed_tables1.q,\ subquery_in_having.q,\ subquery_notin.q,\ subquery_nested_subquery.q, \ diff --git a/metastore/scripts/upgrade/hive/hive-schema-3.0.0.hive.sql b/metastore/scripts/upgrade/hive/hive-schema-3.0.0.hive.sql index a3ecdedd48..71671c4233 100644 --- a/metastore/scripts/upgrade/hive/hive-schema-3.0.0.hive.sql +++ b/metastore/scripts/upgrade/hive/hive-schema-3.0.0.hive.sql @@ -5,7 +5,7 @@ CREATE DATABASE SYS; USE SYS; -CREATE TABLE IF NOT EXISTS `BUCKETING_COLS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `BUCKETING_COLS` ( `SD_ID` bigint, `BUCKET_COL_NAME` string, `INTEGER_IDX` int, @@ -23,7 +23,7 @@ FROM \"BUCKETING_COLS\"" ); -CREATE TABLE IF NOT EXISTS `CDS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `CDS` ( `CD_ID` bigint, CONSTRAINT `SYS_PK_CDS` PRIMARY KEY (`CD_ID`) DISABLE ) @@ -37,7 +37,7 @@ FROM \"CDS\"" ); -CREATE TABLE IF NOT EXISTS `COLUMNS_V2` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `COLUMNS_V2` ( `CD_ID` bigint, `COMMENT` string, `COLUMN_NAME` string, @@ -59,7 +59,7 @@ FROM \"COLUMNS_V2\"" ); -CREATE TABLE IF NOT EXISTS `DATABASE_PARAMS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `DATABASE_PARAMS` ( `DB_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -77,7 +77,7 @@ FROM \"DATABASE_PARAMS\"" ); -CREATE TABLE IF NOT EXISTS `DBS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `DBS` ( `DB_ID` bigint, `DB_LOCATION_URI` string, `NAME` string, @@ -99,7 +99,7 @@ FROM \"DBS\"" ); -CREATE TABLE IF NOT EXISTS `DB_PRIVS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `DB_PRIVS` ( `DB_GRANT_ID` bigint, `CREATE_TIME` int, `DB_ID` bigint, @@ -131,7 +131,7 @@ FROM \"DB_PRIVS\"" ); -CREATE TABLE IF NOT EXISTS `GLOBAL_PRIVS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `GLOBAL_PRIVS` ( `USER_GRANT_ID` bigint, `CREATE_TIME` int, `GRANT_OPTION` string, @@ -161,7 +161,7 @@ FROM \"GLOBAL_PRIVS\"" ); -CREATE TABLE IF NOT EXISTS `PARTITIONS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITIONS` ( `PART_ID` bigint, `CREATE_TIME` int, `LAST_ACCESS_TIME` int, @@ -185,7 +185,7 @@ FROM \"PARTITIONS\"" ); -CREATE TABLE IF NOT EXISTS `PARTITION_KEYS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITION_KEYS` ( `TBL_ID` bigint, `PKEY_COMMENT` string, `PKEY_NAME` string, @@ -207,7 +207,7 @@ FROM \"PARTITION_KEYS\"" ); -CREATE TABLE IF NOT EXISTS `PARTITION_KEY_VALS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITION_KEY_VALS` ( `PART_ID` bigint, `PART_KEY_VAL` string, `INTEGER_IDX` int, @@ -225,7 +225,7 @@ FROM \"PARTITION_KEY_VALS\"" ); -CREATE TABLE IF NOT EXISTS `PARTITION_PARAMS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITION_PARAMS` ( `PART_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -243,7 +243,7 @@ FROM \"PARTITION_PARAMS\"" ); -CREATE TABLE IF NOT EXISTS `PART_COL_PRIVS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `PART_COL_PRIVS` ( `PART_COLUMN_GRANT_ID` bigint, `COLUMN_NAME` string, `CREATE_TIME` int, @@ -277,7 +277,7 @@ FROM \"PART_COL_PRIVS\"" ); -CREATE TABLE IF NOT EXISTS `PART_PRIVS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `PART_PRIVS` ( `PART_GRANT_ID` bigint, `CREATE_TIME` int, `GRANT_OPTION` int, @@ -309,7 +309,7 @@ FROM \"PART_PRIVS\"" ); -CREATE TABLE IF NOT EXISTS `ROLES` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `ROLES` ( `ROLE_ID` bigint, `CREATE_TIME` int, `OWNER_NAME` string, @@ -329,7 +329,7 @@ FROM \"ROLES\"" ); -CREATE TABLE IF NOT EXISTS `ROLE_MAP` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `ROLE_MAP` ( `ROLE_GRANT_ID` bigint, `ADD_TIME` int, `GRANT_OPTION` int, @@ -357,7 +357,7 @@ FROM \"ROLE_MAP\"" ); -CREATE TABLE IF NOT EXISTS `SDS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SDS` ( `SD_ID` bigint, `CD_ID` bigint, `INPUT_FORMAT` string, @@ -387,7 +387,7 @@ FROM \"SDS\"" ); -CREATE TABLE IF NOT EXISTS `SD_PARAMS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SD_PARAMS` ( `SD_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -405,7 +405,7 @@ FROM \"SD_PARAMS\"" ); -CREATE TABLE IF NOT EXISTS `SEQUENCE_TABLE` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SEQUENCE_TABLE` ( `SEQUENCE_NAME` string, `NEXT_VAL` bigint, CONSTRAINT `SYS_PK_SEQUENCE_TABLE` PRIMARY KEY (`SEQUENCE_NAME`) DISABLE @@ -421,7 +421,7 @@ FROM \"SEQUENCE_TABLE\"" ); -CREATE TABLE IF NOT EXISTS `SERDES` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SERDES` ( `SERDE_ID` bigint, `NAME` string, `SLIB` string, @@ -439,7 +439,7 @@ FROM \"SERDES\"" ); -CREATE TABLE IF NOT EXISTS `SERDE_PARAMS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SERDE_PARAMS` ( `SERDE_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -457,7 +457,7 @@ FROM \"SERDE_PARAMS\"" ); -CREATE TABLE IF NOT EXISTS `SKEWED_COL_NAMES` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_COL_NAMES` ( `SD_ID` bigint, `SKEWED_COL_NAME` string, `INTEGER_IDX` int, @@ -475,7 +475,7 @@ FROM \"SKEWED_COL_NAMES\"" ); -CREATE TABLE IF NOT EXISTS `SKEWED_COL_VALUE_LOC_MAP` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_COL_VALUE_LOC_MAP` ( `SD_ID` bigint, `STRING_LIST_ID_KID` bigint, `LOCATION` string, @@ -493,7 +493,7 @@ FROM \"SKEWED_COL_VALUE_LOC_MAP\"" ); -CREATE TABLE IF NOT EXISTS `SKEWED_STRING_LIST` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_STRING_LIST` ( `STRING_LIST_ID` bigint, CONSTRAINT `SYS_PK_SKEWED_STRING_LIST` PRIMARY KEY (`STRING_LIST_ID`) DISABLE ) @@ -507,7 +507,7 @@ FROM \"SKEWED_STRING_LIST\"" ); -CREATE TABLE IF NOT EXISTS `SKEWED_STRING_LIST_VALUES` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_STRING_LIST_VALUES` ( `STRING_LIST_ID` bigint, `STRING_LIST_VALUE` string, `INTEGER_IDX` int, @@ -525,7 +525,7 @@ FROM \"SKEWED_STRING_LIST_VALUES\"" ); -CREATE TABLE IF NOT EXISTS `SKEWED_VALUES` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_VALUES` ( `SD_ID_OID` bigint, `STRING_LIST_ID_EID` bigint, `INTEGER_IDX` int, @@ -543,7 +543,7 @@ FROM \"SKEWED_VALUES\"" ); -CREATE TABLE IF NOT EXISTS `SORT_COLS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SORT_COLS` ( `SD_ID` bigint, `COLUMN_NAME` string, `ORDER` int, @@ -563,7 +563,7 @@ FROM \"SORT_COLS\"" ); -CREATE TABLE IF NOT EXISTS `TABLE_PARAMS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `TABLE_PARAMS` ( `TBL_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -581,7 +581,7 @@ FROM \"TABLE_PARAMS\"" ); -CREATE TABLE IF NOT EXISTS `TBLS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `TBLS` ( `TBL_ID` bigint, `CREATE_TIME` int, `DB_ID` bigint, @@ -616,7 +616,7 @@ TBLPROPERTIES ( FROM \"TBLS\"" ); -CREATE TABLE IF NOT EXISTS `MV_CREATION_METADATA` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `MV_CREATION_METADATA` ( `MV_CREATION_METADATA_ID` bigint, `DB_NAME` string, `TBL_NAME` string, @@ -635,7 +635,7 @@ TBLPROPERTIES ( FROM \"MV_CREATION_METADATA\"" ); -CREATE TABLE IF NOT EXISTS `MV_TABLES_USED` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `MV_TABLES_USED` ( `MV_CREATION_METADATA_ID` bigint, `TBL_ID` bigint ) @@ -649,7 +649,7 @@ TBLPROPERTIES ( FROM \"MV_TABLES_USED\"" ); -CREATE TABLE IF NOT EXISTS `TBL_COL_PRIVS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `TBL_COL_PRIVS` ( `TBL_COLUMN_GRANT_ID` bigint, `COLUMN_NAME` string, `CREATE_TIME` int, @@ -683,7 +683,7 @@ FROM \"TBL_COL_PRIVS\"" ); -CREATE TABLE IF NOT EXISTS `TBL_PRIVS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `TBL_PRIVS` ( `TBL_GRANT_ID` bigint, `CREATE_TIME` int, `GRANT_OPTION` int, @@ -715,7 +715,7 @@ FROM \"TBL_PRIVS\"" ); -CREATE TABLE IF NOT EXISTS `TAB_COL_STATS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `TAB_COL_STATS` ( `CS_ID` bigint, `DB_NAME` string, `TABLE_NAME` string, @@ -765,7 +765,7 @@ FROM \"TAB_COL_STATS\"" ); -CREATE TABLE IF NOT EXISTS `PART_COL_STATS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `PART_COL_STATS` ( `CS_ID` bigint, `DB_NAME` string, `TABLE_NAME` string, @@ -817,7 +817,7 @@ FROM \"PART_COL_STATS\"" ); -CREATE TABLE IF NOT EXISTS `VERSION` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `VERSION` ( `VER_ID` BIGINT, `SCHEMA_VERSION` string, `VERSION_COMMENT` string, @@ -826,7 +826,7 @@ CREATE TABLE IF NOT EXISTS `VERSION` ( INSERT INTO `VERSION` VALUES (1, '3.0.0', 'Hive release version 3.0.0'); -CREATE TABLE IF NOT EXISTS `DB_VERSION` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `DB_VERSION` ( `VER_ID` BIGINT, `SCHEMA_VERSION` string, `VERSION_COMMENT` string, @@ -844,7 +844,7 @@ FROM \"VERSION\"" ); -CREATE TABLE IF NOT EXISTS `FUNCS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `FUNCS` ( `FUNC_ID` bigint, `CLASS_NAME` string, `CREATE_TIME` int, @@ -872,7 +872,7 @@ FROM \"FUNCS\"" ); --- CREATE TABLE IF NOT EXISTS `FUNC_RU` ( +-- CREATE EXTERNAL TABLE IF NOT EXISTS `FUNC_RU` ( -- `FUNC_ID` bigint, -- `RESOURCE_TYPE` int, -- `RESOURCE_URI` string, @@ -885,7 +885,7 @@ FROM -- "hive.sql.query" = "SELECT * FROM FUNCS_RU" -- ); -CREATE TABLE IF NOT EXISTS `KEY_CONSTRAINTS` +CREATE EXTERNAL TABLE IF NOT EXISTS `KEY_CONSTRAINTS` ( `CHILD_CD_ID` bigint, `CHILD_INTEGER_IDX` int, @@ -946,7 +946,7 @@ SELECT max(CASE `PARAM_KEY` WHEN 'transient_lastDdlTime' THEN `PARAM_VALUE` END) AS TRANSIENT_LAST_DDL_TIME FROM `PARTITION_PARAMS` GROUP BY `PART_ID`; -CREATE TABLE IF NOT EXISTS `WM_RESOURCEPLANS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `WM_RESOURCEPLANS` ( `NAME` string, `STATUS` string, `QUERY_PARALLELISM` int, @@ -965,7 +965,7 @@ FROM \"WM_RESOURCEPLAN\" LEFT OUTER JOIN \"WM_POOL\" ON \"WM_RESOURCEPLAN\".\"DEFAULT_POOL_ID\" = \"WM_POOL\".\"POOL_ID\"" ); -CREATE TABLE IF NOT EXISTS `WM_TRIGGERS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `WM_TRIGGERS` ( `RP_NAME` string, `NAME` string, `TRIGGER_EXPRESSION` string, @@ -988,7 +988,7 @@ ON t.\"RP_ID\" = r.\"RP_ID\"" ); -CREATE TABLE IF NOT EXISTS `WM_POOLS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `WM_POOLS` ( `RP_NAME` string, `PATH` string, `ALLOC_FRACTION` double, @@ -1013,7 +1013,7 @@ ON \"WM_POOL\".\"RP_ID\" = \"WM_RESOURCEPLAN\".\"RP_ID\"" ); -CREATE TABLE IF NOT EXISTS `WM_POOLS_TO_TRIGGERS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `WM_POOLS_TO_TRIGGERS` ( `RP_NAME` string, `POOL_PATH` string, `TRIGGER_NAME` string @@ -1041,7 +1041,7 @@ WHERE CAST(\"WM_TRIGGER\".\"IS_IN_UNMANAGED\" AS CHAR) IN ('1', 't') " ); -CREATE TABLE IF NOT EXISTS `WM_MAPPINGS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `WM_MAPPINGS` ( `RP_NAME` string, `ENTITY_TYPE` string, `ENTITY_NAME` string, diff --git a/metastore/scripts/upgrade/hive/hive-schema-3.1.0.hive.sql b/metastore/scripts/upgrade/hive/hive-schema-3.1.0.hive.sql index 8453ee382d..9bfe9c247d 100644 --- a/metastore/scripts/upgrade/hive/hive-schema-3.1.0.hive.sql +++ b/metastore/scripts/upgrade/hive/hive-schema-3.1.0.hive.sql @@ -5,7 +5,7 @@ CREATE DATABASE SYS; USE SYS; -CREATE TABLE IF NOT EXISTS `BUCKETING_COLS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `BUCKETING_COLS` ( `SD_ID` bigint, `BUCKET_COL_NAME` string, `INTEGER_IDX` int, @@ -23,7 +23,7 @@ FROM \"BUCKETING_COLS\"" ); -CREATE TABLE IF NOT EXISTS `CDS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `CDS` ( `CD_ID` bigint, CONSTRAINT `SYS_PK_CDS` PRIMARY KEY (`CD_ID`) DISABLE ) @@ -37,7 +37,7 @@ FROM \"CDS\"" ); -CREATE TABLE IF NOT EXISTS `COLUMNS_V2` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `COLUMNS_V2` ( `CD_ID` bigint, `COMMENT` string, `COLUMN_NAME` string, @@ -59,7 +59,7 @@ FROM \"COLUMNS_V2\"" ); -CREATE TABLE IF NOT EXISTS `DATABASE_PARAMS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `DATABASE_PARAMS` ( `DB_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -77,7 +77,7 @@ FROM \"DATABASE_PARAMS\"" ); -CREATE TABLE IF NOT EXISTS `DBS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `DBS` ( `DB_ID` bigint, `DB_LOCATION_URI` string, `NAME` string, @@ -99,7 +99,7 @@ FROM \"DBS\"" ); -CREATE TABLE IF NOT EXISTS `DB_PRIVS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `DB_PRIVS` ( `DB_GRANT_ID` bigint, `CREATE_TIME` int, `DB_ID` bigint, @@ -131,7 +131,7 @@ FROM \"DB_PRIVS\"" ); -CREATE TABLE IF NOT EXISTS `GLOBAL_PRIVS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `GLOBAL_PRIVS` ( `USER_GRANT_ID` bigint, `CREATE_TIME` int, `GRANT_OPTION` string, @@ -161,7 +161,7 @@ FROM \"GLOBAL_PRIVS\"" ); -CREATE TABLE IF NOT EXISTS `PARTITIONS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITIONS` ( `PART_ID` bigint, `CREATE_TIME` int, `LAST_ACCESS_TIME` int, @@ -185,7 +185,7 @@ FROM \"PARTITIONS\"" ); -CREATE TABLE IF NOT EXISTS `PARTITION_KEYS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITION_KEYS` ( `TBL_ID` bigint, `PKEY_COMMENT` string, `PKEY_NAME` string, @@ -207,7 +207,7 @@ FROM \"PARTITION_KEYS\"" ); -CREATE TABLE IF NOT EXISTS `PARTITION_KEY_VALS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITION_KEY_VALS` ( `PART_ID` bigint, `PART_KEY_VAL` string, `INTEGER_IDX` int, @@ -225,7 +225,7 @@ FROM \"PARTITION_KEY_VALS\"" ); -CREATE TABLE IF NOT EXISTS `PARTITION_PARAMS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITION_PARAMS` ( `PART_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -243,7 +243,7 @@ FROM \"PARTITION_PARAMS\"" ); -CREATE TABLE IF NOT EXISTS `PART_COL_PRIVS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `PART_COL_PRIVS` ( `PART_COLUMN_GRANT_ID` bigint, `COLUMN_NAME` string, `CREATE_TIME` int, @@ -277,7 +277,7 @@ FROM \"PART_COL_PRIVS\"" ); -CREATE TABLE IF NOT EXISTS `PART_PRIVS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `PART_PRIVS` ( `PART_GRANT_ID` bigint, `CREATE_TIME` int, `GRANT_OPTION` int, @@ -309,7 +309,7 @@ FROM \"PART_PRIVS\"" ); -CREATE TABLE IF NOT EXISTS `ROLES` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `ROLES` ( `ROLE_ID` bigint, `CREATE_TIME` int, `OWNER_NAME` string, @@ -329,7 +329,7 @@ FROM \"ROLES\"" ); -CREATE TABLE IF NOT EXISTS `ROLE_MAP` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `ROLE_MAP` ( `ROLE_GRANT_ID` bigint, `ADD_TIME` int, `GRANT_OPTION` int, @@ -357,7 +357,7 @@ FROM \"ROLE_MAP\"" ); -CREATE TABLE IF NOT EXISTS `SDS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SDS` ( `SD_ID` bigint, `CD_ID` bigint, `INPUT_FORMAT` string, @@ -387,7 +387,7 @@ FROM \"SDS\"" ); -CREATE TABLE IF NOT EXISTS `SD_PARAMS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SD_PARAMS` ( `SD_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -405,7 +405,7 @@ FROM \"SD_PARAMS\"" ); -CREATE TABLE IF NOT EXISTS `SEQUENCE_TABLE` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SEQUENCE_TABLE` ( `SEQUENCE_NAME` string, `NEXT_VAL` bigint, CONSTRAINT `SYS_PK_SEQUENCE_TABLE` PRIMARY KEY (`SEQUENCE_NAME`) DISABLE @@ -421,7 +421,7 @@ FROM \"SEQUENCE_TABLE\"" ); -CREATE TABLE IF NOT EXISTS `SERDES` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SERDES` ( `SERDE_ID` bigint, `NAME` string, `SLIB` string, @@ -439,7 +439,7 @@ FROM \"SERDES\"" ); -CREATE TABLE IF NOT EXISTS `SERDE_PARAMS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SERDE_PARAMS` ( `SERDE_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -457,7 +457,7 @@ FROM \"SERDE_PARAMS\"" ); -CREATE TABLE IF NOT EXISTS `SKEWED_COL_NAMES` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_COL_NAMES` ( `SD_ID` bigint, `SKEWED_COL_NAME` string, `INTEGER_IDX` int, @@ -475,7 +475,7 @@ FROM \"SKEWED_COL_NAMES\"" ); -CREATE TABLE IF NOT EXISTS `SKEWED_COL_VALUE_LOC_MAP` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_COL_VALUE_LOC_MAP` ( `SD_ID` bigint, `STRING_LIST_ID_KID` bigint, `LOCATION` string, @@ -493,7 +493,7 @@ FROM \"SKEWED_COL_VALUE_LOC_MAP\"" ); -CREATE TABLE IF NOT EXISTS `SKEWED_STRING_LIST` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_STRING_LIST` ( `STRING_LIST_ID` bigint, CONSTRAINT `SYS_PK_SKEWED_STRING_LIST` PRIMARY KEY (`STRING_LIST_ID`) DISABLE ) @@ -507,7 +507,7 @@ FROM \"SKEWED_STRING_LIST\"" ); -CREATE TABLE IF NOT EXISTS `SKEWED_STRING_LIST_VALUES` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_STRING_LIST_VALUES` ( `STRING_LIST_ID` bigint, `STRING_LIST_VALUE` string, `INTEGER_IDX` int, @@ -525,7 +525,7 @@ FROM \"SKEWED_STRING_LIST_VALUES\"" ); -CREATE TABLE IF NOT EXISTS `SKEWED_VALUES` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_VALUES` ( `SD_ID_OID` bigint, `STRING_LIST_ID_EID` bigint, `INTEGER_IDX` int, @@ -543,7 +543,7 @@ FROM \"SKEWED_VALUES\"" ); -CREATE TABLE IF NOT EXISTS `SORT_COLS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `SORT_COLS` ( `SD_ID` bigint, `COLUMN_NAME` string, `ORDER` int, @@ -563,7 +563,7 @@ FROM \"SORT_COLS\"" ); -CREATE TABLE IF NOT EXISTS `TABLE_PARAMS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `TABLE_PARAMS` ( `TBL_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -581,7 +581,7 @@ FROM \"TABLE_PARAMS\"" ); -CREATE TABLE IF NOT EXISTS `TBLS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `TBLS` ( `TBL_ID` bigint, `CREATE_TIME` int, `DB_ID` bigint, @@ -616,7 +616,7 @@ TBLPROPERTIES ( FROM \"TBLS\"" ); -CREATE TABLE IF NOT EXISTS `MV_CREATION_METADATA` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `MV_CREATION_METADATA` ( `MV_CREATION_METADATA_ID` bigint, `DB_NAME` string, `TBL_NAME` string, @@ -635,7 +635,7 @@ TBLPROPERTIES ( FROM \"MV_CREATION_METADATA\"" ); -CREATE TABLE IF NOT EXISTS `MV_TABLES_USED` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `MV_TABLES_USED` ( `MV_CREATION_METADATA_ID` bigint, `TBL_ID` bigint ) @@ -649,7 +649,7 @@ TBLPROPERTIES ( FROM \"MV_TABLES_USED\"" ); -CREATE TABLE IF NOT EXISTS `TBL_COL_PRIVS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `TBL_COL_PRIVS` ( `TBL_COLUMN_GRANT_ID` bigint, `COLUMN_NAME` string, `CREATE_TIME` int, @@ -683,7 +683,7 @@ FROM \"TBL_COL_PRIVS\"" ); -CREATE TABLE IF NOT EXISTS `TBL_PRIVS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `TBL_PRIVS` ( `TBL_GRANT_ID` bigint, `CREATE_TIME` int, `GRANT_OPTION` int, @@ -715,7 +715,7 @@ FROM \"TBL_PRIVS\"" ); -CREATE TABLE IF NOT EXISTS `TAB_COL_STATS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `TAB_COL_STATS` ( `CS_ID` bigint, `DB_NAME` string, `TABLE_NAME` string, @@ -765,7 +765,7 @@ FROM \"TAB_COL_STATS\"" ); -CREATE TABLE IF NOT EXISTS `PART_COL_STATS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `PART_COL_STATS` ( `CS_ID` bigint, `DB_NAME` string, `TABLE_NAME` string, @@ -817,7 +817,7 @@ FROM \"PART_COL_STATS\"" ); -CREATE TABLE IF NOT EXISTS `VERSION` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `VERSION` ( `VER_ID` BIGINT, `SCHEMA_VERSION` string, `VERSION_COMMENT` string, @@ -826,7 +826,7 @@ CREATE TABLE IF NOT EXISTS `VERSION` ( INSERT INTO `VERSION` VALUES (1, '3.1.0', 'Hive release version 3.1.0'); -CREATE TABLE IF NOT EXISTS `DB_VERSION` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `DB_VERSION` ( `VER_ID` BIGINT, `SCHEMA_VERSION` string, `VERSION_COMMENT` string, @@ -844,7 +844,7 @@ FROM \"VERSION\"" ); -CREATE TABLE IF NOT EXISTS `FUNCS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `FUNCS` ( `FUNC_ID` bigint, `CLASS_NAME` string, `CREATE_TIME` int, @@ -872,7 +872,7 @@ FROM \"FUNCS\"" ); --- CREATE TABLE IF NOT EXISTS `FUNC_RU` ( +-- CREATE EXTERNAL TABLE IF NOT EXISTS `FUNC_RU` ( -- `FUNC_ID` bigint, -- `RESOURCE_TYPE` int, -- `RESOURCE_URI` string, @@ -885,7 +885,7 @@ FROM -- "hive.sql.query" = "SELECT * FROM FUNCS_RU" -- ); -CREATE TABLE IF NOT EXISTS `KEY_CONSTRAINTS` +CREATE EXTERNAL TABLE IF NOT EXISTS `KEY_CONSTRAINTS` ( `CHILD_CD_ID` bigint, `CHILD_INTEGER_IDX` int, @@ -946,7 +946,7 @@ SELECT max(CASE `PARAM_KEY` WHEN 'transient_lastDdlTime' THEN `PARAM_VALUE` END) AS TRANSIENT_LAST_DDL_TIME FROM `PARTITION_PARAMS` GROUP BY `PART_ID`; -CREATE TABLE IF NOT EXISTS `WM_RESOURCEPLANS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `WM_RESOURCEPLANS` ( `NAME` string, `STATUS` string, `QUERY_PARALLELISM` int, @@ -965,7 +965,7 @@ FROM \"WM_RESOURCEPLAN\" LEFT OUTER JOIN \"WM_POOL\" ON \"WM_RESOURCEPLAN\".\"DEFAULT_POOL_ID\" = \"WM_POOL\".\"POOL_ID\"" ); -CREATE TABLE IF NOT EXISTS `WM_TRIGGERS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `WM_TRIGGERS` ( `RP_NAME` string, `NAME` string, `TRIGGER_EXPRESSION` string, @@ -988,7 +988,7 @@ ON t.\"RP_ID\" = r.\"RP_ID\"" ); -CREATE TABLE IF NOT EXISTS `WM_POOLS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `WM_POOLS` ( `RP_NAME` string, `PATH` string, `ALLOC_FRACTION` double, @@ -1013,7 +1013,7 @@ ON \"WM_POOL\".\"RP_ID\" = \"WM_RESOURCEPLAN\".\"RP_ID\"" ); -CREATE TABLE IF NOT EXISTS `WM_POOLS_TO_TRIGGERS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `WM_POOLS_TO_TRIGGERS` ( `RP_NAME` string, `POOL_PATH` string, `TRIGGER_NAME` string @@ -1041,7 +1041,7 @@ WHERE CAST(\"WM_TRIGGER\".\"IS_IN_UNMANAGED\" AS CHAR) IN ('1', 't') " ); -CREATE TABLE IF NOT EXISTS `WM_MAPPINGS` ( +CREATE EXTERNAL TABLE IF NOT EXISTS `WM_MAPPINGS` ( `RP_NAME` string, `ENTITY_TYPE` string, `ENTITY_NAME` string, diff --git a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java index 8e32b02b59..8438dad347 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java @@ -4393,6 +4393,11 @@ private static StorageDescriptor retrieveStorageDescriptor(Table tbl, Partition if (isFromMmTable && isRemoved) { throw new HiveException("Cannot convert an ACID table to non-ACID"); } + + // Check if external table property being removed + if (removedSet.contains("EXTERNAL") && tbl.getTableType() == TableType.EXTERNAL_TABLE) { + tbl.setTableType(TableType.MANAGED_TABLE); + } } Iterator keyItr = alterTbl.getProps().keySet().iterator(); while (keyItr.hasNext()) { @@ -4498,6 +4503,17 @@ private void checkMmLb(Partition part) throws HiveException { throw new HiveException("Cannot convert an ACID table to non-ACID"); } } + + // Converting to/from external table + String externalProp = alterTbl.getProps().get("EXTERNAL"); + if (externalProp != null) { + if (Boolean.parseBoolean(externalProp) && tbl.getTableType() == TableType.MANAGED_TABLE) { + tbl.setTableType(TableType.EXTERNAL_TABLE); + } else if (!Boolean.parseBoolean(externalProp) && tbl.getTableType() == TableType.EXTERNAL_TABLE) { + tbl.setTableType(TableType.MANAGED_TABLE); + } + } + tbl.getTTable().getParameters().putAll(alterTbl.getProps()); } return result; diff --git a/ql/src/java/org/apache/hadoop/hive/ql/util/HiveStrictManagedMigration.java b/ql/src/java/org/apache/hadoop/hive/ql/util/HiveStrictManagedMigration.java index 604e4d27c1..0f0dc2251d 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/util/HiveStrictManagedMigration.java +++ b/ql/src/java/org/apache/hadoop/hive/ql/util/HiveStrictManagedMigration.java @@ -47,6 +47,7 @@ import org.apache.hadoop.hive.metastore.TransactionalValidationListener; import org.apache.hadoop.hive.metastore.Warehouse; import org.apache.hadoop.hive.metastore.conf.MetastoreConf; +import org.apache.hadoop.hive.metastore.utils.HiveStrictManagedUtils; import org.apache.hadoop.hive.metastore.utils.MetaStoreUtils; import org.apache.hadoop.hive.ql.DriverFactory; import org.apache.hadoop.hive.ql.IDriver; diff --git a/ql/src/test/queries/clientnegative/strict_managed_tables1.q b/ql/src/test/queries/clientnegative/strict_managed_tables1.q new file mode 100644 index 0000000000..739ab49496 --- /dev/null +++ b/ql/src/test/queries/clientnegative/strict_managed_tables1.q @@ -0,0 +1,15 @@ +set hive.support.concurrency=true; +set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; +set metastore.strict.managed.tables=true; + +-- Managed transactional table ok +create table strict_managed_tables1_tab1 (c1 string, c2 string) stored as orc tblproperties ('transactional'='true'); + +-- Managed insert-only transactional table ok +create table strict_managed_tables1_tab2 (c1 string, c2 string) stored as textfile tblproperties ('transactional'='true', 'transactional_properties'='insert_only'); + +-- External non-transactional table ok +create external table strict_managed_tables1_tab3 (c1 string, c2 string) stored as textfile; + +-- Managed non-transactional table not ok +create table strict_managed_tables1_tab4 (c1 string, c2 string) stored as textfile; diff --git a/ql/src/test/queries/clientnegative/strict_managed_tables2.q b/ql/src/test/queries/clientnegative/strict_managed_tables2.q new file mode 100644 index 0000000000..080c0f28ee --- /dev/null +++ b/ql/src/test/queries/clientnegative/strict_managed_tables2.q @@ -0,0 +1,7 @@ +set metastore.strict.managed.tables=true; + +-- External non-transactional table ok +create external table strict_managed_tables2_tab1 (c1 string, c2 string) stored as textfile; + +-- Trying to change the table to non-external is not +alter table strict_managed_tables2_tab1 set tblproperties ('EXTERNAL'='FALSE'); diff --git a/ql/src/test/queries/clientnegative/strict_managed_tables3.q b/ql/src/test/queries/clientnegative/strict_managed_tables3.q new file mode 100644 index 0000000000..c0e28d2c5d --- /dev/null +++ b/ql/src/test/queries/clientnegative/strict_managed_tables3.q @@ -0,0 +1,7 @@ +set metastore.strict.managed.tables=true; + +-- External non-transactional table ok +create external table strict_managed_tables3_tab1 (c1 string, c2 string) stored as textfile; + +-- Trying to change the table to non-external is not +alter table strict_managed_tables3_tab1 unset tblproperties ('EXTERNAL'); diff --git a/ql/src/test/queries/clientnegative/strict_managed_tables4.q b/ql/src/test/queries/clientnegative/strict_managed_tables4.q new file mode 100644 index 0000000000..34d477a6bc --- /dev/null +++ b/ql/src/test/queries/clientnegative/strict_managed_tables4.q @@ -0,0 +1,16 @@ + +set metastore.strict.managed.tables=true; + +dfs -rm -f ${system:test.tmp.dir}/smt6_schema.avsc; +dfs -cp ${system:hive.root}data/files/grad.avsc ${system:test.tmp.dir}/smt6_schema.avsc; + +CREATE EXTERNAL TABLE strict_managed_tables6_tab1 +STORED AS AVRO +TBLPROPERTIES ('avro.schema.url'='${system:test.tmp.dir}/smt6_schema.avsc'); + +describe strict_managed_tables6_tab1; + +-- avro table with external schema url not allowed as managed table +CREATE TABLE strict_managed_tables6_tab2 +STORED AS AVRO +TBLPROPERTIES ('avro.schema.url'='${system:test.tmp.dir}/smt6_schema.avsc'); diff --git a/ql/src/test/queries/clientnegative/strict_managed_tables5.q b/ql/src/test/queries/clientnegative/strict_managed_tables5.q new file mode 100644 index 0000000000..c539166b35 --- /dev/null +++ b/ql/src/test/queries/clientnegative/strict_managed_tables5.q @@ -0,0 +1,12 @@ + +set metastore.strict.managed.tables=true; + +create external table strict_managed_tables5_tab1 (c1 string, c2 string) +ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' +STORED BY 'org.apache.hadoop.hive.ql.metadata.DefaultStorageHandler'; + +-- Managed non-native table should fail +create table strict_managed_tables5_tab2 (c1 string, c2 string) +ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' +STORED BY 'org.apache.hadoop.hive.ql.metadata.DefaultStorageHandler'; + diff --git a/ql/src/test/queries/clientpositive/strict_managed_tables1.q b/ql/src/test/queries/clientpositive/strict_managed_tables1.q new file mode 100644 index 0000000000..9057e04bb4 --- /dev/null +++ b/ql/src/test/queries/clientpositive/strict_managed_tables1.q @@ -0,0 +1,40 @@ + +set hive.support.concurrency=true; +set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; + +drop table if exists smt1_tab1; +drop table if exists smt1_tab2; + +create table smt1_tab1 (c1 string, c2 string) stored as textfile; +load data local inpath '../../data/files/kv1.txt' into table smt1_tab1; +select * from smt1_tab1 where c1 = '0'; + +create table smt1_tab2 (c1 string, c2 string) stored as textfile; +insert into table smt1_tab2 select * from smt1_tab1; +select * from smt1_tab2 where c1 = '0'; + +-- After this point, managed non-transactional table not valid +set metastore.strict.managed.tables=true; + +-- Setting to external table should allow table to be usable +alter table smt1_tab1 set tblproperties('EXTERNAL'='TRUE'); +select * from smt1_tab1 where c1 = '0'; + +alter table smt1_tab2 set tblproperties('EXTERNAL'='TRUE'); +select * from smt1_tab2 where c1 = '0'; + +-- Setting to managed insert-only transactional table should allow table to be usable +alter table smt1_tab1 set tblproperties('EXTERNAL'='FALSE', 'transactional'='true', 'transactional_properties'='insert_only'); +select * from smt1_tab1 where c1 = '0'; + +alter table smt1_tab2 set tblproperties('EXTERNAL'='FALSE', 'transactional'='true', 'transactional_properties'='insert_only'); +select * from smt1_tab2 where c1 = '0'; + +-- Temp table still works +create temporary table smt1_tmp (c1 string, c2 string) stored as orc; +insert into table smt1_tmp values ('123', '456'); + +select * from smt1_tmp; + +select c1, count(*) from smt1_tmp group by c1; + diff --git a/ql/src/test/queries/clientpositive/strict_managed_tables2.q b/ql/src/test/queries/clientpositive/strict_managed_tables2.q new file mode 100644 index 0000000000..72479f0661 --- /dev/null +++ b/ql/src/test/queries/clientpositive/strict_managed_tables2.q @@ -0,0 +1,46 @@ + +set hive.support.concurrency=true; +set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; + +set metastore.strict.managed.tables=true; +set hive.default.fileformat=textfile; +set hive.default.fileformat.managed=orc; + +set metastore.create.as.acid=true; +set hive.create.as.insert.only=false; + +drop table if exists smt2_tab1; +drop table if exists smt2_tab2; +drop table if exists smt2_tab3; +drop table if exists smt2_tab4; +drop table if exists smt2_tab5; +drop table if exists smt2_tab6; + +create external table smt2_tab1 (c1 string, c2 string); +show create table smt2_tab1; + +create table smt2_tab2 (c1 string, c2 string); +show create table smt2_tab2; + +create table smt2_tab3 (c1 string, c2 string) stored as orc; +show create table smt2_tab3; + +set metastore.create.as.acid=false; +set hive.create.as.insert.only=true; + +create external table smt2_tab4 (c1 string, c2 string) stored as orc; +show create table smt2_tab4; + +create table smt2_tab5 (c1 string, c2 string); +show create table smt2_tab5; + +create table smt2_tab6 (c1 string, c2 string) stored as textfile; +show create table smt2_tab6; + +drop table if exists smt2_tab1; +drop table if exists smt2_tab2; +drop table if exists smt2_tab3; +drop table if exists smt2_tab4; +drop table if exists smt2_tab5; +drop table if exists smt2_tab6; + diff --git a/ql/src/test/queries/clientpositive/strict_managed_tables_sysdb.q b/ql/src/test/queries/clientpositive/strict_managed_tables_sysdb.q new file mode 100644 index 0000000000..90c370fb3b --- /dev/null +++ b/ql/src/test/queries/clientpositive/strict_managed_tables_sysdb.q @@ -0,0 +1,48 @@ +--! qt:dataset:alltypesorc +set hive.strict.checks.cartesian.product=false; + +set hive.compute.query.using.stats=false; + +set hive.support.concurrency=true; +set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; + +set hive.cbo.enable=false; +set metastore.strict.managed.tables=true; + + +create external table smt_sysdb_src_buck (key int, value string) clustered by(value) into 2 buckets; + +create external table smt_sysdb_src_skew (key int) skewed by (key) on (1,2,3); + +CREATE TABLE smt_sysdb_scr_txn (key int, value string) + CLUSTERED BY (key) INTO 2 BUCKETS STORED AS ORC + TBLPROPERTIES ( + "transactional"="true", + "compactor.mapreduce.map.memory.mb"="2048", + "compactorthreshold.hive.compactor.delta.num.threshold"="4", + "compactorthreshold.hive.compactor.delta.pct.threshold"="0.5"); + +CREATE TEMPORARY TABLE smt_sysdb_src_tmp (key int, value string); + +CREATE EXTERNAL TABLE smt_sysdb_moretypes (a decimal(10,2), b tinyint, c smallint, d int, e bigint, f varchar(10), g char(3)); + +CREATE VIEW smt_sysdb_view + AS select smt_sysdb_src_buck.key, smt_sysdb_scr_txn.value + from smt_sysdb_src_buck, smt_sysdb_scr_txn where smt_sysdb_src_buck.key = smt_sysdb_scr_txn.key; + +show grant user hive_test_user; + +source ../../metastore/scripts/upgrade/hive/hive-schema-3.1.0.hive.sql; + +use sys; + +select tbl_name, tbl_type from tbls where tbl_name like 'smt_sysdb%' order by tbl_name; + +drop table smt_sysdb_src_buck; +drop table smt_sysdb_src_skew; +drop table smt_sysdb_scr_txn; +drop table smt_sysdb_src_tmp; +drop table smt_sysdb_moretypes; + +DROP DATABASE IF EXISTS SYS CASCADE; +DROP DATABASE IF EXISTS INFORMATION_SCHEMA CASCADE; diff --git a/ql/src/test/results/clientnegative/strict_managed_tables1.q.out b/ql/src/test/results/clientnegative/strict_managed_tables1.q.out new file mode 100644 index 0000000000..a659644797 --- /dev/null +++ b/ql/src/test/results/clientnegative/strict_managed_tables1.q.out @@ -0,0 +1,29 @@ +PREHOOK: query: create table strict_managed_tables1_tab1 (c1 string, c2 string) stored as orc tblproperties ('transactional'='true') +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@strict_managed_tables1_tab1 +POSTHOOK: query: create table strict_managed_tables1_tab1 (c1 string, c2 string) stored as orc tblproperties ('transactional'='true') +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@strict_managed_tables1_tab1 +PREHOOK: query: create table strict_managed_tables1_tab2 (c1 string, c2 string) stored as textfile tblproperties ('transactional'='true', 'transactional_properties'='insert_only') +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@strict_managed_tables1_tab2 +POSTHOOK: query: create table strict_managed_tables1_tab2 (c1 string, c2 string) stored as textfile tblproperties ('transactional'='true', 'transactional_properties'='insert_only') +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@strict_managed_tables1_tab2 +PREHOOK: query: create external table strict_managed_tables1_tab3 (c1 string, c2 string) stored as textfile +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@strict_managed_tables1_tab3 +POSTHOOK: query: create external table strict_managed_tables1_tab3 (c1 string, c2 string) stored as textfile +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@strict_managed_tables1_tab3 +PREHOOK: query: create table strict_managed_tables1_tab4 (c1 string, c2 string) stored as textfile +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@strict_managed_tables1_tab4 +FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Table default.strict_managed_tables1_tab4 failed strict managed table checks due to the following reason: Table is marked as a managed table but is not transactional.) diff --git a/ql/src/test/results/clientnegative/strict_managed_tables2.q.out b/ql/src/test/results/clientnegative/strict_managed_tables2.q.out new file mode 100644 index 0000000000..85753a494c --- /dev/null +++ b/ql/src/test/results/clientnegative/strict_managed_tables2.q.out @@ -0,0 +1,13 @@ +PREHOOK: query: create external table strict_managed_tables2_tab1 (c1 string, c2 string) stored as textfile +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@strict_managed_tables2_tab1 +POSTHOOK: query: create external table strict_managed_tables2_tab1 (c1 string, c2 string) stored as textfile +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@strict_managed_tables2_tab1 +PREHOOK: query: alter table strict_managed_tables2_tab1 set tblproperties ('EXTERNAL'='FALSE') +PREHOOK: type: ALTERTABLE_PROPERTIES +PREHOOK: Input: default@strict_managed_tables2_tab1 +PREHOOK: Output: default@strict_managed_tables2_tab1 +FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Unable to alter table. Table default.strict_managed_tables2_tab1 failed strict managed table checks due to the following reason: Table is marked as a managed table but is not transactional. diff --git a/ql/src/test/results/clientnegative/strict_managed_tables3.q.out b/ql/src/test/results/clientnegative/strict_managed_tables3.q.out new file mode 100644 index 0000000000..7de8a80779 --- /dev/null +++ b/ql/src/test/results/clientnegative/strict_managed_tables3.q.out @@ -0,0 +1,13 @@ +PREHOOK: query: create external table strict_managed_tables3_tab1 (c1 string, c2 string) stored as textfile +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@strict_managed_tables3_tab1 +POSTHOOK: query: create external table strict_managed_tables3_tab1 (c1 string, c2 string) stored as textfile +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@strict_managed_tables3_tab1 +PREHOOK: query: alter table strict_managed_tables3_tab1 unset tblproperties ('EXTERNAL') +PREHOOK: type: ALTERTABLE_PROPERTIES +PREHOOK: Input: default@strict_managed_tables3_tab1 +PREHOOK: Output: default@strict_managed_tables3_tab1 +FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. Unable to alter table. Table default.strict_managed_tables3_tab1 failed strict managed table checks due to the following reason: Table is marked as a managed table but is not transactional. diff --git a/ql/src/test/results/clientnegative/strict_managed_tables4.q.out b/ql/src/test/results/clientnegative/strict_managed_tables4.q.out new file mode 100644 index 0000000000..0c7576ff22 --- /dev/null +++ b/ql/src/test/results/clientnegative/strict_managed_tables4.q.out @@ -0,0 +1,31 @@ +PREHOOK: query: CREATE EXTERNAL TABLE strict_managed_tables6_tab1 +STORED AS AVRO +#### A masked pattern was here #### +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@strict_managed_tables6_tab1 +POSTHOOK: query: CREATE EXTERNAL TABLE strict_managed_tables6_tab1 +STORED AS AVRO +#### A masked pattern was here #### +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@strict_managed_tables6_tab1 +PREHOOK: query: describe strict_managed_tables6_tab1 +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@strict_managed_tables6_tab1 +POSTHOOK: query: describe strict_managed_tables6_tab1 +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@strict_managed_tables6_tab1 +col1 string +col2 string +col3 double +col4 string +col5 string +col6 int +PREHOOK: query: CREATE TABLE strict_managed_tables6_tab2 +STORED AS AVRO +#### A masked pattern was here #### +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@strict_managed_tables6_tab2 +FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Table default.strict_managed_tables6_tab2 failed strict managed table checks due to the following reason: Table is marked as a managed table but is not transactional.) diff --git a/ql/src/test/results/clientnegative/strict_managed_tables5.q.out b/ql/src/test/results/clientnegative/strict_managed_tables5.q.out new file mode 100644 index 0000000000..0e29fbdcf9 --- /dev/null +++ b/ql/src/test/results/clientnegative/strict_managed_tables5.q.out @@ -0,0 +1,19 @@ +PREHOOK: query: create external table strict_managed_tables5_tab1 (c1 string, c2 string) +ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' +STORED BY 'org.apache.hadoop.hive.ql.metadata.DefaultStorageHandler' +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@strict_managed_tables5_tab1 +POSTHOOK: query: create external table strict_managed_tables5_tab1 (c1 string, c2 string) +ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' +STORED BY 'org.apache.hadoop.hive.ql.metadata.DefaultStorageHandler' +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@strict_managed_tables5_tab1 +PREHOOK: query: create table strict_managed_tables5_tab2 (c1 string, c2 string) +ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' +STORED BY 'org.apache.hadoop.hive.ql.metadata.DefaultStorageHandler' +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@strict_managed_tables5_tab2 +FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.DDLTask. MetaException(message:Table default.strict_managed_tables5_tab2 failed strict managed table checks due to the following reason: Table is marked as a managed table but is not transactional.) diff --git a/ql/src/test/results/clientpositive/llap/resourceplan.q.out b/ql/src/test/results/clientpositive/llap/resourceplan.q.out index bd55592406..143b71044a 100644 --- a/ql/src/test/results/clientpositive/llap/resourceplan.q.out +++ b/ql/src/test/results/clientpositive/llap/resourceplan.q.out @@ -82,7 +82,7 @@ PREHOOK: Input: database:sys POSTHOOK: query: USE SYS POSTHOOK: type: SWITCHDATABASE POSTHOOK: Input: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `BUCKETING_COLS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `BUCKETING_COLS` ( `SD_ID` bigint, `BUCKET_COL_NAME` string, `INTEGER_IDX` int, @@ -102,7 +102,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@BUCKETING_COLS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `BUCKETING_COLS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `BUCKETING_COLS` ( `SD_ID` bigint, `BUCKET_COL_NAME` string, `INTEGER_IDX` int, @@ -122,7 +122,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@BUCKETING_COLS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `CDS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `CDS` ( `CD_ID` bigint, CONSTRAINT `SYS_PK_CDS` PRIMARY KEY (`CD_ID`) DISABLE ) @@ -138,7 +138,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@CDS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `CDS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `CDS` ( `CD_ID` bigint, CONSTRAINT `SYS_PK_CDS` PRIMARY KEY (`CD_ID`) DISABLE ) @@ -154,7 +154,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@CDS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `COLUMNS_V2` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `COLUMNS_V2` ( `CD_ID` bigint, `COMMENT` string, `COLUMN_NAME` string, @@ -178,7 +178,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@COLUMNS_V2 PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `COLUMNS_V2` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `COLUMNS_V2` ( `CD_ID` bigint, `COMMENT` string, `COLUMN_NAME` string, @@ -202,7 +202,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@COLUMNS_V2 POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `DATABASE_PARAMS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `DATABASE_PARAMS` ( `DB_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -222,7 +222,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@DATABASE_PARAMS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `DATABASE_PARAMS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `DATABASE_PARAMS` ( `DB_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -242,7 +242,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@DATABASE_PARAMS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `DBS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `DBS` ( `DB_ID` bigint, `DB_LOCATION_URI` string, `NAME` string, @@ -266,7 +266,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@DBS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `DBS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `DBS` ( `DB_ID` bigint, `DB_LOCATION_URI` string, `NAME` string, @@ -290,7 +290,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@DBS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `DB_PRIVS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `DB_PRIVS` ( `DB_GRANT_ID` bigint, `CREATE_TIME` int, `DB_ID` bigint, @@ -324,7 +324,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@DB_PRIVS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `DB_PRIVS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `DB_PRIVS` ( `DB_GRANT_ID` bigint, `CREATE_TIME` int, `DB_ID` bigint, @@ -358,7 +358,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@DB_PRIVS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `GLOBAL_PRIVS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `GLOBAL_PRIVS` ( `USER_GRANT_ID` bigint, `CREATE_TIME` int, `GRANT_OPTION` string, @@ -390,7 +390,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@GLOBAL_PRIVS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `GLOBAL_PRIVS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `GLOBAL_PRIVS` ( `USER_GRANT_ID` bigint, `CREATE_TIME` int, `GRANT_OPTION` string, @@ -422,7 +422,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@GLOBAL_PRIVS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `PARTITIONS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITIONS` ( `PART_ID` bigint, `CREATE_TIME` int, `LAST_ACCESS_TIME` int, @@ -448,7 +448,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@PARTITIONS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `PARTITIONS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITIONS` ( `PART_ID` bigint, `CREATE_TIME` int, `LAST_ACCESS_TIME` int, @@ -474,7 +474,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@PARTITIONS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `PARTITION_KEYS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITION_KEYS` ( `TBL_ID` bigint, `PKEY_COMMENT` string, `PKEY_NAME` string, @@ -498,7 +498,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@PARTITION_KEYS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `PARTITION_KEYS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITION_KEYS` ( `TBL_ID` bigint, `PKEY_COMMENT` string, `PKEY_NAME` string, @@ -522,7 +522,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@PARTITION_KEYS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `PARTITION_KEY_VALS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITION_KEY_VALS` ( `PART_ID` bigint, `PART_KEY_VAL` string, `INTEGER_IDX` int, @@ -542,7 +542,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@PARTITION_KEY_VALS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `PARTITION_KEY_VALS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITION_KEY_VALS` ( `PART_ID` bigint, `PART_KEY_VAL` string, `INTEGER_IDX` int, @@ -562,7 +562,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@PARTITION_KEY_VALS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `PARTITION_PARAMS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITION_PARAMS` ( `PART_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -582,7 +582,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@PARTITION_PARAMS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `PARTITION_PARAMS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITION_PARAMS` ( `PART_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -602,7 +602,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@PARTITION_PARAMS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `PART_COL_PRIVS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PART_COL_PRIVS` ( `PART_COLUMN_GRANT_ID` bigint, `COLUMN_NAME` string, `CREATE_TIME` int, @@ -638,7 +638,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@PART_COL_PRIVS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `PART_COL_PRIVS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PART_COL_PRIVS` ( `PART_COLUMN_GRANT_ID` bigint, `COLUMN_NAME` string, `CREATE_TIME` int, @@ -674,7 +674,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@PART_COL_PRIVS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `PART_PRIVS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PART_PRIVS` ( `PART_GRANT_ID` bigint, `CREATE_TIME` int, `GRANT_OPTION` int, @@ -708,7 +708,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@PART_PRIVS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `PART_PRIVS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PART_PRIVS` ( `PART_GRANT_ID` bigint, `CREATE_TIME` int, `GRANT_OPTION` int, @@ -742,7 +742,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@PART_PRIVS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `ROLES` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `ROLES` ( `ROLE_ID` bigint, `CREATE_TIME` int, `OWNER_NAME` string, @@ -764,7 +764,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@ROLES PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `ROLES` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `ROLES` ( `ROLE_ID` bigint, `CREATE_TIME` int, `OWNER_NAME` string, @@ -786,7 +786,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@ROLES POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `ROLE_MAP` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `ROLE_MAP` ( `ROLE_GRANT_ID` bigint, `ADD_TIME` int, `GRANT_OPTION` int, @@ -816,7 +816,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@ROLE_MAP PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `ROLE_MAP` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `ROLE_MAP` ( `ROLE_GRANT_ID` bigint, `ADD_TIME` int, `GRANT_OPTION` int, @@ -846,7 +846,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@ROLE_MAP POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `SDS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SDS` ( `SD_ID` bigint, `CD_ID` bigint, `INPUT_FORMAT` string, @@ -878,7 +878,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@SDS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `SDS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SDS` ( `SD_ID` bigint, `CD_ID` bigint, `INPUT_FORMAT` string, @@ -910,7 +910,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@SDS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `SD_PARAMS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SD_PARAMS` ( `SD_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -930,7 +930,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@SD_PARAMS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `SD_PARAMS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SD_PARAMS` ( `SD_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -950,7 +950,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@SD_PARAMS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `SEQUENCE_TABLE` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SEQUENCE_TABLE` ( `SEQUENCE_NAME` string, `NEXT_VAL` bigint, CONSTRAINT `SYS_PK_SEQUENCE_TABLE` PRIMARY KEY (`SEQUENCE_NAME`) DISABLE @@ -968,7 +968,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@SEQUENCE_TABLE PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `SEQUENCE_TABLE` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SEQUENCE_TABLE` ( `SEQUENCE_NAME` string, `NEXT_VAL` bigint, CONSTRAINT `SYS_PK_SEQUENCE_TABLE` PRIMARY KEY (`SEQUENCE_NAME`) DISABLE @@ -986,7 +986,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@SEQUENCE_TABLE POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `SERDES` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SERDES` ( `SERDE_ID` bigint, `NAME` string, `SLIB` string, @@ -1006,7 +1006,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@SERDES PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `SERDES` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SERDES` ( `SERDE_ID` bigint, `NAME` string, `SLIB` string, @@ -1026,7 +1026,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@SERDES POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `SERDE_PARAMS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SERDE_PARAMS` ( `SERDE_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -1046,7 +1046,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@SERDE_PARAMS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `SERDE_PARAMS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SERDE_PARAMS` ( `SERDE_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -1066,7 +1066,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@SERDE_PARAMS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `SKEWED_COL_NAMES` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_COL_NAMES` ( `SD_ID` bigint, `SKEWED_COL_NAME` string, `INTEGER_IDX` int, @@ -1086,7 +1086,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@SKEWED_COL_NAMES PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `SKEWED_COL_NAMES` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_COL_NAMES` ( `SD_ID` bigint, `SKEWED_COL_NAME` string, `INTEGER_IDX` int, @@ -1106,7 +1106,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@SKEWED_COL_NAMES POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `SKEWED_COL_VALUE_LOC_MAP` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_COL_VALUE_LOC_MAP` ( `SD_ID` bigint, `STRING_LIST_ID_KID` bigint, `LOCATION` string, @@ -1126,7 +1126,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@SKEWED_COL_VALUE_LOC_MAP PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `SKEWED_COL_VALUE_LOC_MAP` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_COL_VALUE_LOC_MAP` ( `SD_ID` bigint, `STRING_LIST_ID_KID` bigint, `LOCATION` string, @@ -1146,7 +1146,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@SKEWED_COL_VALUE_LOC_MAP POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `SKEWED_STRING_LIST` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_STRING_LIST` ( `STRING_LIST_ID` bigint, CONSTRAINT `SYS_PK_SKEWED_STRING_LIST` PRIMARY KEY (`STRING_LIST_ID`) DISABLE ) @@ -1162,7 +1162,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@SKEWED_STRING_LIST PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `SKEWED_STRING_LIST` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_STRING_LIST` ( `STRING_LIST_ID` bigint, CONSTRAINT `SYS_PK_SKEWED_STRING_LIST` PRIMARY KEY (`STRING_LIST_ID`) DISABLE ) @@ -1178,7 +1178,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@SKEWED_STRING_LIST POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `SKEWED_STRING_LIST_VALUES` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_STRING_LIST_VALUES` ( `STRING_LIST_ID` bigint, `STRING_LIST_VALUE` string, `INTEGER_IDX` int, @@ -1198,7 +1198,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@SKEWED_STRING_LIST_VALUES PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `SKEWED_STRING_LIST_VALUES` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_STRING_LIST_VALUES` ( `STRING_LIST_ID` bigint, `STRING_LIST_VALUE` string, `INTEGER_IDX` int, @@ -1218,7 +1218,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@SKEWED_STRING_LIST_VALUES POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `SKEWED_VALUES` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_VALUES` ( `SD_ID_OID` bigint, `STRING_LIST_ID_EID` bigint, `INTEGER_IDX` int, @@ -1238,7 +1238,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@SKEWED_VALUES PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `SKEWED_VALUES` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_VALUES` ( `SD_ID_OID` bigint, `STRING_LIST_ID_EID` bigint, `INTEGER_IDX` int, @@ -1258,7 +1258,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@SKEWED_VALUES POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `SORT_COLS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SORT_COLS` ( `SD_ID` bigint, `COLUMN_NAME` string, `ORDER` int, @@ -1280,7 +1280,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@SORT_COLS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `SORT_COLS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SORT_COLS` ( `SD_ID` bigint, `COLUMN_NAME` string, `ORDER` int, @@ -1302,7 +1302,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@SORT_COLS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `TABLE_PARAMS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TABLE_PARAMS` ( `TBL_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -1322,7 +1322,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@TABLE_PARAMS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `TABLE_PARAMS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TABLE_PARAMS` ( `TBL_ID` bigint, `PARAM_KEY` string, `PARAM_VALUE` string, @@ -1342,7 +1342,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@TABLE_PARAMS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `TBLS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TBLS` ( `TBL_ID` bigint, `CREATE_TIME` int, `DB_ID` bigint, @@ -1379,7 +1379,7 @@ FROM \"TBLS\"" PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@TBLS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `TBLS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TBLS` ( `TBL_ID` bigint, `CREATE_TIME` int, `DB_ID` bigint, @@ -1416,7 +1416,7 @@ FROM \"TBLS\"" POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@TBLS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `MV_CREATION_METADATA` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `MV_CREATION_METADATA` ( `MV_CREATION_METADATA_ID` bigint, `DB_NAME` string, `TBL_NAME` string, @@ -1437,7 +1437,7 @@ FROM \"MV_CREATION_METADATA\"" PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@MV_CREATION_METADATA PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `MV_CREATION_METADATA` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `MV_CREATION_METADATA` ( `MV_CREATION_METADATA_ID` bigint, `DB_NAME` string, `TBL_NAME` string, @@ -1458,7 +1458,7 @@ FROM \"MV_CREATION_METADATA\"" POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@MV_CREATION_METADATA POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `MV_TABLES_USED` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `MV_TABLES_USED` ( `MV_CREATION_METADATA_ID` bigint, `TBL_ID` bigint ) @@ -1474,7 +1474,7 @@ FROM \"MV_TABLES_USED\"" PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@MV_TABLES_USED PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `MV_TABLES_USED` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `MV_TABLES_USED` ( `MV_CREATION_METADATA_ID` bigint, `TBL_ID` bigint ) @@ -1490,7 +1490,7 @@ FROM \"MV_TABLES_USED\"" POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@MV_TABLES_USED POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `TBL_COL_PRIVS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TBL_COL_PRIVS` ( `TBL_COLUMN_GRANT_ID` bigint, `COLUMN_NAME` string, `CREATE_TIME` int, @@ -1526,7 +1526,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@TBL_COL_PRIVS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `TBL_COL_PRIVS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TBL_COL_PRIVS` ( `TBL_COLUMN_GRANT_ID` bigint, `COLUMN_NAME` string, `CREATE_TIME` int, @@ -1562,7 +1562,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@TBL_COL_PRIVS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `TBL_PRIVS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TBL_PRIVS` ( `TBL_GRANT_ID` bigint, `CREATE_TIME` int, `GRANT_OPTION` int, @@ -1596,7 +1596,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@TBL_PRIVS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `TBL_PRIVS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TBL_PRIVS` ( `TBL_GRANT_ID` bigint, `CREATE_TIME` int, `GRANT_OPTION` int, @@ -1630,7 +1630,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@TBL_PRIVS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `TAB_COL_STATS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TAB_COL_STATS` ( `CS_ID` bigint, `DB_NAME` string, `TABLE_NAME` string, @@ -1682,7 +1682,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@TAB_COL_STATS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `TAB_COL_STATS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TAB_COL_STATS` ( `CS_ID` bigint, `DB_NAME` string, `TABLE_NAME` string, @@ -1734,7 +1734,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@TAB_COL_STATS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `PART_COL_STATS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PART_COL_STATS` ( `CS_ID` bigint, `DB_NAME` string, `TABLE_NAME` string, @@ -1788,7 +1788,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@PART_COL_STATS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `PART_COL_STATS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PART_COL_STATS` ( `CS_ID` bigint, `DB_NAME` string, `TABLE_NAME` string, @@ -1842,7 +1842,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@PART_COL_STATS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `VERSION` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `VERSION` ( `VER_ID` BIGINT, `SCHEMA_VERSION` string, `VERSION_COMMENT` string, @@ -1851,7 +1851,7 @@ PREHOOK: query: CREATE TABLE IF NOT EXISTS `VERSION` ( PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@VERSION PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `VERSION` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `VERSION` ( `VER_ID` BIGINT, `SCHEMA_VERSION` string, `VERSION_COMMENT` string, @@ -1871,7 +1871,7 @@ POSTHOOK: Output: sys@version POSTHOOK: Lineage: version.schema_version SCRIPT [] POSTHOOK: Lineage: version.ver_id SCRIPT [] POSTHOOK: Lineage: version.version_comment SCRIPT [] -PREHOOK: query: CREATE TABLE IF NOT EXISTS `DB_VERSION` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `DB_VERSION` ( `VER_ID` BIGINT, `SCHEMA_VERSION` string, `VERSION_COMMENT` string, @@ -1891,7 +1891,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@DB_VERSION PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `DB_VERSION` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `DB_VERSION` ( `VER_ID` BIGINT, `SCHEMA_VERSION` string, `VERSION_COMMENT` string, @@ -1911,7 +1911,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@DB_VERSION POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `FUNCS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `FUNCS` ( `FUNC_ID` bigint, `CLASS_NAME` string, `CREATE_TIME` int, @@ -1941,7 +1941,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@FUNCS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `FUNCS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `FUNCS` ( `FUNC_ID` bigint, `CLASS_NAME` string, `CREATE_TIME` int, @@ -1971,7 +1971,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@FUNCS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `KEY_CONSTRAINTS` +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `KEY_CONSTRAINTS` ( `CHILD_CD_ID` bigint, `CHILD_INTEGER_IDX` int, @@ -2012,7 +2012,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@KEY_CONSTRAINTS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `KEY_CONSTRAINTS` +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `KEY_CONSTRAINTS` ( `CHILD_CD_ID` bigint, `CHILD_INTEGER_IDX` int, @@ -2123,7 +2123,7 @@ POSTHOOK: Lineage: PARTITION_STATS_VIEW.part_id SIMPLE [(partition_params)partit POSTHOOK: Lineage: PARTITION_STATS_VIEW.raw_data_size EXPRESSION [(partition_params)partition_params.FieldSchema(name:param_key, type:string, comment:from deserializer), (partition_params)partition_params.FieldSchema(name:param_value, type:string, comment:from deserializer), ] POSTHOOK: Lineage: PARTITION_STATS_VIEW.total_size EXPRESSION [(partition_params)partition_params.FieldSchema(name:param_key, type:string, comment:from deserializer), (partition_params)partition_params.FieldSchema(name:param_value, type:string, comment:from deserializer), ] POSTHOOK: Lineage: PARTITION_STATS_VIEW.transient_last_ddl_time EXPRESSION [(partition_params)partition_params.FieldSchema(name:param_key, type:string, comment:from deserializer), (partition_params)partition_params.FieldSchema(name:param_value, type:string, comment:from deserializer), ] -PREHOOK: query: CREATE TABLE IF NOT EXISTS `WM_RESOURCEPLANS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_RESOURCEPLANS` ( `NAME` string, `STATUS` string, `QUERY_PARALLELISM` int, @@ -2144,7 +2144,7 @@ FROM PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@WM_RESOURCEPLANS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `WM_RESOURCEPLANS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_RESOURCEPLANS` ( `NAME` string, `STATUS` string, `QUERY_PARALLELISM` int, @@ -2165,7 +2165,7 @@ FROM POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@WM_RESOURCEPLANS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `WM_TRIGGERS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_TRIGGERS` ( `RP_NAME` string, `NAME` string, `TRIGGER_EXPRESSION` string, @@ -2190,7 +2190,7 @@ ON PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@WM_TRIGGERS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `WM_TRIGGERS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_TRIGGERS` ( `RP_NAME` string, `NAME` string, `TRIGGER_EXPRESSION` string, @@ -2215,7 +2215,7 @@ ON POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@WM_TRIGGERS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `WM_POOLS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_POOLS` ( `RP_NAME` string, `PATH` string, `ALLOC_FRACTION` double, @@ -2242,7 +2242,7 @@ ON PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@WM_POOLS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `WM_POOLS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_POOLS` ( `RP_NAME` string, `PATH` string, `ALLOC_FRACTION` double, @@ -2269,7 +2269,7 @@ ON POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@WM_POOLS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `WM_POOLS_TO_TRIGGERS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_POOLS_TO_TRIGGERS` ( `RP_NAME` string, `POOL_PATH` string, `TRIGGER_NAME` string @@ -2299,7 +2299,7 @@ WHERE CAST(\"WM_TRIGGER\".\"IS_IN_UNMANAGED\" AS CHAR) IN ('1', 't') PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@WM_POOLS_TO_TRIGGERS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `WM_POOLS_TO_TRIGGERS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_POOLS_TO_TRIGGERS` ( `RP_NAME` string, `POOL_PATH` string, `TRIGGER_NAME` string @@ -2329,7 +2329,7 @@ WHERE CAST(\"WM_TRIGGER\".\"IS_IN_UNMANAGED\" AS CHAR) IN ('1', 't') POSTHOOK: type: CREATETABLE POSTHOOK: Output: SYS@WM_POOLS_TO_TRIGGERS POSTHOOK: Output: database:sys -PREHOOK: query: CREATE TABLE IF NOT EXISTS `WM_MAPPINGS` ( +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_MAPPINGS` ( `RP_NAME` string, `ENTITY_TYPE` string, `ENTITY_NAME` string, @@ -2354,7 +2354,7 @@ LEFT OUTER JOIN \"WM_POOL\" ON \"WM_POOL\".\"POOL_ID\" = \"WM_MAPPING\".\"POOL_I PREHOOK: type: CREATETABLE PREHOOK: Output: SYS@WM_MAPPINGS PREHOOK: Output: database:sys -POSTHOOK: query: CREATE TABLE IF NOT EXISTS `WM_MAPPINGS` ( +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_MAPPINGS` ( `RP_NAME` string, `ENTITY_TYPE` string, `ENTITY_NAME` string, diff --git a/ql/src/test/results/clientpositive/llap/strict_managed_tables1.q.out b/ql/src/test/results/clientpositive/llap/strict_managed_tables1.q.out new file mode 100644 index 0000000000..ac80e1faa1 --- /dev/null +++ b/ql/src/test/results/clientpositive/llap/strict_managed_tables1.q.out @@ -0,0 +1,176 @@ +PREHOOK: query: drop table if exists smt1_tab1 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists smt1_tab1 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists smt1_tab2 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists smt1_tab2 +POSTHOOK: type: DROPTABLE +PREHOOK: query: create table smt1_tab1 (c1 string, c2 string) stored as textfile +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@smt1_tab1 +POSTHOOK: query: create table smt1_tab1 (c1 string, c2 string) stored as textfile +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@smt1_tab1 +PREHOOK: query: load data local inpath '../../data/files/kv1.txt' into table smt1_tab1 +PREHOOK: type: LOAD +#### A masked pattern was here #### +PREHOOK: Output: default@smt1_tab1 +POSTHOOK: query: load data local inpath '../../data/files/kv1.txt' into table smt1_tab1 +POSTHOOK: type: LOAD +#### A masked pattern was here #### +POSTHOOK: Output: default@smt1_tab1 +PREHOOK: query: select * from smt1_tab1 where c1 = '0' +PREHOOK: type: QUERY +PREHOOK: Input: default@smt1_tab1 +#### A masked pattern was here #### +POSTHOOK: query: select * from smt1_tab1 where c1 = '0' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@smt1_tab1 +#### A masked pattern was here #### +0 val_0 +0 val_0 +0 val_0 +PREHOOK: query: create table smt1_tab2 (c1 string, c2 string) stored as textfile +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@smt1_tab2 +POSTHOOK: query: create table smt1_tab2 (c1 string, c2 string) stored as textfile +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@smt1_tab2 +PREHOOK: query: insert into table smt1_tab2 select * from smt1_tab1 +PREHOOK: type: QUERY +PREHOOK: Input: default@smt1_tab1 +PREHOOK: Output: default@smt1_tab2 +POSTHOOK: query: insert into table smt1_tab2 select * from smt1_tab1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@smt1_tab1 +POSTHOOK: Output: default@smt1_tab2 +POSTHOOK: Lineage: smt1_tab2.c1 SIMPLE [(smt1_tab1)smt1_tab1.FieldSchema(name:c1, type:string, comment:null), ] +POSTHOOK: Lineage: smt1_tab2.c2 SIMPLE [(smt1_tab1)smt1_tab1.FieldSchema(name:c2, type:string, comment:null), ] +PREHOOK: query: select * from smt1_tab2 where c1 = '0' +PREHOOK: type: QUERY +PREHOOK: Input: default@smt1_tab2 +#### A masked pattern was here #### +POSTHOOK: query: select * from smt1_tab2 where c1 = '0' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@smt1_tab2 +#### A masked pattern was here #### +0 val_0 +0 val_0 +0 val_0 +PREHOOK: query: alter table smt1_tab1 set tblproperties('EXTERNAL'='TRUE') +PREHOOK: type: ALTERTABLE_PROPERTIES +PREHOOK: Input: default@smt1_tab1 +PREHOOK: Output: default@smt1_tab1 +POSTHOOK: query: alter table smt1_tab1 set tblproperties('EXTERNAL'='TRUE') +POSTHOOK: type: ALTERTABLE_PROPERTIES +POSTHOOK: Input: default@smt1_tab1 +POSTHOOK: Output: default@smt1_tab1 +PREHOOK: query: select * from smt1_tab1 where c1 = '0' +PREHOOK: type: QUERY +PREHOOK: Input: default@smt1_tab1 +#### A masked pattern was here #### +POSTHOOK: query: select * from smt1_tab1 where c1 = '0' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@smt1_tab1 +#### A masked pattern was here #### +0 val_0 +0 val_0 +0 val_0 +PREHOOK: query: alter table smt1_tab2 set tblproperties('EXTERNAL'='TRUE') +PREHOOK: type: ALTERTABLE_PROPERTIES +PREHOOK: Input: default@smt1_tab2 +PREHOOK: Output: default@smt1_tab2 +POSTHOOK: query: alter table smt1_tab2 set tblproperties('EXTERNAL'='TRUE') +POSTHOOK: type: ALTERTABLE_PROPERTIES +POSTHOOK: Input: default@smt1_tab2 +POSTHOOK: Output: default@smt1_tab2 +PREHOOK: query: select * from smt1_tab2 where c1 = '0' +PREHOOK: type: QUERY +PREHOOK: Input: default@smt1_tab2 +#### A masked pattern was here #### +POSTHOOK: query: select * from smt1_tab2 where c1 = '0' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@smt1_tab2 +#### A masked pattern was here #### +0 val_0 +0 val_0 +0 val_0 +PREHOOK: query: alter table smt1_tab1 set tblproperties('EXTERNAL'='FALSE', 'transactional'='true', 'transactional_properties'='insert_only') +PREHOOK: type: ALTERTABLE_PROPERTIES +PREHOOK: Input: default@smt1_tab1 +PREHOOK: Output: default@smt1_tab1 +POSTHOOK: query: alter table smt1_tab1 set tblproperties('EXTERNAL'='FALSE', 'transactional'='true', 'transactional_properties'='insert_only') +POSTHOOK: type: ALTERTABLE_PROPERTIES +POSTHOOK: Input: default@smt1_tab1 +POSTHOOK: Output: default@smt1_tab1 +PREHOOK: query: select * from smt1_tab1 where c1 = '0' +PREHOOK: type: QUERY +PREHOOK: Input: default@smt1_tab1 +#### A masked pattern was here #### +POSTHOOK: query: select * from smt1_tab1 where c1 = '0' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@smt1_tab1 +#### A masked pattern was here #### +0 val_0 +0 val_0 +0 val_0 +PREHOOK: query: alter table smt1_tab2 set tblproperties('EXTERNAL'='FALSE', 'transactional'='true', 'transactional_properties'='insert_only') +PREHOOK: type: ALTERTABLE_PROPERTIES +PREHOOK: Input: default@smt1_tab2 +PREHOOK: Output: default@smt1_tab2 +POSTHOOK: query: alter table smt1_tab2 set tblproperties('EXTERNAL'='FALSE', 'transactional'='true', 'transactional_properties'='insert_only') +POSTHOOK: type: ALTERTABLE_PROPERTIES +POSTHOOK: Input: default@smt1_tab2 +POSTHOOK: Output: default@smt1_tab2 +PREHOOK: query: select * from smt1_tab2 where c1 = '0' +PREHOOK: type: QUERY +PREHOOK: Input: default@smt1_tab2 +#### A masked pattern was here #### +POSTHOOK: query: select * from smt1_tab2 where c1 = '0' +POSTHOOK: type: QUERY +POSTHOOK: Input: default@smt1_tab2 +#### A masked pattern was here #### +0 val_0 +0 val_0 +0 val_0 +PREHOOK: query: create temporary table smt1_tmp (c1 string, c2 string) stored as orc +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@smt1_tmp +POSTHOOK: query: create temporary table smt1_tmp (c1 string, c2 string) stored as orc +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@smt1_tmp +PREHOOK: query: insert into table smt1_tmp values ('123', '456') +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@smt1_tmp +POSTHOOK: query: insert into table smt1_tmp values ('123', '456') +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@smt1_tmp +POSTHOOK: Lineage: smt1_tmp.c1 SCRIPT [] +POSTHOOK: Lineage: smt1_tmp.c2 SCRIPT [] +PREHOOK: query: select * from smt1_tmp +PREHOOK: type: QUERY +PREHOOK: Input: default@smt1_tmp +#### A masked pattern was here #### +POSTHOOK: query: select * from smt1_tmp +POSTHOOK: type: QUERY +POSTHOOK: Input: default@smt1_tmp +#### A masked pattern was here #### +123 456 +PREHOOK: query: select c1, count(*) from smt1_tmp group by c1 +PREHOOK: type: QUERY +PREHOOK: Input: default@smt1_tmp +#### A masked pattern was here #### +POSTHOOK: query: select c1, count(*) from smt1_tmp group by c1 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@smt1_tmp +#### A masked pattern was here #### +123 1 diff --git a/ql/src/test/results/clientpositive/llap/strict_managed_tables2.q.out b/ql/src/test/results/clientpositive/llap/strict_managed_tables2.q.out new file mode 100644 index 0000000000..f3b6152cd6 --- /dev/null +++ b/ql/src/test/results/clientpositive/llap/strict_managed_tables2.q.out @@ -0,0 +1,248 @@ +PREHOOK: query: drop table if exists smt2_tab1 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists smt2_tab1 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists smt2_tab2 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists smt2_tab2 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists smt2_tab3 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists smt2_tab3 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists smt2_tab4 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists smt2_tab4 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists smt2_tab5 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists smt2_tab5 +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table if exists smt2_tab6 +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table if exists smt2_tab6 +POSTHOOK: type: DROPTABLE +PREHOOK: query: create external table smt2_tab1 (c1 string, c2 string) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@smt2_tab1 +POSTHOOK: query: create external table smt2_tab1 (c1 string, c2 string) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@smt2_tab1 +PREHOOK: query: show create table smt2_tab1 +PREHOOK: type: SHOW_CREATETABLE +PREHOOK: Input: default@smt2_tab1 +POSTHOOK: query: show create table smt2_tab1 +POSTHOOK: type: SHOW_CREATETABLE +POSTHOOK: Input: default@smt2_tab1 +CREATE EXTERNAL TABLE `smt2_tab1`( + `c1` string, + `c2` string) +ROW FORMAT SERDE + 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' +STORED AS INPUTFORMAT + 'org.apache.hadoop.mapred.TextInputFormat' +OUTPUTFORMAT + 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' +LOCATION +#### A masked pattern was here #### +TBLPROPERTIES ( + 'bucketing_version'='2', +#### A masked pattern was here #### +PREHOOK: query: create table smt2_tab2 (c1 string, c2 string) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@smt2_tab2 +POSTHOOK: query: create table smt2_tab2 (c1 string, c2 string) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@smt2_tab2 +PREHOOK: query: show create table smt2_tab2 +PREHOOK: type: SHOW_CREATETABLE +PREHOOK: Input: default@smt2_tab2 +POSTHOOK: query: show create table smt2_tab2 +POSTHOOK: type: SHOW_CREATETABLE +POSTHOOK: Input: default@smt2_tab2 +CREATE TABLE `smt2_tab2`( + `c1` string, + `c2` string) +ROW FORMAT SERDE + 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' +STORED AS INPUTFORMAT + 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' +OUTPUTFORMAT + 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat' +LOCATION +#### A masked pattern was here #### +TBLPROPERTIES ( + 'bucketing_version'='2', + 'transactional'='true', + 'transactional_properties'='default', +#### A masked pattern was here #### +PREHOOK: query: create table smt2_tab3 (c1 string, c2 string) stored as orc +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@smt2_tab3 +POSTHOOK: query: create table smt2_tab3 (c1 string, c2 string) stored as orc +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@smt2_tab3 +PREHOOK: query: show create table smt2_tab3 +PREHOOK: type: SHOW_CREATETABLE +PREHOOK: Input: default@smt2_tab3 +POSTHOOK: query: show create table smt2_tab3 +POSTHOOK: type: SHOW_CREATETABLE +POSTHOOK: Input: default@smt2_tab3 +CREATE TABLE `smt2_tab3`( + `c1` string, + `c2` string) +ROW FORMAT SERDE + 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' +STORED AS INPUTFORMAT + 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' +OUTPUTFORMAT + 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat' +LOCATION +#### A masked pattern was here #### +TBLPROPERTIES ( + 'bucketing_version'='2', + 'transactional'='true', + 'transactional_properties'='default', +#### A masked pattern was here #### +PREHOOK: query: create external table smt2_tab4 (c1 string, c2 string) stored as orc +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@smt2_tab4 +POSTHOOK: query: create external table smt2_tab4 (c1 string, c2 string) stored as orc +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@smt2_tab4 +PREHOOK: query: show create table smt2_tab4 +PREHOOK: type: SHOW_CREATETABLE +PREHOOK: Input: default@smt2_tab4 +POSTHOOK: query: show create table smt2_tab4 +POSTHOOK: type: SHOW_CREATETABLE +POSTHOOK: Input: default@smt2_tab4 +CREATE EXTERNAL TABLE `smt2_tab4`( + `c1` string, + `c2` string) +ROW FORMAT SERDE + 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' +STORED AS INPUTFORMAT + 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' +OUTPUTFORMAT + 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat' +LOCATION +#### A masked pattern was here #### +TBLPROPERTIES ( + 'bucketing_version'='2', +#### A masked pattern was here #### +PREHOOK: query: create table smt2_tab5 (c1 string, c2 string) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@smt2_tab5 +POSTHOOK: query: create table smt2_tab5 (c1 string, c2 string) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@smt2_tab5 +PREHOOK: query: show create table smt2_tab5 +PREHOOK: type: SHOW_CREATETABLE +PREHOOK: Input: default@smt2_tab5 +POSTHOOK: query: show create table smt2_tab5 +POSTHOOK: type: SHOW_CREATETABLE +POSTHOOK: Input: default@smt2_tab5 +CREATE TABLE `smt2_tab5`( + `c1` string, + `c2` string) +ROW FORMAT SERDE + 'org.apache.hadoop.hive.ql.io.orc.OrcSerde' +STORED AS INPUTFORMAT + 'org.apache.hadoop.hive.ql.io.orc.OrcInputFormat' +OUTPUTFORMAT + 'org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat' +LOCATION +#### A masked pattern was here #### +TBLPROPERTIES ( + 'bucketing_version'='2', + 'transactional'='true', + 'transactional_properties'='insert_only', +#### A masked pattern was here #### +PREHOOK: query: create table smt2_tab6 (c1 string, c2 string) stored as textfile +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@smt2_tab6 +POSTHOOK: query: create table smt2_tab6 (c1 string, c2 string) stored as textfile +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@smt2_tab6 +PREHOOK: query: show create table smt2_tab6 +PREHOOK: type: SHOW_CREATETABLE +PREHOOK: Input: default@smt2_tab6 +POSTHOOK: query: show create table smt2_tab6 +POSTHOOK: type: SHOW_CREATETABLE +POSTHOOK: Input: default@smt2_tab6 +CREATE TABLE `smt2_tab6`( + `c1` string, + `c2` string) +ROW FORMAT SERDE + 'org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe' +STORED AS INPUTFORMAT + 'org.apache.hadoop.mapred.TextInputFormat' +OUTPUTFORMAT + 'org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat' +LOCATION +#### A masked pattern was here #### +TBLPROPERTIES ( + 'bucketing_version'='2', + 'transactional'='true', + 'transactional_properties'='insert_only', +#### A masked pattern was here #### +PREHOOK: query: drop table if exists smt2_tab1 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@smt2_tab1 +PREHOOK: Output: default@smt2_tab1 +POSTHOOK: query: drop table if exists smt2_tab1 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@smt2_tab1 +POSTHOOK: Output: default@smt2_tab1 +PREHOOK: query: drop table if exists smt2_tab2 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@smt2_tab2 +PREHOOK: Output: default@smt2_tab2 +POSTHOOK: query: drop table if exists smt2_tab2 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@smt2_tab2 +POSTHOOK: Output: default@smt2_tab2 +PREHOOK: query: drop table if exists smt2_tab3 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@smt2_tab3 +PREHOOK: Output: default@smt2_tab3 +POSTHOOK: query: drop table if exists smt2_tab3 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@smt2_tab3 +POSTHOOK: Output: default@smt2_tab3 +PREHOOK: query: drop table if exists smt2_tab4 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@smt2_tab4 +PREHOOK: Output: default@smt2_tab4 +POSTHOOK: query: drop table if exists smt2_tab4 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@smt2_tab4 +POSTHOOK: Output: default@smt2_tab4 +PREHOOK: query: drop table if exists smt2_tab5 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@smt2_tab5 +PREHOOK: Output: default@smt2_tab5 +POSTHOOK: query: drop table if exists smt2_tab5 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@smt2_tab5 +POSTHOOK: Output: default@smt2_tab5 +PREHOOK: query: drop table if exists smt2_tab6 +PREHOOK: type: DROPTABLE +PREHOOK: Input: default@smt2_tab6 +PREHOOK: Output: default@smt2_tab6 +POSTHOOK: query: drop table if exists smt2_tab6 +POSTHOOK: type: DROPTABLE +POSTHOOK: Input: default@smt2_tab6 +POSTHOOK: Output: default@smt2_tab6 diff --git a/ql/src/test/results/clientpositive/llap/strict_managed_tables_sysdb.q.out b/ql/src/test/results/clientpositive/llap/strict_managed_tables_sysdb.q.out new file mode 100644 index 0000000000..a1dbe0b72e --- /dev/null +++ b/ql/src/test/results/clientpositive/llap/strict_managed_tables_sysdb.q.out @@ -0,0 +1,3398 @@ +PREHOOK: query: create external table smt_sysdb_src_buck (key int, value string) clustered by(value) into 2 buckets +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@smt_sysdb_src_buck +POSTHOOK: query: create external table smt_sysdb_src_buck (key int, value string) clustered by(value) into 2 buckets +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@smt_sysdb_src_buck +PREHOOK: query: create external table smt_sysdb_src_skew (key int) skewed by (key) on (1,2,3) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@smt_sysdb_src_skew +POSTHOOK: query: create external table smt_sysdb_src_skew (key int) skewed by (key) on (1,2,3) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@smt_sysdb_src_skew +PREHOOK: query: CREATE TABLE smt_sysdb_scr_txn (key int, value string) + CLUSTERED BY (key) INTO 2 BUCKETS STORED AS ORC + TBLPROPERTIES ( + "transactional"="true", + "compactor.mapreduce.map.memory.mb"="2048", + "compactorthreshold.hive.compactor.delta.num.threshold"="4", + "compactorthreshold.hive.compactor.delta.pct.threshold"="0.5") +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@smt_sysdb_scr_txn +POSTHOOK: query: CREATE TABLE smt_sysdb_scr_txn (key int, value string) + CLUSTERED BY (key) INTO 2 BUCKETS STORED AS ORC + TBLPROPERTIES ( + "transactional"="true", + "compactor.mapreduce.map.memory.mb"="2048", + "compactorthreshold.hive.compactor.delta.num.threshold"="4", + "compactorthreshold.hive.compactor.delta.pct.threshold"="0.5") +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@smt_sysdb_scr_txn +PREHOOK: query: CREATE TEMPORARY TABLE smt_sysdb_src_tmp (key int, value string) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@smt_sysdb_src_tmp +POSTHOOK: query: CREATE TEMPORARY TABLE smt_sysdb_src_tmp (key int, value string) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@smt_sysdb_src_tmp +PREHOOK: query: CREATE EXTERNAL TABLE smt_sysdb_moretypes (a decimal(10,2), b tinyint, c smallint, d int, e bigint, f varchar(10), g char(3)) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@smt_sysdb_moretypes +POSTHOOK: query: CREATE EXTERNAL TABLE smt_sysdb_moretypes (a decimal(10,2), b tinyint, c smallint, d int, e bigint, f varchar(10), g char(3)) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@smt_sysdb_moretypes +PREHOOK: query: CREATE VIEW smt_sysdb_view + AS select smt_sysdb_src_buck.key, smt_sysdb_scr_txn.value + from smt_sysdb_src_buck, smt_sysdb_scr_txn where smt_sysdb_src_buck.key = smt_sysdb_scr_txn.key +PREHOOK: type: CREATEVIEW +PREHOOK: Input: default@smt_sysdb_scr_txn +PREHOOK: Input: default@smt_sysdb_src_buck +PREHOOK: Output: database:default +PREHOOK: Output: default@smt_sysdb_view +POSTHOOK: query: CREATE VIEW smt_sysdb_view + AS select smt_sysdb_src_buck.key, smt_sysdb_scr_txn.value + from smt_sysdb_src_buck, smt_sysdb_scr_txn where smt_sysdb_src_buck.key = smt_sysdb_scr_txn.key +POSTHOOK: type: CREATEVIEW +POSTHOOK: Input: default@smt_sysdb_scr_txn +POSTHOOK: Input: default@smt_sysdb_src_buck +POSTHOOK: Output: database:default +POSTHOOK: Output: default@smt_sysdb_view +POSTHOOK: Lineage: smt_sysdb_view.key SIMPLE [(smt_sysdb_src_buck)smt_sysdb_src_buck.FieldSchema(name:key, type:int, comment:null), ] +POSTHOOK: Lineage: smt_sysdb_view.value SIMPLE [(smt_sysdb_scr_txn)smt_sysdb_scr_txn.FieldSchema(name:value, type:string, comment:null), ] +PREHOOK: query: show grant user hive_test_user +PREHOOK: type: SHOW_GRANT +POSTHOOK: query: show grant user hive_test_user +POSTHOOK: type: SHOW_GRANT +default alltypesorc hive_test_user USER DELETE true -1 hive_test_user +default alltypesorc hive_test_user USER INSERT true -1 hive_test_user +default alltypesorc hive_test_user USER SELECT true -1 hive_test_user +default alltypesorc hive_test_user USER UPDATE true -1 hive_test_user +default smt_sysdb_moretypes hive_test_user USER DELETE true -1 hive_test_user +default smt_sysdb_moretypes hive_test_user USER INSERT true -1 hive_test_user +default smt_sysdb_moretypes hive_test_user USER SELECT true -1 hive_test_user +default smt_sysdb_moretypes hive_test_user USER UPDATE true -1 hive_test_user +default smt_sysdb_scr_txn hive_test_user USER DELETE true -1 hive_test_user +default smt_sysdb_scr_txn hive_test_user USER INSERT true -1 hive_test_user +default smt_sysdb_scr_txn hive_test_user USER SELECT true -1 hive_test_user +default smt_sysdb_scr_txn hive_test_user USER UPDATE true -1 hive_test_user +default smt_sysdb_src_buck hive_test_user USER DELETE true -1 hive_test_user +default smt_sysdb_src_buck hive_test_user USER INSERT true -1 hive_test_user +default smt_sysdb_src_buck hive_test_user USER SELECT true -1 hive_test_user +default smt_sysdb_src_buck hive_test_user USER UPDATE true -1 hive_test_user +default smt_sysdb_src_skew hive_test_user USER DELETE true -1 hive_test_user +default smt_sysdb_src_skew hive_test_user USER INSERT true -1 hive_test_user +default smt_sysdb_src_skew hive_test_user USER SELECT true -1 hive_test_user +default smt_sysdb_src_skew hive_test_user USER UPDATE true -1 hive_test_user +default smt_sysdb_view hive_test_user USER DELETE true -1 hive_test_user +default smt_sysdb_view hive_test_user USER INSERT true -1 hive_test_user +default smt_sysdb_view hive_test_user USER SELECT true -1 hive_test_user +default smt_sysdb_view hive_test_user USER UPDATE true -1 hive_test_user +PREHOOK: query: DROP DATABASE IF EXISTS SYS CASCADE +PREHOOK: type: DROPDATABASE +POSTHOOK: query: DROP DATABASE IF EXISTS SYS CASCADE +POSTHOOK: type: DROPDATABASE +PREHOOK: query: CREATE DATABASE SYS +PREHOOK: type: CREATEDATABASE +PREHOOK: Output: database:SYS +POSTHOOK: query: CREATE DATABASE SYS +POSTHOOK: type: CREATEDATABASE +POSTHOOK: Output: database:SYS +PREHOOK: query: USE SYS +PREHOOK: type: SWITCHDATABASE +PREHOOK: Input: database:sys +POSTHOOK: query: USE SYS +POSTHOOK: type: SWITCHDATABASE +POSTHOOK: Input: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `BUCKETING_COLS` ( + `SD_ID` bigint, + `BUCKET_COL_NAME` string, + `INTEGER_IDX` int, + CONSTRAINT `SYS_PK_BUCKETING_COLS` PRIMARY KEY (`SD_ID`,`INTEGER_IDX`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SD_ID\", + \"BUCKET_COL_NAME\", + \"INTEGER_IDX\" +FROM + \"BUCKETING_COLS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@BUCKETING_COLS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `BUCKETING_COLS` ( + `SD_ID` bigint, + `BUCKET_COL_NAME` string, + `INTEGER_IDX` int, + CONSTRAINT `SYS_PK_BUCKETING_COLS` PRIMARY KEY (`SD_ID`,`INTEGER_IDX`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SD_ID\", + \"BUCKET_COL_NAME\", + \"INTEGER_IDX\" +FROM + \"BUCKETING_COLS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@BUCKETING_COLS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `CDS` ( + `CD_ID` bigint, + CONSTRAINT `SYS_PK_CDS` PRIMARY KEY (`CD_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"CD_ID\" +FROM + \"CDS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@CDS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `CDS` ( + `CD_ID` bigint, + CONSTRAINT `SYS_PK_CDS` PRIMARY KEY (`CD_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"CD_ID\" +FROM + \"CDS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@CDS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `COLUMNS_V2` ( + `CD_ID` bigint, + `COMMENT` string, + `COLUMN_NAME` string, + `TYPE_NAME` string, + `INTEGER_IDX` int, + CONSTRAINT `SYS_PK_COLUMN_V2` PRIMARY KEY (`CD_ID`,`COLUMN_NAME`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"CD_ID\", + \"COMMENT\", + \"COLUMN_NAME\", + \"TYPE_NAME\", + \"INTEGER_IDX\" +FROM + \"COLUMNS_V2\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@COLUMNS_V2 +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `COLUMNS_V2` ( + `CD_ID` bigint, + `COMMENT` string, + `COLUMN_NAME` string, + `TYPE_NAME` string, + `INTEGER_IDX` int, + CONSTRAINT `SYS_PK_COLUMN_V2` PRIMARY KEY (`CD_ID`,`COLUMN_NAME`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"CD_ID\", + \"COMMENT\", + \"COLUMN_NAME\", + \"TYPE_NAME\", + \"INTEGER_IDX\" +FROM + \"COLUMNS_V2\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@COLUMNS_V2 +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `DATABASE_PARAMS` ( + `DB_ID` bigint, + `PARAM_KEY` string, + `PARAM_VALUE` string, + CONSTRAINT `SYS_PK_DATABASE_PARAMS` PRIMARY KEY (`DB_ID`,`PARAM_KEY`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"DB_ID\", + \"PARAM_KEY\", + \"PARAM_VALUE\" +FROM + \"DATABASE_PARAMS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@DATABASE_PARAMS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `DATABASE_PARAMS` ( + `DB_ID` bigint, + `PARAM_KEY` string, + `PARAM_VALUE` string, + CONSTRAINT `SYS_PK_DATABASE_PARAMS` PRIMARY KEY (`DB_ID`,`PARAM_KEY`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"DB_ID\", + \"PARAM_KEY\", + \"PARAM_VALUE\" +FROM + \"DATABASE_PARAMS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@DATABASE_PARAMS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `DBS` ( + `DB_ID` bigint, + `DB_LOCATION_URI` string, + `NAME` string, + `OWNER_NAME` string, + `OWNER_TYPE` string, + CONSTRAINT `SYS_PK_DBS` PRIMARY KEY (`DB_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"DB_ID\", + \"DB_LOCATION_URI\", + \"NAME\", + \"OWNER_NAME\", + \"OWNER_TYPE\" +FROM + \"DBS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@DBS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `DBS` ( + `DB_ID` bigint, + `DB_LOCATION_URI` string, + `NAME` string, + `OWNER_NAME` string, + `OWNER_TYPE` string, + CONSTRAINT `SYS_PK_DBS` PRIMARY KEY (`DB_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"DB_ID\", + \"DB_LOCATION_URI\", + \"NAME\", + \"OWNER_NAME\", + \"OWNER_TYPE\" +FROM + \"DBS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@DBS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `DB_PRIVS` ( + `DB_GRANT_ID` bigint, + `CREATE_TIME` int, + `DB_ID` bigint, + `GRANT_OPTION` int, + `GRANTOR` string, + `GRANTOR_TYPE` string, + `PRINCIPAL_NAME` string, + `PRINCIPAL_TYPE` string, + `DB_PRIV` string, + `AUTHORIZER` string, + CONSTRAINT `SYS_PK_DB_PRIVS` PRIMARY KEY (`DB_GRANT_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"DB_GRANT_ID\", + \"CREATE_TIME\", + \"DB_ID\", + \"GRANT_OPTION\", + \"GRANTOR\", + \"GRANTOR_TYPE\", + \"PRINCIPAL_NAME\", + \"PRINCIPAL_TYPE\", + \"DB_PRIV\", + \"AUTHORIZER\" +FROM + \"DB_PRIVS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@DB_PRIVS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `DB_PRIVS` ( + `DB_GRANT_ID` bigint, + `CREATE_TIME` int, + `DB_ID` bigint, + `GRANT_OPTION` int, + `GRANTOR` string, + `GRANTOR_TYPE` string, + `PRINCIPAL_NAME` string, + `PRINCIPAL_TYPE` string, + `DB_PRIV` string, + `AUTHORIZER` string, + CONSTRAINT `SYS_PK_DB_PRIVS` PRIMARY KEY (`DB_GRANT_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"DB_GRANT_ID\", + \"CREATE_TIME\", + \"DB_ID\", + \"GRANT_OPTION\", + \"GRANTOR\", + \"GRANTOR_TYPE\", + \"PRINCIPAL_NAME\", + \"PRINCIPAL_TYPE\", + \"DB_PRIV\", + \"AUTHORIZER\" +FROM + \"DB_PRIVS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@DB_PRIVS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `GLOBAL_PRIVS` ( + `USER_GRANT_ID` bigint, + `CREATE_TIME` int, + `GRANT_OPTION` string, + `GRANTOR` string, + `GRANTOR_TYPE` string, + `PRINCIPAL_NAME` string, + `PRINCIPAL_TYPE` string, + `USER_PRIV` string, + `AUTHORIZER` string, + CONSTRAINT `SYS_PK_GLOBAL_PRIVS` PRIMARY KEY (`USER_GRANT_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"USER_GRANT_ID\", + \"CREATE_TIME\", + \"GRANT_OPTION\", + \"GRANTOR\", + \"GRANTOR_TYPE\", + \"PRINCIPAL_NAME\", + \"PRINCIPAL_TYPE\", + \"USER_PRIV\", + \"AUTHORIZER\" +FROM + \"GLOBAL_PRIVS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@GLOBAL_PRIVS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `GLOBAL_PRIVS` ( + `USER_GRANT_ID` bigint, + `CREATE_TIME` int, + `GRANT_OPTION` string, + `GRANTOR` string, + `GRANTOR_TYPE` string, + `PRINCIPAL_NAME` string, + `PRINCIPAL_TYPE` string, + `USER_PRIV` string, + `AUTHORIZER` string, + CONSTRAINT `SYS_PK_GLOBAL_PRIVS` PRIMARY KEY (`USER_GRANT_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"USER_GRANT_ID\", + \"CREATE_TIME\", + \"GRANT_OPTION\", + \"GRANTOR\", + \"GRANTOR_TYPE\", + \"PRINCIPAL_NAME\", + \"PRINCIPAL_TYPE\", + \"USER_PRIV\", + \"AUTHORIZER\" +FROM + \"GLOBAL_PRIVS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@GLOBAL_PRIVS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITIONS` ( + `PART_ID` bigint, + `CREATE_TIME` int, + `LAST_ACCESS_TIME` int, + `PART_NAME` string, + `SD_ID` bigint, + `TBL_ID` bigint, + CONSTRAINT `SYS_PK_PARTITIONS` PRIMARY KEY (`PART_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"PART_ID\", + \"CREATE_TIME\", + \"LAST_ACCESS_TIME\", + \"PART_NAME\", + \"SD_ID\", + \"TBL_ID\" +FROM + \"PARTITIONS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@PARTITIONS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITIONS` ( + `PART_ID` bigint, + `CREATE_TIME` int, + `LAST_ACCESS_TIME` int, + `PART_NAME` string, + `SD_ID` bigint, + `TBL_ID` bigint, + CONSTRAINT `SYS_PK_PARTITIONS` PRIMARY KEY (`PART_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"PART_ID\", + \"CREATE_TIME\", + \"LAST_ACCESS_TIME\", + \"PART_NAME\", + \"SD_ID\", + \"TBL_ID\" +FROM + \"PARTITIONS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@PARTITIONS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITION_KEYS` ( + `TBL_ID` bigint, + `PKEY_COMMENT` string, + `PKEY_NAME` string, + `PKEY_TYPE` string, + `INTEGER_IDX` int, + CONSTRAINT `SYS_PK_PARTITION_KEYS` PRIMARY KEY (`TBL_ID`,`PKEY_NAME`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"TBL_ID\", + \"PKEY_COMMENT\", + \"PKEY_NAME\", + \"PKEY_TYPE\", + \"INTEGER_IDX\" +FROM + \"PARTITION_KEYS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@PARTITION_KEYS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITION_KEYS` ( + `TBL_ID` bigint, + `PKEY_COMMENT` string, + `PKEY_NAME` string, + `PKEY_TYPE` string, + `INTEGER_IDX` int, + CONSTRAINT `SYS_PK_PARTITION_KEYS` PRIMARY KEY (`TBL_ID`,`PKEY_NAME`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"TBL_ID\", + \"PKEY_COMMENT\", + \"PKEY_NAME\", + \"PKEY_TYPE\", + \"INTEGER_IDX\" +FROM + \"PARTITION_KEYS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@PARTITION_KEYS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITION_KEY_VALS` ( + `PART_ID` bigint, + `PART_KEY_VAL` string, + `INTEGER_IDX` int, + CONSTRAINT `SYS_PK_PARTITION_KEY_VALS` PRIMARY KEY (`PART_ID`,`INTEGER_IDX`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"PART_ID\", + \"PART_KEY_VAL\", + \"INTEGER_IDX\" +FROM + \"PARTITION_KEY_VALS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@PARTITION_KEY_VALS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITION_KEY_VALS` ( + `PART_ID` bigint, + `PART_KEY_VAL` string, + `INTEGER_IDX` int, + CONSTRAINT `SYS_PK_PARTITION_KEY_VALS` PRIMARY KEY (`PART_ID`,`INTEGER_IDX`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"PART_ID\", + \"PART_KEY_VAL\", + \"INTEGER_IDX\" +FROM + \"PARTITION_KEY_VALS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@PARTITION_KEY_VALS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITION_PARAMS` ( + `PART_ID` bigint, + `PARAM_KEY` string, + `PARAM_VALUE` string, + CONSTRAINT `SYS_PK_PARTITION_PARAMS` PRIMARY KEY (`PART_ID`,`PARAM_KEY`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"PART_ID\", + \"PARAM_KEY\", + \"PARAM_VALUE\" +FROM + \"PARTITION_PARAMS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@PARTITION_PARAMS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PARTITION_PARAMS` ( + `PART_ID` bigint, + `PARAM_KEY` string, + `PARAM_VALUE` string, + CONSTRAINT `SYS_PK_PARTITION_PARAMS` PRIMARY KEY (`PART_ID`,`PARAM_KEY`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"PART_ID\", + \"PARAM_KEY\", + \"PARAM_VALUE\" +FROM + \"PARTITION_PARAMS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@PARTITION_PARAMS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PART_COL_PRIVS` ( + `PART_COLUMN_GRANT_ID` bigint, + `COLUMN_NAME` string, + `CREATE_TIME` int, + `GRANT_OPTION` int, + `GRANTOR` string, + `GRANTOR_TYPE` string, + `PART_ID` bigint, + `PRINCIPAL_NAME` string, + `PRINCIPAL_TYPE` string, + `PART_COL_PRIV` string, + `AUTHORIZER` string, + CONSTRAINT `SYS_PK_PART_COL_PRIVS` PRIMARY KEY (`PART_COLUMN_GRANT_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"PART_COLUMN_GRANT_ID\", + \"COLUMN_NAME\", + \"CREATE_TIME\", + \"GRANT_OPTION\", + \"GRANTOR\", + \"GRANTOR_TYPE\", + \"PART_ID\", + \"PRINCIPAL_NAME\", + \"PRINCIPAL_TYPE\", + \"PART_COL_PRIV\", + \"AUTHORIZER\" +FROM + \"PART_COL_PRIVS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@PART_COL_PRIVS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PART_COL_PRIVS` ( + `PART_COLUMN_GRANT_ID` bigint, + `COLUMN_NAME` string, + `CREATE_TIME` int, + `GRANT_OPTION` int, + `GRANTOR` string, + `GRANTOR_TYPE` string, + `PART_ID` bigint, + `PRINCIPAL_NAME` string, + `PRINCIPAL_TYPE` string, + `PART_COL_PRIV` string, + `AUTHORIZER` string, + CONSTRAINT `SYS_PK_PART_COL_PRIVS` PRIMARY KEY (`PART_COLUMN_GRANT_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"PART_COLUMN_GRANT_ID\", + \"COLUMN_NAME\", + \"CREATE_TIME\", + \"GRANT_OPTION\", + \"GRANTOR\", + \"GRANTOR_TYPE\", + \"PART_ID\", + \"PRINCIPAL_NAME\", + \"PRINCIPAL_TYPE\", + \"PART_COL_PRIV\", + \"AUTHORIZER\" +FROM + \"PART_COL_PRIVS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@PART_COL_PRIVS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PART_PRIVS` ( + `PART_GRANT_ID` bigint, + `CREATE_TIME` int, + `GRANT_OPTION` int, + `GRANTOR` string, + `GRANTOR_TYPE` string, + `PART_ID` bigint, + `PRINCIPAL_NAME` string, + `PRINCIPAL_TYPE` string, + `PART_PRIV` string, + `AUTHORIZER` string, + CONSTRAINT `SYS_PK_PART_PRIVS` PRIMARY KEY (`PART_GRANT_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"PART_GRANT_ID\", + \"CREATE_TIME\", + \"GRANT_OPTION\", + \"GRANTOR\", + \"GRANTOR_TYPE\", + \"PART_ID\", + \"PRINCIPAL_NAME\", + \"PRINCIPAL_TYPE\", + \"PART_PRIV\", + \"AUTHORIZER\" +FROM + \"PART_PRIVS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@PART_PRIVS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PART_PRIVS` ( + `PART_GRANT_ID` bigint, + `CREATE_TIME` int, + `GRANT_OPTION` int, + `GRANTOR` string, + `GRANTOR_TYPE` string, + `PART_ID` bigint, + `PRINCIPAL_NAME` string, + `PRINCIPAL_TYPE` string, + `PART_PRIV` string, + `AUTHORIZER` string, + CONSTRAINT `SYS_PK_PART_PRIVS` PRIMARY KEY (`PART_GRANT_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"PART_GRANT_ID\", + \"CREATE_TIME\", + \"GRANT_OPTION\", + \"GRANTOR\", + \"GRANTOR_TYPE\", + \"PART_ID\", + \"PRINCIPAL_NAME\", + \"PRINCIPAL_TYPE\", + \"PART_PRIV\", + \"AUTHORIZER\" +FROM + \"PART_PRIVS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@PART_PRIVS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `ROLES` ( + `ROLE_ID` bigint, + `CREATE_TIME` int, + `OWNER_NAME` string, + `ROLE_NAME` string, + CONSTRAINT `SYS_PK_ROLES` PRIMARY KEY (`ROLE_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"ROLE_ID\", + \"CREATE_TIME\", + \"OWNER_NAME\", + \"ROLE_NAME\" +FROM + \"ROLES\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@ROLES +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `ROLES` ( + `ROLE_ID` bigint, + `CREATE_TIME` int, + `OWNER_NAME` string, + `ROLE_NAME` string, + CONSTRAINT `SYS_PK_ROLES` PRIMARY KEY (`ROLE_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"ROLE_ID\", + \"CREATE_TIME\", + \"OWNER_NAME\", + \"ROLE_NAME\" +FROM + \"ROLES\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@ROLES +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `ROLE_MAP` ( + `ROLE_GRANT_ID` bigint, + `ADD_TIME` int, + `GRANT_OPTION` int, + `GRANTOR` string, + `GRANTOR_TYPE` string, + `PRINCIPAL_NAME` string, + `PRINCIPAL_TYPE` string, + `ROLE_ID` bigint, + CONSTRAINT `SYS_PK_ROLE_MAP` PRIMARY KEY (`ROLE_GRANT_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"ROLE_GRANT_ID\", + \"ADD_TIME\", + \"GRANT_OPTION\", + \"GRANTOR\", + \"GRANTOR_TYPE\", + \"PRINCIPAL_NAME\", + \"PRINCIPAL_TYPE\", + \"ROLE_ID\" +FROM + \"ROLE_MAP\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@ROLE_MAP +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `ROLE_MAP` ( + `ROLE_GRANT_ID` bigint, + `ADD_TIME` int, + `GRANT_OPTION` int, + `GRANTOR` string, + `GRANTOR_TYPE` string, + `PRINCIPAL_NAME` string, + `PRINCIPAL_TYPE` string, + `ROLE_ID` bigint, + CONSTRAINT `SYS_PK_ROLE_MAP` PRIMARY KEY (`ROLE_GRANT_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"ROLE_GRANT_ID\", + \"ADD_TIME\", + \"GRANT_OPTION\", + \"GRANTOR\", + \"GRANTOR_TYPE\", + \"PRINCIPAL_NAME\", + \"PRINCIPAL_TYPE\", + \"ROLE_ID\" +FROM + \"ROLE_MAP\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@ROLE_MAP +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SDS` ( + `SD_ID` bigint, + `CD_ID` bigint, + `INPUT_FORMAT` string, + `IS_COMPRESSED` boolean, + `IS_STOREDASSUBDIRECTORIES` boolean, + `LOCATION` string, + `NUM_BUCKETS` int, + `OUTPUT_FORMAT` string, + `SERDE_ID` bigint, + CONSTRAINT `SYS_PK_SDS` PRIMARY KEY (`SD_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SD_ID\", + \"CD_ID\", + \"INPUT_FORMAT\", + \"IS_COMPRESSED\", + \"IS_STOREDASSUBDIRECTORIES\", + \"LOCATION\", + \"NUM_BUCKETS\", + \"OUTPUT_FORMAT\", + \"SERDE_ID\" +FROM + \"SDS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@SDS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SDS` ( + `SD_ID` bigint, + `CD_ID` bigint, + `INPUT_FORMAT` string, + `IS_COMPRESSED` boolean, + `IS_STOREDASSUBDIRECTORIES` boolean, + `LOCATION` string, + `NUM_BUCKETS` int, + `OUTPUT_FORMAT` string, + `SERDE_ID` bigint, + CONSTRAINT `SYS_PK_SDS` PRIMARY KEY (`SD_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SD_ID\", + \"CD_ID\", + \"INPUT_FORMAT\", + \"IS_COMPRESSED\", + \"IS_STOREDASSUBDIRECTORIES\", + \"LOCATION\", + \"NUM_BUCKETS\", + \"OUTPUT_FORMAT\", + \"SERDE_ID\" +FROM + \"SDS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@SDS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SD_PARAMS` ( + `SD_ID` bigint, + `PARAM_KEY` string, + `PARAM_VALUE` string, + CONSTRAINT `SYS_PK_SD_PARAMS` PRIMARY KEY (`SD_ID`,`PARAM_KEY`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SD_ID\", + \"PARAM_KEY\", + \"PARAM_VALUE\" +FROM + \"SD_PARAMS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@SD_PARAMS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SD_PARAMS` ( + `SD_ID` bigint, + `PARAM_KEY` string, + `PARAM_VALUE` string, + CONSTRAINT `SYS_PK_SD_PARAMS` PRIMARY KEY (`SD_ID`,`PARAM_KEY`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SD_ID\", + \"PARAM_KEY\", + \"PARAM_VALUE\" +FROM + \"SD_PARAMS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@SD_PARAMS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SEQUENCE_TABLE` ( + `SEQUENCE_NAME` string, + `NEXT_VAL` bigint, + CONSTRAINT `SYS_PK_SEQUENCE_TABLE` PRIMARY KEY (`SEQUENCE_NAME`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SEQUENCE_NAME\", + \"NEXT_VAL\" +FROM + \"SEQUENCE_TABLE\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@SEQUENCE_TABLE +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SEQUENCE_TABLE` ( + `SEQUENCE_NAME` string, + `NEXT_VAL` bigint, + CONSTRAINT `SYS_PK_SEQUENCE_TABLE` PRIMARY KEY (`SEQUENCE_NAME`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SEQUENCE_NAME\", + \"NEXT_VAL\" +FROM + \"SEQUENCE_TABLE\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@SEQUENCE_TABLE +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SERDES` ( + `SERDE_ID` bigint, + `NAME` string, + `SLIB` string, + CONSTRAINT `SYS_PK_SERDES` PRIMARY KEY (`SERDE_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SERDE_ID\", + \"NAME\", + \"SLIB\" +FROM + \"SERDES\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@SERDES +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SERDES` ( + `SERDE_ID` bigint, + `NAME` string, + `SLIB` string, + CONSTRAINT `SYS_PK_SERDES` PRIMARY KEY (`SERDE_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SERDE_ID\", + \"NAME\", + \"SLIB\" +FROM + \"SERDES\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@SERDES +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SERDE_PARAMS` ( + `SERDE_ID` bigint, + `PARAM_KEY` string, + `PARAM_VALUE` string, + CONSTRAINT `SYS_PK_SERDE_PARAMS` PRIMARY KEY (`SERDE_ID`,`PARAM_KEY`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SERDE_ID\", + \"PARAM_KEY\", + \"PARAM_VALUE\" +FROM + \"SERDE_PARAMS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@SERDE_PARAMS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SERDE_PARAMS` ( + `SERDE_ID` bigint, + `PARAM_KEY` string, + `PARAM_VALUE` string, + CONSTRAINT `SYS_PK_SERDE_PARAMS` PRIMARY KEY (`SERDE_ID`,`PARAM_KEY`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SERDE_ID\", + \"PARAM_KEY\", + \"PARAM_VALUE\" +FROM + \"SERDE_PARAMS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@SERDE_PARAMS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_COL_NAMES` ( + `SD_ID` bigint, + `SKEWED_COL_NAME` string, + `INTEGER_IDX` int, + CONSTRAINT `SYS_PK_SKEWED_COL_NAMES` PRIMARY KEY (`SD_ID`,`INTEGER_IDX`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SD_ID\", + \"SKEWED_COL_NAME\", + \"INTEGER_IDX\" +FROM + \"SKEWED_COL_NAMES\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@SKEWED_COL_NAMES +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_COL_NAMES` ( + `SD_ID` bigint, + `SKEWED_COL_NAME` string, + `INTEGER_IDX` int, + CONSTRAINT `SYS_PK_SKEWED_COL_NAMES` PRIMARY KEY (`SD_ID`,`INTEGER_IDX`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SD_ID\", + \"SKEWED_COL_NAME\", + \"INTEGER_IDX\" +FROM + \"SKEWED_COL_NAMES\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@SKEWED_COL_NAMES +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_COL_VALUE_LOC_MAP` ( + `SD_ID` bigint, + `STRING_LIST_ID_KID` bigint, + `LOCATION` string, + CONSTRAINT `SYS_PK_COL_VALUE_LOC_MAP` PRIMARY KEY (`SD_ID`,`STRING_LIST_ID_KID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SD_ID\", + \"STRING_LIST_ID_KID\", + \"LOCATION\" +FROM + \"SKEWED_COL_VALUE_LOC_MAP\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@SKEWED_COL_VALUE_LOC_MAP +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_COL_VALUE_LOC_MAP` ( + `SD_ID` bigint, + `STRING_LIST_ID_KID` bigint, + `LOCATION` string, + CONSTRAINT `SYS_PK_COL_VALUE_LOC_MAP` PRIMARY KEY (`SD_ID`,`STRING_LIST_ID_KID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SD_ID\", + \"STRING_LIST_ID_KID\", + \"LOCATION\" +FROM + \"SKEWED_COL_VALUE_LOC_MAP\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@SKEWED_COL_VALUE_LOC_MAP +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_STRING_LIST` ( + `STRING_LIST_ID` bigint, + CONSTRAINT `SYS_PK_SKEWED_STRING_LIST` PRIMARY KEY (`STRING_LIST_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"STRING_LIST_ID\" +FROM + \"SKEWED_STRING_LIST\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@SKEWED_STRING_LIST +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_STRING_LIST` ( + `STRING_LIST_ID` bigint, + CONSTRAINT `SYS_PK_SKEWED_STRING_LIST` PRIMARY KEY (`STRING_LIST_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"STRING_LIST_ID\" +FROM + \"SKEWED_STRING_LIST\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@SKEWED_STRING_LIST +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_STRING_LIST_VALUES` ( + `STRING_LIST_ID` bigint, + `STRING_LIST_VALUE` string, + `INTEGER_IDX` int, + CONSTRAINT `SYS_PK_SKEWED_STRING_LIST_VALUES` PRIMARY KEY (`STRING_LIST_ID`,`INTEGER_IDX`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"STRING_LIST_ID\", + \"STRING_LIST_VALUE\", + \"INTEGER_IDX\" +FROM + \"SKEWED_STRING_LIST_VALUES\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@SKEWED_STRING_LIST_VALUES +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_STRING_LIST_VALUES` ( + `STRING_LIST_ID` bigint, + `STRING_LIST_VALUE` string, + `INTEGER_IDX` int, + CONSTRAINT `SYS_PK_SKEWED_STRING_LIST_VALUES` PRIMARY KEY (`STRING_LIST_ID`,`INTEGER_IDX`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"STRING_LIST_ID\", + \"STRING_LIST_VALUE\", + \"INTEGER_IDX\" +FROM + \"SKEWED_STRING_LIST_VALUES\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@SKEWED_STRING_LIST_VALUES +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_VALUES` ( + `SD_ID_OID` bigint, + `STRING_LIST_ID_EID` bigint, + `INTEGER_IDX` int, + CONSTRAINT `SYS_PK_SKEWED_VALUES` PRIMARY KEY (`SD_ID_OID`,`INTEGER_IDX`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SD_ID_OID\", + \"STRING_LIST_ID_EID\", + \"INTEGER_IDX\" +FROM + \"SKEWED_VALUES\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@SKEWED_VALUES +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SKEWED_VALUES` ( + `SD_ID_OID` bigint, + `STRING_LIST_ID_EID` bigint, + `INTEGER_IDX` int, + CONSTRAINT `SYS_PK_SKEWED_VALUES` PRIMARY KEY (`SD_ID_OID`,`INTEGER_IDX`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SD_ID_OID\", + \"STRING_LIST_ID_EID\", + \"INTEGER_IDX\" +FROM + \"SKEWED_VALUES\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@SKEWED_VALUES +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SORT_COLS` ( + `SD_ID` bigint, + `COLUMN_NAME` string, + `ORDER` int, + `INTEGER_IDX` int, + CONSTRAINT `SYS_PK_SORT_COLS` PRIMARY KEY (`SD_ID`,`INTEGER_IDX`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SD_ID\", + \"COLUMN_NAME\", + \"ORDER\", + \"INTEGER_IDX\" +FROM + \"SORT_COLS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@SORT_COLS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `SORT_COLS` ( + `SD_ID` bigint, + `COLUMN_NAME` string, + `ORDER` int, + `INTEGER_IDX` int, + CONSTRAINT `SYS_PK_SORT_COLS` PRIMARY KEY (`SD_ID`,`INTEGER_IDX`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"SD_ID\", + \"COLUMN_NAME\", + \"ORDER\", + \"INTEGER_IDX\" +FROM + \"SORT_COLS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@SORT_COLS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TABLE_PARAMS` ( + `TBL_ID` bigint, + `PARAM_KEY` string, + `PARAM_VALUE` string, + CONSTRAINT `SYS_PK_TABLE_PARAMS` PRIMARY KEY (`TBL_ID`,`PARAM_KEY`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"TBL_ID\", + \"PARAM_KEY\", + \"PARAM_VALUE\" +FROM + \"TABLE_PARAMS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@TABLE_PARAMS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TABLE_PARAMS` ( + `TBL_ID` bigint, + `PARAM_KEY` string, + `PARAM_VALUE` string, + CONSTRAINT `SYS_PK_TABLE_PARAMS` PRIMARY KEY (`TBL_ID`,`PARAM_KEY`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"TBL_ID\", + \"PARAM_KEY\", + \"PARAM_VALUE\" +FROM + \"TABLE_PARAMS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@TABLE_PARAMS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TBLS` ( + `TBL_ID` bigint, + `CREATE_TIME` int, + `DB_ID` bigint, + `LAST_ACCESS_TIME` int, + `OWNER` string, + `RETENTION` int, + `SD_ID` bigint, + `TBL_NAME` string, + `TBL_TYPE` string, + `VIEW_EXPANDED_TEXT` string, + `VIEW_ORIGINAL_TEXT` string, + `IS_REWRITE_ENABLED` boolean, + CONSTRAINT `SYS_PK_TBLS` PRIMARY KEY (`TBL_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"TBL_ID\", + \"CREATE_TIME\", + \"DB_ID\", + \"LAST_ACCESS_TIME\", + \"OWNER\", + \"RETENTION\", + \"SD_ID\", + \"TBL_NAME\", + \"TBL_TYPE\", + \"VIEW_EXPANDED_TEXT\", + \"VIEW_ORIGINAL_TEXT\", + \"IS_REWRITE_ENABLED\" +FROM \"TBLS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@TBLS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TBLS` ( + `TBL_ID` bigint, + `CREATE_TIME` int, + `DB_ID` bigint, + `LAST_ACCESS_TIME` int, + `OWNER` string, + `RETENTION` int, + `SD_ID` bigint, + `TBL_NAME` string, + `TBL_TYPE` string, + `VIEW_EXPANDED_TEXT` string, + `VIEW_ORIGINAL_TEXT` string, + `IS_REWRITE_ENABLED` boolean, + CONSTRAINT `SYS_PK_TBLS` PRIMARY KEY (`TBL_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"TBL_ID\", + \"CREATE_TIME\", + \"DB_ID\", + \"LAST_ACCESS_TIME\", + \"OWNER\", + \"RETENTION\", + \"SD_ID\", + \"TBL_NAME\", + \"TBL_TYPE\", + \"VIEW_EXPANDED_TEXT\", + \"VIEW_ORIGINAL_TEXT\", + \"IS_REWRITE_ENABLED\" +FROM \"TBLS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@TBLS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `MV_CREATION_METADATA` ( + `MV_CREATION_METADATA_ID` bigint, + `DB_NAME` string, + `TBL_NAME` string, + `TXN_LIST` string, + CONSTRAINT `SYS_PK_MV_CREATION_METADATA` PRIMARY KEY (`MV_CREATION_METADATA_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"MV_CREATION_METADATA_ID\", + \"DB_NAME\", + \"TBL_NAME\", + \"TXN_LIST\" +FROM \"MV_CREATION_METADATA\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@MV_CREATION_METADATA +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `MV_CREATION_METADATA` ( + `MV_CREATION_METADATA_ID` bigint, + `DB_NAME` string, + `TBL_NAME` string, + `TXN_LIST` string, + CONSTRAINT `SYS_PK_MV_CREATION_METADATA` PRIMARY KEY (`MV_CREATION_METADATA_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"MV_CREATION_METADATA_ID\", + \"DB_NAME\", + \"TBL_NAME\", + \"TXN_LIST\" +FROM \"MV_CREATION_METADATA\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@MV_CREATION_METADATA +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `MV_TABLES_USED` ( + `MV_CREATION_METADATA_ID` bigint, + `TBL_ID` bigint +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"MV_CREATION_METADATA_ID\", + \"TBL_ID\" +FROM \"MV_TABLES_USED\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@MV_TABLES_USED +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `MV_TABLES_USED` ( + `MV_CREATION_METADATA_ID` bigint, + `TBL_ID` bigint +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"MV_CREATION_METADATA_ID\", + \"TBL_ID\" +FROM \"MV_TABLES_USED\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@MV_TABLES_USED +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TBL_COL_PRIVS` ( + `TBL_COLUMN_GRANT_ID` bigint, + `COLUMN_NAME` string, + `CREATE_TIME` int, + `GRANT_OPTION` int, + `GRANTOR` string, + `GRANTOR_TYPE` string, + `PRINCIPAL_NAME` string, + `PRINCIPAL_TYPE` string, + `TBL_COL_PRIV` string, + `TBL_ID` bigint, + `AUTHORIZER` string, + CONSTRAINT `SYS_PK_TBL_COL_PRIVS` PRIMARY KEY (`TBL_COLUMN_GRANT_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"TBL_COLUMN_GRANT_ID\", + \"COLUMN_NAME\", + \"CREATE_TIME\", + \"GRANT_OPTION\", + \"GRANTOR\", + \"GRANTOR_TYPE\", + \"PRINCIPAL_NAME\", + \"PRINCIPAL_TYPE\", + \"TBL_COL_PRIV\", + \"TBL_ID\", + \"AUTHORIZER\" +FROM + \"TBL_COL_PRIVS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@TBL_COL_PRIVS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TBL_COL_PRIVS` ( + `TBL_COLUMN_GRANT_ID` bigint, + `COLUMN_NAME` string, + `CREATE_TIME` int, + `GRANT_OPTION` int, + `GRANTOR` string, + `GRANTOR_TYPE` string, + `PRINCIPAL_NAME` string, + `PRINCIPAL_TYPE` string, + `TBL_COL_PRIV` string, + `TBL_ID` bigint, + `AUTHORIZER` string, + CONSTRAINT `SYS_PK_TBL_COL_PRIVS` PRIMARY KEY (`TBL_COLUMN_GRANT_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"TBL_COLUMN_GRANT_ID\", + \"COLUMN_NAME\", + \"CREATE_TIME\", + \"GRANT_OPTION\", + \"GRANTOR\", + \"GRANTOR_TYPE\", + \"PRINCIPAL_NAME\", + \"PRINCIPAL_TYPE\", + \"TBL_COL_PRIV\", + \"TBL_ID\", + \"AUTHORIZER\" +FROM + \"TBL_COL_PRIVS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@TBL_COL_PRIVS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TBL_PRIVS` ( + `TBL_GRANT_ID` bigint, + `CREATE_TIME` int, + `GRANT_OPTION` int, + `GRANTOR` string, + `GRANTOR_TYPE` string, + `PRINCIPAL_NAME` string, + `PRINCIPAL_TYPE` string, + `TBL_PRIV` string, + `TBL_ID` bigint, + `AUTHORIZER` string, + CONSTRAINT `SYS_PK_TBL_PRIVS` PRIMARY KEY (`TBL_GRANT_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"TBL_GRANT_ID\", + \"CREATE_TIME\", + \"GRANT_OPTION\", + \"GRANTOR\", + \"GRANTOR_TYPE\", + \"PRINCIPAL_NAME\", + \"PRINCIPAL_TYPE\", + \"TBL_PRIV\", + \"TBL_ID\", + \"AUTHORIZER\" +FROM + \"TBL_PRIVS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@TBL_PRIVS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TBL_PRIVS` ( + `TBL_GRANT_ID` bigint, + `CREATE_TIME` int, + `GRANT_OPTION` int, + `GRANTOR` string, + `GRANTOR_TYPE` string, + `PRINCIPAL_NAME` string, + `PRINCIPAL_TYPE` string, + `TBL_PRIV` string, + `TBL_ID` bigint, + `AUTHORIZER` string, + CONSTRAINT `SYS_PK_TBL_PRIVS` PRIMARY KEY (`TBL_GRANT_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"TBL_GRANT_ID\", + \"CREATE_TIME\", + \"GRANT_OPTION\", + \"GRANTOR\", + \"GRANTOR_TYPE\", + \"PRINCIPAL_NAME\", + \"PRINCIPAL_TYPE\", + \"TBL_PRIV\", + \"TBL_ID\", + \"AUTHORIZER\" +FROM + \"TBL_PRIVS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@TBL_PRIVS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TAB_COL_STATS` ( + `CS_ID` bigint, + `DB_NAME` string, + `TABLE_NAME` string, + `COLUMN_NAME` string, + `COLUMN_TYPE` string, + `TBL_ID` bigint, + `LONG_LOW_VALUE` bigint, + `LONG_HIGH_VALUE` bigint, + `DOUBLE_HIGH_VALUE` double, + `DOUBLE_LOW_VALUE` double, + `BIG_DECIMAL_LOW_VALUE` string, + `BIG_DECIMAL_HIGH_VALUE` string, + `NUM_NULLS` bigint, + `NUM_DISTINCTS` bigint, + `AVG_COL_LEN` double, + `MAX_COL_LEN` bigint, + `NUM_TRUES` bigint, + `NUM_FALSES` bigint, + `LAST_ANALYZED` bigint, + CONSTRAINT `SYS_PK_TAB_COL_STATS` PRIMARY KEY (`CS_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"CS_ID\", + \"DB_NAME\", + \"TABLE_NAME\", + \"COLUMN_NAME\", + \"COLUMN_TYPE\", + \"TBL_ID\", + \"LONG_LOW_VALUE\", + \"LONG_HIGH_VALUE\", + \"DOUBLE_HIGH_VALUE\", + \"DOUBLE_LOW_VALUE\", + \"BIG_DECIMAL_LOW_VALUE\", + \"BIG_DECIMAL_HIGH_VALUE\", + \"NUM_NULLS\", + \"NUM_DISTINCTS\", + \"AVG_COL_LEN\", + \"MAX_COL_LEN\", + \"NUM_TRUES\", + \"NUM_FALSES\", + \"LAST_ANALYZED\" +FROM + \"TAB_COL_STATS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@TAB_COL_STATS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `TAB_COL_STATS` ( + `CS_ID` bigint, + `DB_NAME` string, + `TABLE_NAME` string, + `COLUMN_NAME` string, + `COLUMN_TYPE` string, + `TBL_ID` bigint, + `LONG_LOW_VALUE` bigint, + `LONG_HIGH_VALUE` bigint, + `DOUBLE_HIGH_VALUE` double, + `DOUBLE_LOW_VALUE` double, + `BIG_DECIMAL_LOW_VALUE` string, + `BIG_DECIMAL_HIGH_VALUE` string, + `NUM_NULLS` bigint, + `NUM_DISTINCTS` bigint, + `AVG_COL_LEN` double, + `MAX_COL_LEN` bigint, + `NUM_TRUES` bigint, + `NUM_FALSES` bigint, + `LAST_ANALYZED` bigint, + CONSTRAINT `SYS_PK_TAB_COL_STATS` PRIMARY KEY (`CS_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"CS_ID\", + \"DB_NAME\", + \"TABLE_NAME\", + \"COLUMN_NAME\", + \"COLUMN_TYPE\", + \"TBL_ID\", + \"LONG_LOW_VALUE\", + \"LONG_HIGH_VALUE\", + \"DOUBLE_HIGH_VALUE\", + \"DOUBLE_LOW_VALUE\", + \"BIG_DECIMAL_LOW_VALUE\", + \"BIG_DECIMAL_HIGH_VALUE\", + \"NUM_NULLS\", + \"NUM_DISTINCTS\", + \"AVG_COL_LEN\", + \"MAX_COL_LEN\", + \"NUM_TRUES\", + \"NUM_FALSES\", + \"LAST_ANALYZED\" +FROM + \"TAB_COL_STATS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@TAB_COL_STATS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PART_COL_STATS` ( + `CS_ID` bigint, + `DB_NAME` string, + `TABLE_NAME` string, + `PARTITION_NAME` string, + `COLUMN_NAME` string, + `COLUMN_TYPE` string, + `PART_ID` bigint, + `LONG_LOW_VALUE` bigint, + `LONG_HIGH_VALUE` bigint, + `DOUBLE_HIGH_VALUE` double, + `DOUBLE_LOW_VALUE` double, + `BIG_DECIMAL_LOW_VALUE` string, + `BIG_DECIMAL_HIGH_VALUE` string, + `NUM_NULLS` bigint, + `NUM_DISTINCTS` bigint, + `AVG_COL_LEN` double, + `MAX_COL_LEN` bigint, + `NUM_TRUES` bigint, + `NUM_FALSES` bigint, + `LAST_ANALYZED` bigint, + CONSTRAINT `SYS_PK_PART_COL_STATS` PRIMARY KEY (`CS_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"CS_ID\", + \"DB_NAME\", + \"TABLE_NAME\", + \"PARTITION_NAME\", + \"COLUMN_NAME\", + \"COLUMN_TYPE\", + \"PART_ID\", + \"LONG_LOW_VALUE\", + \"LONG_HIGH_VALUE\", + \"DOUBLE_HIGH_VALUE\", + \"DOUBLE_LOW_VALUE\", + \"BIG_DECIMAL_LOW_VALUE\", + \"BIG_DECIMAL_HIGH_VALUE\", + \"NUM_NULLS\", + \"NUM_DISTINCTS\", + \"AVG_COL_LEN\", + \"MAX_COL_LEN\", + \"NUM_TRUES\", + \"NUM_FALSES\", + \"LAST_ANALYZED\" +FROM + \"PART_COL_STATS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@PART_COL_STATS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `PART_COL_STATS` ( + `CS_ID` bigint, + `DB_NAME` string, + `TABLE_NAME` string, + `PARTITION_NAME` string, + `COLUMN_NAME` string, + `COLUMN_TYPE` string, + `PART_ID` bigint, + `LONG_LOW_VALUE` bigint, + `LONG_HIGH_VALUE` bigint, + `DOUBLE_HIGH_VALUE` double, + `DOUBLE_LOW_VALUE` double, + `BIG_DECIMAL_LOW_VALUE` string, + `BIG_DECIMAL_HIGH_VALUE` string, + `NUM_NULLS` bigint, + `NUM_DISTINCTS` bigint, + `AVG_COL_LEN` double, + `MAX_COL_LEN` bigint, + `NUM_TRUES` bigint, + `NUM_FALSES` bigint, + `LAST_ANALYZED` bigint, + CONSTRAINT `SYS_PK_PART_COL_STATS` PRIMARY KEY (`CS_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"CS_ID\", + \"DB_NAME\", + \"TABLE_NAME\", + \"PARTITION_NAME\", + \"COLUMN_NAME\", + \"COLUMN_TYPE\", + \"PART_ID\", + \"LONG_LOW_VALUE\", + \"LONG_HIGH_VALUE\", + \"DOUBLE_HIGH_VALUE\", + \"DOUBLE_LOW_VALUE\", + \"BIG_DECIMAL_LOW_VALUE\", + \"BIG_DECIMAL_HIGH_VALUE\", + \"NUM_NULLS\", + \"NUM_DISTINCTS\", + \"AVG_COL_LEN\", + \"MAX_COL_LEN\", + \"NUM_TRUES\", + \"NUM_FALSES\", + \"LAST_ANALYZED\" +FROM + \"PART_COL_STATS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@PART_COL_STATS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `VERSION` ( + `VER_ID` BIGINT, + `SCHEMA_VERSION` string, + `VERSION_COMMENT` string, + CONSTRAINT `SYS_PK_VERSION` PRIMARY KEY (`VER_ID`) DISABLE +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@VERSION +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `VERSION` ( + `VER_ID` BIGINT, + `SCHEMA_VERSION` string, + `VERSION_COMMENT` string, + CONSTRAINT `SYS_PK_VERSION` PRIMARY KEY (`VER_ID`) DISABLE +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@VERSION +POSTHOOK: Output: database:sys +PREHOOK: query: INSERT INTO `VERSION` VALUES (1, '3.1.0', 'Hive release version 3.1.0') +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: sys@version +POSTHOOK: query: INSERT INTO `VERSION` VALUES (1, '3.1.0', 'Hive release version 3.1.0') +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: sys@version +POSTHOOK: Lineage: version.schema_version SCRIPT [] +POSTHOOK: Lineage: version.ver_id SCRIPT [] +POSTHOOK: Lineage: version.version_comment SCRIPT [] +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `DB_VERSION` ( + `VER_ID` BIGINT, + `SCHEMA_VERSION` string, + `VERSION_COMMENT` string, + CONSTRAINT `SYS_PK_DB_VERSION` PRIMARY KEY (`VER_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"VER_ID\", + \"SCHEMA_VERSION\", + \"VERSION_COMMENT\" +FROM + \"VERSION\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@DB_VERSION +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `DB_VERSION` ( + `VER_ID` BIGINT, + `SCHEMA_VERSION` string, + `VERSION_COMMENT` string, + CONSTRAINT `SYS_PK_DB_VERSION` PRIMARY KEY (`VER_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"VER_ID\", + \"SCHEMA_VERSION\", + \"VERSION_COMMENT\" +FROM + \"VERSION\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@DB_VERSION +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `FUNCS` ( + `FUNC_ID` bigint, + `CLASS_NAME` string, + `CREATE_TIME` int, + `DB_ID` bigint, + `FUNC_NAME` string, + `FUNC_TYPE` int, + `OWNER_NAME` string, + `OWNER_TYPE` string, + CONSTRAINT `SYS_PK_FUNCS` PRIMARY KEY (`FUNC_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"FUNC_ID\", + \"CLASS_NAME\", + \"CREATE_TIME\", + \"DB_ID\", + \"FUNC_NAME\", + \"FUNC_TYPE\", + \"OWNER_NAME\", + \"OWNER_TYPE\" +FROM + \"FUNCS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@FUNCS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `FUNCS` ( + `FUNC_ID` bigint, + `CLASS_NAME` string, + `CREATE_TIME` int, + `DB_ID` bigint, + `FUNC_NAME` string, + `FUNC_TYPE` int, + `OWNER_NAME` string, + `OWNER_TYPE` string, + CONSTRAINT `SYS_PK_FUNCS` PRIMARY KEY (`FUNC_ID`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"FUNC_ID\", + \"CLASS_NAME\", + \"CREATE_TIME\", + \"DB_ID\", + \"FUNC_NAME\", + \"FUNC_TYPE\", + \"OWNER_NAME\", + \"OWNER_TYPE\" +FROM + \"FUNCS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@FUNCS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `KEY_CONSTRAINTS` +( + `CHILD_CD_ID` bigint, + `CHILD_INTEGER_IDX` int, + `CHILD_TBL_ID` bigint, + `PARENT_CD_ID` bigint, + `PARENT_INTEGER_IDX` int, + `PARENT_TBL_ID` bigint, + `POSITION` bigint, + `CONSTRAINT_NAME` string, + `CONSTRAINT_TYPE` string, + `UPDATE_RULE` string, + `DELETE_RULE` string, + `ENABLE_VALIDATE_RELY` int, + `DEFAULT_VALUE` string, + CONSTRAINT `SYS_PK_KEY_CONSTRAINTS` PRIMARY KEY (`CONSTRAINT_NAME`, `POSITION`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"CHILD_CD_ID\", + \"CHILD_INTEGER_IDX\", + \"CHILD_TBL_ID\", + \"PARENT_CD_ID\", + \"PARENT_INTEGER_IDX\", + \"PARENT_TBL_ID\", + \"POSITION\", + \"CONSTRAINT_NAME\", + \"CONSTRAINT_TYPE\", + \"UPDATE_RULE\", + \"DELETE_RULE\", + \"ENABLE_VALIDATE_RELY\", + \"DEFAULT_VALUE\" +FROM + \"KEY_CONSTRAINTS\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@KEY_CONSTRAINTS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `KEY_CONSTRAINTS` +( + `CHILD_CD_ID` bigint, + `CHILD_INTEGER_IDX` int, + `CHILD_TBL_ID` bigint, + `PARENT_CD_ID` bigint, + `PARENT_INTEGER_IDX` int, + `PARENT_TBL_ID` bigint, + `POSITION` bigint, + `CONSTRAINT_NAME` string, + `CONSTRAINT_TYPE` string, + `UPDATE_RULE` string, + `DELETE_RULE` string, + `ENABLE_VALIDATE_RELY` int, + `DEFAULT_VALUE` string, + CONSTRAINT `SYS_PK_KEY_CONSTRAINTS` PRIMARY KEY (`CONSTRAINT_NAME`, `POSITION`) DISABLE +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"CHILD_CD_ID\", + \"CHILD_INTEGER_IDX\", + \"CHILD_TBL_ID\", + \"PARENT_CD_ID\", + \"PARENT_INTEGER_IDX\", + \"PARENT_TBL_ID\", + \"POSITION\", + \"CONSTRAINT_NAME\", + \"CONSTRAINT_TYPE\", + \"UPDATE_RULE\", + \"DELETE_RULE\", + \"ENABLE_VALIDATE_RELY\", + \"DEFAULT_VALUE\" +FROM + \"KEY_CONSTRAINTS\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@KEY_CONSTRAINTS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE VIEW `TABLE_STATS_VIEW` AS +SELECT + `TBL_ID`, + max(CASE `PARAM_KEY` WHEN 'COLUMN_STATS_ACCURATE' THEN `PARAM_VALUE` END) AS COLUMN_STATS_ACCURATE, + max(CASE `PARAM_KEY` WHEN 'numFiles' THEN `PARAM_VALUE` END) AS NUM_FILES, + max(CASE `PARAM_KEY` WHEN 'numRows' THEN `PARAM_VALUE` END) AS NUM_ROWS, + max(CASE `PARAM_KEY` WHEN 'rawDataSize' THEN `PARAM_VALUE` END) AS RAW_DATA_SIZE, + max(CASE `PARAM_KEY` WHEN 'totalSize' THEN `PARAM_VALUE` END) AS TOTAL_SIZE, +#### A masked pattern was here #### +FROM `TABLE_PARAMS` GROUP BY `TBL_ID` +PREHOOK: type: CREATEVIEW +PREHOOK: Input: sys@table_params +PREHOOK: Output: SYS@TABLE_STATS_VIEW +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE VIEW `TABLE_STATS_VIEW` AS +SELECT + `TBL_ID`, + max(CASE `PARAM_KEY` WHEN 'COLUMN_STATS_ACCURATE' THEN `PARAM_VALUE` END) AS COLUMN_STATS_ACCURATE, + max(CASE `PARAM_KEY` WHEN 'numFiles' THEN `PARAM_VALUE` END) AS NUM_FILES, + max(CASE `PARAM_KEY` WHEN 'numRows' THEN `PARAM_VALUE` END) AS NUM_ROWS, + max(CASE `PARAM_KEY` WHEN 'rawDataSize' THEN `PARAM_VALUE` END) AS RAW_DATA_SIZE, + max(CASE `PARAM_KEY` WHEN 'totalSize' THEN `PARAM_VALUE` END) AS TOTAL_SIZE, +#### A masked pattern was here #### +FROM `TABLE_PARAMS` GROUP BY `TBL_ID` +POSTHOOK: type: CREATEVIEW +POSTHOOK: Input: sys@table_params +POSTHOOK: Output: SYS@TABLE_STATS_VIEW +POSTHOOK: Output: database:sys +POSTHOOK: Lineage: TABLE_STATS_VIEW.column_stats_accurate EXPRESSION [(table_params)table_params.FieldSchema(name:param_key, type:string, comment:from deserializer), (table_params)table_params.FieldSchema(name:param_value, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: TABLE_STATS_VIEW.num_files EXPRESSION [(table_params)table_params.FieldSchema(name:param_key, type:string, comment:from deserializer), (table_params)table_params.FieldSchema(name:param_value, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: TABLE_STATS_VIEW.num_rows EXPRESSION [(table_params)table_params.FieldSchema(name:param_key, type:string, comment:from deserializer), (table_params)table_params.FieldSchema(name:param_value, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: TABLE_STATS_VIEW.raw_data_size EXPRESSION [(table_params)table_params.FieldSchema(name:param_key, type:string, comment:from deserializer), (table_params)table_params.FieldSchema(name:param_value, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: TABLE_STATS_VIEW.tbl_id SIMPLE [(table_params)table_params.FieldSchema(name:tbl_id, type:bigint, comment:from deserializer), ] +POSTHOOK: Lineage: TABLE_STATS_VIEW.total_size EXPRESSION [(table_params)table_params.FieldSchema(name:param_key, type:string, comment:from deserializer), (table_params)table_params.FieldSchema(name:param_value, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: TABLE_STATS_VIEW.transient_last_ddl_time EXPRESSION [(table_params)table_params.FieldSchema(name:param_key, type:string, comment:from deserializer), (table_params)table_params.FieldSchema(name:param_value, type:string, comment:from deserializer), ] +PREHOOK: query: CREATE VIEW `PARTITION_STATS_VIEW` AS +SELECT + `PART_ID`, + max(CASE `PARAM_KEY` WHEN 'COLUMN_STATS_ACCURATE' THEN `PARAM_VALUE` END) AS COLUMN_STATS_ACCURATE, + max(CASE `PARAM_KEY` WHEN 'numFiles' THEN `PARAM_VALUE` END) AS NUM_FILES, + max(CASE `PARAM_KEY` WHEN 'numRows' THEN `PARAM_VALUE` END) AS NUM_ROWS, + max(CASE `PARAM_KEY` WHEN 'rawDataSize' THEN `PARAM_VALUE` END) AS RAW_DATA_SIZE, + max(CASE `PARAM_KEY` WHEN 'totalSize' THEN `PARAM_VALUE` END) AS TOTAL_SIZE, +#### A masked pattern was here #### +FROM `PARTITION_PARAMS` GROUP BY `PART_ID` +PREHOOK: type: CREATEVIEW +PREHOOK: Input: sys@partition_params +PREHOOK: Output: SYS@PARTITION_STATS_VIEW +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE VIEW `PARTITION_STATS_VIEW` AS +SELECT + `PART_ID`, + max(CASE `PARAM_KEY` WHEN 'COLUMN_STATS_ACCURATE' THEN `PARAM_VALUE` END) AS COLUMN_STATS_ACCURATE, + max(CASE `PARAM_KEY` WHEN 'numFiles' THEN `PARAM_VALUE` END) AS NUM_FILES, + max(CASE `PARAM_KEY` WHEN 'numRows' THEN `PARAM_VALUE` END) AS NUM_ROWS, + max(CASE `PARAM_KEY` WHEN 'rawDataSize' THEN `PARAM_VALUE` END) AS RAW_DATA_SIZE, + max(CASE `PARAM_KEY` WHEN 'totalSize' THEN `PARAM_VALUE` END) AS TOTAL_SIZE, +#### A masked pattern was here #### +FROM `PARTITION_PARAMS` GROUP BY `PART_ID` +POSTHOOK: type: CREATEVIEW +POSTHOOK: Input: sys@partition_params +POSTHOOK: Output: SYS@PARTITION_STATS_VIEW +POSTHOOK: Output: database:sys +POSTHOOK: Lineage: PARTITION_STATS_VIEW.column_stats_accurate EXPRESSION [(partition_params)partition_params.FieldSchema(name:param_key, type:string, comment:from deserializer), (partition_params)partition_params.FieldSchema(name:param_value, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: PARTITION_STATS_VIEW.num_files EXPRESSION [(partition_params)partition_params.FieldSchema(name:param_key, type:string, comment:from deserializer), (partition_params)partition_params.FieldSchema(name:param_value, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: PARTITION_STATS_VIEW.num_rows EXPRESSION [(partition_params)partition_params.FieldSchema(name:param_key, type:string, comment:from deserializer), (partition_params)partition_params.FieldSchema(name:param_value, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: PARTITION_STATS_VIEW.part_id SIMPLE [(partition_params)partition_params.FieldSchema(name:part_id, type:bigint, comment:from deserializer), ] +POSTHOOK: Lineage: PARTITION_STATS_VIEW.raw_data_size EXPRESSION [(partition_params)partition_params.FieldSchema(name:param_key, type:string, comment:from deserializer), (partition_params)partition_params.FieldSchema(name:param_value, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: PARTITION_STATS_VIEW.total_size EXPRESSION [(partition_params)partition_params.FieldSchema(name:param_key, type:string, comment:from deserializer), (partition_params)partition_params.FieldSchema(name:param_value, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: PARTITION_STATS_VIEW.transient_last_ddl_time EXPRESSION [(partition_params)partition_params.FieldSchema(name:param_key, type:string, comment:from deserializer), (partition_params)partition_params.FieldSchema(name:param_value, type:string, comment:from deserializer), ] +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_RESOURCEPLANS` ( + `NAME` string, + `STATUS` string, + `QUERY_PARALLELISM` int, + `DEFAULT_POOL_PATH` string +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"WM_RESOURCEPLAN\".\"NAME\", + \"STATUS\", + \"WM_RESOURCEPLAN\".\"QUERY_PARALLELISM\", + \"WM_POOL\".\"PATH\" +FROM + \"WM_RESOURCEPLAN\" LEFT OUTER JOIN \"WM_POOL\" ON \"WM_RESOURCEPLAN\".\"DEFAULT_POOL_ID\" = \"WM_POOL\".\"POOL_ID\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@WM_RESOURCEPLANS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_RESOURCEPLANS` ( + `NAME` string, + `STATUS` string, + `QUERY_PARALLELISM` int, + `DEFAULT_POOL_PATH` string +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"WM_RESOURCEPLAN\".\"NAME\", + \"STATUS\", + \"WM_RESOURCEPLAN\".\"QUERY_PARALLELISM\", + \"WM_POOL\".\"PATH\" +FROM + \"WM_RESOURCEPLAN\" LEFT OUTER JOIN \"WM_POOL\" ON \"WM_RESOURCEPLAN\".\"DEFAULT_POOL_ID\" = \"WM_POOL\".\"POOL_ID\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@WM_RESOURCEPLANS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_TRIGGERS` ( + `RP_NAME` string, + `NAME` string, + `TRIGGER_EXPRESSION` string, + `ACTION_EXPRESSION` string +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + r.\"NAME\" AS RP_NAME, + t.\"NAME\" AS NAME, + \"TRIGGER_EXPRESSION\", + \"ACTION_EXPRESSION\" +FROM + \"WM_TRIGGER\" t +JOIN + \"WM_RESOURCEPLAN\" r +ON + t.\"RP_ID\" = r.\"RP_ID\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@WM_TRIGGERS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_TRIGGERS` ( + `RP_NAME` string, + `NAME` string, + `TRIGGER_EXPRESSION` string, + `ACTION_EXPRESSION` string +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + r.\"NAME\" AS RP_NAME, + t.\"NAME\" AS NAME, + \"TRIGGER_EXPRESSION\", + \"ACTION_EXPRESSION\" +FROM + \"WM_TRIGGER\" t +JOIN + \"WM_RESOURCEPLAN\" r +ON + t.\"RP_ID\" = r.\"RP_ID\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@WM_TRIGGERS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_POOLS` ( + `RP_NAME` string, + `PATH` string, + `ALLOC_FRACTION` double, + `QUERY_PARALLELISM` int, + `SCHEDULING_POLICY` string +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"WM_RESOURCEPLAN\".\"NAME\", + \"WM_POOL\".\"PATH\", + \"WM_POOL\".\"ALLOC_FRACTION\", + \"WM_POOL\".\"QUERY_PARALLELISM\", + \"WM_POOL\".\"SCHEDULING_POLICY\" +FROM + \"WM_POOL\" +JOIN + \"WM_RESOURCEPLAN\" +ON + \"WM_POOL\".\"RP_ID\" = \"WM_RESOURCEPLAN\".\"RP_ID\"" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@WM_POOLS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_POOLS` ( + `RP_NAME` string, + `PATH` string, + `ALLOC_FRACTION` double, + `QUERY_PARALLELISM` int, + `SCHEDULING_POLICY` string +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"WM_RESOURCEPLAN\".\"NAME\", + \"WM_POOL\".\"PATH\", + \"WM_POOL\".\"ALLOC_FRACTION\", + \"WM_POOL\".\"QUERY_PARALLELISM\", + \"WM_POOL\".\"SCHEDULING_POLICY\" +FROM + \"WM_POOL\" +JOIN + \"WM_RESOURCEPLAN\" +ON + \"WM_POOL\".\"RP_ID\" = \"WM_RESOURCEPLAN\".\"RP_ID\"" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@WM_POOLS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_POOLS_TO_TRIGGERS` ( + `RP_NAME` string, + `POOL_PATH` string, + `TRIGGER_NAME` string +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"WM_RESOURCEPLAN\".\"NAME\" AS RP_NAME, + \"WM_POOL\".\"PATH\" AS POOL_PATH, + \"WM_TRIGGER\".\"NAME\" AS TRIGGER_NAME +FROM \"WM_POOL_TO_TRIGGER\" + JOIN \"WM_POOL\" ON \"WM_POOL_TO_TRIGGER\".\"POOL_ID\" = \"WM_POOL\".\"POOL_ID\" + JOIN \"WM_TRIGGER\" ON \"WM_POOL_TO_TRIGGER\".\"TRIGGER_ID\" = \"WM_TRIGGER\".\"TRIGGER_ID\" + JOIN \"WM_RESOURCEPLAN\" ON \"WM_POOL\".\"RP_ID\" = \"WM_RESOURCEPLAN\".\"RP_ID\" +UNION +SELECT + \"WM_RESOURCEPLAN\".\"NAME\" AS RP_NAME, + '' AS POOL_PATH, + \"WM_TRIGGER\".\"NAME\" AS TRIGGER_NAME +FROM \"WM_TRIGGER\" + JOIN \"WM_RESOURCEPLAN\" ON \"WM_TRIGGER\".\"RP_ID\" = \"WM_RESOURCEPLAN\".\"RP_ID\" +WHERE CAST(\"WM_TRIGGER\".\"IS_IN_UNMANAGED\" AS CHAR) IN ('1', 't') +" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@WM_POOLS_TO_TRIGGERS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_POOLS_TO_TRIGGERS` ( + `RP_NAME` string, + `POOL_PATH` string, + `TRIGGER_NAME` string +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"WM_RESOURCEPLAN\".\"NAME\" AS RP_NAME, + \"WM_POOL\".\"PATH\" AS POOL_PATH, + \"WM_TRIGGER\".\"NAME\" AS TRIGGER_NAME +FROM \"WM_POOL_TO_TRIGGER\" + JOIN \"WM_POOL\" ON \"WM_POOL_TO_TRIGGER\".\"POOL_ID\" = \"WM_POOL\".\"POOL_ID\" + JOIN \"WM_TRIGGER\" ON \"WM_POOL_TO_TRIGGER\".\"TRIGGER_ID\" = \"WM_TRIGGER\".\"TRIGGER_ID\" + JOIN \"WM_RESOURCEPLAN\" ON \"WM_POOL\".\"RP_ID\" = \"WM_RESOURCEPLAN\".\"RP_ID\" +UNION +SELECT + \"WM_RESOURCEPLAN\".\"NAME\" AS RP_NAME, + '' AS POOL_PATH, + \"WM_TRIGGER\".\"NAME\" AS TRIGGER_NAME +FROM \"WM_TRIGGER\" + JOIN \"WM_RESOURCEPLAN\" ON \"WM_TRIGGER\".\"RP_ID\" = \"WM_RESOURCEPLAN\".\"RP_ID\" +WHERE CAST(\"WM_TRIGGER\".\"IS_IN_UNMANAGED\" AS CHAR) IN ('1', 't') +" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@WM_POOLS_TO_TRIGGERS +POSTHOOK: Output: database:sys +PREHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_MAPPINGS` ( + `RP_NAME` string, + `ENTITY_TYPE` string, + `ENTITY_NAME` string, + `POOL_PATH` string, + `ORDERING` int +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"WM_RESOURCEPLAN\".\"NAME\", + \"ENTITY_TYPE\", + \"ENTITY_NAME\", + case when \"WM_POOL\".\"PATH\" is null then '' else \"WM_POOL\".\"PATH\" end, + \"ORDERING\" +FROM \"WM_MAPPING\" +JOIN \"WM_RESOURCEPLAN\" ON \"WM_MAPPING\".\"RP_ID\" = \"WM_RESOURCEPLAN\".\"RP_ID\" +LEFT OUTER JOIN \"WM_POOL\" ON \"WM_POOL\".\"POOL_ID\" = \"WM_MAPPING\".\"POOL_ID\" +" +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: SYS@WM_MAPPINGS +PREHOOK: Output: database:sys +POSTHOOK: query: CREATE EXTERNAL TABLE IF NOT EXISTS `WM_MAPPINGS` ( + `RP_NAME` string, + `ENTITY_TYPE` string, + `ENTITY_NAME` string, + `POOL_PATH` string, + `ORDERING` int +) +STORED BY 'org.apache.hive.storage.jdbc.JdbcStorageHandler' +TBLPROPERTIES ( +"hive.sql.database.type" = "METASTORE", +"hive.sql.query" = +"SELECT + \"WM_RESOURCEPLAN\".\"NAME\", + \"ENTITY_TYPE\", + \"ENTITY_NAME\", + case when \"WM_POOL\".\"PATH\" is null then '' else \"WM_POOL\".\"PATH\" end, + \"ORDERING\" +FROM \"WM_MAPPING\" +JOIN \"WM_RESOURCEPLAN\" ON \"WM_MAPPING\".\"RP_ID\" = \"WM_RESOURCEPLAN\".\"RP_ID\" +LEFT OUTER JOIN \"WM_POOL\" ON \"WM_POOL\".\"POOL_ID\" = \"WM_MAPPING\".\"POOL_ID\" +" +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: SYS@WM_MAPPINGS +POSTHOOK: Output: database:sys +PREHOOK: query: DROP DATABASE IF EXISTS INFORMATION_SCHEMA CASCADE +PREHOOK: type: DROPDATABASE +POSTHOOK: query: DROP DATABASE IF EXISTS INFORMATION_SCHEMA CASCADE +POSTHOOK: type: DROPDATABASE +PREHOOK: query: CREATE DATABASE INFORMATION_SCHEMA +PREHOOK: type: CREATEDATABASE +PREHOOK: Output: database:INFORMATION_SCHEMA +POSTHOOK: query: CREATE DATABASE INFORMATION_SCHEMA +POSTHOOK: type: CREATEDATABASE +POSTHOOK: Output: database:INFORMATION_SCHEMA +PREHOOK: query: USE INFORMATION_SCHEMA +PREHOOK: type: SWITCHDATABASE +PREHOOK: Input: database:information_schema +POSTHOOK: query: USE INFORMATION_SCHEMA +POSTHOOK: type: SWITCHDATABASE +POSTHOOK: Input: database:information_schema +PREHOOK: query: CREATE VIEW IF NOT EXISTS `SCHEMATA` +( + `CATALOG_NAME`, + `SCHEMA_NAME`, + `SCHEMA_OWNER`, + `DEFAULT_CHARACTER_SET_CATALOG`, + `DEFAULT_CHARACTER_SET_SCHEMA`, + `DEFAULT_CHARACTER_SET_NAME`, + `SQL_PATH` +) AS +SELECT DISTINCT + 'default', + D.`NAME`, + D.`OWNER_NAME`, + cast(null as string), + cast(null as string), + cast(null as string), + `DB_LOCATION_URI` +FROM + `sys`.`DBS` D, `sys`.`TBLS` T, `sys`.`TBL_PRIVS` P +WHERE + NOT restrict_information_schema() OR + D.`DB_ID` = T.`DB_ID` + AND T.`TBL_ID` = P.`TBL_ID` + AND (P.`PRINCIPAL_NAME`=current_user() AND P.`PRINCIPAL_TYPE`='USER' + OR ((array_contains(current_groups(), P.`PRINCIPAL_NAME`) OR P.`PRINCIPAL_NAME` = 'public') AND P.`PRINCIPAL_TYPE`='GROUP')) + AND current_authorizer() = P.`AUTHORIZER` +PREHOOK: type: CREATEVIEW +PREHOOK: Input: sys@dbs +PREHOOK: Input: sys@tbl_privs +PREHOOK: Input: sys@tbls +PREHOOK: Output: INFORMATION_SCHEMA@SCHEMATA +PREHOOK: Output: database:information_schema +POSTHOOK: query: CREATE VIEW IF NOT EXISTS `SCHEMATA` +( + `CATALOG_NAME`, + `SCHEMA_NAME`, + `SCHEMA_OWNER`, + `DEFAULT_CHARACTER_SET_CATALOG`, + `DEFAULT_CHARACTER_SET_SCHEMA`, + `DEFAULT_CHARACTER_SET_NAME`, + `SQL_PATH` +) AS +SELECT DISTINCT + 'default', + D.`NAME`, + D.`OWNER_NAME`, + cast(null as string), + cast(null as string), + cast(null as string), + `DB_LOCATION_URI` +FROM + `sys`.`DBS` D, `sys`.`TBLS` T, `sys`.`TBL_PRIVS` P +WHERE + NOT restrict_information_schema() OR + D.`DB_ID` = T.`DB_ID` + AND T.`TBL_ID` = P.`TBL_ID` + AND (P.`PRINCIPAL_NAME`=current_user() AND P.`PRINCIPAL_TYPE`='USER' + OR ((array_contains(current_groups(), P.`PRINCIPAL_NAME`) OR P.`PRINCIPAL_NAME` = 'public') AND P.`PRINCIPAL_TYPE`='GROUP')) + AND current_authorizer() = P.`AUTHORIZER` +POSTHOOK: type: CREATEVIEW +POSTHOOK: Input: sys@dbs +POSTHOOK: Input: sys@tbl_privs +POSTHOOK: Input: sys@tbls +POSTHOOK: Output: INFORMATION_SCHEMA@SCHEMATA +POSTHOOK: Output: database:information_schema +POSTHOOK: Lineage: SCHEMATA.catalog_name SIMPLE [] +POSTHOOK: Lineage: SCHEMATA.default_character_set_catalog EXPRESSION [] +POSTHOOK: Lineage: SCHEMATA.default_character_set_name EXPRESSION [] +POSTHOOK: Lineage: SCHEMATA.default_character_set_schema EXPRESSION [] +POSTHOOK: Lineage: SCHEMATA.schema_name SIMPLE [(dbs)d.FieldSchema(name:name, type:string, comment:from deserializer), ] +#### A masked pattern was here #### +POSTHOOK: Lineage: SCHEMATA.sql_path SIMPLE [(dbs)d.FieldSchema(name:db_location_uri, type:string, comment:from deserializer), ] +PREHOOK: query: CREATE VIEW IF NOT EXISTS `TABLES` +( + `TABLE_CATALOG`, + `TABLE_SCHEMA`, + `TABLE_NAME`, + `TABLE_TYPE`, + `SELF_REFERENCING_COLUMN_NAME`, + `REFERENCE_GENERATION`, + `USER_DEFINED_TYPE_CATALOG`, + `USER_DEFINED_TYPE_SCHEMA`, + `USER_DEFINED_TYPE_NAME`, + `IS_INSERTABLE_INTO`, + `IS_TYPED`, + `COMMIT_ACTION` +) AS +SELECT DISTINCT + 'default', + D.NAME, + T.TBL_NAME, + IF(length(T.VIEW_ORIGINAL_TEXT) > 0, 'VIEW', 'BASE_TABLE'), + cast(null as string), + cast(null as string), + cast(null as string), + cast(null as string), + cast(null as string), + IF(length(T.VIEW_ORIGINAL_TEXT) > 0, 'NO', 'YES'), + 'NO', + cast(null as string) +FROM + `sys`.`TBLS` T, `sys`.`DBS` D, `sys`.`TBL_PRIVS` P +WHERE + D.`DB_ID` = T.`DB_ID` + AND (NOT restrict_information_schema() OR T.`TBL_ID` = P.`TBL_ID` + AND (P.`PRINCIPAL_NAME`=current_user() AND P.`PRINCIPAL_TYPE`='USER' + OR ((array_contains(current_groups(), P.`PRINCIPAL_NAME`) OR P.`PRINCIPAL_NAME` = 'public') AND P.`PRINCIPAL_TYPE`='GROUP'))) + AND P.`TBL_PRIV`='SELECT' AND P.`AUTHORIZER`=current_authorizer() +PREHOOK: type: CREATEVIEW +PREHOOK: Input: sys@dbs +PREHOOK: Input: sys@tbl_privs +PREHOOK: Input: sys@tbls +PREHOOK: Output: INFORMATION_SCHEMA@TABLES +PREHOOK: Output: database:information_schema +POSTHOOK: query: CREATE VIEW IF NOT EXISTS `TABLES` +( + `TABLE_CATALOG`, + `TABLE_SCHEMA`, + `TABLE_NAME`, + `TABLE_TYPE`, + `SELF_REFERENCING_COLUMN_NAME`, + `REFERENCE_GENERATION`, + `USER_DEFINED_TYPE_CATALOG`, + `USER_DEFINED_TYPE_SCHEMA`, + `USER_DEFINED_TYPE_NAME`, + `IS_INSERTABLE_INTO`, + `IS_TYPED`, + `COMMIT_ACTION` +) AS +SELECT DISTINCT + 'default', + D.NAME, + T.TBL_NAME, + IF(length(T.VIEW_ORIGINAL_TEXT) > 0, 'VIEW', 'BASE_TABLE'), + cast(null as string), + cast(null as string), + cast(null as string), + cast(null as string), + cast(null as string), + IF(length(T.VIEW_ORIGINAL_TEXT) > 0, 'NO', 'YES'), + 'NO', + cast(null as string) +FROM + `sys`.`TBLS` T, `sys`.`DBS` D, `sys`.`TBL_PRIVS` P +WHERE + D.`DB_ID` = T.`DB_ID` + AND (NOT restrict_information_schema() OR T.`TBL_ID` = P.`TBL_ID` + AND (P.`PRINCIPAL_NAME`=current_user() AND P.`PRINCIPAL_TYPE`='USER' + OR ((array_contains(current_groups(), P.`PRINCIPAL_NAME`) OR P.`PRINCIPAL_NAME` = 'public') AND P.`PRINCIPAL_TYPE`='GROUP'))) + AND P.`TBL_PRIV`='SELECT' AND P.`AUTHORIZER`=current_authorizer() +POSTHOOK: type: CREATEVIEW +POSTHOOK: Input: sys@dbs +POSTHOOK: Input: sys@tbl_privs +POSTHOOK: Input: sys@tbls +POSTHOOK: Output: INFORMATION_SCHEMA@TABLES +POSTHOOK: Output: database:information_schema +POSTHOOK: Lineage: TABLES.commit_action EXPRESSION [] +POSTHOOK: Lineage: TABLES.is_insertable_into EXPRESSION [(tbls)t.FieldSchema(name:view_original_text, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: TABLES.is_typed SIMPLE [] +POSTHOOK: Lineage: TABLES.reference_generation EXPRESSION [] +POSTHOOK: Lineage: TABLES.self_referencing_column_name EXPRESSION [] +POSTHOOK: Lineage: TABLES.table_catalog SIMPLE [] +POSTHOOK: Lineage: TABLES.table_name SIMPLE [(tbls)t.FieldSchema(name:tbl_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: TABLES.table_schema SIMPLE [(dbs)d.FieldSchema(name:name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: TABLES.table_type EXPRESSION [(tbls)t.FieldSchema(name:view_original_text, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: TABLES.user_defined_type_catalog EXPRESSION [] +POSTHOOK: Lineage: TABLES.user_defined_type_name EXPRESSION [] +POSTHOOK: Lineage: TABLES.user_defined_type_schema EXPRESSION [] +PREHOOK: query: CREATE VIEW IF NOT EXISTS `TABLE_PRIVILEGES` +( + `GRANTOR`, + `GRANTEE`, + `TABLE_CATALOG`, + `TABLE_SCHEMA`, + `TABLE_NAME`, + `PRIVILEGE_TYPE`, + `IS_GRANTABLE`, + `WITH_HIERARCHY` +) AS +SELECT DISTINCT + P.`GRANTOR`, + P.`PRINCIPAL_NAME`, + 'default', + D.`NAME`, + T.`TBL_NAME`, + P.`TBL_PRIV`, + IF (P.`GRANT_OPTION` == 0, 'NO', 'YES'), + 'NO' +FROM + `sys`.`TBL_PRIVS` P, + `sys`.`TBLS` T, + `sys`.`DBS` D, + `sys`.`TBL_PRIVS` P2 +WHERE + P.`TBL_ID` = T.`TBL_ID` + AND T.`DB_ID` = D.`DB_ID` + AND (NOT restrict_information_schema() OR + P.`TBL_ID` = P2.`TBL_ID` AND P.`PRINCIPAL_NAME` = P2.`PRINCIPAL_NAME` AND P.`PRINCIPAL_TYPE` = P2.`PRINCIPAL_TYPE` + AND (P2.`PRINCIPAL_NAME`=current_user() AND P2.`PRINCIPAL_TYPE`='USER' + OR ((array_contains(current_groups(), P2.`PRINCIPAL_NAME`) OR P2.`PRINCIPAL_NAME` = 'public') AND P2.`PRINCIPAL_TYPE`='GROUP'))) + AND P2.`TBL_PRIV`='SELECT' AND P.`AUTHORIZER` = current_authorizer() AND P2.`AUTHORIZER` = current_authorizer() +PREHOOK: type: CREATEVIEW +PREHOOK: Input: sys@dbs +PREHOOK: Input: sys@tbl_privs +PREHOOK: Input: sys@tbls +PREHOOK: Output: INFORMATION_SCHEMA@TABLE_PRIVILEGES +PREHOOK: Output: database:information_schema +POSTHOOK: query: CREATE VIEW IF NOT EXISTS `TABLE_PRIVILEGES` +( + `GRANTOR`, + `GRANTEE`, + `TABLE_CATALOG`, + `TABLE_SCHEMA`, + `TABLE_NAME`, + `PRIVILEGE_TYPE`, + `IS_GRANTABLE`, + `WITH_HIERARCHY` +) AS +SELECT DISTINCT + P.`GRANTOR`, + P.`PRINCIPAL_NAME`, + 'default', + D.`NAME`, + T.`TBL_NAME`, + P.`TBL_PRIV`, + IF (P.`GRANT_OPTION` == 0, 'NO', 'YES'), + 'NO' +FROM + `sys`.`TBL_PRIVS` P, + `sys`.`TBLS` T, + `sys`.`DBS` D, + `sys`.`TBL_PRIVS` P2 +WHERE + P.`TBL_ID` = T.`TBL_ID` + AND T.`DB_ID` = D.`DB_ID` + AND (NOT restrict_information_schema() OR + P.`TBL_ID` = P2.`TBL_ID` AND P.`PRINCIPAL_NAME` = P2.`PRINCIPAL_NAME` AND P.`PRINCIPAL_TYPE` = P2.`PRINCIPAL_TYPE` + AND (P2.`PRINCIPAL_NAME`=current_user() AND P2.`PRINCIPAL_TYPE`='USER' + OR ((array_contains(current_groups(), P2.`PRINCIPAL_NAME`) OR P2.`PRINCIPAL_NAME` = 'public') AND P2.`PRINCIPAL_TYPE`='GROUP'))) + AND P2.`TBL_PRIV`='SELECT' AND P.`AUTHORIZER` = current_authorizer() AND P2.`AUTHORIZER` = current_authorizer() +POSTHOOK: type: CREATEVIEW +POSTHOOK: Input: sys@dbs +POSTHOOK: Input: sys@tbl_privs +POSTHOOK: Input: sys@tbls +POSTHOOK: Output: INFORMATION_SCHEMA@TABLE_PRIVILEGES +POSTHOOK: Output: database:information_schema +POSTHOOK: Lineage: TABLE_PRIVILEGES.grantee SIMPLE [(tbl_privs)p.FieldSchema(name:principal_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: TABLE_PRIVILEGES.grantor SIMPLE [(tbl_privs)p.FieldSchema(name:grantor, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: TABLE_PRIVILEGES.is_grantable EXPRESSION [(tbl_privs)p.FieldSchema(name:grant_option, type:int, comment:from deserializer), ] +POSTHOOK: Lineage: TABLE_PRIVILEGES.privilege_type SIMPLE [(tbl_privs)p.FieldSchema(name:tbl_priv, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: TABLE_PRIVILEGES.table_catalog SIMPLE [] +POSTHOOK: Lineage: TABLE_PRIVILEGES.table_name SIMPLE [(tbls)t.FieldSchema(name:tbl_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: TABLE_PRIVILEGES.table_schema SIMPLE [(dbs)d.FieldSchema(name:name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: TABLE_PRIVILEGES.with_hierarchy SIMPLE [] +PREHOOK: query: CREATE VIEW IF NOT EXISTS `COLUMNS` +( + `TABLE_CATALOG`, + `TABLE_SCHEMA`, + `TABLE_NAME`, + `COLUMN_NAME`, + `ORDINAL_POSITION`, + `COLUMN_DEFAULT`, + `IS_NULLABLE`, + `DATA_TYPE`, + `CHARACTER_MAXIMUM_LENGTH`, + `CHARACTER_OCTET_LENGTH`, + `NUMERIC_PRECISION`, + `NUMERIC_PRECISION_RADIX`, + `NUMERIC_SCALE`, + `DATETIME_PRECISION`, + `INTERVAL_TYPE`, + `INTERVAL_PRECISION`, + `CHARACTER_SET_CATALOG`, + `CHARACTER_SET_SCHEMA`, + `CHARACTER_SET_NAME`, + `COLLATION_CATALOG`, + `COLLATION_SCHEMA`, + `COLLATION_NAME`, + `UDT_CATALOG`, + `UDT_SCHEMA`, + `UDT_NAME`, + `SCOPE_CATALOG`, + `SCOPE_SCHEMA`, + `SCOPE_NAME`, + `MAXIMUM_CARDINALITY`, + `DTD_IDENTIFIER`, + `IS_SELF_REFERENCING`, + `IS_IDENTITY`, + `IDENTITY_GENERATION`, + `IDENTITY_START`, + `IDENTITY_INCREMENT`, + `IDENTITY_MAXIMUM`, + `IDENTITY_MINIMUM`, + `IDENTITY_CYCLE`, + `IS_GENERATED`, + `GENERATION_EXPRESSION`, + `IS_SYSTEM_TIME_PERIOD_START`, + `IS_SYSTEM_TIME_PERIOD_END`, + `SYSTEM_TIME_PERIOD_TIMESTAMP_GENERATION`, + `IS_UPDATABLE`, + `DECLARED_DATA_TYPE`, + `DECLARED_NUMERIC_PRECISION`, + `DECLARED_NUMERIC_SCALE` +) AS +SELECT DISTINCT + 'default', + D.NAME, + T.TBL_NAME, + C.COLUMN_NAME, + C.INTEGER_IDX, + cast (null as string), + 'YES', + C.TYPE_NAME as TYPE_NAME, + CASE WHEN lower(C.TYPE_NAME) like 'varchar%' THEN cast(regexp_extract(upper(C.TYPE_NAME), '^VARCHAR\\s*\\((\\d+)\\s*\\)$', 1) as int) + WHEN lower(C.TYPE_NAME) like 'char%' THEN cast(regexp_extract(upper(C.TYPE_NAME), '^CHAR\\s*\\((\\d+)\\s*\\)$', 1) as int) + ELSE null END, + CASE WHEN lower(C.TYPE_NAME) like 'varchar%' THEN cast(regexp_extract(upper(C.TYPE_NAME), '^VARCHAR\\s*\\((\\d+)\\s*\\)$', 1) as int) + WHEN lower(C.TYPE_NAME) like 'char%' THEN cast(regexp_extract(upper(C.TYPE_NAME), '^CHAR\\s*\\((\\d+)\\s*\\)$', 1) as int) + ELSE null END, + CASE WHEN lower(C.TYPE_NAME) = 'bigint' THEN 19 + WHEN lower(C.TYPE_NAME) = 'int' THEN 10 + WHEN lower(C.TYPE_NAME) = 'smallint' THEN 5 + WHEN lower(C.TYPE_NAME) = 'tinyint' THEN 3 + WHEN lower(C.TYPE_NAME) = 'float' THEN 23 + WHEN lower(C.TYPE_NAME) = 'double' THEN 53 + WHEN lower(C.TYPE_NAME) like 'decimal%' THEN regexp_extract(upper(C.TYPE_NAME), '^DECIMAL\\s*\\((\\d+)',1) + WHEN lower(C.TYPE_NAME) like 'numeric%' THEN regexp_extract(upper(C.TYPE_NAME), '^NUMERIC\\s*\\((\\d+)',1) + ELSE null END, + CASE WHEN lower(C.TYPE_NAME) = 'bigint' THEN 10 + WHEN lower(C.TYPE_NAME) = 'int' THEN 10 + WHEN lower(C.TYPE_NAME) = 'smallint' THEN 10 + WHEN lower(C.TYPE_NAME) = 'tinyint' THEN 10 + WHEN lower(C.TYPE_NAME) = 'float' THEN 2 + WHEN lower(C.TYPE_NAME) = 'double' THEN 2 + WHEN lower(C.TYPE_NAME) like 'decimal%' THEN 10 + WHEN lower(C.TYPE_NAME) like 'numeric%' THEN 10 + ELSE null END, + CASE WHEN lower(C.TYPE_NAME) like 'decimal%' THEN regexp_extract(upper(C.TYPE_NAME), '^DECIMAL\\s*\\((\\d+),(\\d+)',2) + WHEN lower(C.TYPE_NAME) like 'numeric%' THEN regexp_extract(upper(C.TYPE_NAME), '^NUMERIC\\s*\\((\\d+),(\\d+)',2) + ELSE null END, + CASE WHEN lower(C.TYPE_NAME) = 'date' THEN 0 + WHEN lower(C.TYPE_NAME) = 'timestamp' THEN 9 + ELSE null END, + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + C.CD_ID, + 'NO', + 'NO', + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + 'NEVER', + cast (null as string), + 'NO', + 'NO', + cast (null as string), + 'YES', + C.TYPE_NAME as DECLARED_DATA_TYPE, + CASE WHEN lower(C.TYPE_NAME) = 'bigint' THEN 19 + WHEN lower(C.TYPE_NAME) = 'int' THEN 10 + WHEN lower(C.TYPE_NAME) = 'smallint' THEN 5 + WHEN lower(C.TYPE_NAME) = 'tinyint' THEN 3 + WHEN lower(C.TYPE_NAME) = 'float' THEN 23 + WHEN lower(C.TYPE_NAME) = 'double' THEN 53 + WHEN lower(C.TYPE_NAME) like 'decimal%' THEN regexp_extract(upper(C.TYPE_NAME), '^DECIMAL\\s*\\((\\d+)',1) + WHEN lower(C.TYPE_NAME) like 'numeric%' THEN regexp_extract(upper(C.TYPE_NAME), '^NUMERIC\\s*\\((\\d+)',1) + ELSE null END, + CASE WHEN lower(C.TYPE_NAME) = 'bigint' THEN 10 + WHEN lower(C.TYPE_NAME) = 'int' THEN 10 + WHEN lower(C.TYPE_NAME) = 'smallint' THEN 10 + WHEN lower(C.TYPE_NAME) = 'tinyint' THEN 10 + WHEN lower(C.TYPE_NAME) = 'float' THEN 2 + WHEN lower(C.TYPE_NAME) = 'double' THEN 2 + WHEN lower(C.TYPE_NAME) like 'decimal%' THEN 10 + WHEN lower(C.TYPE_NAME) like 'numeric%' THEN 10 + ELSE null END +FROM + `sys`.`COLUMNS_V2` C, + `sys`.`SDS` S, + `sys`.`TBLS` T, + `sys`.`DBS` D, + `sys`.`TBL_COL_PRIVS` P +WHERE + S.`SD_ID` = T.`SD_ID` + AND T.`DB_ID` = D.`DB_ID` + AND C.`CD_ID` = S.`CD_ID` + AND (NOT restrict_information_schema() OR + T.`TBL_ID` = P.`TBL_ID` + AND C.`COLUMN_NAME` = P.`COLUMN_NAME` + AND (P.`PRINCIPAL_NAME`=current_user() AND P.`PRINCIPAL_TYPE`='USER' + OR ((array_contains(current_groups(), P.`PRINCIPAL_NAME`) OR P.`PRINCIPAL_NAME` = 'public') AND P.`PRINCIPAL_TYPE`='GROUP')) + AND P.`TBL_COL_PRIV`='SELECT' AND P.`AUTHORIZER`=current_authorizer()) +PREHOOK: type: CREATEVIEW +PREHOOK: Input: sys@columns_v2 +PREHOOK: Input: sys@dbs +PREHOOK: Input: sys@sds +PREHOOK: Input: sys@tbl_col_privs +PREHOOK: Input: sys@tbls +PREHOOK: Output: INFORMATION_SCHEMA@COLUMNS +PREHOOK: Output: database:information_schema +POSTHOOK: query: CREATE VIEW IF NOT EXISTS `COLUMNS` +( + `TABLE_CATALOG`, + `TABLE_SCHEMA`, + `TABLE_NAME`, + `COLUMN_NAME`, + `ORDINAL_POSITION`, + `COLUMN_DEFAULT`, + `IS_NULLABLE`, + `DATA_TYPE`, + `CHARACTER_MAXIMUM_LENGTH`, + `CHARACTER_OCTET_LENGTH`, + `NUMERIC_PRECISION`, + `NUMERIC_PRECISION_RADIX`, + `NUMERIC_SCALE`, + `DATETIME_PRECISION`, + `INTERVAL_TYPE`, + `INTERVAL_PRECISION`, + `CHARACTER_SET_CATALOG`, + `CHARACTER_SET_SCHEMA`, + `CHARACTER_SET_NAME`, + `COLLATION_CATALOG`, + `COLLATION_SCHEMA`, + `COLLATION_NAME`, + `UDT_CATALOG`, + `UDT_SCHEMA`, + `UDT_NAME`, + `SCOPE_CATALOG`, + `SCOPE_SCHEMA`, + `SCOPE_NAME`, + `MAXIMUM_CARDINALITY`, + `DTD_IDENTIFIER`, + `IS_SELF_REFERENCING`, + `IS_IDENTITY`, + `IDENTITY_GENERATION`, + `IDENTITY_START`, + `IDENTITY_INCREMENT`, + `IDENTITY_MAXIMUM`, + `IDENTITY_MINIMUM`, + `IDENTITY_CYCLE`, + `IS_GENERATED`, + `GENERATION_EXPRESSION`, + `IS_SYSTEM_TIME_PERIOD_START`, + `IS_SYSTEM_TIME_PERIOD_END`, + `SYSTEM_TIME_PERIOD_TIMESTAMP_GENERATION`, + `IS_UPDATABLE`, + `DECLARED_DATA_TYPE`, + `DECLARED_NUMERIC_PRECISION`, + `DECLARED_NUMERIC_SCALE` +) AS +SELECT DISTINCT + 'default', + D.NAME, + T.TBL_NAME, + C.COLUMN_NAME, + C.INTEGER_IDX, + cast (null as string), + 'YES', + C.TYPE_NAME as TYPE_NAME, + CASE WHEN lower(C.TYPE_NAME) like 'varchar%' THEN cast(regexp_extract(upper(C.TYPE_NAME), '^VARCHAR\\s*\\((\\d+)\\s*\\)$', 1) as int) + WHEN lower(C.TYPE_NAME) like 'char%' THEN cast(regexp_extract(upper(C.TYPE_NAME), '^CHAR\\s*\\((\\d+)\\s*\\)$', 1) as int) + ELSE null END, + CASE WHEN lower(C.TYPE_NAME) like 'varchar%' THEN cast(regexp_extract(upper(C.TYPE_NAME), '^VARCHAR\\s*\\((\\d+)\\s*\\)$', 1) as int) + WHEN lower(C.TYPE_NAME) like 'char%' THEN cast(regexp_extract(upper(C.TYPE_NAME), '^CHAR\\s*\\((\\d+)\\s*\\)$', 1) as int) + ELSE null END, + CASE WHEN lower(C.TYPE_NAME) = 'bigint' THEN 19 + WHEN lower(C.TYPE_NAME) = 'int' THEN 10 + WHEN lower(C.TYPE_NAME) = 'smallint' THEN 5 + WHEN lower(C.TYPE_NAME) = 'tinyint' THEN 3 + WHEN lower(C.TYPE_NAME) = 'float' THEN 23 + WHEN lower(C.TYPE_NAME) = 'double' THEN 53 + WHEN lower(C.TYPE_NAME) like 'decimal%' THEN regexp_extract(upper(C.TYPE_NAME), '^DECIMAL\\s*\\((\\d+)',1) + WHEN lower(C.TYPE_NAME) like 'numeric%' THEN regexp_extract(upper(C.TYPE_NAME), '^NUMERIC\\s*\\((\\d+)',1) + ELSE null END, + CASE WHEN lower(C.TYPE_NAME) = 'bigint' THEN 10 + WHEN lower(C.TYPE_NAME) = 'int' THEN 10 + WHEN lower(C.TYPE_NAME) = 'smallint' THEN 10 + WHEN lower(C.TYPE_NAME) = 'tinyint' THEN 10 + WHEN lower(C.TYPE_NAME) = 'float' THEN 2 + WHEN lower(C.TYPE_NAME) = 'double' THEN 2 + WHEN lower(C.TYPE_NAME) like 'decimal%' THEN 10 + WHEN lower(C.TYPE_NAME) like 'numeric%' THEN 10 + ELSE null END, + CASE WHEN lower(C.TYPE_NAME) like 'decimal%' THEN regexp_extract(upper(C.TYPE_NAME), '^DECIMAL\\s*\\((\\d+),(\\d+)',2) + WHEN lower(C.TYPE_NAME) like 'numeric%' THEN regexp_extract(upper(C.TYPE_NAME), '^NUMERIC\\s*\\((\\d+),(\\d+)',2) + ELSE null END, + CASE WHEN lower(C.TYPE_NAME) = 'date' THEN 0 + WHEN lower(C.TYPE_NAME) = 'timestamp' THEN 9 + ELSE null END, + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + C.CD_ID, + 'NO', + 'NO', + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + cast (null as string), + 'NEVER', + cast (null as string), + 'NO', + 'NO', + cast (null as string), + 'YES', + C.TYPE_NAME as DECLARED_DATA_TYPE, + CASE WHEN lower(C.TYPE_NAME) = 'bigint' THEN 19 + WHEN lower(C.TYPE_NAME) = 'int' THEN 10 + WHEN lower(C.TYPE_NAME) = 'smallint' THEN 5 + WHEN lower(C.TYPE_NAME) = 'tinyint' THEN 3 + WHEN lower(C.TYPE_NAME) = 'float' THEN 23 + WHEN lower(C.TYPE_NAME) = 'double' THEN 53 + WHEN lower(C.TYPE_NAME) like 'decimal%' THEN regexp_extract(upper(C.TYPE_NAME), '^DECIMAL\\s*\\((\\d+)',1) + WHEN lower(C.TYPE_NAME) like 'numeric%' THEN regexp_extract(upper(C.TYPE_NAME), '^NUMERIC\\s*\\((\\d+)',1) + ELSE null END, + CASE WHEN lower(C.TYPE_NAME) = 'bigint' THEN 10 + WHEN lower(C.TYPE_NAME) = 'int' THEN 10 + WHEN lower(C.TYPE_NAME) = 'smallint' THEN 10 + WHEN lower(C.TYPE_NAME) = 'tinyint' THEN 10 + WHEN lower(C.TYPE_NAME) = 'float' THEN 2 + WHEN lower(C.TYPE_NAME) = 'double' THEN 2 + WHEN lower(C.TYPE_NAME) like 'decimal%' THEN 10 + WHEN lower(C.TYPE_NAME) like 'numeric%' THEN 10 + ELSE null END +FROM + `sys`.`COLUMNS_V2` C, + `sys`.`SDS` S, + `sys`.`TBLS` T, + `sys`.`DBS` D, + `sys`.`TBL_COL_PRIVS` P +WHERE + S.`SD_ID` = T.`SD_ID` + AND T.`DB_ID` = D.`DB_ID` + AND C.`CD_ID` = S.`CD_ID` + AND (NOT restrict_information_schema() OR + T.`TBL_ID` = P.`TBL_ID` + AND C.`COLUMN_NAME` = P.`COLUMN_NAME` + AND (P.`PRINCIPAL_NAME`=current_user() AND P.`PRINCIPAL_TYPE`='USER' + OR ((array_contains(current_groups(), P.`PRINCIPAL_NAME`) OR P.`PRINCIPAL_NAME` = 'public') AND P.`PRINCIPAL_TYPE`='GROUP')) + AND P.`TBL_COL_PRIV`='SELECT' AND P.`AUTHORIZER`=current_authorizer()) +POSTHOOK: type: CREATEVIEW +POSTHOOK: Input: sys@columns_v2 +POSTHOOK: Input: sys@dbs +POSTHOOK: Input: sys@sds +POSTHOOK: Input: sys@tbl_col_privs +POSTHOOK: Input: sys@tbls +POSTHOOK: Output: INFORMATION_SCHEMA@COLUMNS +POSTHOOK: Output: database:information_schema +POSTHOOK: Lineage: COLUMNS.character_maximum_length EXPRESSION [(columns_v2)c.FieldSchema(name:type_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMNS.character_octet_length EXPRESSION [(columns_v2)c.FieldSchema(name:type_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMNS.character_set_catalog EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.character_set_name EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.character_set_schema EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.collation_catalog EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.collation_name EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.collation_schema EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.column_default EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.column_name SIMPLE [(columns_v2)c.FieldSchema(name:column_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMNS.data_type SIMPLE [(columns_v2)c.FieldSchema(name:type_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMNS.datetime_precision EXPRESSION [(columns_v2)c.FieldSchema(name:type_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMNS.declared_data_type SIMPLE [(columns_v2)c.FieldSchema(name:type_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMNS.declared_numeric_precision EXPRESSION [(columns_v2)c.FieldSchema(name:type_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMNS.declared_numeric_scale EXPRESSION [(columns_v2)c.FieldSchema(name:type_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMNS.dtd_identifier SIMPLE [(columns_v2)c.FieldSchema(name:cd_id, type:bigint, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMNS.generation_expression EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.identity_cycle EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.identity_generation EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.identity_increment EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.identity_maximum EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.identity_minimum EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.identity_start EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.interval_precision EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.interval_type EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.is_generated SIMPLE [] +POSTHOOK: Lineage: COLUMNS.is_identity SIMPLE [] +POSTHOOK: Lineage: COLUMNS.is_nullable SIMPLE [] +POSTHOOK: Lineage: COLUMNS.is_self_referencing SIMPLE [] +POSTHOOK: Lineage: COLUMNS.is_system_time_period_end SIMPLE [] +POSTHOOK: Lineage: COLUMNS.is_system_time_period_start SIMPLE [] +POSTHOOK: Lineage: COLUMNS.is_updatable SIMPLE [] +POSTHOOK: Lineage: COLUMNS.maximum_cardinality EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.numeric_precision EXPRESSION [(columns_v2)c.FieldSchema(name:type_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMNS.numeric_precision_radix EXPRESSION [(columns_v2)c.FieldSchema(name:type_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMNS.numeric_scale EXPRESSION [(columns_v2)c.FieldSchema(name:type_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMNS.ordinal_position SIMPLE [(columns_v2)c.FieldSchema(name:integer_idx, type:int, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMNS.scope_catalog EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.scope_name EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.scope_schema EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.system_time_period_timestamp_generation EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.table_catalog SIMPLE [] +POSTHOOK: Lineage: COLUMNS.table_name SIMPLE [(tbls)t.FieldSchema(name:tbl_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMNS.table_schema SIMPLE [(dbs)d.FieldSchema(name:name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMNS.udt_catalog EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.udt_name EXPRESSION [] +POSTHOOK: Lineage: COLUMNS.udt_schema EXPRESSION [] +PREHOOK: query: CREATE VIEW IF NOT EXISTS `COLUMN_PRIVILEGES` +( + `GRANTOR`, + `GRANTEE`, + `TABLE_CATALOG`, + `TABLE_SCHEMA`, + `TABLE_NAME`, + `COLUMN_NAME`, + `PRIVILEGE_TYPE`, + `IS_GRANTABLE` +) AS +SELECT DISTINCT + P.`GRANTOR`, + P.`PRINCIPAL_NAME`, + 'default', + D.`NAME`, + T.`TBL_NAME`, + P.`COLUMN_NAME`, + P.`TBL_COL_PRIV`, + IF (P.`GRANT_OPTION` == 0, 'NO', 'YES') +FROM + `sys`.`TBL_COL_PRIVS` P, + `sys`.`TBLS` T, + `sys`.`DBS` D, + `sys`.`SDS` S, + `sys`.`TBL_PRIVS` P2 +WHERE + S.`SD_ID` = T.`SD_ID` + AND T.`DB_ID` = D.`DB_ID` + AND P.`TBL_ID` = T.`TBL_ID` + AND (NOT restrict_information_schema() OR + P.`TBL_ID` = P2.`TBL_ID` AND P.`PRINCIPAL_NAME` = P2.`PRINCIPAL_NAME` AND P.`PRINCIPAL_TYPE` = P2.`PRINCIPAL_TYPE` + AND (P2.`PRINCIPAL_NAME`=current_user() AND P2.`PRINCIPAL_TYPE`='USER' + OR ((array_contains(current_groups(), P2.`PRINCIPAL_NAME`) OR P2.`PRINCIPAL_NAME` = 'public') AND P2.`PRINCIPAL_TYPE`='GROUP')) + AND P2.`TBL_PRIV`='SELECT' AND P.`AUTHORIZER`=current_authorizer() AND P2.`AUTHORIZER`=current_authorizer()) +PREHOOK: type: CREATEVIEW +PREHOOK: Input: sys@dbs +PREHOOK: Input: sys@sds +PREHOOK: Input: sys@tbl_col_privs +PREHOOK: Input: sys@tbl_privs +PREHOOK: Input: sys@tbls +PREHOOK: Output: INFORMATION_SCHEMA@COLUMN_PRIVILEGES +PREHOOK: Output: database:information_schema +POSTHOOK: query: CREATE VIEW IF NOT EXISTS `COLUMN_PRIVILEGES` +( + `GRANTOR`, + `GRANTEE`, + `TABLE_CATALOG`, + `TABLE_SCHEMA`, + `TABLE_NAME`, + `COLUMN_NAME`, + `PRIVILEGE_TYPE`, + `IS_GRANTABLE` +) AS +SELECT DISTINCT + P.`GRANTOR`, + P.`PRINCIPAL_NAME`, + 'default', + D.`NAME`, + T.`TBL_NAME`, + P.`COLUMN_NAME`, + P.`TBL_COL_PRIV`, + IF (P.`GRANT_OPTION` == 0, 'NO', 'YES') +FROM + `sys`.`TBL_COL_PRIVS` P, + `sys`.`TBLS` T, + `sys`.`DBS` D, + `sys`.`SDS` S, + `sys`.`TBL_PRIVS` P2 +WHERE + S.`SD_ID` = T.`SD_ID` + AND T.`DB_ID` = D.`DB_ID` + AND P.`TBL_ID` = T.`TBL_ID` + AND (NOT restrict_information_schema() OR + P.`TBL_ID` = P2.`TBL_ID` AND P.`PRINCIPAL_NAME` = P2.`PRINCIPAL_NAME` AND P.`PRINCIPAL_TYPE` = P2.`PRINCIPAL_TYPE` + AND (P2.`PRINCIPAL_NAME`=current_user() AND P2.`PRINCIPAL_TYPE`='USER' + OR ((array_contains(current_groups(), P2.`PRINCIPAL_NAME`) OR P2.`PRINCIPAL_NAME` = 'public') AND P2.`PRINCIPAL_TYPE`='GROUP')) + AND P2.`TBL_PRIV`='SELECT' AND P.`AUTHORIZER`=current_authorizer() AND P2.`AUTHORIZER`=current_authorizer()) +POSTHOOK: type: CREATEVIEW +POSTHOOK: Input: sys@dbs +POSTHOOK: Input: sys@sds +POSTHOOK: Input: sys@tbl_col_privs +POSTHOOK: Input: sys@tbl_privs +POSTHOOK: Input: sys@tbls +POSTHOOK: Output: INFORMATION_SCHEMA@COLUMN_PRIVILEGES +POSTHOOK: Output: database:information_schema +POSTHOOK: Lineage: COLUMN_PRIVILEGES.column_name SIMPLE [(tbl_col_privs)p.FieldSchema(name:column_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMN_PRIVILEGES.grantee SIMPLE [(tbl_col_privs)p.FieldSchema(name:principal_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMN_PRIVILEGES.grantor SIMPLE [(tbl_col_privs)p.FieldSchema(name:grantor, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMN_PRIVILEGES.is_grantable EXPRESSION [(tbl_col_privs)p.FieldSchema(name:grant_option, type:int, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMN_PRIVILEGES.privilege_type SIMPLE [(tbl_col_privs)p.FieldSchema(name:tbl_col_priv, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMN_PRIVILEGES.table_catalog SIMPLE [] +POSTHOOK: Lineage: COLUMN_PRIVILEGES.table_name SIMPLE [(tbls)t.FieldSchema(name:tbl_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: COLUMN_PRIVILEGES.table_schema SIMPLE [(dbs)d.FieldSchema(name:name, type:string, comment:from deserializer), ] +PREHOOK: query: CREATE VIEW IF NOT EXISTS `VIEWS` +( + `TABLE_CATALOG`, + `TABLE_SCHEMA`, + `TABLE_NAME`, + `VIEW_DEFINITION`, + `CHECK_OPTION`, + `IS_UPDATABLE`, + `IS_INSERTABLE_INTO`, + `IS_TRIGGER_UPDATABLE`, + `IS_TRIGGER_DELETABLE`, + `IS_TRIGGER_INSERTABLE_INTO` +) AS +SELECT DISTINCT + 'default', + D.NAME, + T.TBL_NAME, + T.VIEW_ORIGINAL_TEXT, + CAST(NULL as string), + false, + false, + false, + false, + false +FROM + `sys`.`DBS` D, + `sys`.`TBLS` T, + `sys`.`TBL_PRIVS` P +WHERE + D.`DB_ID` = T.`DB_ID` + AND length(T.VIEW_ORIGINAL_TEXT) > 0 + AND (NOT restrict_information_schema() OR + T.`TBL_ID` = P.`TBL_ID` + AND (P.`PRINCIPAL_NAME`=current_user() AND P.`PRINCIPAL_TYPE`='USER' + OR ((array_contains(current_groups(), P.`PRINCIPAL_NAME`) OR P.`PRINCIPAL_NAME` = 'public') AND P.`PRINCIPAL_TYPE`='GROUP')) + AND P.`TBL_PRIV`='SELECT' AND P.`AUTHORIZER`=current_authorizer()) +PREHOOK: type: CREATEVIEW +PREHOOK: Input: sys@dbs +PREHOOK: Input: sys@tbl_privs +PREHOOK: Input: sys@tbls +PREHOOK: Output: INFORMATION_SCHEMA@VIEWS +PREHOOK: Output: database:information_schema +POSTHOOK: query: CREATE VIEW IF NOT EXISTS `VIEWS` +( + `TABLE_CATALOG`, + `TABLE_SCHEMA`, + `TABLE_NAME`, + `VIEW_DEFINITION`, + `CHECK_OPTION`, + `IS_UPDATABLE`, + `IS_INSERTABLE_INTO`, + `IS_TRIGGER_UPDATABLE`, + `IS_TRIGGER_DELETABLE`, + `IS_TRIGGER_INSERTABLE_INTO` +) AS +SELECT DISTINCT + 'default', + D.NAME, + T.TBL_NAME, + T.VIEW_ORIGINAL_TEXT, + CAST(NULL as string), + false, + false, + false, + false, + false +FROM + `sys`.`DBS` D, + `sys`.`TBLS` T, + `sys`.`TBL_PRIVS` P +WHERE + D.`DB_ID` = T.`DB_ID` + AND length(T.VIEW_ORIGINAL_TEXT) > 0 + AND (NOT restrict_information_schema() OR + T.`TBL_ID` = P.`TBL_ID` + AND (P.`PRINCIPAL_NAME`=current_user() AND P.`PRINCIPAL_TYPE`='USER' + OR ((array_contains(current_groups(), P.`PRINCIPAL_NAME`) OR P.`PRINCIPAL_NAME` = 'public') AND P.`PRINCIPAL_TYPE`='GROUP')) + AND P.`TBL_PRIV`='SELECT' AND P.`AUTHORIZER`=current_authorizer()) +POSTHOOK: type: CREATEVIEW +POSTHOOK: Input: sys@dbs +POSTHOOK: Input: sys@tbl_privs +POSTHOOK: Input: sys@tbls +POSTHOOK: Output: INFORMATION_SCHEMA@VIEWS +POSTHOOK: Output: database:information_schema +POSTHOOK: Lineage: VIEWS.check_option EXPRESSION [] +POSTHOOK: Lineage: VIEWS.is_insertable_into SIMPLE [] +POSTHOOK: Lineage: VIEWS.is_trigger_deletable SIMPLE [] +POSTHOOK: Lineage: VIEWS.is_trigger_insertable_into SIMPLE [] +POSTHOOK: Lineage: VIEWS.is_trigger_updatable SIMPLE [] +POSTHOOK: Lineage: VIEWS.is_updatable SIMPLE [] +POSTHOOK: Lineage: VIEWS.table_catalog SIMPLE [] +POSTHOOK: Lineage: VIEWS.table_name SIMPLE [(tbls)t.FieldSchema(name:tbl_name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: VIEWS.table_schema SIMPLE [(dbs)d.FieldSchema(name:name, type:string, comment:from deserializer), ] +POSTHOOK: Lineage: VIEWS.view_definition SIMPLE [(tbls)t.FieldSchema(name:view_original_text, type:string, comment:from deserializer), ] +PREHOOK: query: use sys +PREHOOK: type: SWITCHDATABASE +PREHOOK: Input: database:sys +POSTHOOK: query: use sys +POSTHOOK: type: SWITCHDATABASE +POSTHOOK: Input: database:sys +PREHOOK: query: select tbl_name, tbl_type from tbls where tbl_name like 'smt_sysdb%' order by tbl_name +PREHOOK: type: QUERY +PREHOOK: Input: sys@tbls +#### A masked pattern was here #### +POSTHOOK: query: select tbl_name, tbl_type from tbls where tbl_name like 'smt_sysdb%' order by tbl_name +POSTHOOK: type: QUERY +POSTHOOK: Input: sys@tbls +#### A masked pattern was here #### +smt_sysdb_moretypes EXTERNAL_TABLE +smt_sysdb_scr_txn MANAGED_TABLE +smt_sysdb_src_buck EXTERNAL_TABLE +smt_sysdb_src_skew EXTERNAL_TABLE +smt_sysdb_view VIRTUAL_VIEW +PREHOOK: query: drop table smt_sysdb_src_buck +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table smt_sysdb_src_buck +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table smt_sysdb_src_skew +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table smt_sysdb_src_skew +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table smt_sysdb_scr_txn +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table smt_sysdb_scr_txn +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table smt_sysdb_src_tmp +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table smt_sysdb_src_tmp +POSTHOOK: type: DROPTABLE +PREHOOK: query: drop table smt_sysdb_moretypes +PREHOOK: type: DROPTABLE +POSTHOOK: query: drop table smt_sysdb_moretypes +POSTHOOK: type: DROPTABLE +PREHOOK: query: DROP DATABASE IF EXISTS SYS CASCADE +PREHOOK: type: DROPDATABASE +PREHOOK: Input: database:sys +PREHOOK: Output: database:sys +PREHOOK: Output: sys@bucketing_cols +PREHOOK: Output: sys@cds +PREHOOK: Output: sys@columns_v2 +PREHOOK: Output: sys@database_params +PREHOOK: Output: sys@db_privs +PREHOOK: Output: sys@db_version +PREHOOK: Output: sys@dbs +PREHOOK: Output: sys@funcs +PREHOOK: Output: sys@global_privs +PREHOOK: Output: sys@key_constraints +PREHOOK: Output: sys@mv_creation_metadata +PREHOOK: Output: sys@mv_tables_used +PREHOOK: Output: sys@part_col_privs +PREHOOK: Output: sys@part_col_stats +PREHOOK: Output: sys@part_privs +PREHOOK: Output: sys@partition_key_vals +PREHOOK: Output: sys@partition_keys +PREHOOK: Output: sys@partition_params +PREHOOK: Output: sys@partition_stats_view +PREHOOK: Output: sys@partitions +PREHOOK: Output: sys@role_map +PREHOOK: Output: sys@roles +PREHOOK: Output: sys@sd_params +PREHOOK: Output: sys@sds +PREHOOK: Output: sys@sequence_table +PREHOOK: Output: sys@serde_params +PREHOOK: Output: sys@serdes +PREHOOK: Output: sys@skewed_col_names +PREHOOK: Output: sys@skewed_col_value_loc_map +PREHOOK: Output: sys@skewed_string_list +PREHOOK: Output: sys@skewed_string_list_values +PREHOOK: Output: sys@skewed_values +PREHOOK: Output: sys@sort_cols +PREHOOK: Output: sys@tab_col_stats +PREHOOK: Output: sys@table_params +PREHOOK: Output: sys@table_stats_view +PREHOOK: Output: sys@tbl_col_privs +PREHOOK: Output: sys@tbl_privs +PREHOOK: Output: sys@tbls +PREHOOK: Output: sys@version +PREHOOK: Output: sys@wm_mappings +PREHOOK: Output: sys@wm_pools +PREHOOK: Output: sys@wm_pools_to_triggers +PREHOOK: Output: sys@wm_resourceplans +PREHOOK: Output: sys@wm_triggers +POSTHOOK: query: DROP DATABASE IF EXISTS SYS CASCADE +POSTHOOK: type: DROPDATABASE +POSTHOOK: Input: database:sys +POSTHOOK: Output: database:sys +POSTHOOK: Output: sys@bucketing_cols +POSTHOOK: Output: sys@cds +POSTHOOK: Output: sys@columns_v2 +POSTHOOK: Output: sys@database_params +POSTHOOK: Output: sys@db_privs +POSTHOOK: Output: sys@db_version +POSTHOOK: Output: sys@dbs +POSTHOOK: Output: sys@funcs +POSTHOOK: Output: sys@global_privs +POSTHOOK: Output: sys@key_constraints +POSTHOOK: Output: sys@mv_creation_metadata +POSTHOOK: Output: sys@mv_tables_used +POSTHOOK: Output: sys@part_col_privs +POSTHOOK: Output: sys@part_col_stats +POSTHOOK: Output: sys@part_privs +POSTHOOK: Output: sys@partition_key_vals +POSTHOOK: Output: sys@partition_keys +POSTHOOK: Output: sys@partition_params +POSTHOOK: Output: sys@partition_stats_view +POSTHOOK: Output: sys@partitions +POSTHOOK: Output: sys@role_map +POSTHOOK: Output: sys@roles +POSTHOOK: Output: sys@sd_params +POSTHOOK: Output: sys@sds +POSTHOOK: Output: sys@sequence_table +POSTHOOK: Output: sys@serde_params +POSTHOOK: Output: sys@serdes +POSTHOOK: Output: sys@skewed_col_names +POSTHOOK: Output: sys@skewed_col_value_loc_map +POSTHOOK: Output: sys@skewed_string_list +POSTHOOK: Output: sys@skewed_string_list_values +POSTHOOK: Output: sys@skewed_values +POSTHOOK: Output: sys@sort_cols +POSTHOOK: Output: sys@tab_col_stats +POSTHOOK: Output: sys@table_params +POSTHOOK: Output: sys@table_stats_view +POSTHOOK: Output: sys@tbl_col_privs +POSTHOOK: Output: sys@tbl_privs +POSTHOOK: Output: sys@tbls +POSTHOOK: Output: sys@version +POSTHOOK: Output: sys@wm_mappings +POSTHOOK: Output: sys@wm_pools +POSTHOOK: Output: sys@wm_pools_to_triggers +POSTHOOK: Output: sys@wm_resourceplans +POSTHOOK: Output: sys@wm_triggers +PREHOOK: query: DROP DATABASE IF EXISTS INFORMATION_SCHEMA CASCADE +PREHOOK: type: DROPDATABASE +PREHOOK: Input: database:information_schema +PREHOOK: Output: database:information_schema +PREHOOK: Output: information_schema@column_privileges +PREHOOK: Output: information_schema@columns +PREHOOK: Output: information_schema@schemata +PREHOOK: Output: information_schema@table_privileges +PREHOOK: Output: information_schema@tables +PREHOOK: Output: information_schema@views +POSTHOOK: query: DROP DATABASE IF EXISTS INFORMATION_SCHEMA CASCADE +POSTHOOK: type: DROPDATABASE +POSTHOOK: Input: database:information_schema +POSTHOOK: Output: database:information_schema +POSTHOOK: Output: information_schema@column_privileges +POSTHOOK: Output: information_schema@columns +POSTHOOK: Output: information_schema@schemata +POSTHOOK: Output: information_schema@table_privileges +POSTHOOK: Output: information_schema@tables +POSTHOOK: Output: information_schema@views diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/TransactionalValidationListener.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/TransactionalValidationListener.java index 33cf542d1f..d9fdd290bb 100644 --- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/TransactionalValidationListener.java +++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/TransactionalValidationListener.java @@ -43,6 +43,7 @@ import org.apache.hadoop.hive.metastore.txn.TxnStore; import org.apache.hadoop.hive.metastore.txn.TxnUtils; import org.apache.hadoop.hive.metastore.utils.MetaStoreUtils; +import org.apache.hadoop.hive.metastore.utils.HiveStrictManagedUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -78,12 +79,14 @@ public void onEvent(PreEventContext context) throws MetaException, NoSuchObjectE private void handle(PreAlterTableEvent context) throws MetaException { if (supportedCatalogs.contains(getTableCatalog(context.getNewTable()))) { handleAlterTableTransactionalProp(context); + HiveStrictManagedUtils.validateStrictManagedTableWithThrow(getConf(), context.getNewTable()); } } private void handle(PreCreateTableEvent context) throws MetaException { if (supportedCatalogs.contains(getTableCatalog(context.getTable()))) { handleCreateTableTransactionalProp(context); + HiveStrictManagedUtils.validateStrictManagedTableWithThrow(getConf(), context.getTable()); } } @@ -329,7 +332,7 @@ private void handleCreateTableTransactionalProp(PreCreateTableEvent context) thr } } - if (newTable.getTableType().equals(TableType.EXTERNAL_TABLE.toString())) { + if (MetaStoreUtils.isExternalTable(newTable)) { throw new MetaException(Warehouse.getQualifiedName(newTable) + " cannot be declared transactional because it's an external table"); } diff --git a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/conf/MetastoreConf.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/conf/MetastoreConf.java index 54d8830347..f3b909ca44 100644 --- a/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/conf/MetastoreConf.java +++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/conf/MetastoreConf.java @@ -748,6 +748,9 @@ public static ConfVars getMetaConf(String name) { "The class to use to read schemas from storage. It must implement " + "org.apache.hadoop.hive.metastore.StorageSchemaReader"), STORE_MANAGER_TYPE("datanucleus.storeManagerType", "datanucleus.storeManagerType", "rdbms", "metadata store type"), + STRICT_MANAGED_TABLES("metastore.strict.managed.tables", "hive.strict.managed.tables", false, + "Whether strict managed tables mode is enabled. With this mode enabled, " + + "only transactional tables (both full and insert-only) are allowed to be created as managed tables"), SUPPORT_SPECICAL_CHARACTERS_IN_TABLE_NAMES("metastore.support.special.characters.tablename", "hive.support.special.characters.tablename", true, "This flag should be set to true to enable support for special characters in table names.\n" diff --git a/ql/src/java/org/apache/hadoop/hive/ql/util/HiveStrictManagedUtils.java b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/utils/HiveStrictManagedUtils.java similarity index 55% rename from ql/src/java/org/apache/hadoop/hive/ql/util/HiveStrictManagedUtils.java rename to standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/utils/HiveStrictManagedUtils.java index d9536eb24a..fac3c22631 100644 --- a/ql/src/java/org/apache/hadoop/hive/ql/util/HiveStrictManagedUtils.java +++ b/standalone-metastore/src/main/java/org/apache/hadoop/hive/metastore/utils/HiveStrictManagedUtils.java @@ -16,37 +16,25 @@ * limitations under the License. */ -package org.apache.hadoop.hive.ql.util; +package org.apache.hadoop.hive.metastore.utils; import java.util.Arrays; import java.util.HashSet; import java.util.Set; import org.apache.hadoop.conf.Configuration; -import org.apache.hadoop.hive.conf.HiveConf; +import org.apache.hadoop.hive.metastore.conf.MetastoreConf; +import org.apache.hadoop.hive.metastore.api.MetaException; +import org.apache.hadoop.hive.metastore.api.Table; import org.apache.hadoop.hive.metastore.TableType; -import org.apache.hadoop.hive.metastore.utils.MetaStoreUtils; -import org.apache.hadoop.hive.ql.io.AcidUtils; -import org.apache.hadoop.hive.ql.io.NullRowsInputFormat; -import org.apache.hadoop.hive.ql.io.OneNullRowInputFormat; -import org.apache.hadoop.hive.ql.io.ZeroRowsInputFormat; -import org.apache.hadoop.hive.ql.metadata.HiveException; -import org.apache.hadoop.hive.ql.metadata.Table; -import org.apache.hadoop.hive.serde2.avro.AvroSerDe; -import org.apache.hadoop.hive.serde2.avro.AvroSerdeUtils.AvroTableProperties; public class HiveStrictManagedUtils { - private final static Set EXEMPT_INPUTFORMATS = - new HashSet(Arrays.asList(NullRowsInputFormat.class.getName(), - OneNullRowInputFormat.class.getName(), ZeroRowsInputFormat.class.getName())); - - - public static void validateStrictManagedTable(Configuration conf, Table table) - throws HiveException { - String reason = validateStrictManagedTable(conf, table.getTTable()); + public static void validateStrictManagedTableWithThrow(Configuration conf, Table table) + throws MetaException { + String reason = validateStrictManagedTable(conf, table); if (reason != null) { - throw new HiveException(reason); + throw new MetaException(reason); } } @@ -57,8 +45,8 @@ public static void validateStrictManagedTable(Configuration conf, Table table) * @return Null if the table is valid, otherwise a string message indicating why the table is invalid. */ public static String validateStrictManagedTable(Configuration conf, - org.apache.hadoop.hive.metastore.api.Table table) { - if (HiveConf.getBoolVar(conf, HiveConf.ConfVars.HIVE_STRICT_MANAGED_TABLES)) { + Table table) { + if (MetastoreConf.getBoolVar(conf, MetastoreConf.ConfVars.STRICT_MANAGED_TABLES)) { if (table.isTemporary()) { // temp tables exempted from checks. return null; @@ -66,14 +54,8 @@ public static String validateStrictManagedTable(Configuration conf, TableType tableType = TableType.valueOf(table.getTableType()); if (tableType == TableType.MANAGED_TABLE) { - if (!AcidUtils.isTransactionalTable(table)) { - String inputFormat = null; - if (table.getSd() != null) { - inputFormat = table.getSd().getInputFormat(); - } - if (!EXEMPT_INPUTFORMATS.contains(inputFormat)) { - return createValidationError(table, "Table is marked as a managed table but is not transactional."); - } + if (!MetaStoreUtils.isTransactionalTable(table.getParameters())) { + return createValidationError(table, "Table is marked as a managed table but is not transactional."); } if (MetaStoreUtils.isNonNativeTable(table)) { return createValidationError(table, "Table is marked as a managed table but is non-native."); @@ -88,9 +70,12 @@ public static String validateStrictManagedTable(Configuration conf, return null; } - public static boolean isAvroTableWithExternalSchema(org.apache.hadoop.hive.metastore.api.Table table) { - if (table.getSd().getSerdeInfo().getSerializationLib().equals(AvroSerDe.class.getName())) { - String schemaUrl = table.getParameters().get(AvroTableProperties.SCHEMA_URL.getPropName()); + private static final String AVRO_SERDE_CLASSNAME = "org.apache.hadoop.hive.serde2.avro.AvroSerDe"; + private static final String AVRO_SCHEMA_URL_PROPERTY = "avro.schema.url"; + + public static boolean isAvroTableWithExternalSchema(Table table) { + if (table.getSd().getSerdeInfo().getSerializationLib().equals(AVRO_SERDE_CLASSNAME)) { + String schemaUrl = table.getParameters().get(AVRO_SCHEMA_URL_PROPERTY); if (schemaUrl != null && !schemaUrl.isEmpty()) { return true; } @@ -98,11 +83,11 @@ public static boolean isAvroTableWithExternalSchema(org.apache.hadoop.hive.metas return false; } - public static boolean isListBucketedTable(org.apache.hadoop.hive.metastore.api.Table table) { + public static boolean isListBucketedTable(Table table) { return table.getSd().isStoredAsSubDirectories(); } - private static String createValidationError(org.apache.hadoop.hive.metastore.api.Table table, String message) { + private static String createValidationError(Table table, String message) { StringBuilder sb = new StringBuilder(); sb.append("Table "); sb.append(table.getDbName());