OmniSciDB  a667adc9c8
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
foreign_storage::csv_file_buffer_parser::ParseBufferRequest Struct Reference

#include <CsvFileBufferParser.h>

+ Collaboration diagram for foreign_storage::csv_file_buffer_parser::ParseBufferRequest:

Public Member Functions

 ParseBufferRequest (const ParseBufferRequest &request)=delete
 
 ParseBufferRequest (ParseBufferRequest &&request)=default
 
 ParseBufferRequest (size_t buffer_size, const import_export::CopyParams &copy_params, int db_id, const ForeignTable *foreign_table, const std::set< int > column_filter_set, const std::string &full_path)
 
std::shared_ptr
< Catalog_Namespace::Catalog
getCatalog () const
 
std::list< const
ColumnDescriptor * > 
getColumns () const
 
int32_t getTableId () const
 
std::string getTableName () const
 
size_t getMaxFragRows () const
 
std::string getFilePath () const
 

Public Attributes

std::unique_ptr< char[]> buffer
 
size_t buffer_size
 
size_t buffer_alloc_size
 
const import_export::CopyParams copy_params
 
const int db_id
 
std::unique_ptr
< ForeignTableSchema
foreign_table_schema
 
std::vector< std::unique_ptr
< import_export::TypedImportBuffer > > 
import_buffers
 
size_t buffer_row_count
 
size_t begin_pos
 
size_t end_pos
 
size_t first_row_index
 
size_t file_offset
 
size_t process_row_count
 
std::string full_path
 

Detailed Description

Definition at line 32 of file CsvFileBufferParser.h.

Constructor & Destructor Documentation

foreign_storage::csv_file_buffer_parser::ParseBufferRequest::ParseBufferRequest ( const ParseBufferRequest request)
delete
foreign_storage::csv_file_buffer_parser::ParseBufferRequest::ParseBufferRequest ( ParseBufferRequest &&  request)
default
foreign_storage::csv_file_buffer_parser::ParseBufferRequest::ParseBufferRequest ( size_t  buffer_size,
const import_export::CopyParams copy_params,
int  db_id,
const ForeignTable foreign_table,
const std::set< int >  column_filter_set,
const std::string &  full_path 
)

Definition at line 249 of file CsvFileBufferParser.cpp.

References buffer, buffer_size, getCatalog(), getColumns(), import_buffers, IS_STRING, and kENCODING_DICT.

257  , copy_params(copy_params)
258  , db_id(db_id)
259  , foreign_table_schema(std::make_unique<ForeignTableSchema>(db_id, foreign_table))
260  , full_path(full_path) {
261  if (buffer_size > 0) {
262  buffer = std::make_unique<char[]>(buffer_size);
263  }
264  // initialize import buffers from columns.
265  for (const auto column : getColumns()) {
266  if (column_filter_set.find(column->columnId) == column_filter_set.end()) {
267  import_buffers.emplace_back(nullptr);
268  } else {
269  StringDictionary* string_dictionary = nullptr;
270  if (column->columnType.is_dict_encoded_string() ||
271  (column->columnType.is_array() && IS_STRING(column->columnType.get_subtype()) &&
272  column->columnType.get_compression() == kENCODING_DICT)) {
273  auto dict_descriptor = getCatalog()->getMetadataForDictUnlocked(
274  column->columnType.get_comp_param(), true);
275  string_dictionary = dict_descriptor->stringDict.get();
276  }
277  import_buffers.emplace_back(
278  std::make_unique<import_export::TypedImportBuffer>(column, string_dictionary));
279  }
280  }
281 }
std::vector< std::unique_ptr< import_export::TypedImportBuffer > > import_buffers
std::list< const ColumnDescriptor * > getColumns() const
std::shared_ptr< Catalog_Namespace::Catalog > getCatalog() const
std::unique_ptr< ForeignTableSchema > foreign_table_schema
#define IS_STRING(T)
Definition: sqltypes.h:244

+ Here is the call graph for this function:

Member Function Documentation

std::shared_ptr<Catalog_Namespace::Catalog> foreign_storage::csv_file_buffer_parser::ParseBufferRequest::getCatalog ( ) const
inline

Definition at line 42 of file CsvFileBufferParser.h.

References CHECK, Catalog_Namespace::SysCatalog::getCatalog(), and Catalog_Namespace::SysCatalog::instance().

