OmniSciDB  5ade3759e0
Fragmenter_Namespace::AbstractFragmenter Class Referenceabstract

#include <AbstractFragmenter.h>

+ Inheritance diagram for Fragmenter_Namespace::AbstractFragmenter:

Public Member Functions

virtual ~AbstractFragmenter ()
 
virtual TableInfo getFragmentsForQuery ()=0
 Should get the partitions(fragments) where at least one tuple could satisfy the (optional) provided predicate, given any statistics on data distribution the partitioner keeps. May also prune the predicate. More...
 
virtual void insertData (InsertData &insertDataStruct)=0
 Given data wrapped in an InsertData struct, inserts it into the correct partitions with locks and checkpoints. More...
 
virtual void insertDataNoCheckpoint (InsertData &insertDataStruct)=0
 Given data wrapped in an InsertData struct, inserts it into the correct partitions No locks and checkpoints taken needs to be managed externally. More...
 
virtual void dropFragmentsToSize (const size_t maxRows)=0
 Will truncate table to less than maxRows by dropping fragments. More...
 
virtual void updateChunkStats (const ColumnDescriptor *cd, std::unordered_map< int, ChunkStats > &stats_map)=0
 Update chunk stats. More...
 
virtual int getFragmenterId ()=0
 Gets the id of the partitioner. More...
 
virtual std::string getFragmenterType ()=0
 Gets the string type of the partitioner. More...
 
virtual size_t getNumRows ()=0
 
virtual void setNumRows (const size_t numTuples)=0
 
virtual void updateColumn (const Catalog_Namespace::Catalog *catalog, const TableDescriptor *td, const ColumnDescriptor *cd, const int fragment_id, const std::vector< uint64_t > &frag_offsets, const std::vector< ScalarTargetValue > &rhs_values, const SQLTypeInfo &rhs_type, const Data_Namespace::MemoryLevel memory_level, UpdelRoll &updel_roll)=0
 
virtual void updateColumns (const Catalog_Namespace::Catalog *catalog, const TableDescriptor *td, const int fragmentId, const std::vector< TargetMetaInfo > sourceMetaInfo, const std::vector< const ColumnDescriptor *> columnDescriptors, const RowDataProvider &sourceDataProvider, const size_t indexOffFragmentOffsetColumn, const Data_Namespace::MemoryLevel memoryLevel, UpdelRoll &updelRoll)=0
 
virtual void updateColumn (const Catalog_Namespace::Catalog *catalog, const TableDescriptor *td, const ColumnDescriptor *cd, const int fragment_id, const std::vector< uint64_t > &frag_offsets, const ScalarTargetValue &rhs_value, const SQLTypeInfo &rhs_type, const Data_Namespace::MemoryLevel memory_level, UpdelRoll &updel_roll)=0
 
virtual void updateColumnMetadata (const ColumnDescriptor *cd, FragmentInfo &fragment, std::shared_ptr< Chunk_NS::Chunk > chunk, const bool null, const double dmax, const double dmin, const int64_t lmax, const int64_t lmin, const SQLTypeInfo &rhs_type, UpdelRoll &updel_roll)=0
 
virtual void updateMetadata (const Catalog_Namespace::Catalog *catalog, const MetaDataKey &key, UpdelRoll &updel_roll)=0
 
virtual void compactRows (const Catalog_Namespace::Catalog *catalog, const TableDescriptor *td, const int fragmentId, const std::vector< uint64_t > &fragOffsets, const Data_Namespace::MemoryLevel memoryLevel, UpdelRoll &updelRoll)=0
 
virtual const std::vector< uint64_t > getVacuumOffsets (const std::shared_ptr< Chunk_NS::Chunk > &chunk)=0
 

Detailed Description

Definition at line 81 of file AbstractFragmenter.h.

Constructor & Destructor Documentation

◆ ~AbstractFragmenter()

virtual Fragmenter_Namespace::AbstractFragmenter::~AbstractFragmenter ( )
inlinevirtual

Definition at line 83 of file AbstractFragmenter.h.

83 {}

Member Function Documentation

◆ compactRows()

virtual void Fragmenter_Namespace::AbstractFragmenter::compactRows ( const Catalog_Namespace::Catalog catalog,
const TableDescriptor td,
const int  fragmentId,
const std::vector< uint64_t > &  fragOffsets,
const Data_Namespace::MemoryLevel  memoryLevel,
UpdelRoll updelRoll 
)
pure virtual

Implemented in Fragmenter_Namespace::InsertOrderFragmenter.

Referenced by Catalog_Namespace::Catalog::vacuumDeletedRows().

+ Here is the caller graph for this function:

◆ dropFragmentsToSize()

virtual void Fragmenter_Namespace::AbstractFragmenter::dropFragmentsToSize ( const size_t  maxRows)
pure virtual

Will truncate table to less than maxRows by dropping fragments.

Implemented in Fragmenter_Namespace::InsertOrderFragmenter.

◆ getFragmenterId()

virtual int Fragmenter_Namespace::AbstractFragmenter::getFragmenterId ( )
pure virtual

Gets the id of the partitioner.

Implemented in Fragmenter_Namespace::InsertOrderFragmenter.

◆ getFragmenterType()

virtual std::string Fragmenter_Namespace::AbstractFragmenter::getFragmenterType ( )
pure virtual

Gets the string type of the partitioner.

Todo:
have a method returning the enum type?

Implemented in Fragmenter_Namespace::InsertOrderFragmenter.

◆ getFragmentsForQuery()

virtual TableInfo Fragmenter_Namespace::AbstractFragmenter::getFragmentsForQuery ( )
pure virtual

Should get the partitions(fragments) where at least one tuple could satisfy the (optional) provided predicate, given any statistics on data distribution the partitioner keeps. May also prune the predicate.

Get all fragments for the current table.

Implemented in Fragmenter_Namespace::InsertOrderFragmenter.

Referenced by getChunkAccessorTable(), scan_table_return_hash(), and scan_table_return_hash_non_iter().

+ Here is the caller graph for this function:

◆ getNumRows()

virtual size_t Fragmenter_Namespace::AbstractFragmenter::getNumRows ( )
pure virtual

Implemented in Fragmenter_Namespace::InsertOrderFragmenter.

Referenced by Parser::AddColumnStmt::execute().

+ Here is the caller graph for this function:

◆ getVacuumOffsets()

virtual const std::vector<uint64_t> Fragmenter_Namespace::AbstractFragmenter::getVacuumOffsets ( const std::shared_ptr< Chunk_NS::Chunk > &  chunk)
pure virtual

Implemented in Fragmenter_Namespace::InsertOrderFragmenter.

Referenced by Catalog_Namespace::Catalog::vacuumDeletedRows().

+ Here is the caller graph for this function:

◆ insertData()

virtual void Fragmenter_Namespace::AbstractFragmenter::insertData ( InsertData insertDataStruct)
pure virtual

Given data wrapped in an InsertData struct, inserts it into the correct partitions with locks and checkpoints.

Implemented in Fragmenter_Namespace::InsertOrderFragmenter, and Fragmenter_Namespace::SortedOrderFragmenter.

Referenced by Importer_NS::Loader::loadToShard(), and populate_table_random().

+ Here is the caller graph for this function:

◆ insertDataNoCheckpoint()

virtual void Fragmenter_Namespace::AbstractFragmenter::insertDataNoCheckpoint ( InsertData insertDataStruct)
pure virtual

Given data wrapped in an InsertData struct, inserts it into the correct partitions No locks and checkpoints taken needs to be managed externally.

Implemented in Fragmenter_Namespace::InsertOrderFragmenter, and Fragmenter_Namespace::SortedOrderFragmenter.

Referenced by Importer_NS::Loader::loadToShard().

+ Here is the caller graph for this function:

◆ setNumRows()

virtual void Fragmenter_Namespace::AbstractFragmenter::setNumRows ( const size_t  numTuples)
pure virtual

◆ updateChunkStats()

virtual void Fragmenter_Namespace::AbstractFragmenter::updateChunkStats ( const ColumnDescriptor cd,
std::unordered_map< int, ChunkStats > &  stats_map 
)
pure virtual

◆ updateColumn() [1/2]

virtual void Fragmenter_Namespace::AbstractFragmenter::updateColumn ( const Catalog_Namespace::Catalog catalog,
const TableDescriptor td,
const ColumnDescriptor cd,
const int  fragment_id,
const std::vector< uint64_t > &  frag_offsets,
const std::vector< ScalarTargetValue > &  rhs_values,
const SQLTypeInfo rhs_type,
const Data_Namespace::MemoryLevel  memory_level,
UpdelRoll updel_roll 
)
pure virtual

◆ updateColumn() [2/2]

virtual void Fragmenter_Namespace::AbstractFragmenter::updateColumn ( const Catalog_Namespace::Catalog catalog,
const TableDescriptor td,
const ColumnDescriptor cd,
const int  fragment_id,
const std::vector< uint64_t > &  frag_offsets,
const ScalarTargetValue rhs_value,
const SQLTypeInfo rhs_type,
const Data_Namespace::MemoryLevel  memory_level,
UpdelRoll updel_roll 
)
pure virtual

◆ updateColumnMetadata()

virtual void Fragmenter_Namespace::AbstractFragmenter::updateColumnMetadata ( const ColumnDescriptor cd,
FragmentInfo fragment,
std::shared_ptr< Chunk_NS::Chunk chunk,
const bool  null,
const double  dmax,
const double  dmin,
const int64_t  lmax,
const int64_t  lmin,
const SQLTypeInfo rhs_type,
UpdelRoll updel_roll 
)
pure virtual

◆ updateColumns()

virtual void Fragmenter_Namespace::AbstractFragmenter::updateColumns ( const Catalog_Namespace::Catalog catalog,
const TableDescriptor td,
const int  fragmentId,
const std::vector< TargetMetaInfo sourceMetaInfo,
const std::vector< const ColumnDescriptor *>  columnDescriptors,
const RowDataProvider sourceDataProvider,
const size_t  indexOffFragmentOffsetColumn,
const Data_Namespace::MemoryLevel  memoryLevel,
UpdelRoll updelRoll 
)
pure virtual

◆ updateMetadata()

virtual void Fragmenter_Namespace::AbstractFragmenter::updateMetadata ( const Catalog_Namespace::Catalog catalog,
const MetaDataKey key,
UpdelRoll updel_roll 
)
pure virtual

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