difin commented on code in PR #3606:
URL: https://github.com/apache/hive/pull/3606#discussion_r975377018
##########
ql/src/java/org/apache/hadoop/hive/ql/io/orc/OrcSplit.java:
##########
@@ -103,7 +103,7 @@ public OrcSplit(Path path, Object fileId, long offset, long
length, String[] hos
this.isOriginal = isOriginal;
this.hasBase = hasBase;
this.rootDir = rootDir;
- int bucketId = AcidUtils.parseBucketId(path);
+ bucketId = AcidUtils.parseBucketId(path);
Review Comment:
I didn't find explanation in history why bucket id was set in parse method.
Regarding making bucketId final: bucketId is a private class member and cannot
be set outside of OrcSplit. Before my change it was set using getPath() method
from its parent class. This method uses 'fs' class member from the parent class
which is package-private and unaccessible from OrcSplit. So, bucketId is set
using path which cannot be modified and it can have only one value. Therefore
in my opinion bucketId can be set final and it is safe to do. In other words,
if bucketId is set in constructor or in parse method, it can be assigned only
same unique value which is based on the path and the path can't be changed at
runtime.
--
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.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]