-
Type:
Bug
-
Status: Resolved
-
Priority:
Major
-
Resolution: Duplicate
-
Affects Version/s: 1.2.0
-
Fix Version/s: None
-
Component/s: Query Planning, Transactions
-
Labels:None
The following code in
in SemanticAnalyzer.getMetaData(QB qb, ReadEntity parentInput)
// Disallow INSERT INTO on bucketized tables boolean isAcid = AcidUtils.isAcidTable(tab); boolean isTableWrittenTo = qb.getParseInfo().isInsertIntoTable(tab.getDbName(), tab.getTableName()); if (isTableWrittenTo && tab.getNumBuckets() > 0 && !isAcid) { throw new SemanticException(ErrorMsg.INSERT_INTO_BUCKETIZED_TABLE. getMsg("Table: " + tabName)); } // Disallow update and delete on non-acid tables if ((updating() || deleting()) && !isAcid && isTableWrittenTo) { //isTableWrittenTo: delete from acidTbl where a in (select id from nonAcidTable) //so only assert this if we are actually writing to this table // Whether we are using an acid compliant transaction manager has already been caught in // UpdateDeleteSemanticAnalyzer, so if we are updating or deleting and getting nonAcid // here, it means the table itself doesn't support it. throw new SemanticException(ErrorMsg.ACID_OP_ON_NONACID_TABLE, tabName); }
is done in the loop " for (String alias : tabAliases) {" which is over tables being read.
Should be done in " for (String name : qbp.getClauseNamesForDest()) {" loop
- blocks
-
HIVE-10924 add support for MERGE statement
-
- Resolved
-
- duplicates
-
HIVE-14943 Base Implementation
-
- Closed
-