Class spatial_type::Codegen

class Codegen

Subclassed by spatial_type::AreaPerimeter, spatial_type::Centroid, spatial_type::Distance, spatial_type::NPoints, spatial_type::NRings, spatial_type::PointAccessors, spatial_type::PointConstructor, spatial_type::PointN, spatial_type::StartEndPoint, spatial_type::Transform

Public Functions

Codegen(const Analyzer::GeoOperator *geo_operator, const Catalog_Namespace::Catalog *catalog)
auto isNullable() const
auto getTypeInfo() const
std::string getName() const
std::unique_ptr<CodeGenerator::NullCheckCodegen> getNullCheckCodegen(llvm::Value *null_lv, CgenState *cgen_state, Executor *executor)
virtual size_t size() const = 0
virtual SQLTypeInfo getNullType() const = 0
const Analyzer::Expr *getOperand(const size_t index)
virtual std::tuple<std::vector<llvm::Value *>, llvm::Value *> codegenLoads(const std::vector<llvm::Value *> &arg_lvs, const std::vector<llvm::Value *> &pos_lvs, CgenState *cgen_state) = 0
virtual std::vector<llvm::Value *> codegen(const std::vector<llvm::Value *> &args, CodeGenerator::NullCheckCodegen *nullcheck_codegen, CgenState *cgen_state, const CompilationOptions &co) = 0
virtual ~Codegen()

Public Static Functions

std::unique_ptr<Codegen> init(const Analyzer::GeoOperator *geo_operator, const Catalog_Namespace::Catalog *catalog)

Protected Attributes

const Analyzer::GeoOperator *operator_
const Catalog_Namespace::Catalog *cat_
bool is_nullable_ = {true}