[ https://issues.apache.org/jira/browse/HIVE-20057?focusedWorklogId=210858&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-210858 ]
ASF GitHub Bot logged work on HIVE-20057: ----------------------------------------- Author: ASF GitHub Bot Created on: 11/Mar/19 06:55 Start Date: 11/Mar/19 06:55 Worklog Time Spent: 10m Work Description: sankarh commented on pull request #388: HIVE-20057: Fix Hive table conversion DESCRIBE table bug URL: https://github.com/apache/hive/pull/388#discussion_r264106935 ########## File path: standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/ObjectStore.java ########## @@ -1802,12 +1802,12 @@ private MTable convertToMTable(Table tbl) throws InvalidObjectException, // accordingly String tableType = tbl.getTableType(); boolean isExternal = Boolean.parseBoolean(tbl.getParameters().get("EXTERNAL")); - if (TableType.MANAGED_TABLE.toString().equals(tableType)) { + if (TableType.MANAGED_TABLE.toString().equalsIgnoreCase(tableType)) { Review comment: @animenon Thanks for thr reply! But, I'm still confused. As per your point, isExternal is proper (both "True" and "TRUE"). But, why would tableType have different case based on input for EXTERNAL property? Below is the code that reads EXTERNAL property from ALTER TABLE command and sets correct tableType. https://github.com/apache/hive/blob/master/ql/src/java/org/apache/hadoop/hive/ql/exec/DDLTask.java#L4092 ``` 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); } } ``` If you notice, we use Boolean.parseBoolean(externalProp) here which ignores case. I didn't get how two values of externalProp ("True" and "TRUE") influences the table type set via setTableType. Pls point to what I'm missing here. @rmsmani Please check if I miss anything. ---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: us...@infra.apache.org Issue Time Tracking ------------------- Worklog Id: (was: 210858) Time Spent: 2h 40m (was: 2.5h) > For ALTER TABLE t SET TBLPROPERTIES ('EXTERNAL'='TRUE'); `TBL_TYPE` attribute > change not reflecting for non-CAPS > ---------------------------------------------------------------------------------------------------------------- > > Key: HIVE-20057 > URL: https://issues.apache.org/jira/browse/HIVE-20057 > Project: Hive > Issue Type: Bug > Components: Standalone Metastore > Affects Versions: All Versions > Reporter: Anirudh > Assignee: Anirudh > Priority: Minor > Labels: pull-request-available > Fix For: 3.1.0 > > Attachments: hive20057.patch > > Time Spent: 2h 40m > Remaining Estimate: 0h > > Hive EXTERNAL table shown as MANAGED after conversion using > {code} ALTER TABLE t SET TBLPROPERTIES ('EXTERNAL'='True') > {code} > > The DESCRIBE FORMATTED shows: > {code} > Table Type: MANAGED_TABLE > Table Parameters: > EXTERNAL True > {code} > > This is actually a External table but is shown wrongly, as 'True' was used in > place of 'TRUE' in the ALTER statement. > Issue explained here: > [StakOverflow - Hive Table is MANAGED or > EXTERNAL|https://stackoverflow.com/questions/51103317/hive-table-is-managed-or-external/51142873#51142873] > -- This message was sent by Atlassian JIRA (v7.6.3#76005)