Inherits some default implementation for Java from Ordering[Row]
Java can not access Projection (in package object)
A wrapper for the source code to be compiled by CodeGenerator.
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.
A context for codegen, tracking a list of objects that could be passed into generated Java function.
A trait that can be used to provide a fallback mode for expression code generation.
Java source for evaluating an Expression given a InternalRow of input.
Java source for evaluating an Expression given a InternalRow of input.
The sequence of statements required to evaluate the expression.
It should be empty string, if isNull
and value
are already existed, or no code
needed to evaluate them (literals).
A term that holds a boolean value representing whether the expression evaluated to null.
A term for a (possibly primitive) value of the result of the evaluation. Not
valid if isNull
is set to true
.
A wrapper for generated class, defines a generate
method so that we can pass extra objects
into generated class.
A lazily generated row ordering comparator.
Interface for generated predicate
Codes and common subexpressions mapping used for subexpression elimination.
Codes and common subexpressions mapping used for subexpression elimination.
Strings representing the codes that evaluate common subexpressions.
Foreach expression that is participating in subexpression elimination, the state to use.
State used for subexpression elimination.
State used for subexpression elimination.
A term that holds a boolean value representing whether the expression evaluated to null.
A term for a value of a common sub-expression. Not valid if isNull
is set to true
.
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.
Dumps the bytecode from a class to the screen using javap.
Canonicalizes an expression so those that differ only by names can reuse the same code.
Generates byte code that produces a InternalRow object that can update itself based on a new input InternalRow for a fixed set of Expressions.
Generates byte code that produces a InternalRow object that can update itself based on a new
input InternalRow for a fixed set of Expressions.
It exposes a target
method, which is used to set the row that will be updated.
The internal InternalRow object created internally is used only when target
is not used.
Generates bytecode for an Ordering of rows for a given set of expressions.
Generates bytecode that evaluates a boolean Expression on a given input InternalRow.
Generates byte code that produces a InternalRow object (not an UnsafeRow) that can update itself based on a new input InternalRow for a fixed set of Expressions.
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.
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.
A collection of generators that build custom bytecode at runtime for performing the evaluation of catalyst expression.