You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@hive.apache.org by "Hive QA (JIRA)" <ji...@apache.org> on 2018/10/11 10:03:00 UTC

[jira] [Commented] (HIVE-19253) HMS ignores tableType property for external tables

    [ https://issues.apache.org/jira/browse/HIVE-19253?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16646225#comment-16646225 ] 

Hive QA commented on HIVE-19253:
--------------------------------

| (/) *{color:green}+1 overall{color}* |
\\
\\
|| Vote || Subsystem || Runtime || Comment ||
|| || || || {color:brown} Prechecks {color} ||
| {color:green}+1{color} | {color:green} @author {color} | {color:green}  0m  0s{color} | {color:green} The patch does not contain any @author tags. {color} |
|| || || || {color:brown} master Compile Tests {color} ||
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue}  0m 33s{color} | {color:blue} Maven dependency ordering for branch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  7m 18s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  2m 18s{color} | {color:green} master passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  1m  2s{color} | {color:green} master passed {color} |
| {color:blue}0{color} | {color:blue} findbugs {color} | {color:blue}  2m 26s{color} | {color:blue} standalone-metastore/metastore-common in master has 28 extant Findbugs warnings. {color} |
| {color:blue}0{color} | {color:blue} findbugs {color} | {color:blue}  0m 27s{color} | {color:blue} hcatalog/webhcat/java-client in master has 3 extant Findbugs warnings. {color} |
| {color:blue}0{color} | {color:blue} findbugs {color} | {color:blue}  3m 48s{color} | {color:blue} ql in master has 2319 extant Findbugs warnings. {color} |
| {color:blue}0{color} | {color:blue} findbugs {color} | {color:blue}  1m  4s{color} | {color:blue} standalone-metastore/metastore-server in master has 182 extant Findbugs warnings. {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  2m 20s{color} | {color:green} master passed {color} |
|| || || || {color:brown} Patch Compile Tests {color} ||
| {color:blue}0{color} | {color:blue} mvndep {color} | {color:blue}  0m  9s{color} | {color:blue} Maven dependency ordering for patch {color} |
| {color:green}+1{color} | {color:green} mvninstall {color} | {color:green}  2m 41s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} compile {color} | {color:green}  2m 14s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javac {color} | {color:green}  2m 14s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} checkstyle {color} | {color:green}  1m  0s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} whitespace {color} | {color:green}  0m  0s{color} | {color:green} The patch has no whitespace issues. {color} |
| {color:green}+1{color} | {color:green} findbugs {color} | {color:green}  8m  9s{color} | {color:green} the patch passed {color} |
| {color:green}+1{color} | {color:green} javadoc {color} | {color:green}  2m  9s{color} | {color:green} the patch passed {color} |
|| || || || {color:brown} Other Tests {color} ||
| {color:green}+1{color} | {color:green} asflicense {color} | {color:green}  0m 13s{color} | {color:green} The patch does not generate ASF License warnings. {color} |
| {color:black}{color} | {color:black} {color} | {color:black} 38m 54s{color} | {color:black} {color} |
\\
\\
|| Subsystem || Report/Notes ||
| Optional Tests |  asflicense  javac  javadoc  findbugs  checkstyle  compile  |
| uname | Linux hiveptest-server-upstream 3.16.0-4-amd64 #1 SMP Debian 3.16.36-1+deb8u1 (2016-09-03) x86_64 GNU/Linux |
| Build tool | maven |
| Personality | /data/hiveptest/working/yetus_PreCommit-HIVE-Build-14370/dev-support/hive-personality.sh |
| git revision | master / 37c7fd7 |
| Default Java | 1.8.0_111 |
| findbugs | v3.0.0 |
| modules | C: standalone-metastore/metastore-common hcatalog/webhcat/java-client ql standalone-metastore/metastore-server U: . |
| Console output | http://104.198.109.242/logs//PreCommit-HIVE-Build-14370/yetus.txt |
| Powered by | Apache Yetus    http://yetus.apache.org |


This message was automatically generated.



> HMS ignores tableType property for external tables
> --------------------------------------------------
>
>                 Key: HIVE-19253
>                 URL: https://issues.apache.org/jira/browse/HIVE-19253
>             Project: Hive
>          Issue Type: Bug
>          Components: Metastore
>    Affects Versions: 3.0.0, 3.1.0, 4.0.0
>            Reporter: Alexander Kolbasov
>            Assignee: Alexander Kolbasov
>            Priority: Major
>              Labels: newbie
>         Attachments: HIVE-19253.01.patch, HIVE-19253.02.patch, HIVE-19253.03.patch, HIVE-19253.03.patch, HIVE-19253.04.patch, HIVE-19253.05.patch, HIVE-19253.06.patch, HIVE-19253.07.patch, HIVE-19253.08.patch, HIVE-19253.09.patch, HIVE-19253.10.patch, HIVE-19253.11.patch, HIVE-19253.12.patch
>
>
> When someone creates a table using Thrift API they may think that setting tableType to {{EXTERNAL_TABLE}} creates an external table. And boom - their table is gone later because HMS will silently change it to managed table.
> here is the offending code:
> {code:java}
>   private MTable convertToMTable(Table tbl) throws InvalidObjectException,
>       MetaException {
>     ...
>     // If the table has property EXTERNAL set, update table type
>     // accordingly
>     String tableType = tbl.getTableType();
>     boolean isExternal = Boolean.parseBoolean(tbl.getParameters().get("EXTERNAL"));
>     if (TableType.MANAGED_TABLE.toString().equals(tableType)) {
>       if (isExternal) {
>         tableType = TableType.EXTERNAL_TABLE.toString();
>       }
>     }
>     if (TableType.EXTERNAL_TABLE.toString().equals(tableType)) {
>       if (!isExternal) { // Here!
>         tableType = TableType.MANAGED_TABLE.toString();
>       }
>     }
> {code}
> So if the EXTERNAL parameter is not set, table type is changed to managed even if it was external in the first place - which is wrong.
> More over, in other places code looks at the table property to decide table type and some places look at parameter. HMS should really make its mind which one to use.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)