Class FlipNonReferenceMatchExpression
java.lang.Object
io.deephaven.server.table.ops.filter.AbstractNormalizeFilters
io.deephaven.server.table.ops.filter.FlipNonReferenceMatchExpression
- All Implemented Interfaces:
FilterVisitor<io.deephaven.proto.backplane.grpc.Condition>
Enforces that all IN-type expressions have a reference on the left side and only literals on the right side. Any
non-reference on the left or reference on the right will trigger the entire IN-type expression being replaced with an
OR or AND, with a sub-IN for each expression on the right side.
Examples: o ColumnA in 1, 2, 3 - left as-is o ColumnA in 1, 2, ColumnB - rewritten as (ColumnA in 1 OR ColumnA in 2
OR ColumnA in ColumnB) o 1 in 3, 4, 5 - will be rewritten as (3 in 1 OR 4 in 1 OR 5 in 1). This is a silly case, but
we're not judging. At this step. o 1 in ColumnA, 4, 5 - will be rewritten as (ColumnA in 1 OR 4 in 1 OR 5 in 1) o 1
in ColumnA - will be rewritten as ColumnA in 1 o ColumnA in ColumnB - will be rewritten as ColumnB in ColumnA. Note
that like the second example, this isn't productive on its own, but as a pair with a reference on the right, it will
be noticed by
ConvertInvalidInExpressions.
It is assumed that some time after this step, related "in" expressions will be merged together, and that these
one-off expressions will get checked later.-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic io.deephaven.proto.backplane.grpc.Conditionexec(io.deephaven.proto.backplane.grpc.Condition filter) io.deephaven.proto.backplane.grpc.ConditiononIn(io.deephaven.proto.backplane.grpc.Value target, List<io.deephaven.proto.backplane.grpc.Value> candidatesList, io.deephaven.proto.backplane.grpc.CaseSensitivity caseSensitivity, io.deephaven.proto.backplane.grpc.MatchType matchType) Methods inherited from class io.deephaven.server.table.ops.filter.AbstractNormalizeFilters
onAnd, onComparison, onContains, onInvoke, onIsNull, onMatches, onNot, onOr, onSearch
-
Constructor Details
-
FlipNonReferenceMatchExpression
public FlipNonReferenceMatchExpression()
-
-
Method Details
-
exec
public static io.deephaven.proto.backplane.grpc.Condition exec(io.deephaven.proto.backplane.grpc.Condition filter) -
onIn
public io.deephaven.proto.backplane.grpc.Condition onIn(io.deephaven.proto.backplane.grpc.Value target, List<io.deephaven.proto.backplane.grpc.Value> candidatesList, io.deephaven.proto.backplane.grpc.CaseSensitivity caseSensitivity, io.deephaven.proto.backplane.grpc.MatchType matchType) - Specified by:
onInin interfaceFilterVisitor<io.deephaven.proto.backplane.grpc.Condition>- Overrides:
onInin classAbstractNormalizeFilters
-