OmniSciDB  dfae7c3b14
ExtensionFunctionsBinding.h File Reference
+ Include dependency graph for ExtensionFunctionsBinding.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.




ExtensionFunction bind_function (std::string name, Analyzer::ExpressionPtrVector func_args)
ExtensionFunction bind_function (const Analyzer::FunctionOper *function_oper)
const table_functions::TableFunction bind_table_function (std::string name, Analyzer::ExpressionPtrVector input_args, const bool is_gpu)
bool is_ext_arg_type_column (const ExtArgumentType ext_arg_type)
bool is_ext_arg_type_array (const ExtArgumentType ext_arg_type)
bool is_ext_arg_type_geo (const ExtArgumentType ext_arg_type)

Function Documentation

◆ bind_function() [1/2]

ExtensionFunction bind_function ( std::string  name,
Analyzer::ExpressionPtrVector  func_args 

Definition at line 439 of file ExtensionFunctionsBinding.cpp.

References ExtensionFunctionsWhitelist::get_ext_funcs(), and setup::name.

440  {
441  // used in RelAlgTranslator.cpp
442  std::vector<ExtensionFunction> ext_funcs =
444  return bind_function<ExtensionFunction>(name, func_args, ext_funcs);
445 }
static std::vector< ExtensionFunction > get_ext_funcs(const std::string &name)
+ Here is the call graph for this function:

◆ bind_function() [2/2]

ExtensionFunction bind_function ( const Analyzer::FunctionOper function_oper)

Definition at line 447 of file ExtensionFunctionsBinding.cpp.

References bind_function(), Analyzer::FunctionOper::getArity(), Analyzer::FunctionOper::getName(), Analyzer::FunctionOper::getOwnArg(), and setup::name.

447  {
448  // used in ExtensionsIR.cpp
449  auto name = function_oper->getName();
450  Analyzer::ExpressionPtrVector func_args = {};
451  for (size_t i = 0; i < function_oper->getArity(); ++i) {
452  func_args.push_back(function_oper->getOwnArg(i));
453  }
454  return bind_function(name, func_args);
455 }
std::shared_ptr< Analyzer::Expr > getOwnArg(const size_t i) const
Definition: Analyzer.h:1367
std::string getName() const
Definition: Analyzer.h:1358
T bind_function(std::string name, Analyzer::ExpressionPtrVector func_args, const std::vector< T > &ext_funcs)
size_t getArity() const
Definition: Analyzer.h:1360
std::vector< ExpressionPtr > ExpressionPtrVector
Definition: Analyzer.h:182
+ Here is the call graph for this function:

◆ bind_table_function()

const table_functions::TableFunction bind_table_function ( std::string  name,
Analyzer::ExpressionPtrVector  input_args,
const bool  is_gpu 

Definition at line 457 of file ExtensionFunctionsBinding.cpp.

References bind_table_function(), and table_functions::TableFunctionsFactory::get_table_funcs().

460  {
461  // used in RelAlgExecutor.cpp
462  std::vector<table_functions::TableFunction> table_funcs =
464  return bind_table_function(name, input_args, table_funcs);
465 }
const table_functions::TableFunction bind_table_function(std::string name, Analyzer::ExpressionPtrVector input_args, const std::vector< table_functions::TableFunction > &table_funcs)
static std::vector< TableFunction > get_table_funcs(const std::string &name, const bool is_gpu)
+ Here is the call graph for this function:

◆ is_ext_arg_type_array()

bool is_ext_arg_type_array ( const ExtArgumentType  ext_arg_type)

Definition at line 467 of file ExtensionFunctionsBinding.cpp.

References ArrayBool, ArrayDouble, ArrayFloat, ArrayInt16, ArrayInt32, ArrayInt64, and ArrayInt8.

Referenced by CodeGenerator::codegenFunctionOperCastArgs(), ExtensionFunctionsWhitelist::getLLVMDeclarations(), and anonymous_namespace{ExtensionFunctionsBinding.cpp}::match_arguments().

+ Here is the caller graph for this function:

◆ is_ext_arg_type_column()

bool is_ext_arg_type_column ( const ExtArgumentType  ext_arg_type)

Definition at line 483 of file ExtensionFunctionsBinding.cpp.

References ColumnBool, ColumnDouble, ColumnFloat, ColumnInt16, ColumnInt32, ColumnInt64, and ColumnInt8.

Referenced by anonymous_namespace{ExtensionFunctionsBinding.cpp}::match_arguments().

+ Here is the caller graph for this function:

◆ is_ext_arg_type_geo()

bool is_ext_arg_type_geo ( const ExtArgumentType  ext_arg_type)

Definition at line 499 of file ExtensionFunctionsBinding.cpp.

References GeoLineString, GeoMultiPolygon, GeoPoint, and GeoPolygon.

Referenced by CodeGenerator::codegenFunctionOperCastArgs().

499  {
500  switch (ext_arg_type) {
505  return true;
507  default:
508  return false;
509  }
510 }
+ Here is the caller graph for this function: