[ https://issues.apache.org/jira/browse/HIVE-14883?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Eugene Koifman updated HIVE-14883: ---------------------------------- Status: Open (was: Patch Available) > Checks for Acid operation/bucket table write are in the wrong place > ------------------------------------------------------------------- > > Key: HIVE-14883 > URL: https://issues.apache.org/jira/browse/HIVE-14883 > Project: Hive > Issue Type: Bug > Components: Query Planning, Transactions > Affects Versions: 1.2.0 > Reporter: Eugene Koifman > Assignee: Eugene Koifman > Fix For: 2.2.0 > > Attachments: HIVE-14883.2.patch, HIVE-14883.3.patch, HIVE-14883.patch > > > The following code in > in SemanticAnalyzer.getMetaData(QB qb, ReadEntity parentInput) > {noformat} > // 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); > } > {noformat} > 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 -- This message was sent by Atlassian JIRA (v6.3.4#6332)