[ https://issues.apache.org/jira/browse/IGNITE-12248?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16981405#comment-16981405 ]
Roman Kondakov commented on IGNITE-12248: ----------------------------------------- [~gvvinblade], I've taken a look to your approach and overall it seems to be very good. I just have a list of minor questions: # Why do we need spring dependencies in calcite/pom.xml? # Are we going to support {{_key}} and {{_val}} columns in the new engine? Why? # Why do we use java serialization in calcite.serialize package? # What is the purpose of {{CalciteSchemaHolder}}? Why don't use just {{RootSchema}}? I haven't got the idea. # Why do we need {{IgnitePlanner}}? It is almost certain copy of {{org.apache.calcite.prepare.PlannerImpl}} # Why do we wrap everything into {{Context}}? Even query itself. Do we really need it? See {{CalciteQueryProcessor#context()}}. Excessive use of wrap/unwrap/chaining/etc methods affects code readablity. # Looks like {{RelOp}} interface is redundant. Also as usage of {{BiFunction}} in {{Commons#transformSubset}}. IMO we need to avoid excessive using of lambdas and functions. It affects readability too. # Why do we need to have {{DistributionRegistry}}? Aren't tables aware of their distributions? # IgniteMdDistribution#join - there is a list of differnet types of joins and there is also a statement that "others are impossible". Why broadcast LEFT JOIN hash is impossible? # What is the difference between implementor and visitor? See {{RelImplementor}}. If there are no differences, why don't use the word {{Visitor}} instead of {{Implementor}} just because it is the well known pattern? > Apache Calcite based query execution engine > ------------------------------------------- > > Key: IGNITE-12248 > URL: https://issues.apache.org/jira/browse/IGNITE-12248 > Project: Ignite > Issue Type: Task > Components: sql > Reporter: Igor Seliverstov > Assignee: Igor Seliverstov > Priority: Major > > Currently used H2 based query execution engine has a number of critical > limitations Which do not allow to execute an arbitrary query. > The ticket aims to show potential of a new, Calcite based, execution engine > which may act not worse than current one on co-located queries, provide a > boost for queries, using distributed joins, and provide an ability to execute > arbitrary queries, requiring more than one map-reduce step in execution flow. > [IEP > link|https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=130028084] > [Dev list > thread|http://apache-ignite-developers.2346864.n4.nabble.com/New-SQL-execution-engine-td43724.html] -- This message was sent by Atlassian Jira (v8.3.4#803005)