> On Jan. 28, 2015, 12:30 a.m., Chris Riccomini wrote: > > samza-sql/src/main/java/org/apache/samza/sql/om/FromExpression.java, line 28 > > <https://reviews.apache.org/r/30287/diff/1/?file=834474#file834474line28> > > > > This class is a little confusing to me. 1) it doesn't extend > > expression. 2) It seems odd to have join as part of 'from', as opposed to > > its own independent OM representation. > > Milinda Pathirage wrote: > Yi also raise a similar issue. I think FromExpression should be > FromClause (If we are keeping it). And for join we can think join as a data > source. So a data source can be a stream, a table, a time varying relation or > a join. And if we do that, we don't need FromExpression. So I think this can > be a better solution.
I still like what you have put in the example, which allows a from() method to add data sources. We may not need the class FromExpression though. - Yi ----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/30287/#review69922 ----------------------------------------------------------- On Jan. 26, 2015, 10:04 p.m., Milinda Pathirage wrote: > > ----------------------------------------------------------- > This is an automatically generated e-mail. To reply, visit: > https://reviews.apache.org/r/30287/ > ----------------------------------------------------------- > > (Updated Jan. 26, 2015, 10:04 p.m.) > > > Review request for samza, Chris Riccomini and Yi Pan (Data Infrastructure). > > > Repository: samza > > > Description > ------- > > WIP: Stream SQL Object Model > > Overview view of the design: > > There are three main types of objects in this model > > * Expression: Can be a reference to a column of a table or a field of a tuple > or a property of a nested data structure, a arithmetic expression, a logical > expression, a function or expressions that can be used in where clauses, > having clauses, field based window clauses > * DataSource: Data source can be a stream, a table or a time varying relation > results from applying a window operator to a stream. (**I'm not sure whether > DataSource is the correct naming. We need to discuss this.**) > * Statement: Stream SQL statements like SELECT, INSERT and UPDATE > > Then we have a simple factory (**StreamSQLFactory**) which creates different > types of expressions. And I have implemented a fluent style API for > **Select** to demonstrate how building a query using this OM will looks like. > Two examples queries can be found in **StreamSQLSamples**. > > This is the first draft. Please feel free to comment on this. > > > Diffs > ----- > > build.gradle 7a40ad4 > gradle/wrapper/gradle-wrapper.properties 78596c0 > samza-sql/src/main/java/org/apache/samza/sql/om/AbstractDataSource.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/AbstractExpression.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/AliasedExpression.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/ArithmeticExpression.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/CompareExpression.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/FieldReference.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/FromExpression.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/FunctionExpressions.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/Literal.java PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/LogicalExpression.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/OrderByExpression.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/OrderByField.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/PartitionByExpression.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/Select.java PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/Stream.java PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/StreamSQLFactory.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/Table.java PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/TimeBasedWindow.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/TimeVaryingRelation.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/TupleBasedWindow.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/WindowExpression.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/api/DataSource.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/api/Expression.java > PRE-CREATION > samza-sql/src/main/java/org/apache/samza/sql/om/api/Statement.java > PRE-CREATION > samza-sql/src/test/java/org/apache/samza/sql/om/StreamSQLSamples.java > PRE-CREATION > settings.gradle 3a01fd6 > > Diff: https://reviews.apache.org/r/30287/diff/ > > > Testing > ------- > > > Thanks, > > Milinda Pathirage > >