Package

org.apache.spark.sql.catalyst.expressions

codegen

Permalink

package codegen

A collection of generators that build custom bytecode at runtime for performing the evaluation of catalyst expression.

Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. codegen
  2. AnyRef
  3. Any
  1. Hide All
  2. Show all
Visibility
  1. Public
  2. All

Type Members

  1. abstract class BaseMutableProjection extends MutableProjection

    Permalink
  2. class BaseOrdering extends Ordering[InternalRow]

    Permalink

    Inherits some default implementation for Java from Ordering[Row]

  3. abstract class BaseProjection extends Projection

    Permalink

    Java can not access Projection (in package object)

  4. class CodeGenContext extends AnyRef

    Permalink

    A context for codegen, which is used to bookkeeping the expressions those are not supported by codegen, then they are evaluated directly.

    A context for codegen, which is used to bookkeeping the expressions those are not supported by codegen, then they are evaluated directly. The unsupported expression is appended at the end of references, the position of it is kept in the code, used to access and evaluate it.

  5. abstract class CodeGenMutableRow extends MutableRow with BaseGenericInternalRow

    Permalink
  6. abstract class CodeGenerator[InType <: AnyRef, OutType <: AnyRef] extends Logging

    Permalink

    A base class for generators of byte code to perform expression evaluation.

    A base class for generators of byte code to perform expression evaluation. Includes a set of helpers for referring to Catalyst types and building trees that perform evaluation of individual expressions.

  7. trait CodegenFallback extends Expression

    Permalink

    A trait that can be used to provide a fallback mode for expression code generation.

  8. abstract class GeneratedClass extends AnyRef

    Permalink

    A wrapper for generated class, defines a generate method so that we can pass extra objects into generated class.

  9. case class GeneratedExpressionCode(code: String, isNull: String, primitive: String) extends Product with Serializable

    Permalink

    Java source for evaluating an Expression given a InternalRow of input.

    Java source for evaluating an Expression given a InternalRow of input.

    code

    The sequence of statements required to evaluate the expression.

    isNull

    A term that holds a boolean value representing whether the expression evaluated to null.

    primitive

    A term for a possible primitive value of the result of the evaluation. Not valid if isNull is set to true.

  10. class IntegerHashSet extends OpenHashSet[Int]

    Permalink
  11. class LongHashSet extends OpenHashSet[Long]

    Permalink
  12. abstract class Predicate extends AnyRef

    Permalink

    Interface for generated predicate

  13. abstract class UnsafeRowJoiner extends AnyRef

    Permalink

Value Members

  1. object CodeFormatter

    Permalink

    An utility class that indents a block of code based on the curly braces and parentheses.

    An utility class that indents a block of code based on the curly braces and parentheses. This is used to prettify generated code when in debug mode (or exceptions).

    Written by Matei Zaharia.

  2. object DumpByteCode

    Permalink

    :: DeveloperApi :: Dumps the bytecode from a class to the screen using javap.

    :: DeveloperApi :: Dumps the bytecode from a class to the screen using javap.

    Annotations
    @DeveloperApi()
  3. object ExpressionCanonicalizer extends RuleExecutor[Expression]

    Permalink

    Canonicalizes an expression so those that differ only by names can reuse the same code.

  4. object GenerateMutableProjection extends CodeGenerator[Seq[Expression], () ⇒ MutableProjection]

    Permalink

    Generates byte code that produces a MutableRow object that can update itself based on a new input InternalRow for a fixed set of Expressions.

  5. object GenerateOrdering extends CodeGenerator[Seq[SortOrder], Ordering[InternalRow]] with Logging

    Permalink

    Generates bytecode for an Ordering of rows for a given set of expressions.

  6. object GeneratePredicate extends CodeGenerator[Expression, (InternalRow) ⇒ Boolean]

    Permalink

    Generates bytecode that evaluates a boolean Expression on a given input InternalRow.

  7. object GenerateProjection extends CodeGenerator[Seq[Expression], Projection]

    Permalink

    Generates bytecode that produces a new InternalRow object based on a fixed set of input Expressions and a given input InternalRow.

    Generates bytecode that produces a new InternalRow object based on a fixed set of input Expressions and a given input InternalRow. The returned InternalRow object is custom generated based on the output types of the Expression to avoid boxing of primitive values.

  8. object GenerateSafeProjection extends CodeGenerator[Seq[Expression], Projection]

    Permalink

    Generates byte code that produces a MutableRow object that can update itself based on a new input InternalRow for a fixed set of Expressions.

  9. object GenerateUnsafeProjection extends CodeGenerator[Seq[Expression], UnsafeProjection]

    Permalink

    Generates a Projection that returns an UnsafeRow.

    Generates a Projection that returns an UnsafeRow.

    It generates the code for all the expressions, compute the total length for all the columns (can be accessed via variables), and then copy the data into a scratch buffer space in the form of UnsafeRow (the scratch buffer will grow as needed).

    Note: The returned UnsafeRow will be pointed to a scratch buffer inside the projection.

  10. object GenerateUnsafeRowJoiner extends CodeGenerator[(StructType, StructType), UnsafeRowJoiner]

    Permalink

    A code generator for concatenating two UnsafeRows into a single UnsafeRow.

    A code generator for concatenating two UnsafeRows into a single UnsafeRow.

    The high level algorithm is:

    1. Concatenate the two bitsets together into a single one, taking padding into account. 2. Move fixed-length data. 3. Move variable-length data. 4. Update the offset position (i.e. the upper 32 bits in the fixed length part) for all variable-length data.

Inherited from AnyRef

Inherited from Any

Ungrouped