Interface QueryModelNode

All Superinterfaces:
Cloneable, Serializable
All Known Subinterfaces:
AggregateOperator, ExclusiveTupleExpr, ExclusiveTupleExprRenderer, FedXTupleExpr, FilterTuple, FilterValueExpr, StatementTupleExpr, TupleExpr, UpdateExpr, ValueExpr
All Known Implementing Classes:
AbstractAggregateOperator, AbstractNAryAggregateOperator, AbstractQueryModelNode, Add, AggregateFunctionCall, And, ArbitraryLengthPath, Avg, BinaryTupleOperator, BinaryValueOperator, BindingSetAssignment, BNodeGenerator, Bound, BoundFiltersNode, CheckStatementPattern, Clear, Coalesce, Compare, CompareAll, CompareAny, CompareSubQueryValueOperator, ConjunctiveFilterExpr, Copy, Count, Create, Datatype, DeleteData, DescribeOperator, Difference, Distinct, EmptyNJoin, EmptyNUnion, EmptySet, EmptyStatementPattern, ExclusiveArbitraryLengthPath, ExclusiveGroup, ExclusiveStatement, Exists, Extension, ExtensionElem, FederatedDescribeOperator, FedXArbitraryLengthPath, FedXLeftJoin, FedXService, FedXStatementPattern, FedXZeroLengthPath, Filter, FilterExpr, FunctionCall, Group, GroupConcat, GroupElem, HolderNode, If, In, InsertData, Intersection, IRIFunction, IsBNode, IsLiteral, IsNumeric, IsResource, IsURI, Join, Label, Lang, LangMatches, LeftJoin, ListMemberOperator, Load, LocalName, MathExpr, Max, Min, Modify, Move, MultiProjection, Namespace, NAryValueOperator, NJoin, Not, NTuple, NUnion, Or, Order, OrderElem, PassThroughTupleExpr, PrecompiledQueryNode, Projection, ProjectionElem, ProjectionElemList, QueryRoot, Reduced, Regex, SameTerm, Sample, Service, SingleSourceQuery, SingletonSet, Slice, StatementPattern, StatementSource, StatementSourcePattern, Str, SubQueryValueOperator, Sum, TripleRef, TrueStatementPattern, TupleFunctionCall, UnaryTupleOperator, UnaryValueOperator, Union, ValueConstant, ValueExprTripleRef, Var, ZeroLengthPath

