[ https://issues.apache.org/jira/browse/HIVE-26012?focusedWorklogId=799665&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-799665 ]
ASF GitHub Bot logged work on HIVE-26012: ----------------------------------------- Author: ASF GitHub Bot Created on: 10/Aug/22 09:16 Start Date: 10/Aug/22 09:16 Worklog Time Spent: 10m Work Description: DanielZhu58 commented on code in PR #3477: URL: https://github.com/apache/hive/pull/3477#discussion_r942219799 ########## standalone-metastore/metastore-server/src/main/java/org/apache/hadoop/hive/metastore/HMSHandler.java: ########## @@ -2361,32 +2402,36 @@ private void create_table_core(final RawStore ms, final CreateTableRequest req) firePreEvent(new PreCreateTableEvent(tbl, db, this)); - if (!TableType.VIRTUAL_VIEW.toString().equals(tbl.getTableType())) { - if (tbl.getSd().getLocation() == null - || tbl.getSd().getLocation().isEmpty()) { - tblPath = wh.getDefaultTablePath(db, tbl.getTableName() + getTableSuffix(tbl), isExternal(tbl)); - } else { - if (!isExternal(tbl) && !MetaStoreUtils.isNonNativeTable(tbl)) { - LOG.warn("Location: " + tbl.getSd().getLocation() - + " specified for non-external table:" + tbl.getTableName()); - } - tblPath = wh.getDnsPath(new Path(tbl.getSd().getLocation())); - // ignore suffix if it's already there (direct-write CTAS) - if (!tblPath.getName().matches("(.*)" + SOFT_DELETE_TABLE_PATTERN)) { - tblPath = new Path(tblPath + getTableSuffix(tbl)); + if (!skipFSWrites) { Review Comment: These two if condition cannot be combined here because we have an else structure in the second if condition. ########## standalone-metastore/metastore-common/src/main/thrift/hive_metastore.thrift: ########## @@ -2025,7 +2027,9 @@ struct CreateTableRequest { 7: optional list<SQLDefaultConstraint> defaultConstraints, 8: optional list<SQLCheckConstraint> checkConstraints, 9: optional list<string> processorCapabilities, - 10: optional string processorIdentifier + 10: optional string processorIdentifier, + // use boolean skipFSWrites to decide whether create directory in file system or not Review Comment: Sure. Issue Time Tracking ------------------- Worklog Id: (was: 799665) Time Spent: 3h 20m (was: 3h 10m) > HMS APIs to be enhanced for metadata replication > ------------------------------------------------ > > Key: HIVE-26012 > URL: https://issues.apache.org/jira/browse/HIVE-26012 > Project: Hive > Issue Type: Improvement > Components: Metastore > Affects Versions: 3.1.0 > Reporter: Naveen Gangam > Assignee: Hongdan Zhu > Priority: Major > Labels: pull-request-available > Attachments: HMS APIs to be enhanced for metadata replication.docx > > Time Spent: 3h 20m > Remaining Estimate: 0h > > HMS currently has APIs like these that automatically create/delete the > directories on the associated DFS. > [create/drop]_database > [create/drop]_table* > [add/append/drop]_partition* > This is expected and should be this way when query processors use this APIs. > However, when tools that replicate hive metadata use this APIs on the target > cluster, creating these dirs on target side which cause the replication of > DFS-snapshots to fail. > So we if provide an option to bypass this creation of dirs, dfs replications > will be smoother. In the future we will need to restrict users that can use > these APIs. So we will have some sort of an authorization policy. -- This message was sent by Atlassian Jira (v8.20.10#820010)