[ https://issues.apache.org/jira/browse/HIVE-23051?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17062382#comment-17062382 ]
László Bodor commented on HIVE-23051: ------------------------------------- [~belugabehr]: could you please make some extra efforts to introduce a TestBucketCodec for unit testing at least "encode" method for different scenarios/codecs (even the statementId<0 case)? it would be great to have a test class like that, reflecting the expected behavior of BucketCodec > Clean up BucketCodec > -------------------- > > Key: HIVE-23051 > URL: https://issues.apache.org/jira/browse/HIVE-23051 > Project: Hive > Issue Type: Improvement > Reporter: David Mollitor > Assignee: David Mollitor > Priority: Major > Attachments: HIVE-23051.1.patch > > > A couple of nagging things caught my eye with this class. The first thing: > {code:java|title=BucketCodec.java} > int statementId = options.getStatementId() >= 0 ? > options.getStatementId() : 0; > assert this.version >=0 && this.version <= MAX_VERSION > : "Version out of range: " + version; > if(!(options.getBucketId() >= 0 && options.getBucketId() <= > MAX_BUCKET_ID)) { > throw new IllegalArgumentException("bucketId out of range: " + > options.getBucketId()); > } > if(!(statementId >= 0 && statementId <= MAX_STATEMENT_ID)) { > throw new IllegalArgumentException("statementId out of range: " + > statementId); > } > {code} > {{statementId}} gets capped, if it's less than 0, then it gets rounded up to > 0. However, it late checks that the {{statementId}} is greater,... which is > will always be since it's getting rounded. > # Remove the rounding behavior. > # Make better error message > # Fail-fast in the constructor if the version is invalid -- This message was sent by Atlassian Jira (v8.3.4#803005)