avro-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Doug Cutting <cutt...@apache.org>
Subject Re: java specific implementation uses GenericArray ?
Date Wed, 28 Jul 2010 16:10:50 GMT
On 07/28/2010 02:07 AM, Nick Palmer wrote:
> It would be very nice if GenericArray implemented List. I need get,
> set, and remove in GenericData.Array for my application and have
> already added these to my Avro code so I can continue developing. I
> was planning to file a patch in JIRA for this change.

This would be a great patch to have!

> The trouble with making GenericArray implement List is that
> List.size() returns an int and GenericArray.size() returns a long. Is
> there a reason for this?

Avro arrays can be arbitrarily long, written as blocks.  The thinking 
was that the interface should expose the length as a long, permitting 
implementations that might page values from disk as you iterate.  The 
collision with List#size() is unfortunate.

We could either:
  a. unilaterally change GenericArray#size() to return int; or
  b. rename GenericArray#size() to be something else, like arraySize() 
or somesuch, so that someone could still implement a version that's paged.

My instinct is towards (a).  If/when someone ever implements a paged 
representation for GenericArray they can perhaps add a method with the 
full size then.

Doug

Mime
View raw message