Referenced by foreign_storage::csv_file_buffer_parser::parse_buffer(), and ParseBufferRequest().

42  {
43  // MAT are we really doing any good wrapping this?
45  CHECK(catalog);
46  return catalog;
47  }
static SysCatalog & instance()
Definition: SysCatalog.h:292
std::shared_ptr< Catalog > getCatalog(const std::string &dbName)
#define CHECK(condition)
Definition: Logger.h:197

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

std::list<const ColumnDescriptor*> foreign_storage::csv_file_buffer_parser::ParseBufferRequest::getColumns ( ) const
inline

Definition at line 49 of file CsvFileBufferParser.h.

References foreign_table_schema.

Referenced by foreign_storage::csv_file_buffer_parser::parse_buffer(), and ParseBufferRequest().

49  {
50  return foreign_table_schema->getLogicalAndPhysicalColumns();
51  }
std::unique_ptr< ForeignTableSchema > foreign_table_schema

+ Here is the caller graph for this function:

std::string foreign_storage::csv_file_buffer_parser::ParseBufferRequest::getFilePath ( ) const
inline

Definition at line 65 of file CsvFileBufferParser.h.

References full_path.

Referenced by foreign_storage::csv_file_buffer_parser::parse_buffer(), and foreign_storage::process_data_blocks().

+ Here is the caller graph for this function:

size_t foreign_storage::csv_file_buffer_parser::ParseBufferRequest::getMaxFragRows ( ) const
inline

Definition at line 61 of file CsvFileBufferParser.h.

References foreign_table_schema.

Referenced by foreign_storage::process_data_blocks().

61  {
62  return foreign_table_schema->getForeignTable()->maxFragRows;
63  }
std::unique_ptr< ForeignTableSchema > foreign_table_schema

+ Here is the caller graph for this function:

int32_t foreign_storage::csv_file_buffer_parser::ParseBufferRequest::getTableId ( ) const
inline

Definition at line 53 of file CsvFileBufferParser.h.

References foreign_table_schema.

Referenced by foreign_storage::process_data_blocks().

53  {
54  return foreign_table_schema->getForeignTable()->tableId;
55  }
std::unique_ptr< ForeignTableSchema > foreign_table_schema

+ Here is the caller graph for this function:

std::string foreign_storage::csv_file_buffer_parser::ParseBufferRequest::getTableName ( ) const
inline

Definition at line 57 of file CsvFileBufferParser.h.

References foreign_table_schema.

57  {
58  return foreign_table_schema->getForeignTable()->tableName;
59  }
std::unique_ptr< ForeignTableSchema > foreign_table_schema

Member Data Documentation

size_t foreign_storage::csv_file_buffer_parser::ParseBufferRequest::begin_pos
std::unique_ptr<char[]> foreign_storage::csv_file_buffer_parser::ParseBufferRequest::buffer
size_t foreign_storage::csv_file_buffer_parser::ParseBufferRequest::buffer_alloc_size

Definition at line 70 of file CsvFileBufferParser.h.

size_t foreign_storage::csv_file_buffer_parser::ParseBufferRequest::buffer_row_count

Definition at line 77 of file CsvFileBufferParser.h.

size_t foreign_storage::csv_file_buffer_parser::ParseBufferRequest::buffer_size
size_t foreign_storage::csv_file_buffer_parser::ParseBufferRequest::end_pos
size_t foreign_storage::csv_file_buffer_parser::ParseBufferRequest::file_offset
size_t foreign_storage::csv_file_buffer_parser::ParseBufferRequest::first_row_index
std::unique_ptr<ForeignTableSchema> foreign_storage::csv_file_buffer_parser::ParseBufferRequest::foreign_table_schema

Definition at line 73 of file CsvFileBufferParser.h.

Referenced by getColumns(), getMaxFragRows(), getTableId(), and getTableName().

std::string foreign_storage::csv_file_buffer_parser::ParseBufferRequest::full_path

Definition at line 83 of file CsvFileBufferParser.h.

Referenced by getFilePath().

std::vector<std::unique_ptr<import_export::TypedImportBuffer> > foreign_storage::csv_file_buffer_parser::ParseBufferRequest::import_buffers
size_t foreign_storage::csv_file_buffer_parser::ParseBufferRequest::process_row_count

The documentation for this struct was generated from the following files: