OmniSciDB  c1a53651b2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ModifyManipulationTarget Class Reference

#include <RelAlgDag.h>

+ Inheritance diagram for ModifyManipulationTarget:
+ Collaboration diagram for ModifyManipulationTarget:

Public Member Functions

 ModifyManipulationTarget (bool const update_via_select=false, bool const delete_via_select=false, bool const varlen_update_required=false, TableDescriptor const *table_descriptor=nullptr, ColumnNameList target_columns=ColumnNameList(), const Catalog_Namespace::Catalog *catalog=nullptr)
 
void setUpdateViaSelectFlag (bool required) const
 
void setDeleteViaSelectFlag (bool required) const
 
void setVarlenUpdateRequired (bool required) const
 
void forceRowwiseOutput () const
 
TableDescriptor const * getModifiedTableDescriptor () const
 
TableDescriptor const * getTableDescriptor () const
 
void setModifiedTableDescriptor (TableDescriptor const *td) const
 
const Catalog_Namespace::CataloggetModifiedTableCatalog () const
 
void setModifiedTableCatalog (const Catalog_Namespace::Catalog *catalog) const
 
auto const isUpdateViaSelect () const
 
auto const isDeleteViaSelect () const
 
auto const isVarlenUpdateRequired () const
 
auto const isProjectForUpdate () const
 
auto const isRowwiseOutputForced () const
 
void setTargetColumns (ColumnNameList const &target_columns) const
 
ColumnNameList const & getTargetColumns () const
 
void invalidateTargetColumns () const
 
template<typename VALIDATION_FUNCTOR >
bool validateTargetColumns (VALIDATION_FUNCTOR validator) const
 

Private Attributes

bool is_update_via_select_ = false
 
bool is_delete_via_select_ = false
 
bool varlen_update_required_ = false
 
TableDescriptor const * table_descriptor_ = nullptr
 
ColumnNameList target_columns_
 
bool force_rowwise_output_ = false
 
const Catalog_Namespace::Catalogcatalog_ {nullptr}
 

Friends

struct RelAlgDagSerializer
 

Detailed Description

Definition at line 1054 of file RelAlgDag.h.

Constructor & Destructor Documentation

ModifyManipulationTarget::ModifyManipulationTarget ( bool const  update_via_select = false,
bool const  delete_via_select = false,
bool const  varlen_update_required = false,
TableDescriptor const *  table_descriptor = nullptr,
ColumnNameList  target_columns = ColumnNameList(),
const Catalog_Namespace::Catalog catalog = nullptr 
)
inline

Definition at line 1056 of file RelAlgDag.h.

1062  : is_update_via_select_(update_via_select)
1063  , is_delete_via_select_(delete_via_select)
1064  , varlen_update_required_(varlen_update_required)
1065  , table_descriptor_(table_descriptor)
1066  , target_columns_(target_columns)
1067  , catalog_(catalog) {}
ColumnNameList target_columns_
Definition: RelAlgDag.h:1118
const Catalog_Namespace::Catalog * catalog_
Definition: RelAlgDag.h:1120
TableDescriptor const * table_descriptor_
Definition: RelAlgDag.h:1117

Member Function Documentation

void ModifyManipulationTarget::forceRowwiseOutput ( ) const
inline

Definition at line 1074 of file RelAlgDag.h.

References force_rowwise_output_.

1074 { force_rowwise_output_ = true; }
const Catalog_Namespace::Catalog* ModifyManipulationTarget::getModifiedTableCatalog ( ) const
inline

Definition at line 1082 of file RelAlgDag.h.

References catalog_.

Referenced by RelProject::propagateModifyManipulationTarget().

1082 { return catalog_; }
const Catalog_Namespace::Catalog * catalog_
Definition: RelAlgDag.h:1120

+ Here is the caller graph for this function:

TableDescriptor const* ModifyManipulationTarget::getModifiedTableDescriptor ( ) const
inline

Definition at line 1076 of file RelAlgDag.h.

References table_descriptor_.

Referenced by RelProject::propagateModifyManipulationTarget().

1076 { return table_descriptor_; }
TableDescriptor const * table_descriptor_
Definition: RelAlgDag.h:1117

+ Here is the caller graph for this function:

TableDescriptor const* ModifyManipulationTarget::getTableDescriptor ( ) const
inline

Definition at line 1077 of file RelAlgDag.h.

References table_descriptor_.

1077 { return table_descriptor_; }
TableDescriptor const * table_descriptor_
Definition: RelAlgDag.h:1117
ColumnNameList const& ModifyManipulationTarget::getTargetColumns ( ) const
inline

Definition at line 1099 of file RelAlgDag.h.

References target_columns_.

Referenced by RelProject::propagateModifyManipulationTarget().

1099 { return target_columns_; }
ColumnNameList target_columns_
Definition: RelAlgDag.h:1118

+ Here is the caller graph for this function:

void ModifyManipulationTarget::invalidateTargetColumns ( ) const
inline

Definition at line 1101 of file RelAlgDag.h.

References target_columns_.

Referenced by RelProject::resetModifyManipulationTarget().

1101 { target_columns_.clear(); }
ColumnNameList target_columns_
Definition: RelAlgDag.h:1118

+ Here is the caller graph for this function:

auto const ModifyManipulationTarget::isDeleteViaSelect ( ) const
inline

Definition at line 1089 of file RelAlgDag.h.

References is_delete_via_select_.

Referenced by RelProject::propagateModifyManipulationTarget(), and QueryPlanDagChecker::visit().

