Siddharth, Thanks for the update. Without really sit down and do the prototype, my opinions can be wrong. But,
I think a lot of the complication are code like this: <#elseif minor.class == "Decimal"> public void get(int index, ${minor.class}Holder holder) { holder.start = index * ${type.width}; holder.buffer = data; holder.scale = scale; holder.precision = precision; } The fact that we have to have a special block for Decimal is eyesore to me. And it's not really shared with any other classes. Things like these are not great but might be ok? <#if type.width == 4> public long getTwoAsLong(int index) { return data.getLong(index * ${type.width}); } </#if> Sorry I couldn't provide too much useful feedback without digging into the template, but this is any general feeling about these templates - too many "if" to types like "Interval" "Decimal" "Timestamp" On Tue, Oct 3, 2017 at 3:59 PM, Siddharth Teotia <siddha...@dremio.com> wrote: > I am in the middle of a simple prototype that has the basic implementation > of BaseFixedWidthVector, FixedValueVectorsPrototype.java (template) to > generate a simple IntVector using the proposal mentioned in the document. > > I have realized that even though the LOCs in existing templates are reduced > by 30-40% since bunch of common/basic functionality is moved to super class > BaseFixedWidthVector, the major source of pain (giant and complex if > conditions) associated with code generation is in accessor and mutator > which is still part of templates. > > I am trying to err on the side of not using templates at all since I feel > there is not much of gain from this refactoring project if the code in > templates is still complex and requires regular addition/modification when > adding new types. We are probably better off writing multiple sub classes > (with duplicate code as applicable) > > Thoughts? > > I can create a PR from this prototype code once it in reasonable shape for > review but was wondering if people have any opinion. > > Thanks, > Sidd > > On Tue, Oct 3, 2017 at 3:16 AM, Siddharth Teotia <siddha...@dremio.com> > wrote: > > > Hi All, > > > > You should have received an invitation to edit the following document. > > Please feel free to add comments or additional content. > > > > https://docs.google.com/document/d/1rl0PK5OnbQAnFUrhd4bQPtP0u7930 > > sBKKaiyggOY7t4/edit > > > > Let me know if the document is not editable. > > > > Thanks, > > Siddharth > > >