19 #include "gen-cpp/Exprs_types.h"
38 tuple_ids_(node.tuple_is_null_pred.tuple_ids.begin(),
39 node.tuple_is_null_pred.tuple_ids.end()) {
53 return Status(
"Invalid plan. TupleIsNullPredicate has invalid tuple idx.");
61 llvm::Function** fn) {
67 out <<
"TupleIsNullPredicate(tupleids=[";
Tuple * GetTuple(int tuple_idx)
#define RETURN_IF_ERROR(stmt)
some generally useful macros
virtual std::string DebugString() const
bool TupleIsNullable(int tuple_idx) const
Return true if the Tuple of the given Tuple index is nullable.
static const int INVALID_IDX
virtual BooleanVal GetBooleanVal(ExprContext *context, TupleRow *row)
std::vector< int32_t > tuple_idxs_
Tuple indexes into the RowDescriptor. Only contains indexes of nullable tuples.
Status GetCodegendComputeFnWrapper(RuntimeState *state, llvm::Function **fn)
int GetTupleIdx(TupleId id) const
Returns INVALID_IDX if id not part of this row.
const RowDescriptor & row_desc() const
std::vector< TupleId > tuple_ids_
Tuple ids to check for NULL. May contain ids of nullable and non-nullable tuples. ...
TupleIsNullPredicate(const TExprNode &node)
virtual Status Prepare(RuntimeState *state, const RowDescriptor &row_desc, ExprContext *ctx)
static Status Prepare(const std::vector< ExprContext * > &ctxs, RuntimeState *state, const RowDescriptor &row_desc, MemTracker *tracker)
virtual Status GetCodegendComputeFn(RuntimeState *state, llvm::Function **fn)
std::vector< Expr * > children_