public interface QueryModelNode extends Cloneable, Serializable
Main interface for all query model nodes.
  • Method Details

    • visit

      <X extends Exception> void visit(QueryModelVisitor<X> visitor) throws X
      Visits this node. The node reports itself to the visitor with the proper runtime type.
      Throws:
      X
    • visitChildren

      <X extends Exception> void visitChildren(QueryModelVisitor<X> visitor) throws X
      Visits the children of this node. The node calls visit(QueryModelVisitor) on all of its child nodes.
      Throws:
      X
    • getParentNode

      QueryModelNode getParentNode()
      Gets the node's parent.
      Returns:
      The parent node, if any.
    • setParentNode

      void setParentNode(QueryModelNode parent)
      Sets the node's parent.
      Parameters:
      parent - The parent node for this node.
    • replaceChildNode

      void replaceChildNode(QueryModelNode current, QueryModelNode replacement)
      Replaces one of the child nodes with a new node.
      Parameters:
      current - The current child node.
      replacement - The new child node.
      Throws:
      IllegalArgumentException - If current is not one of node's children.
      ClassCastException - If replacement is of an incompatible type.
    • replaceWith

      void replaceWith(QueryModelNode replacement)
      Substitutes this node with a new node in the query model tree.
      Parameters:
      replacement - The new node.
      Throws:
      IllegalStateException - If this node does not have a parent node.
      ClassCastException - If replacement is of an incompatible type.
    • equals

      boolean equals(Object o)
      Returns true if this query model node and its children are recursively equal to o and its children.
      Overrides:
      equals in class Object
    • toString

      String toString()
      Returns an indented print of the node tree, starting from this node.
      Overrides:
      toString in class Object
    • getSignature

      String getSignature()
      Returns the signature of this query model node. Signatures normally include the node's name and any parameters, but not parent or child nodes. This method is used by toString().
      Returns:
      The node's signature, e.g. SLICE (offset=10, limit=10).
    • clone

      Returns a (deep) clone of this query model node. This method recursively clones the entire node tree, starting from this nodes.
      Returns:
      A deep clone of this query model node.
    • getResultSizeEstimate

      @Experimental default double getResultSizeEstimate()
      Returns the number of tuples that this QueryNode predicts will be outputted. For a StatementPattern this would be the estimated cardinality provided by the EvaluationStatistics. For a Join the would be the resulting number of joined tuples.
      Returns:
      rows
    • setResultSizeEstimate

      @Experimental default void setResultSizeEstimate(double rows)
    • getResultSizeActual

      @Experimental default long getResultSizeActual()
    • setResultSizeActual

      @Experimental default void setResultSizeActual(long resultSizeActual)
    • getCostEstimate

      @Experimental default double getCostEstimate()
    • setCostEstimate

      @Experimental default void setCostEstimate(double costEstimate)
    • getTotalTimeNanosActual

      @Experimental default long getTotalTimeNanosActual()
    • setTotalTimeNanosActual

      @Experimental default void setTotalTimeNanosActual(long totalTime)
    • getHasNextCallCountActual

      @Experimental default long getHasNextCallCountActual()
    • setHasNextCallCountActual

      @Experimental default void setHasNextCallCountActual(long hasNextCallCountActual)
    • getHasNextTrueCountActual

      @Experimental default long getHasNextTrueCountActual()
    • setHasNextTrueCountActual

      @Experimental default void setHasNextTrueCountActual(long hasNextTrueCountActual)
    • getHasNextTimeNanosActual

      @Experimental default long getHasNextTimeNanosActual()
    • setHasNextTimeNanosActual

      @Experimental default void setHasNextTimeNanosActual(long hasNextTimeNanosActual)
    • getNextCallCountActual

      @Experimental default long getNextCallCountActual()
    • setNextCallCountActual

      @Experimental default void setNextCallCountActual(long nextCallCountActual)
    • getNextTimeNanosActual

      @Experimental default long getNextTimeNanosActual()
    • setNextTimeNanosActual

      @Experimental default void setNextTimeNanosActual(long nextTimeNanosActual)
    • getJoinRightIteratorsCreatedActual

      @Experimental default long getJoinRightIteratorsCreatedActual()
    • setJoinRightIteratorsCreatedActual

      @Experimental default void setJoinRightIteratorsCreatedActual(long joinRightIteratorsCreatedActual)
    • getJoinLeftBindingsConsumedActual

      @Experimental default long getJoinLeftBindingsConsumedActual()
    • setJoinLeftBindingsConsumedActual

      @Experimental default void setJoinLeftBindingsConsumedActual(long joinLeftBindingsConsumedActual)
    • getJoinRightBindingsConsumedActual

      @Experimental default long getJoinRightBindingsConsumedActual()
    • setJoinRightBindingsConsumedActual

      @Experimental default void setJoinRightBindingsConsumedActual(long joinRightBindingsConsumedActual)
    • getSourceRowsScannedActual

      @Experimental default long getSourceRowsScannedActual()
    • setSourceRowsScannedActual

      @Experimental default void setSourceRowsScannedActual(long sourceRowsScannedActual)
    • getSourceRowsMatchedActual

      @Experimental default long getSourceRowsMatchedActual()
    • setSourceRowsMatchedActual

      @Experimental default void setSourceRowsMatchedActual(long sourceRowsMatchedActual)
    • getSourceRowsFilteredActual

      @Experimental default long getSourceRowsFilteredActual()
    • setSourceRowsFilteredActual

      @Experimental default void setSourceRowsFilteredActual(long sourceRowsFilteredActual)
    • getLongMetricsActual

      @Experimental default Map<String,Long> getLongMetricsActual()
    • getLongMetricActual

      @Experimental default long getLongMetricActual(String metricName)
    • setLongMetricActual

      @Experimental default void setLongMetricActual(String metricName, long metricValue)
    • getDoubleMetricsActual

      @Experimental default Map<String,Double> getDoubleMetricsActual()
    • getDoubleMetricActual

      @Experimental default double getDoubleMetricActual(String metricName)
    • setDoubleMetricActual

      @Experimental default void setDoubleMetricActual(String metricName, double metricValue)
    • getStringMetricsActual

      @Experimental default Map<String,String> getStringMetricsActual()
    • getStringMetricActual

      @Experimental default String getStringMetricActual(String metricName)
    • setStringMetricActual

      @Experimental default void setStringMetricActual(String metricName, String metricValue)
    • isRuntimeTelemetryEnabled

      @Experimental default boolean isRuntimeTelemetryEnabled()
    • setRuntimeTelemetryEnabled

      @Experimental default void setRuntimeTelemetryEnabled(boolean runtimeTelemetryEnabled)