tajo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From camelia c <camelie_1...@yahoo.com>
Subject [GSoc2013] - Outer Join
Date Tue, 24 Sep 2013 12:04:41 GMT

Yes, indeed I finished the project. I had synchronized on September 5th , the last time.
Then I finished the project and ran   mvn clean install    successfully!

As You should have known, on September 16th, it was the soft pencils down deadline, meaning
that Google evaluates source code written by that date. All source code modified afterwards
counts only as further work, not for the GSoC project aim accomplisment.

Today, as You requested, I tried to synchronize again. 

Well, except from some conflicts that I resolved for commit purposes, the biggest surprise
was to discover that You deleted the classes I worked with. Also, You modified/ deleted some
methods that I was using. Unfortunately this is not the first time that You delete classes
while I'm using them (just remind You of  #TAJO-87,  #TAJO-121 ,  #TAJO-96  which caused
me to start work all over again at mid August, even if we had agreed initially on the Software
Design Document).

I shall give some examples:

1) I use the class FromTable in several places (e.g. OuterJoinUtil, OuterJoinMeta, OuterJoinRewriteRule),
but this class was deleted by You on September 20th, after the project's deadline. I'm talking
about Your commit bd1619de0c0a371363382540f70bd876c08ea765, named "TAJO-186: Improve column
resolving method. (hyunsik) ".

2) From class ScanNode, I use the method getTableId()  (e.g. in OuterJoinMeta, in FilterPushdownRule),
which is no longer available, as of September 16th when You first renamed it to getTableName
in commit 1b1d1e8c1a6b82ccc5c3ce4daeb9e3daa309cde4 named "TAJO-184: Refactor GlobalPlanner
and global plan data structure".  

Afterwards, on September 20th, in commit bd1619de0c0a371363382540f70bd876c08ea765, named
"TAJO-186: Improve column resolving method. (hyunsik) ",  You dropped the FromTable field
from this class and used a TableDesc instead.

3) From class Column, I use the method getTableName()  (e.g. in FilterPushdownRule), which
is no longer available, as of September 16th, in commit 1b1d1e8c1a6b82ccc5c3ce4daeb9e3daa309cde4
named "TAJO-184: Refactor GlobalPlanner and global plan data structure", You deleted this

4) From class SortNode, I use the constructor public SortNode(SortSpec[] sortKeys, Schema inSchema, Schema outSchema)  
(e.g. in PhysicalPlannerImpl)

but yesterday, on September 23rd , on commit  fc018de823dd34d769eb73f3c42e089b0d992b81   
named  "TAJO-194: LogicalNode should have an identifier to distinguish each logical node
instance", You deleted this method.

All these major changes after the project's deadline September 16th, can be handled in the
future depending on what You had in your plan when You decided to do all these changes.

As all these changes occured after the project's deadline, I consider the project successfully
finished and the proof is the source repository at https://github.com/camelia-c/incubator-tajo/tree/outerjoin_1.

The project status was continuously updated on the project's website that You know : https://sites.google.com/site/gsoc2013tajo34/
, so that the status was always visible for interested parties.

Looking forward to hear from You soon.

Yours sincerely,

 From: Hyunsik Choi <hyunsik@apache.org>
To: tajo-dev <dev@tajo.incubator.apache.org>; camelia c <camelie_1985@yahoo.com>

Sent: Sunday, September 15, 2013 12:49 PM
Subject: Re: [GSoc2013] - Outer Join - 2 very important questions

Hi camelia,

I'm sorry for late response. The solution is simple. You can modify
existing source code. I've changed the 121 line in Int4Datum as

  if (datum instanceof NullDatum) {
    return DatumFactory.createBool(false);
  } else {
    throw new InvalidOperationException();

Then, the all unit tests of TestLeftOuter_NLJoinExec are passed. Also,
other Datum classes need to have the above codes.

Anyway, you work looks very great.

Best regards,
Hyunsik Choi

> __________

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message