Package org.apache.calcite.sql.validate
Class SqlValidatorImpl.NavigationReplacer
- java.lang.Object
-
- org.apache.calcite.sql.util.SqlBasicVisitor<SqlNode>
-
- org.apache.calcite.sql.util.SqlShuttle
-
- org.apache.calcite.sql.validate.SqlValidatorImpl.NavigationModifier
-
- org.apache.calcite.sql.validate.SqlValidatorImpl.NavigationReplacer
-
- All Implemented Interfaces:
SqlVisitor<SqlNode>
- Enclosing class:
- SqlValidatorImpl
private static class SqlValidatorImpl.NavigationReplacer extends SqlValidatorImpl.NavigationModifier
Shuttle that replacesA as A.price > PREV(B.price)
withPREV(A.price, 0) > LAST(B.price, 0)
.Replacing
A.price
withPREV(A.price, 0)
makes the implementation ofRexVisitor.visitPatternFieldRef(RexPatternFieldRef)
more unified. Otherwise, it's difficult to implement this method. If it returns the specified field, then the navigation such asPREV(A.price, 1)
becomes impossible; if not, then comparisons such asA.price > PREV(A.price, 1)
become meaningless.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.apache.calcite.sql.util.SqlShuttle
SqlShuttle.CallCopyingArgHandler
-
Nested classes/interfaces inherited from class org.apache.calcite.sql.util.SqlBasicVisitor
SqlBasicVisitor.ArgHandler<R>, SqlBasicVisitor.ArgHandlerImpl<R>
-
-
Field Summary
Fields Modifier and Type Field Description private java.lang.String
alpha
-
Constructor Summary
Constructors Constructor Description NavigationReplacer(java.lang.String alpha)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description SqlNode
visit(SqlCall call)
Visits a call to aSqlOperator
.SqlNode
visit(SqlIdentifier id)
Visits an identifier.-
Methods inherited from class org.apache.calcite.sql.validate.SqlValidatorImpl.NavigationModifier
go
-
-
-
-
Method Detail
-
visit
public SqlNode visit(SqlCall call)
Description copied from interface:SqlVisitor
Visits a call to aSqlOperator
.- Specified by:
visit
in interfaceSqlVisitor<SqlNode>
- Overrides:
visit
in classSqlShuttle
- Parameters:
call
- Call- See Also:
SqlCall.accept(SqlVisitor)
-
visit
public SqlNode visit(SqlIdentifier id)
Description copied from interface:SqlVisitor
Visits an identifier.- Specified by:
visit
in interfaceSqlVisitor<SqlNode>
- Overrides:
visit
in classSqlShuttle
- Parameters:
id
- identifier- See Also:
SqlIdentifier.accept(SqlVisitor)
-
-