Packages

case class GpuSubqueryBroadcastExec(name: String, indices: Seq[Int], buildKeys: Seq[Expression], child: SparkPlan)(modeKeys: Option[Seq[Expression]]) extends BaseSubqueryExec with ShimBaseSubqueryExec with GpuExec with ShimUnaryExecNode with Product with Serializable

Linear Supertypes
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. GpuSubqueryBroadcastExec
  2. ShimUnaryExecNode
  3. UnaryExecNode
  4. UnaryLike
  5. GpuExec
  6. ShimBaseSubqueryExec
  7. BaseSubqueryExec
  8. SparkPlan
  9. Serializable
  10. Serializable
  11. Logging
  12. QueryPlan
  13. SQLConfHelper
  14. TreeNode
  15. TreePatternBits
  16. Product
  17. Equals
  18. AnyRef
  19. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new GpuSubqueryBroadcastExec(name: String, indices: Seq[Int], buildKeys: Seq[Expression], child: SparkPlan)(modeKeys: Option[Seq[Expression]])

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. lazy val additionalMetrics: Map[String, GpuMetric]
    Definition Classes
    GpuSubqueryBroadcastExecGpuExec
  5. lazy val allAttributes: AttributeSeq
    Definition Classes
    QueryPlan
  6. lazy val allMetrics: Map[String, GpuMetric]
    Definition Classes
    GpuExec
  7. def apply(number: Int): TreeNode[_]
    Definition Classes
    TreeNode
  8. def argString(maxFields: Int): String
    Definition Classes
    TreeNode
  9. def asCode: String
    Definition Classes
    TreeNode
  10. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  11. val buildKeys: Seq[Expression]
  12. final lazy val canonicalized: SparkPlan
    Definition Classes
    QueryPlan
    Annotations
    @transient()
  13. val child: SparkPlan
    Definition Classes
    GpuSubqueryBroadcastExec → UnaryLike → BaseSubqueryExec
  14. final lazy val children: Seq[SparkPlan]
    Definition Classes
    UnaryLike
    Annotations
    @transient()
  15. def childrenCoalesceGoal: Seq[CoalesceGoal]

    A goal to coalesce batches as the input to this operation.

    A goal to coalesce batches as the input to this operation. In some cases an operation will only work if all of the data is in a single batch. In other cases it may be much faster if it is in a single batch, but can tolerate multiple batches. This provides a way to express those desires.

    Definition Classes
    GpuExec
  16. def cleanupResources(): Unit
    Attributes
    protected[sql]
    Definition Classes
    SparkPlan
  17. def clone(): SparkPlan
    Definition Classes
    TreeNode → AnyRef
  18. def coalesceAfter: Boolean

    If true is returned batches after this will be coalesced.

    If true is returned batches after this will be coalesced. This should really be used in cases where it is known that the size of a batch may shrink a lot.

    Definition Classes
    GpuExec
  19. def collect[B](pf: PartialFunction[SparkPlan, B]): Seq[B]
    Definition Classes
    TreeNode
  20. def collectFirst[B](pf: PartialFunction[SparkPlan, B]): Option[B]
    Definition Classes
    TreeNode
  21. def collectLeaves(): Seq[SparkPlan]
    Definition Classes
    TreeNode
  22. def collectWithSubqueries[B](f: PartialFunction[SparkPlan, B]): Seq[B]
    Definition Classes
    QueryPlan
  23. def conf: SQLConf
    Definition Classes
    SparkPlan → SQLConfHelper
  24. final def containsAllPatterns(patterns: TreePattern*): Boolean
    Definition Classes
    TreePatternBits
  25. final def containsAnyPattern(patterns: TreePattern*): Boolean
    Definition Classes
    TreePatternBits
  26. lazy val containsChild: Set[TreeNode[_]]
    Definition Classes
    TreeNode
  27. final def containsPattern(t: TreePattern): Boolean
    Definition Classes
    TreePatternBits
    Annotations
    @inline()
  28. def copyTagsFrom(other: SparkPlan): Unit
    Definition Classes
    TreeNode
  29. def createAverageMetric(level: MetricsLevel, name: String): GpuMetric
    Attributes
    protected
    Definition Classes
    GpuExec
  30. def createFileCacheMetrics(): Map[String, GpuMetric]
    Attributes
    protected
    Definition Classes
    GpuExec
  31. def createMetric(level: MetricsLevel, name: String): GpuMetric
    Attributes
    protected
    Definition Classes
    GpuExec
  32. def createNanoTimingMetric(level: MetricsLevel, name: String): GpuMetric
    Attributes
    protected
    Definition Classes
    GpuExec
  33. def createSizeMetric(level: MetricsLevel, name: String): GpuMetric
    Attributes
    protected
    Definition Classes
    GpuExec
  34. def createTimingMetric(level: MetricsLevel, name: String): GpuMetric
    Attributes
    protected
    Definition Classes
    GpuExec
  35. def disableCoalesceUntilInput(): Boolean

    Returns true if there is something in the exec that cannot work when batches between multiple file partitions are combined into a single batch (coalesce).

    Returns true if there is something in the exec that cannot work when batches between multiple file partitions are combined into a single batch (coalesce).

    Definition Classes
    GpuExec
  36. def doCanonicalize(): SparkPlan

    Defines how the canonicalization should work for the current plan.

    Defines how the canonicalization should work for the current plan.

    Definition Classes
    GpuSubqueryBroadcastExecGpuExec → QueryPlan
  37. def doExecute(): RDD[InternalRow]
    Attributes
    protected
    Definition Classes
    GpuSubqueryBroadcastExec → SparkPlan
  38. def doExecuteBroadcast[T](): Broadcast[T]
    Attributes
    protected[sql]
    Definition Classes
    SparkPlan
  39. final def doExecuteColumnar(): RDD[ColumnarBatch]
    Definition Classes
    GpuExec → SparkPlan
  40. def doPrepare(): Unit
    Attributes
    protected
    Definition Classes
    GpuSubqueryBroadcastExec → SparkPlan
  41. def dumpLoreRDD(inner: RDD[ColumnarBatch]): RDD[ColumnarBatch]
    Attributes
    protected
    Definition Classes
    GpuExec
  42. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  43. final def execute(): RDD[InternalRow]
    Definition Classes
    SparkPlan
  44. final def executeBroadcast[T](): Broadcast[T]
    Definition Classes
    SparkPlan
  45. def executeCollect(): Array[InternalRow]
    Definition Classes
    GpuSubqueryBroadcastExec → SparkPlan
  46. def executeCollectPublic(): Array[Row]
    Definition Classes
    SparkPlan
  47. final def executeColumnar(): RDD[ColumnarBatch]
    Definition Classes
    SparkPlan
  48. final def executeQuery[T](query: ⇒ T): T
    Attributes
    protected
    Definition Classes
    SparkPlan
  49. def executeTail(n: Int): Array[InternalRow]
    Definition Classes
    SparkPlan
  50. def executeTake(n: Int): Array[InternalRow]
    Definition Classes
    SparkPlan
  51. def executeToIterator(): Iterator[InternalRow]
    Definition Classes
    SparkPlan
  52. final def expressions: Seq[Expression]
    Definition Classes
    QueryPlan
  53. def fastEquals(other: TreeNode[_]): Boolean
    Definition Classes
    TreeNode
  54. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  55. def find(f: (SparkPlan) ⇒ Boolean): Option[SparkPlan]
    Definition Classes
    TreeNode
  56. def flatMap[A](f: (SparkPlan) ⇒ TraversableOnce[A]): Seq[A]
    Definition Classes
    TreeNode
  57. def foreach(f: (SparkPlan) ⇒ Unit): Unit
    Definition Classes
    TreeNode
  58. def foreachUp(f: (SparkPlan) ⇒ Unit): Unit
    Definition Classes
    TreeNode
  59. def formattedNodeName: String
    Attributes
    protected
    Definition Classes
    QueryPlan
  60. def generateTreeString(depth: Int, lastChildren: Seq[Boolean], append: (String) ⇒ Unit, verbose: Boolean, prefix: String, addSuffix: Boolean, maxFields: Int, printNodeId: Boolean, indent: Int): Unit
    Definition Classes
    BaseSubqueryExec → TreeNode
  61. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  62. def getDefaultTreePatternBits: BitSet
    Attributes
    protected
    Definition Classes
    TreeNode
  63. def getTagValue[T](tag: TreeNodeTag[T]): Option[T]
    Definition Classes
    TreeNode
  64. def getTaskMetrics: Option[GpuTaskMetrics]
    Definition Classes
    GpuExec
  65. def gpuExpressions: Seq[Expression]

    Return the expressions for this plan node that should be GPU expressions.

    Return the expressions for this plan node that should be GPU expressions. For most nodes this will be the same as the list of expressions, but some nodes use CPU expressions directly in some cases and will need to override this.

    Definition Classes
    GpuExec
  66. def gpuLongMetric(name: String): GpuMetric
    Definition Classes
    GpuExec
  67. def hashCode(): Int
    Definition Classes
    TreeNode → AnyRef → Any
  68. val id: Int
    Definition Classes
    SparkPlan
  69. val indices: Seq[Int]
  70. def initializeLogIfNecessary(isInterpreter: Boolean, silent: Boolean): Boolean
    Attributes
    protected
    Definition Classes
    Logging
  71. def initializeLogIfNecessary(isInterpreter: Boolean): Unit
    Attributes
    protected
    Definition Classes
    Logging
  72. def innerChildren: Seq[QueryPlan[_]]
    Definition Classes
    QueryPlan → TreeNode
  73. def inputSet: AttributeSet
    Definition Classes
    QueryPlan
  74. def internalDoExecuteColumnar(): RDD[ColumnarBatch]
    Attributes
    protected
    Definition Classes
    GpuSubqueryBroadcastExecGpuExec
  75. def isCanonicalizedPlan: Boolean
    Attributes
    protected
    Definition Classes
    QueryPlan
  76. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  77. def isRuleIneffective(ruleId: RuleId): Boolean
    Attributes
    protected
    Definition Classes
    TreeNode
  78. def isTraceEnabled(): Boolean
    Attributes
    protected
    Definition Classes
    Logging
  79. def jsonFields: List[JField]
    Attributes
    protected
    Definition Classes
    TreeNode
  80. final def legacyWithNewChildren(newChildren: Seq[SparkPlan]): SparkPlan
    Attributes
    protected
    Definition Classes
    TreeNode
  81. def log: Logger
    Attributes
    protected
    Definition Classes
    Logging
  82. def logDebug(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  83. def logDebug(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  84. def logError(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  85. def logError(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  86. def logInfo(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  87. def logInfo(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  88. def logName: String
    Attributes
    protected
    Definition Classes
    Logging
  89. def logTrace(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  90. def logTrace(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  91. def logWarning(msg: ⇒ String, throwable: Throwable): Unit
    Attributes
    protected
    Definition Classes
    Logging
  92. def logWarning(msg: ⇒ String): Unit
    Attributes
    protected
    Definition Classes
    Logging
  93. def logicalLink: Option[LogicalPlan]
    Definition Classes
    SparkPlan
  94. def longMetric(name: String): SQLMetric
    Definition Classes
    SparkPlan
  95. def loreArgs: Iterator[String]
    Attributes
    protected
    Definition Classes
    GpuExec
  96. def makeCopy(newArgs: Array[AnyRef]): SparkPlan
    Definition Classes
    SparkPlan → TreeNode
  97. def map[A](f: (SparkPlan) ⇒ A): Seq[A]
    Definition Classes
    TreeNode
  98. final def mapChildren(f: (SparkPlan) ⇒ SparkPlan): SparkPlan
    Definition Classes
    UnaryLike
  99. def mapExpressions(f: (Expression) ⇒ Expression): GpuSubqueryBroadcastExec.this.type
    Definition Classes
    QueryPlan
  100. def mapProductIterator[B](f: (Any) ⇒ B)(implicit arg0: ClassTag[B]): Array[B]
    Attributes
    protected
    Definition Classes
    TreeNode
  101. def markRuleAsIneffective(ruleId: RuleId): Unit
    Attributes
    protected
    Definition Classes
    TreeNode
  102. final lazy val metrics: Map[String, SQLMetric]
    Definition Classes
    GpuExec → SparkPlan
  103. final def missingInput: AttributeSet
    Definition Classes
    QueryPlan
  104. val name: String
    Definition Classes
    GpuSubqueryBroadcastExec → BaseSubqueryExec
  105. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  106. def nodeName: String
    Definition Classes
    TreeNode
  107. val nodePatterns: Seq[TreePattern]
    Attributes
    protected
    Definition Classes
    TreeNode
  108. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  109. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  110. def numberedTreeString: String
    Definition Classes
    TreeNode
  111. val origin: Origin
    Definition Classes
    TreeNode
  112. def otherCopyArgs: Seq[AnyRef]
    Definition Classes
    GpuSubqueryBroadcastExec → TreeNode
  113. def output: Seq[Attribute]
    Definition Classes
    GpuSubqueryBroadcastExec → BaseSubqueryExec → QueryPlan
  114. val outputBatchesLevel: MetricsLevel
    Attributes
    protected
    Definition Classes
    GpuExec
  115. def outputBatching: CoalesceGoal

    Lets a SparkPlan indicate what guarantees, if any, its output batch has.

    Lets a SparkPlan indicate what guarantees, if any, its output batch has. This lets us bypass GpuCoalesceBatch calls where ever possible. Returning a null indicates no guarantee at all, which is the default.

    Definition Classes
    GpuExec
  116. def outputOrdering: Seq[SortOrder]
    Definition Classes
    BaseSubqueryExec → SparkPlan
  117. def outputPartitioning: Partitioning
    Definition Classes
    BaseSubqueryExec → SparkPlan
  118. val outputRowsLevel: MetricsLevel
    Attributes
    protected
    Definition Classes
    GpuExec
  119. lazy val outputSet: AttributeSet
    Definition Classes
    QueryPlan
    Annotations
    @transient()
  120. def p(number: Int): SparkPlan
    Definition Classes
    TreeNode
  121. final def prepare(): Unit
    Definition Classes
    SparkPlan
  122. def prepareSubqueries(): Unit
    Attributes
    protected
    Definition Classes
    SparkPlan
  123. def prettyJson: String
    Definition Classes
    TreeNode
  124. def printSchema(): Unit
    Definition Classes
    QueryPlan
  125. def producedAttributes: AttributeSet
    Definition Classes
    QueryPlan
  126. lazy val references: AttributeSet
    Definition Classes
    QueryPlan
    Annotations
    @transient()
  127. def requiredChildDistribution: Seq[Distribution]
    Definition Classes
    SparkPlan
  128. def requiredChildOrdering: Seq[Seq[SortOrder]]
    Definition Classes
    SparkPlan
  129. def resetMetrics(): Unit
    Definition Classes
    SparkPlan
  130. def rewriteAttrs(attrMap: AttributeMap[Attribute]): SparkPlan
    Definition Classes
    QueryPlan
  131. final def sameResult(other: SparkPlan): Boolean
    Definition Classes
    QueryPlan
  132. lazy val schema: StructType
    Definition Classes
    QueryPlan
  133. def schemaString: String
    Definition Classes
    QueryPlan
  134. final def semanticHash(): Int
    Definition Classes
    QueryPlan
  135. final val session: SparkSession
    Definition Classes
    SparkPlan
  136. def setLogicalLink(logicalPlan: LogicalPlan): Unit
    Definition Classes
    SparkPlan
  137. def setTagValue[T](tag: TreeNodeTag[T], value: T): Unit
    Definition Classes
    TreeNode
  138. def setTaskMetrics(gpuTaskMetrics: GpuTaskMetrics): Unit
    Definition Classes
    GpuExec
  139. def simpleString(maxFields: Int): String
    Definition Classes
    QueryPlan → TreeNode
  140. def simpleStringWithNodeId(): String
    Definition Classes
    QueryPlan → TreeNode
  141. def sparkContext: SparkContext
    Attributes
    protected
    Definition Classes
    SparkPlan
  142. def sparkSession: SparkSession
    Definition Classes
    GpuExec
  143. def statePrefix: String
    Attributes
    protected
    Definition Classes
    QueryPlan
  144. def stringArgs: Iterator[Any]
    Definition Classes
    GpuExec → TreeNode
  145. def subqueries: Seq[SparkPlan]
    Definition Classes
    QueryPlan
  146. def subqueriesAll: Seq[SparkPlan]
    Definition Classes
    QueryPlan
  147. def supportsColumnar: Boolean
    Definition Classes
    GpuExec → SparkPlan
  148. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  149. def toJSON: String
    Definition Classes
    TreeNode
  150. def toString(): String
    Definition Classes
    TreeNode → AnyRef → Any
  151. def transform(rule: PartialFunction[SparkPlan, SparkPlan]): SparkPlan
    Definition Classes
    TreeNode
  152. def transformAllExpressions(rule: PartialFunction[Expression, Expression]): GpuSubqueryBroadcastExec.this.type
    Definition Classes
    QueryPlan
  153. def transformAllExpressionsWithPruning(cond: (TreePatternBits) ⇒ Boolean, ruleId: RuleId)(rule: PartialFunction[Expression, Expression]): GpuSubqueryBroadcastExec.this.type
    Definition Classes
    QueryPlan
  154. def transformDown(rule: PartialFunction[SparkPlan, SparkPlan]): SparkPlan
    Definition Classes
    TreeNode
  155. def transformDownWithPruning(cond: (TreePatternBits) ⇒ Boolean, ruleId: RuleId)(rule: PartialFunction[SparkPlan, SparkPlan]): SparkPlan
    Definition Classes
    TreeNode
  156. def transformExpressions(rule: PartialFunction[Expression, Expression]): GpuSubqueryBroadcastExec.this.type
    Definition Classes
    QueryPlan
  157. def transformExpressionsDown(rule: PartialFunction[Expression, Expression]): GpuSubqueryBroadcastExec.this.type
    Definition Classes
    QueryPlan
  158. def transformExpressionsDownWithPruning(cond: (TreePatternBits) ⇒ Boolean, ruleId: RuleId)(rule: PartialFunction[Expression, Expression]): GpuSubqueryBroadcastExec.this.type
    Definition Classes
    QueryPlan
  159. def transformExpressionsUp(rule: PartialFunction[Expression, Expression]): GpuSubqueryBroadcastExec.this.type
    Definition Classes
    QueryPlan
  160. def transformExpressionsUpWithPruning(cond: (TreePatternBits) ⇒ Boolean, ruleId: RuleId)(rule: PartialFunction[Expression, Expression]): GpuSubqueryBroadcastExec.this.type
    Definition Classes
    QueryPlan
  161. def transformExpressionsWithPruning(cond: (TreePatternBits) ⇒ Boolean, ruleId: RuleId)(rule: PartialFunction[Expression, Expression]): GpuSubqueryBroadcastExec.this.type
    Definition Classes
    QueryPlan
  162. def transformUp(rule: PartialFunction[SparkPlan, SparkPlan]): SparkPlan
    Definition Classes
    TreeNode
  163. def transformUpWithBeforeAndAfterRuleOnChildren(cond: (SparkPlan) ⇒ Boolean, ruleId: RuleId)(rule: PartialFunction[(SparkPlan, SparkPlan), SparkPlan]): SparkPlan
    Definition Classes
    TreeNode
  164. def transformUpWithNewOutput(rule: PartialFunction[SparkPlan, (SparkPlan, Seq[(Attribute, Attribute)])], skipCond: (SparkPlan) ⇒ Boolean, canGetOutput: (SparkPlan) ⇒ Boolean): SparkPlan
    Definition Classes
    QueryPlan
  165. def transformUpWithPruning(cond: (TreePatternBits) ⇒ Boolean, ruleId: RuleId)(rule: PartialFunction[SparkPlan, SparkPlan]): SparkPlan
    Definition Classes
    TreeNode
  166. def transformUpWithSubqueries(f: PartialFunction[SparkPlan, SparkPlan]): SparkPlan
    Definition Classes
    QueryPlan
  167. def transformWithPruning(cond: (TreePatternBits) ⇒ Boolean, ruleId: RuleId)(rule: PartialFunction[SparkPlan, SparkPlan]): SparkPlan
    Definition Classes
    TreeNode
  168. lazy val treePatternBits: BitSet
    Definition Classes
    QueryPlan → TreeNode → TreePatternBits
  169. def treeString(append: (String) ⇒ Unit, verbose: Boolean, addSuffix: Boolean, maxFields: Int, printOperatorId: Boolean): Unit
    Definition Classes
    TreeNode
  170. final def treeString(verbose: Boolean, addSuffix: Boolean, maxFields: Int, printOperatorId: Boolean): String
    Definition Classes
    TreeNode
  171. final def treeString: String
    Definition Classes
    TreeNode
  172. def unsetTagValue[T](tag: TreeNodeTag[T]): Unit
    Definition Classes
    TreeNode
  173. def updateOuterReferencesInSubquery(plan: SparkPlan, attrMap: AttributeMap[Attribute]): SparkPlan
    Attributes
    protected
    Definition Classes
    QueryPlan
  174. def vectorTypes: Option[Seq[String]]
    Definition Classes
    SparkPlan
  175. def verboseString(maxFields: Int): String
    Definition Classes
    QueryPlan → TreeNode
  176. def verboseStringWithOperatorId(): String
    Definition Classes
    UnaryExecNode → QueryPlan
  177. def verboseStringWithSuffix(maxFields: Int): String
    Definition Classes
    TreeNode
  178. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  179. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  180. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... ) @native()
  181. def waitForSubqueries(): Unit
    Attributes
    protected
    Definition Classes
    SparkPlan
  182. def withNewChildInternal(newChild: SparkPlan): SparkPlan
    Definition Classes
    ShimUnaryExecNode → UnaryLike
  183. final def withNewChildren(newChildren: Seq[SparkPlan]): SparkPlan
    Definition Classes
    TreeNode
  184. final def withNewChildrenInternal(newChildren: IndexedSeq[SparkPlan]): SparkPlan
    Definition Classes
    UnaryLike

Inherited from ShimUnaryExecNode

Inherited from UnaryExecNode

Inherited from UnaryLike[SparkPlan]

Inherited from GpuExec

Inherited from ShimBaseSubqueryExec

Inherited from BaseSubqueryExec

Inherited from SparkPlan

Inherited from Serializable

Inherited from Serializable

Inherited from Logging

Inherited from QueryPlan[SparkPlan]

Inherited from SQLConfHelper

Inherited from TreeNode[SparkPlan]

Inherited from TreePatternBits

Inherited from Product

Inherited from Equals

Inherited from AnyRef

Inherited from Any

Ungrouped