[
https://issues.apache.org/jira/browse/HBASE-1837?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13010235#comment-13010235
]
Joe Pallas commented on HBASE-1837:
-----------------------------------
Current behavior is both confusing and not documented.
"Effective Java" recommends returning empty collections instead of null, in
general. I understand the argument about distinguishing between empty and
missing from HBASE-1028, but with a Bigtable-style dynamic schema, there are
cases where there simply is no difference. In those cases, an empty collection
seems a much better choice for clients.
> Fix results contract (If row has no results, return null, if Result has no
> results return null or empty Sets and Arrays?)
> -------------------------------------------------------------------------------------------------------------------------
>
> Key: HBASE-1837
> URL: https://issues.apache.org/jira/browse/HBASE-1837
> Project: HBase
> Issue Type: Task
> Reporter: stack
> Fix For: 0.92.0
>
>
> Make sure we are consistent regards results contract. As jgray says:
> {code}
> 17:47 < jgray> decisions are things like, if the result is empty do we return
> nulls or do we return empty
> lists/0-length arrays
> 17:47 < jgray> if result is empty, do we return null for row?
> 17:47 < jgray> and if row is the null row, we then return zero-length byte[0]
> 17:48 < St^Ack_> So, if row is empty, we return null (I believe)
> 17:48 < jgray> yes
> 17:49 < St^Ack_> If you have a result, up to this, if empty, it would not
> return null stuff.
> 17:49 < jgray> no it did return null stuff
> 17:49 < jgray> at least many of them did
> 17:49 < St^Ack_> oh.. ok.
> 17:49 < jgray> but then my result delayed deserialization broke that on one
> case
> 17:49 < St^Ack_> I thought I'd added it w/ 1836?
> 17:49 < jgray> yeah u fixed what i broke, i think
> 17:50 < jgray> but we should nail down the contract, specify what it is in
> javadoc, and add unit tests to verify such
> ...
> {code}
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira