Hello, Thank You very much for Your feedback!
I completed the outer joins to inner joins rewriting part and I plan to follow Your advice and move the rewriting methods to LogicalOptimizer. The new processing is described in https://sites.google.com/site/gsoc2013tajo34/home/validation , where I also uploaded the source code as files. 1) I think that the allTables data structure as well as the validateOuterJoin and recursiveWhere methods should remain in class QueryAnalyzer, as they belong to the stage where the query is analyzed and validated. In my opinion, only methods rewriteOuterJoin, recursiveRewriteMultiNullSupplier, recursiveRewriteNullRestricted should be moved to class LogicalOptimizer as they perform optimizations on the logical plan. What do You think about this? 2) I would like to kindly ask You how can I continually rebase my work on the latest Tajo version, "rebase continually your work on updated source code"? Usually I issue this command: mvn package -DskipTests -Pdist -Dtar What should I do before this? 3) I read on the mailing lists that the Tajo Cli changed and was improved. But besides the query acceptance, does this affect in any way the stages of the query processing, after its parsing? 4) Also, I read some posts on the mailing list related to integration tests. Where can I find these and how should I use them in order to verify that my work integrates well with the rest of the source code? My work so far only affects queries containing at least one outer join, so for queries consisting only of inner joins no modification is made. As a final remark, it was easier to manage the recursion without EvalTreeUtil. Hope it's ok. Thank You in advance! Yours sincerely, Camelia
