OmniSciDB
a5dc49c757
|
#include <Transform.h>
Public Member Functions | |
Transform (const Analyzer::GeoOperator *geo_operator) | |
size_t | size () const override |
SQLTypeInfo | getNullType () const override |
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) override |
std::vector< llvm::Value * > | codegen (const std::vector< llvm::Value * > &args, CodeGenerator::NullCheckCodegen *nullcheck_codegen, CgenState *cgen_state, const CompilationOptions &co) override |
Public Member Functions inherited from spatial_type::Codegen | |
Codegen (const Analyzer::GeoOperator *geo_operator) | |
auto | isNullable () const |
auto | getTypeInfo () const |
std::string | getName () const |
virtual std::unique_ptr < CodeGenerator::NullCheckCodegen > | getNullCheckCodegen (llvm::Value *null_lv, CgenState *cgen_state, Executor *executor) |
virtual const Analyzer::Expr * | getOperand (const size_t index) |
virtual | ~Codegen () |
Static Public Member Functions | |
static bool | isUtm (unsigned const srid) |
Static Public Member Functions inherited from spatial_type::Codegen | |
static std::unique_ptr< Codegen > | init (const Analyzer::GeoOperator *geo_operator) |
static char const * | pointIsNullFunctionName (SQLTypeInfo const &) |
Private Attributes | |
const Analyzer::GeoTransformOperator * | transform_operator_ |
bool | can_transform_in_place_ {false} |
Additional Inherited Members | |
Protected Attributes inherited from spatial_type::Codegen | |
const Analyzer::GeoOperator * | operator_ |
bool | is_nullable_ {true} |
Definition at line 22 of file Transform.h.
|
inline |
Definition at line 24 of file Transform.h.
References CHECK, CHECK_EQ, Analyzer::Expr::get_type_info(), spatial_type::Codegen::is_nullable_, spatial_type::Codegen::operator_, Analyzer::GeoOperator::size(), and transform_operator_.
|
inlineoverridevirtual |
Implements spatial_type::Codegen.
Definition at line 79 of file Transform.h.
References can_transform_in_place_, CHECK, CHECK_EQ, CgenState::context_, CompilationOptions::device_type, CgenState::emitCall(), CgenState::emitExternalCall(), CodeGenerator::NullCheckCodegen::finalize(), Analyzer::Expr::get_type_info(), Analyzer::GeoTransformOperator::getInputSRID(), spatial_type::Codegen::getName(), spatial_type::Codegen::getOperand(), Analyzer::GeoTransformOperator::getOutputSRID(), GPU, CgenState::gpuFunctionsToReplace(), CgenState::ir_builder_, spatial_type::Codegen::is_nullable_, isUtm(), kENCODING_GEOINT, CgenState::llInt(), CgenState::maybeCloneFunctionRecursive(), CgenState::module_, CgenState::replaceFunctionForGpu(), to_string(), transform_operator_, and verify_function_ir().
|
inlineoverridevirtual |
Implements spatial_type::Codegen.
Definition at line 46 of file Transform.h.
References can_transform_in_place_, CHECK, CHECK_EQ, CodeGenerator::codegenGeoArrayLoadAndNullcheck(), CgenState::emitCall(), spatial_type::Codegen::getOperand(), is_null(), spatial_type::Codegen::is_nullable_, kPOINT, spatial_type::Codegen::pointIsNullFunctionName(), and size().
|
inlineoverridevirtual |
Implements spatial_type::Codegen.
Definition at line 40 of file Transform.h.
References kBOOLEAN.
|
inlinestatic |
Definition at line 42 of file Transform.h.
Referenced by codegen(), and RelAlgTranslator::translateGeoFunctionArg().
|
inlineoverridevirtual |
Implements spatial_type::Codegen.
Definition at line 38 of file Transform.h.
Referenced by codegenLoads().
|
private |
Definition at line 278 of file Transform.h.
Referenced by codegen(), and codegenLoads().
|
private |
Definition at line 277 of file Transform.h.
Referenced by codegen(), and Transform().