1089 { return is_delete_via_select_; }

+ Here is the caller graph for this function:

auto const ModifyManipulationTarget::isProjectForUpdate ( ) const
inline

Definition at line 1091 of file RelAlgDag.h.

References is_delete_via_select_, is_update_via_select_, and varlen_update_required_.

Referenced by RelProject::deepCopy().

+ Here is the caller graph for this function:

auto const ModifyManipulationTarget::isRowwiseOutputForced ( ) const
inline

Definition at line 1094 of file RelAlgDag.h.

References force_rowwise_output_.

1094 { return force_rowwise_output_; }
auto const ModifyManipulationTarget::isUpdateViaSelect ( ) const
inline

Definition at line 1088 of file RelAlgDag.h.

References is_update_via_select_.

Referenced by RelProject::propagateModifyManipulationTarget(), and QueryPlanDagChecker::visit().

1088 { return is_update_via_select_; }

+ Here is the caller graph for this function:

auto const ModifyManipulationTarget::isVarlenUpdateRequired ( ) const
inline

Definition at line 1090 of file RelAlgDag.h.

References varlen_update_required_.

Referenced by RelProject::propagateModifyManipulationTarget(), and QueryPlanDagChecker::visit().

1090 { return varlen_update_required_; }

+ Here is the caller graph for this function:

void ModifyManipulationTarget::setDeleteViaSelectFlag ( bool  required) const
inline

Definition at line 1070 of file RelAlgDag.h.

References is_delete_via_select_, and run_benchmark_import::required.

Referenced by RelModify::applyDeleteModificationsToInputNode(), and RelProject::resetModifyManipulationTarget().

+ Here is the caller graph for this function:

void ModifyManipulationTarget::setModifiedTableCatalog ( const Catalog_Namespace::Catalog catalog) const
inline

Definition at line 1084 of file RelAlgDag.h.

References catalog_.

Referenced by RelProject::resetModifyManipulationTarget().

1084  {
1085  catalog_ = catalog;
1086  }
const Catalog_Namespace::Catalog * catalog_
Definition: RelAlgDag.h:1120

+ Here is the caller graph for this function:

void ModifyManipulationTarget::setModifiedTableDescriptor ( TableDescriptor const *  td) const
inline

Definition at line 1078 of file RelAlgDag.h.

References table_descriptor_.

Referenced by RelProject::resetModifyManipulationTarget().

1078  {
1079  table_descriptor_ = td;
1080  }
TableDescriptor const * table_descriptor_
Definition: RelAlgDag.h:1117

+ Here is the caller graph for this function:

void ModifyManipulationTarget::setTargetColumns ( ColumnNameList const &  target_columns) const
inline

Definition at line 1096 of file RelAlgDag.h.

References target_columns_.

1096  {
1097  target_columns_ = target_columns;
1098  }
ColumnNameList target_columns_
Definition: RelAlgDag.h:1118
void ModifyManipulationTarget::setUpdateViaSelectFlag ( bool  required) const
inline

Definition at line 1069 of file RelAlgDag.h.

References is_update_via_select_, and run_benchmark_import::required.

Referenced by RelProject::resetModifyManipulationTarget().

+ Here is the caller graph for this function:

void ModifyManipulationTarget::setVarlenUpdateRequired ( bool  required) const
inline

Definition at line 1071 of file RelAlgDag.h.

References run_benchmark_import::required, and varlen_update_required_.

Referenced by RelProject::resetModifyManipulationTarget().

+ Here is the caller graph for this function:

template<typename VALIDATION_FUNCTOR >
bool ModifyManipulationTarget::validateTargetColumns ( VALIDATION_FUNCTOR  validator) const
inline

Definition at line 1104 of file RelAlgDag.h.

References target_columns_.

1104  {
1105  for (auto const& column_name : target_columns_) {
1106  if (validator(column_name) == false) {
1107  return false;
1108  }
1109  }
1110  return true;
1111  }
ColumnNameList target_columns_
Definition: RelAlgDag.h:1118

Friends And Related Function Documentation

friend struct RelAlgDagSerializer
friend

Definition at line 1122 of file RelAlgDag.h.

Member Data Documentation

const Catalog_Namespace::Catalog* ModifyManipulationTarget::catalog_ {nullptr}
mutableprivate

Definition at line 1120 of file RelAlgDag.h.

Referenced by getModifiedTableCatalog(), and setModifiedTableCatalog().

bool ModifyManipulationTarget::force_rowwise_output_ = false
mutableprivate

Definition at line 1119 of file RelAlgDag.h.

Referenced by forceRowwiseOutput(), and isRowwiseOutputForced().

bool ModifyManipulationTarget::is_delete_via_select_ = false
mutableprivate

Definition at line 1115 of file RelAlgDag.h.

Referenced by isDeleteViaSelect(), isProjectForUpdate(), and setDeleteViaSelectFlag().

bool ModifyManipulationTarget::is_update_via_select_ = false
mutableprivate

Definition at line 1114 of file RelAlgDag.h.

Referenced by isProjectForUpdate(), isUpdateViaSelect(), and setUpdateViaSelectFlag().

TableDescriptor const* ModifyManipulationTarget::table_descriptor_ = nullptr
mutableprivate
ColumnNameList ModifyManipulationTarget::target_columns_
mutableprivate
bool ModifyManipulationTarget::varlen_update_required_ = false
mutableprivate

The documentation for this class was generated from the following file: