Class QueryGraphForge
java.lang.Object
com.espertech.esper.common.internal.epl.join.querygraph.QueryGraphForge
Model of relationships between streams based on properties in both streams that are
specified as equal in a filter expression.
-
Field Summary
-
Constructor Summary
ConstructorDescriptionQueryGraphForge
(int numStreams, ExcludePlanHint optionalHint, boolean nToZeroAnalysis) Ctor. -
Method Summary
Modifier and TypeMethodDescriptionvoid
addCustomIndex
(String operationName, ExprNode[] indexExpressions, List<Pair<ExprNode, int[]>> streamKeys, int streamValue) void
addInSetMultiIndex
(int testStreamNum, ExprNode testPropExpr, int setStreamNum, ExprNode[] setPropExpr) void
addInSetMultiIndexUnkeyed
(ExprNode testPropExpr, int setStreamNum, ExprNode[] setPropExpr) void
addInSetSingleIndex
(int testStreamNum, ExprNode testPropExpr, int setStreamNum, ExprNode[] setPropExpr) void
addInSetSingleIndexUnkeyed
(int testStreamNum, ExprNode testPropExpr, ExprNode[] setPropExpr) void
addKeyedExpression
(int indexedStream, ExprIdentNode indexedProp, int keyExprStream, ExprNode exprNodeNoIdent) void
addRangeExpr
(int indexedStream, ExprIdentNode indexedProp, ExprNode startNode, Integer optionalStartStreamNum, ExprNode endNode, Integer optionalEndStreamNum, QueryGraphRangeEnum rangeOp) void
addRangeStrict
(int streamNumStart, ExprIdentNode propertyStartExpr, int streamNumEnd, ExprIdentNode propertyEndExpr, int streamNumValue, ExprIdentNode propertyValueExpr, QueryGraphRangeEnum rangeOp) void
addRelationalOp
(int indexedStream, ExprIdentNode indexedProp, Integer keyStreamNum, ExprNode exprNodeNoIdent, RelationalOpEnum relationalOpEnum) void
addRelationalOpStrict
(int streamIdLeft, ExprIdentNode propertyLeftExpr, int streamIdRight, ExprIdentNode propertyRightExpr, RelationalOpEnum relationalOpEnum) boolean
addStrictEquals
(int streamLeft, String propertyLeft, ExprIdentNode nodeLeft, int streamRight, String propertyRight, ExprIdentNode nodeRight) Add properties for 2 streams that are equal.void
addUnkeyedExpression
(int indexedStream, ExprIdentNode indexedProp, ExprNode exprNodeNoIdent) static void
fillEquivalentNav
(EventType[] typesPerStream, QueryGraphForge queryGraph) Fill in equivalent key properties (navigation entries) on all streams.getGraphValue
(int streamLookup, int streamIndexed) getNavigableStreams
(int streamFrom) Returns set of streams that the given stream is navigable to.int
Returns the number of streams.boolean
isNavigableAtAll
(int streamFrom, int streamTo) make
(CodegenMethod method, SAIFFInitializeSymbol symbols, CodegenClassScope classScope) toString()
-
Field Details
-
SELF_STREAM
public static final int SELF_STREAM- See Also:
-
-
Constructor Details
-
QueryGraphForge
Ctor.- Parameters:
numStreams
- - number of streamsoptionalHint
- hint if anynToZeroAnalysis
- indicator for star-eval
-
-
Method Details
-
getNumStreams
public int getNumStreams()Returns the number of streams.- Returns:
- number of streams
-
addStrictEquals
public boolean addStrictEquals(int streamLeft, String propertyLeft, ExprIdentNode nodeLeft, int streamRight, String propertyRight, ExprIdentNode nodeRight) Add properties for 2 streams that are equal.- Parameters:
streamLeft
- - left hand streampropertyLeft
- - left hand stream propertystreamRight
- - right hand streampropertyRight
- - right hand stream propertynodeLeft
- left exprnodeRight
- right expr- Returns:
- true if added and did not exist, false if already known
-
getGraphValue
-
toString
-
addRangeStrict
public void addRangeStrict(int streamNumStart, ExprIdentNode propertyStartExpr, int streamNumEnd, ExprIdentNode propertyEndExpr, int streamNumValue, ExprIdentNode propertyValueExpr, QueryGraphRangeEnum rangeOp) -
addRelationalOpStrict
public void addRelationalOpStrict(int streamIdLeft, ExprIdentNode propertyLeftExpr, int streamIdRight, ExprIdentNode propertyRightExpr, RelationalOpEnum relationalOpEnum) -
addUnkeyedExpression
public void addUnkeyedExpression(int indexedStream, ExprIdentNode indexedProp, ExprNode exprNodeNoIdent) -
addKeyedExpression
public void addKeyedExpression(int indexedStream, ExprIdentNode indexedProp, int keyExprStream, ExprNode exprNodeNoIdent) -
addRangeExpr
public void addRangeExpr(int indexedStream, ExprIdentNode indexedProp, ExprNode startNode, Integer optionalStartStreamNum, ExprNode endNode, Integer optionalEndStreamNum, QueryGraphRangeEnum rangeOp) -
addRelationalOp
public void addRelationalOp(int indexedStream, ExprIdentNode indexedProp, Integer keyStreamNum, ExprNode exprNodeNoIdent, RelationalOpEnum relationalOpEnum) -
addInSetSingleIndex
-
addInSetSingleIndexUnkeyed
-
addInSetMultiIndex
-
addInSetMultiIndexUnkeyed
-
addCustomIndex
-
make
public CodegenExpression make(CodegenMethod method, SAIFFInitializeSymbol symbols, CodegenClassScope classScope)
-