sankarh commented on a change in pull request #551: HIVE-21286: Hive should support clean-up of previously bootstrapped tables when retry from different dump. URL: https://github.com/apache/hive/pull/551#discussion_r262344887
########## File path: ql/src/java/org/apache/hadoop/hive/ql/exec/repl/ReplLoadTask.java ########## @@ -279,6 +292,72 @@ a database ( directory ) return 0; } + /** + * Cleanup/drop tables from the given database which are bootstrapped by input dump dir. + * @throws HiveException Failed to drop the tables. + * @throws IOException File operations failure. + * @throws InvalidInputException Invalid input dump directory. + */ + private void bootstrapRollbackTask() throws HiveException, IOException, InvalidInputException { + Path bootstrapDirectory = new PathBuilder(work.bootstrapDumpToRollback) + .addDescendant(ReplUtils.INC_BOOTSTRAP_ROOT_DIR_NAME).build(); + FileSystem fs = bootstrapDirectory.getFileSystem(conf); + + if (!fs.exists(bootstrapDirectory)) { + throw new InvalidInputException("Input bootstrap dump directory to rollback doesn't exist: " + + bootstrapDirectory); + } + + FileStatus[] fileStatuses = fs.listStatus(bootstrapDirectory, EximUtil.getDirectoryFilter(fs)); + if ((fileStatuses == null) || (fileStatuses.length == 0)) { + throw new InvalidInputException("Input bootstrap dump directory to rollback is empty: " + + bootstrapDirectory); + } + + if (StringUtils.isNotBlank(work.dbNameToLoadIn) && (fileStatuses.length > 1)) { + throw new InvalidInputException("Multiple DB dirs in the dump: " + bootstrapDirectory + + " is not allowed to load to single target DB: " + work.dbNameToLoadIn); + } + + for (FileStatus dbDir : fileStatuses) { Review comment: Currently, we don't support it fully. It is for Warehouse level dump+load where we don't support multi-DB load yet. This code is there for future use when that will be supported. I'm just leaving it as it is for now. ---------------------------------------------------------------- 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 With regards, Apache Git Services