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 2e055aba4b..be3051b3c4 100644 --- ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java +++ ql/src/java/org/apache/hadoop/hive/ql/parse/SemanticAnalyzer.java @@ -12846,7 +12846,7 @@ private void validate(Task task, boolean reworkMapredWor } } } - boolean makeInsertOnly = HiveConf.getBoolVar(conf, ConfVars.HIVE_CREATE_TABLES_AS_INSERT_ONLY); + boolean makeInsertOnly = !isTemporaryTable && HiveConf.getBoolVar(conf, ConfVars.HIVE_CREATE_TABLES_AS_INSERT_ONLY); boolean makeAcid = !isTemporaryTable && MetastoreConf.getBoolVar(conf, MetastoreConf.ConfVars.CREATE_TABLES_AS_ACID) && HiveConf.getBoolVar(conf, ConfVars.HIVE_SUPPORT_CONCURRENCY) && diff --git ql/src/test/queries/clientpositive/mm_iow_temp.q ql/src/test/queries/clientpositive/mm_iow_temp.q new file mode 100644 index 0000000000..d6942e4810 --- /dev/null +++ ql/src/test/queries/clientpositive/mm_iow_temp.q @@ -0,0 +1,15 @@ +--! qt:dataset:src + +set hive.support.concurrency=true; +set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; +set hive.create.as.insert.only=true; + +create temporary table temptable1 ( + key string, + value string +); + +insert overwrite table temptable1 select * from src; + +show create table temptable1; +select * from temptable1 order by key limit 10; diff --git ql/src/test/results/clientpositive/mm_iow_temp.q.out ql/src/test/results/clientpositive/mm_iow_temp.q.out new file mode 100644 index 0000000000..719a48a2ed --- /dev/null +++ ql/src/test/results/clientpositive/mm_iow_temp.q.out @@ -0,0 +1,61 @@ +PREHOOK: query: create temporary table temptable1 ( + key string, + value string +) +PREHOOK: type: CREATETABLE +PREHOOK: Output: database:default +PREHOOK: Output: default@temptable1 +POSTHOOK: query: create temporary table temptable1 ( + key string, + value string +) +POSTHOOK: type: CREATETABLE +POSTHOOK: Output: database:default +POSTHOOK: Output: default@temptable1 +PREHOOK: query: insert overwrite table temptable1 select * from src +PREHOOK: type: QUERY +PREHOOK: Input: default@src +PREHOOK: Output: default@temptable1 +POSTHOOK: query: insert overwrite table temptable1 select * from src +POSTHOOK: type: QUERY +POSTHOOK: Input: default@src +POSTHOOK: Output: default@temptable1 +POSTHOOK: Lineage: temptable1.key SIMPLE [(src)src.FieldSchema(name:key, type:string, comment:default), ] +POSTHOOK: Lineage: temptable1.value SIMPLE [(src)src.FieldSchema(name:value, type:string, comment:default), ] +PREHOOK: query: show create table temptable1 +PREHOOK: type: SHOW_CREATETABLE +PREHOOK: Input: default@temptable1 +POSTHOOK: query: show create table temptable1 +POSTHOOK: type: SHOW_CREATETABLE +POSTHOOK: Input: default@temptable1 +CREATE TEMPORARY TABLE `temptable1`( + `key` string, + `value` 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') +PREHOOK: query: select * from temptable1 order by key limit 10 +PREHOOK: type: QUERY +PREHOOK: Input: default@temptable1 +#### A masked pattern was here #### +POSTHOOK: query: select * from temptable1 order by key limit 10 +POSTHOOK: type: QUERY +POSTHOOK: Input: default@temptable1 +#### A masked pattern was here #### +0 val_0 +0 val_0 +0 val_0 +10 val_10 +100 val_100 +100 val_100 +103 val_103 +103 val_103 +104 val_104 +104 val_104