Actually, returning a constant from a hashCode function is pretty goofy. In the String implementation 31 is a *factor*.
On Tue, Sep 22, 2015 at 4:25 PM, Jinfeng Ni <jinfengn...@gmail.com> wrote: > For question 5, this link [1] probably explains why 31 is used: > > > [1] > http://stackoverflow.com/questions/299304/why-does-javas-hashcode-in-string-use-31-as-a-multiplier > > > On Tue, Sep 22, 2015 at 10:05 AM, Abdel Hakim Deneche > <adene...@maprtech.com> wrote: > > Question 3: > > I would assume getWriterOperatorType() has a similar meaning to > > getReaderOperatorType() but it's not used anywhere in Drill. That would > > explain why JsonFormatPlugin throws an UnsupportedOperationException > > > > Question 4: > > supportsPushDown() is about "projection" push down and not filter push > down > > > > Question 5: > > I would say, purely random. > > > > On Fri, Sep 18, 2015 at 11:48 AM, Edmon Begoli <ebeg...@gmail.com> > wrote: > > > >> Thanks, Abdel. > >> I will use your answers to guide my development, but I will also > contribute > >> them back as a javadoc. > >> > >> On Fri, Sep 18, 2015 at 2:39 PM, Abdel Hakim Deneche < > >> adene...@maprtech.com> > >> wrote: > >> > >> > Question 2: > >> > to my knowledge (what I've found digging through the code). Each > Operator > >> > has a unique OperatorType that is used when writing the operator's > stats > >> in > >> > the profile. So in this case, Each FormatPlugin implementation should > >> have > >> > a corresponding unique OperatorType added to CoreOperatorType. > >> > > >> > I will get back to you after I get more information about the > remaining > >> > questions. > >> > > >> > Thanks > >> > > >> > On Thu, Sep 17, 2015 at 8:14 PM, Edmon Begoli <ebeg...@gmail.com> > wrote: > >> > > >> > > Hello all, > >> > > > >> > > Could some please with answering my questions 2-5 below? > >> > > > >> > > Thank you, > >> > > Edmon > >> > > > >> > > On Wednesday, September 16, 2015, Edmon Begoli <ebeg...@gmail.com> > >> > wrote: > >> > > > >> > > > I am studying the JSON Storage plugin. > >> > > > > >> > > > Can someone please answer what is the meaning (or intent) of the > >> > > following > >> > > > methods: > >> > > > > >> > > > # Question 1: > >> > > > # This is from inside the getter for RecordWriter. What is > >> major/minor > >> > > > fragment id? > >> > > > String fragmentId = String.format("%d_%d", > >> handle.getMajorFragmentId(), > >> > > > handle.getMinorFragmentId()); > >> > > > > >> > > > > >> > > > # Question 2: > >> > > > # Speficially, what is Operator Type, and what is JSON specific > about > >> > it? > >> > > > public int getReaderOperatorType() { > >> > > > return CoreOperatorType.JSON_SUB_SCAN_VALUE; > >> > > > } > >> > > > > >> > > > # Question 3: > >> > > > # same, but for writer > >> > > > @Override > >> > > > public int getWriterOperatorType() { > >> > > > throw new UnsupportedOperationException(); > >> > > > } > >> > > > > >> > > > # Question 4: > >> > > > # I generally understand the concept of predicate pushdown, but is > >> this > >> > > > about predicate push down or something else? > >> > > > # How does one implement a push down for storage format? > >> > > > @Override > >> > > > public boolean supportsPushDown() { > >> > > > > >> > > > # Question 5: > >> > > > # Is this int value of 31 purely randomly selected, or is there an > >> > index > >> > > > somewhere? > >> > > > @Override > >> > > > public int hashCode() { > >> > > > return 31; > >> > > > } > >> > > > > >> > > > > >> > > > > >> > > > > >> > > > >> > > >> > > >> > > >> > -- > >> > > >> > Abdelhakim Deneche > >> > > >> > Software Engineer > >> > > >> > <http://www.mapr.com/> > >> > > >> > > >> > Now Available - Free Hadoop On-Demand Training > >> > < > >> > > >> > http://www.mapr.com/training?utm_source=Email&utm_medium=Signature&utm_campaign=Free%20available > >> > > > >> > > >> > > > > > > > > -- > > > > Abdelhakim Deneche > > > > Software Engineer > > > > <http://www.mapr.com/> > > > > > > Now Available - Free Hadoop On-Demand Training > > < > http://www.mapr.com/training?utm_source=Email&utm_medium=Signature&utm_campaign=Free%20available > > >