diff --git itests/src/test/resources/testconfiguration.properties itests/src/test/resources/testconfiguration.properties index 98280c52fe..677dfe4091 100644 --- itests/src/test/resources/testconfiguration.properties +++ itests/src/test/resources/testconfiguration.properties @@ -590,6 +590,7 @@ minillaplocal.query.files=\ lvj_mapjoin.q,\ materialized_view_cluster.q,\ materialized_view_create.q,\ + materialized_view_create_acid.q,\ materialized_view_create_rewrite_dummy.q,\ materialized_view_create_rewrite_multi_db.q,\ materialized_view_create_rewrite_rebuild_dummy.q,\ diff --git ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java index 826b23e5fa..9644483e83 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java +++ ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java @@ -13417,10 +13417,7 @@ private void updateDefaultTblProps(Map source, Map(); + } + tblProps = convertToAcidByDefault(storageFormat, dbDotTable, null, tblProps); + } + createVwDesc = new CreateViewDesc( dbDotTable, cols, comment, tblProps, partColNames, sortColNames, distributeColNames, ifNotExists, isRebuild, rewriteEnabled, isAlterViewAs, @@ -14087,6 +14091,12 @@ protected ASTNode analyzeCreateView(ASTNode ast, QB qb, PlannerContext plannerCt return selectStmt; } + private boolean makeAcid() { + return MetastoreConf.getBoolVar(conf, MetastoreConf.ConfVars.CREATE_TABLES_AS_ACID) && + HiveConf.getBoolVar(conf, ConfVars.HIVE_SUPPORT_CONCURRENCY) && + DbTxnManager.class.getCanonicalName().equals(HiveConf.getVar(conf, ConfVars.HIVE_TXN_MANAGER)); + } + // validate the (materialized) view statement // check semantic conditions private void validateCreateView() diff --git ql/src/test/queries/clientpositive/materialized_view_create_acid.q ql/src/test/queries/clientpositive/materialized_view_create_acid.q new file mode 100644 index 0000000000..35961af761 --- /dev/null +++ ql/src/test/queries/clientpositive/materialized_view_create_acid.q @@ -0,0 +1,17 @@ +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; + +CREATE TABLE cmv_basetable_n4 (a int, b varchar(256), c decimal(10,2)); + +INSERT INTO cmv_basetable_n4 VALUES (1, 'alfred', 10.30),(2, 'bob', 3.14),(2, 'bonnie', 172342.2),(3, 'calvin', 978.76),(3, 'charlie', 9.8); + +CREATE MATERIALIZED VIEW cmv_mat_view_n4 disable rewrite +AS SELECT a, b, c FROM cmv_basetable_n4; + +DESCRIBE FORMATTED cmv_mat_view_n4; diff --git ql/src/test/results/clientpositive/llap/materialized_view_create_acid.q.out ql/src/test/results/clientpositive/llap/materialized_view_create_acid.q.out new file mode 100644 index 0000000000..52d9ae1b02 --- /dev/null +++ ql/src/test/results/clientpositive/llap/materialized_view_create_acid.q.out @@ -0,0 +1,73 @@ +PREHOOK: query: CREATE TABLE cmv_basetable_n4 (a int, b varchar(256), c decimal(10,2)) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@cmv_basetable_n4 +POSTHOOK: query: CREATE TABLE cmv_basetable_n4 (a int, b varchar(256), c decimal(10,2)) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@cmv_basetable_n4 +PREHOOK: query: INSERT INTO cmv_basetable_n4 VALUES (1, 'alfred', 10.30),(2, 'bob', 3.14),(2, 'bonnie', 172342.2),(3, 'calvin', 978.76),(3, 'charlie', 9.8) +PREHOOK: type: QUERY +PREHOOK: Input: _dummy_database@_dummy_table +PREHOOK: Output: default@cmv_basetable_n4 +POSTHOOK: query: INSERT INTO cmv_basetable_n4 VALUES (1, 'alfred', 10.30),(2, 'bob', 3.14),(2, 'bonnie', 172342.2),(3, 'calvin', 978.76),(3, 'charlie', 9.8) +POSTHOOK: type: QUERY +POSTHOOK: Input: _dummy_database@_dummy_table +POSTHOOK: Output: default@cmv_basetable_n4 +POSTHOOK: Lineage: cmv_basetable_n4.a SCRIPT [] +POSTHOOK: Lineage: cmv_basetable_n4.b SCRIPT [] +POSTHOOK: Lineage: cmv_basetable_n4.c SCRIPT [] +PREHOOK: query: CREATE MATERIALIZED VIEW cmv_mat_view_n4 disable rewrite +AS SELECT a, b, c FROM cmv_basetable_n4 +PREHOOK: type: CREATE_MATERIALIZED_VIEW +PREHOOK: Input: default@cmv_basetable_n4 +PREHOOK: Output: database:default +PREHOOK: Output: default@cmv_mat_view_n4 +POSTHOOK: query: CREATE MATERIALIZED VIEW cmv_mat_view_n4 disable rewrite +AS SELECT a, b, c FROM cmv_basetable_n4 +POSTHOOK: type: CREATE_MATERIALIZED_VIEW +POSTHOOK: Input: default@cmv_basetable_n4 +POSTHOOK: Output: database:default +POSTHOOK: Output: default@cmv_mat_view_n4 +PREHOOK: query: DESCRIBE FORMATTED cmv_mat_view_n4 +PREHOOK: type: DESCTABLE +PREHOOK: Input: default@cmv_mat_view_n4 +POSTHOOK: query: DESCRIBE FORMATTED cmv_mat_view_n4 +POSTHOOK: type: DESCTABLE +POSTHOOK: Input: default@cmv_mat_view_n4 +# col_name data_type comment +a int +b varchar(256) +c decimal(10,2) + +# Detailed Table Information +Database: default +#### A masked pattern was here #### +Retention: 0 +#### A masked pattern was here #### +Table Type: MATERIALIZED_VIEW +Table Parameters: + COLUMN_STATS_ACCURATE {\"BASIC_STATS\":\"true\",\"COLUMN_STATS\":{\"a\":\"true\",\"b\":\"true\",\"c\":\"true\"}} + bucketing_version 2 + numFiles 1 + numRows 5 + rawDataSize 0 + totalSize 924 + transactional true + transactional_properties default +#### A masked pattern was here #### + +# Storage Information +SerDe Library: org.apache.hadoop.hive.ql.io.orc.OrcSerde +InputFormat: org.apache.hadoop.hive.ql.io.orc.OrcInputFormat +OutputFormat: org.apache.hadoop.hive.ql.io.orc.OrcOutputFormat +Compressed: No +Num Buckets: -1 +Bucket Columns: [] +Sort Columns: [] + +# Materialized View Information +Original Query: SELECT a, b, c FROM cmv_basetable_n4 +Expanded Query: SELECT `cmv_basetable_n4`.`a`, `cmv_basetable_n4`.`b`, `cmv_basetable_n4`.`c` FROM `default`.`cmv_basetable_n4` +Rewrite Enabled: No +Outdated for Rewriting: No