// Constructor TableScanTranslator::TableScanTranslator(const planner::SeqScanPlan &scan, CompilationContext &context, Pipeline &pipeline) : OperatorTranslator(context, pipeline), scan_(scan), table_(*scan_.GetTable()) { LOG_DEBUG("Constructing TableScanTranslator ..."); // The restriction, if one exists const auto *predicate = GetScanPlan().GetPredicate(); if (predicate != nullptr) { // If there is a predicate, prepare a translator for it context.Prepare(*predicate); // If the scan's predicate is SIMDable, install a boundary at the output if (predicate->IsSIMDable()) { pipeline.InstallBoundaryAtOutput(this); } } auto &codegen = GetCodeGen(); auto &runtime_state = context.GetRuntimeState(); selection_vector_id_ = runtime_state.RegisterState( "scanSelVec", codegen.VectorType(codegen.Int32Type(), Vector::kDefaultVectorSize), true); LOG_DEBUG("Finished constructing TableScanTranslator ..."); }
// Constructor TableScanTranslator::TableScanTranslator(const planner::SeqScanPlan &scan, CompilationContext &context, Pipeline &pipeline) : OperatorTranslator(context, pipeline), scan_(scan), table_(*scan_.GetTable()) { LOG_DEBUG("Constructing TableScanTranslator ..."); // The restriction, if one exists const auto *predicate = GetScanPlan().GetPredicate(); if (predicate != nullptr) { // If there is a predicate, prepare a translator for it context.Prepare(*predicate); // If the scan's predicate is SIMDable, install a boundary at the output if (predicate->IsSIMDable()) { pipeline.InstallBoundaryAtOutput(this); } } LOG_DEBUG("Finished constructing TableScanTranslator ..."); }