Packages

c

com.nvidia.spark.rapids

TypedImperativeAggExprMeta

abstract class TypedImperativeAggExprMeta[INPUT <: TypedImperativeAggregate[_]] extends ImperativeAggExprMeta[INPUT]

Base class for metadata around TypedImperativeAggregate.

Linear Supertypes
ImperativeAggExprMeta[INPUT], AggExprMeta[INPUT], ExprMeta[INPUT], BaseExprMeta[INPUT], RapidsMeta[INPUT, Expression, Expression], AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. TypedImperativeAggExprMeta
  2. ImperativeAggExprMeta
  3. AggExprMeta
  4. ExprMeta
  5. BaseExprMeta
  6. RapidsMeta
  7. AnyRef
  8. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new TypedImperativeAggExprMeta(expr: INPUT, conf: RapidsConf, parent: Option[RapidsMeta[_, _, _]], rule: DataFromReplacementRule)

Abstract Value Members

  1. abstract def aggBufferAttribute: AttributeReference

    Returns aggregation buffer with the actual data type under GPU runtime.

    Returns aggregation buffer with the actual data type under GPU runtime. This method is called to override the data types of typed imperative aggregation buffers during GPU overriding.

  2. abstract def convertToGpu(childExprs: Seq[Expression]): GpuExpression
    Definition Classes
    ImperativeAggExprMetaAggExprMeta

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def addConvertedDataType(expression: Expression, typeMeta: DataTypeMeta): Unit

    Call this method to record information about type conversions via DataTypeMeta.

    Call this method to record information about type conversions via DataTypeMeta.

    Definition Classes
    RapidsMeta
  5. val ansiTypeToCheck: Option[DataType]
    Definition Classes
    AggExprMeta
  6. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  7. def canDataWriteCmdsBeReplaced: Boolean

    Returns true iff all of the data writing commands can be replaced.

    Returns true iff all of the data writing commands can be replaced.

    Definition Classes
    RapidsMeta
  8. def canExprTreeBeReplaced: Boolean

    Returns true iff all of the expressions and their children could be replaced.

    Returns true iff all of the expressions and their children could be replaced.

    Definition Classes
    BaseExprMetaRapidsMeta
  9. def canPartsBeReplaced: Boolean

    Returns true iff all of the partitioning can be replaced.

    Returns true iff all of the partitioning can be replaced.

    Definition Classes
    RapidsMeta
  10. def canScansBeReplaced: Boolean

    Returns true iff all of the scans can be replaced.

    Returns true iff all of the scans can be replaced.

    Definition Classes
    RapidsMeta
  11. lazy val canSelfBeAst: Boolean

    Check whether this node itself can be converted to AST.

    Check whether this node itself can be converted to AST. It will not recursively check its children. It's used to check join condition AST-ability in top-down fashion.

    Definition Classes
    BaseExprMeta
  12. final def canThisBeAst: Boolean
    Definition Classes
    BaseExprMeta
  13. final def canThisBeReplaced: Boolean

    Returns true iff this could be replaced.

    Returns true iff this could be replaced.

    Definition Classes
    RapidsMeta
  14. var cannotBeReplacedReasons: Option[Set[String]]
    Attributes
    protected
    Definition Classes
    RapidsMeta
  15. var cannotRunOnGpuBecauseOfCost: Boolean
    Attributes
    protected
    Definition Classes
    RapidsMeta
  16. var cannotRunOnGpuBecauseOfSparkPlan: Boolean
    Attributes
    protected
    Definition Classes
    RapidsMeta
  17. def checkExprForTimezone(): Unit
    Definition Classes
    BaseExprMeta
  18. def checkTimeZoneId(sessionZoneId: ZoneId): Unit
    Definition Classes
    RapidsMeta
  19. def checkUTCTimezone(meta: RapidsMeta[_, _, _], zoneId: ZoneId): Unit

    Timezone check which only allows UTC timezone.

    Timezone check which only allows UTC timezone. This is consistent with previous behavior.

    meta

    to check whether it's UTC

    Definition Classes
    BaseExprMeta
  20. val childDataWriteCmds: Seq[DataWritingCommandMeta[_]]

    The wrapped data writing commands that should be examined

    The wrapped data writing commands that should be examined

    Definition Classes
    BaseExprMetaRapidsMeta
  21. val childExprs: Seq[BaseExprMeta[_]]

    The wrapped expressions that should be examined

    The wrapped expressions that should be examined

    Definition Classes
    BaseExprMetaRapidsMeta
  22. val childParts: Seq[PartMeta[_]]

    The wrapped partitioning that should be examined

    The wrapped partitioning that should be examined

    Definition Classes
    BaseExprMetaRapidsMeta
  23. val childPlans: Seq[SparkPlanMeta[_]]

    The wrapped plans that should be examined

    The wrapped plans that should be examined

    Definition Classes
    BaseExprMetaRapidsMeta
  24. val childRunnableCmds: Seq[RunnableCommandMeta[_]]

    The wrapped runnable commands that should be examined.

    The wrapped runnable commands that should be examined.

    Definition Classes
    RapidsMeta
  25. val childScans: Seq[ScanMeta[_]]

    The wrapped scans that should be examined

    The wrapped scans that should be examined

    Definition Classes
    BaseExprMetaRapidsMeta
  26. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  27. val conf: RapidsConf
    Definition Classes
    RapidsMeta
  28. def confKey: String
    Definition Classes
    RapidsMeta
  29. lazy val context: ExpressionContext
    Definition Classes
    BaseExprMeta
  30. def convertToCpu(): Expression

    Keep this on the CPU, but possibly convert its children under it to run on the GPU if enabled.

    Keep this on the CPU, but possibly convert its children under it to run on the GPU if enabled. By default this just returns what is wrapped by this. For some types of operators/stages, like SparkPlan, each part of the query can be converted independent of other parts. As such in a subclass this should be overridden to do the correct thing.

    Definition Classes
    RapidsMeta
  31. final def convertToGpu(): GpuExpression

    Convert what this wraps to a GPU enabled version.

    Convert what this wraps to a GPU enabled version.

    Definition Classes
    AggExprMetaExprMetaRapidsMeta
  32. final def costPreventsRunningOnGpu(): Unit
    Definition Classes
    RapidsMeta
  33. def createCpuToGpuBufferConverter(): CpuToGpuAggregateBufferConverter

    Returns a buffer converter who can generate a Expression to transform the aggregation buffer of wrapped function from CPU format to GPU format.

    Returns a buffer converter who can generate a Expression to transform the aggregation buffer of wrapped function from CPU format to GPU format. The conversion occurs on the CPU, so the generated expression should be a CPU Expression executed by row.

  34. def createGpuToCpuBufferConverter(): GpuToCpuAggregateBufferConverter

    Returns a buffer converter who can generate a Expression to transform the aggregation buffer of wrapped function from GPU format to CPU format.

    Returns a buffer converter who can generate a Expression to transform the aggregation buffer of wrapped function from GPU format to CPU format. The conversion occurs on the CPU, so the generated expression should be a CPU Expression executed by row.

  35. def dataType: DataType
    Definition Classes
    BaseExprMeta
  36. final val disabledMsg: Option[String]
    Definition Classes
    RapidsMeta
  37. final def entirePlanExcludedReasons: Set[String]

    Returns the list of reasons the entire plan can't be replaced.

    Returns the list of reasons the entire plan can't be replaced. An empty set means the entire plan is ok to be replaced, do the normal checking per exec and children.

    Definition Classes
    RapidsMeta
  38. final def entirePlanWillNotWork(because: String): Unit

    Call this if there is a condition found that the entire plan is not allowed to run on the GPU.

    Call this if there is a condition found that the entire plan is not allowed to run on the GPU.

    Definition Classes
    RapidsMeta
  39. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  40. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  41. def explain(all: Boolean): String
    Definition Classes
    RapidsMeta
  42. def explainAst(all: Boolean): String
    Definition Classes
    BaseExprMeta
  43. val expr: INPUT
    Definition Classes
    AggExprMeta
  44. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  45. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  46. def getZoneId(): ZoneId
    Attributes
    protected
    Definition Classes
    BaseExprMeta
  47. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  48. val ignoreUnsetDataTypes: Boolean
    Definition Classes
    BaseExprMeta
  49. final val incompatDoc: Option[String]
    Definition Classes
    RapidsMeta
  50. def indent(append: StringBuilder, depth: Int): Unit
    Attributes
    protected
    Definition Classes
    RapidsMeta
  51. def initReasons(): Unit
    Definition Classes
    RapidsMeta
  52. def isDisabledByDefault: Boolean
    Definition Classes
    RapidsMeta
  53. val isFoldableNonLitAllowed: Boolean
    Definition Classes
    BaseExprMeta
  54. def isIncompat: Boolean
    Definition Classes
    RapidsMeta
  55. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  56. def isTimeZoneSupported: Boolean
    Definition Classes
    BaseExprMeta
  57. final def mustBeReplaced(because: String): Unit
    Definition Classes
    RapidsMeta
  58. final def mustThisBeReplaced: Boolean

    Returns true iff this must be replaced because its children have already been replaced and this needs to also be replaced for compatibility.

    Returns true iff this must be replaced because its children have already been replaced and this needs to also be replaced for compatibility.

    Definition Classes
    RapidsMeta
  59. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  60. lazy val needTimeZoneCheck: Boolean
    Definition Classes
    BaseExprMeta
  61. val needsAnsiCheck: Boolean
    Definition Classes
    AggExprMeta
  62. def noReplacementPossibleMessage(reasons: String): String
    Definition Classes
    RapidsMeta
  63. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  64. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  65. final val operationName: String
    Definition Classes
    RapidsMeta
  66. def overrideDataType(dt: DataType): Unit

    Overrides the data type of the wrapped expression during type checking.

    Overrides the data type of the wrapped expression during type checking.

    NOTICE: This method will NOT modify the wrapped expression itself. Therefore, the actual transition on data type is still necessary when converting this expression to GPU.

    Definition Classes
    BaseExprMeta
  67. val parent: Option[RapidsMeta[_, _, _]]
    Definition Classes
    RapidsMeta
  68. def print(strBuilder: StringBuilder, depth: Int, all: Boolean): Unit

    Create a string representation of this in append.

    Create a string representation of this in append.

    strBuilder

    where to place the string representation.

    depth

    how far down the tree this is.

    all

    should all the data be printed or just what does not work on the GPU?

    Definition Classes
    RapidsMeta
  69. def printAst(strBuilder: StringBuilder, depth: Int, all: Boolean): Unit

    Create a string explanation for whether this expression tree can be converted to an AST

    Create a string explanation for whether this expression tree can be converted to an AST

    strBuilder

    where to place the string representation.

    depth

    how far down the tree this is.

    all

    should all the data be printed or just what does not work in the AST?

    Attributes
    protected
    Definition Classes
    BaseExprMeta
  70. val printWrapped: Boolean
    Definition Classes
    BaseExprMetaRapidsMeta
  71. final def recursiveCostPreventsRunningOnGpu(): Unit

    Recursively force a section of the plan back onto CPU, stopping once a plan is reached that is already on CPU.

    Recursively force a section of the plan back onto CPU, stopping once a plan is reached that is already on CPU.

    Definition Classes
    RapidsMeta
  72. final def recursiveSparkPlanPreventsRunningOnGpu(): Unit
    Definition Classes
    RapidsMeta
  73. final def recursiveSparkPlanRemoved(): Unit
    Definition Classes
    RapidsMeta
  74. def replaceMessage: String
    Definition Classes
    RapidsMeta
  75. final def requireAstForGpu(): Unit
    Definition Classes
    BaseExprMeta
  76. final def shouldBeRemoved(because: String): Unit
    Definition Classes
    RapidsMeta
  77. final def shouldThisBeRemoved: Boolean

    Returns true if this node should be removed.

    Returns true if this node should be removed.

    Definition Classes
    RapidsMeta
  78. val supportBufferConversion: Boolean

    Whether buffers of current Aggregate is able to be converted from CPU to GPU format and reversely in runtime.

    Whether buffers of current Aggregate is able to be converted from CPU to GPU format and reversely in runtime. If true, it assumes both createCpuToGpuBufferConverter and createGpuToCpuBufferConverter are implemented.

  79. def supportsColumnar: Boolean

    Return true if the resulting node in the plan will support columnar execution

    Return true if the resulting node in the plan will support columnar execution

    Definition Classes
    RapidsMeta
  80. def suppressWillWorkOnGpuInfo: Boolean
    Definition Classes
    RapidsMeta
  81. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  82. def tagAggForGpu(): Unit
    Definition Classes
    AggExprMeta
  83. final def tagExprForGpu(): Unit

    Called to verify that this expression will work on the GPU.

    Called to verify that this expression will work on the GPU. For most expressions without extra checks all of the checks should have already been done.

    Definition Classes
    AggExprMetaBaseExprMeta
  84. final def tagForGpu(): Unit

    Tag all of the children to see if they are GPU compatible first.

    Tag all of the children to see if they are GPU compatible first. Do basic common verification for the operators, and then call tagSelfForGpu

    Definition Classes
    RapidsMeta
  85. def tagSelfForAst(): Unit

    Called to verify that this expression will work as a GPU AST expression.

    Called to verify that this expression will work as a GPU AST expression.

    Attributes
    protected
    Definition Classes
    BaseExprMeta
  86. final def tagSelfForGpu(): Unit

    Do any extra checks and tag yourself if you are compatible or not.

    Do any extra checks and tag yourself if you are compatible or not. Be aware that this may already have been marked as incompatible for a number of reasons.

    All of your children should have already been tagged so if there are situations where you may need to disqualify your children for various reasons you may do it here too.

    Definition Classes
    BaseExprMetaRapidsMeta
  87. def toString(): String
    Definition Classes
    RapidsMeta → AnyRef → Any
  88. def typeMeta: DataTypeMeta

    Gets the DataTypeMeta of current BaseExprMeta, which is supposed to be called in the tag methods of expression-level type checks.

    Gets the DataTypeMeta of current BaseExprMeta, which is supposed to be called in the tag methods of expression-level type checks.

    By default, it simply returns the data type of wrapped expression. But for specific expressions, they can easily override data type for type checking through calling the method overrideDataType.

    Definition Classes
    BaseExprMeta
  89. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  90. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  91. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  92. final def willNotWorkInAst(because: String): Unit
    Definition Classes
    BaseExprMeta
  93. final def willNotWorkOnGpu(because: String): Unit

    Call this to indicate that this should not be replaced with a GPU enabled version

    Call this to indicate that this should not be replaced with a GPU enabled version

    because

    why it should not be replaced.

    Definition Classes
    RapidsMeta
  94. def willWorkInAstInfo: String
    Attributes
    protected
    Definition Classes
    BaseExprMeta
  95. val wrapped: INPUT
    Definition Classes
    RapidsMeta

Inherited from ImperativeAggExprMeta[INPUT]

Inherited from AggExprMeta[INPUT]

Inherited from ExprMeta[INPUT]

Inherited from BaseExprMeta[INPUT]

Inherited from RapidsMeta[INPUT, Expression, Expression]

Inherited from AnyRef

Inherited from Any

Ungrouped