This is an automated email from the ASF dual-hosted git repository. arawat pushed a commit to branch master in repository https://gitbox.apache.org/repos/asf/impala.git
commit 55194a9c83bba52c64d0d2e75d5ebd3d8c67b3e2 Author: Gergely Fürnstáhl <[email protected]> AuthorDate: Tue Sep 27 11:54:35 2022 +0200 IMPALA-11576: Fix for test_multiple_storage_locations on S3 Fixed absolute/relative path handling in filesystems not supporting block location (e.g. S3). Testing: - test_multiple_storage_location passes on S3 Change-Id: I08badd96d060a2377c9a1eafa287a3adf8fa11db Reviewed-on: http://gerrit.cloudera.org:8080/19045 Reviewed-by: Impala Public Jenkins <[email protected]> Tested-by: Impala Public Jenkins <[email protected]> --- fe/src/main/java/org/apache/impala/catalog/FeIcebergTable.java | 5 ++--- .../main/java/org/apache/impala/catalog/FileMetadataLoader.java | 2 +- fe/src/main/java/org/apache/impala/catalog/HdfsPartition.java | 8 ++++---- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/fe/src/main/java/org/apache/impala/catalog/FeIcebergTable.java b/fe/src/main/java/org/apache/impala/catalog/FeIcebergTable.java index 5c25c0960..37b657b0c 100644 --- a/fe/src/main/java/org/apache/impala/catalog/FeIcebergTable.java +++ b/fe/src/main/java/org/apache/impala/catalog/FeIcebergTable.java @@ -537,10 +537,9 @@ public interface FeIcebergTable extends FeFsTable { relPath = relUri.getPath(); } - if (!FileSystemUtil.supportsStorageIds(fs)) { - return HdfsPartition.FileDescriptor.createWithNoBlocks(fileStatus, - StringUtils.isNotEmpty(relPath) ? relPath : absPath); + return HdfsPartition.FileDescriptor.createWithNoBlocks( + fileStatus, relPath, absPath); } BlockLocation[] locations; diff --git a/fe/src/main/java/org/apache/impala/catalog/FileMetadataLoader.java b/fe/src/main/java/org/apache/impala/catalog/FileMetadataLoader.java index 272a24f0a..ee42fab49 100644 --- a/fe/src/main/java/org/apache/impala/catalog/FileMetadataLoader.java +++ b/fe/src/main/java/org/apache/impala/catalog/FileMetadataLoader.java @@ -259,7 +259,7 @@ public class FileMetadataLoader { private FileDescriptor createFd(FileSystem fs, FileStatus fileStatus, String relPath, Reference<Long> numUnknownDiskIds) throws IOException { if (!FileSystemUtil.supportsStorageIds(fs)) { - return FileDescriptor.createWithNoBlocks(fileStatus, relPath); + return FileDescriptor.createWithNoBlocks(fileStatus, relPath, null); } BlockLocation[] locations; if (fileStatus instanceof LocatedFileStatus) { diff --git a/fe/src/main/java/org/apache/impala/catalog/HdfsPartition.java b/fe/src/main/java/org/apache/impala/catalog/HdfsPartition.java index 88b7eec26..9d481d540 100644 --- a/fe/src/main/java/org/apache/impala/catalog/HdfsPartition.java +++ b/fe/src/main/java/org/apache/impala/catalog/HdfsPartition.java @@ -221,11 +221,11 @@ public class HdfsPartition extends CatalogObjectImpl * Creates the file descriptor of a file represented by 'fileStatus' that * resides in a filesystem that doesn't support the BlockLocation API (e.g. S3). */ - public static FileDescriptor createWithNoBlocks(FileStatus fileStatus, - String relPath) { + public static FileDescriptor createWithNoBlocks( + FileStatus fileStatus, String relPath, String absPath) { FlatBufferBuilder fbb = new FlatBufferBuilder(1); - return new FileDescriptor(createFbFileDesc(fbb, fileStatus, relPath, null, false, - null)); + return new FileDescriptor( + createFbFileDesc(fbb, fileStatus, relPath, null, false, absPath)); } /**
