OmniSciDB  085a039ca4
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
foreign_storage::RegexParserDataWrapper Class Reference

#include <RegexParserDataWrapper.h>

+ Inheritance diagram for foreign_storage::RegexParserDataWrapper:
+ Collaboration diagram for foreign_storage::RegexParserDataWrapper:

Public Member Functions

 RegexParserDataWrapper ()
 RegexParserDataWrapper (const int db_id, const ForeignTable *foreign_table)
 RegexParserDataWrapper (const int db_id, const ForeignTable *foreign_table, const UserMapping *user_mapping, const bool disable_cache=false)
void validateTableOptions (const ForeignTable *foreign_table) const override
const std::set
< std::string_view > & 
getSupportedTableOptions () const override
- Public Member Functions inherited from foreign_storage::AbstractTextFileDataWrapper
 AbstractTextFileDataWrapper ()
 AbstractTextFileDataWrapper (const int db_id, const ForeignTable *foreign_table)
 AbstractTextFileDataWrapper (const int db_id, const ForeignTable *foreign_table, const UserMapping *user_mapping, const bool disable_cache)
void populateChunkMetadata (ChunkMetadataVector &chunk_metadata_vector) override
void populateChunkBuffers (const ChunkToBufferMap &required_buffers, const ChunkToBufferMap &optional_buffers, AbstractBuffer *delete_buffer) override
std::string getSerializedDataWrapper () const override
void restoreDataWrapperInternals (const std::string &file_path, const ChunkMetadataVector &chunk_metadata) override
bool isRestored () const override
ParallelismLevel getCachedParallelismLevel () const override
ParallelismLevel getNonCachedParallelismLevel () const override
void createRenderGroupAnalyzers () override
 Create RenderGroupAnalyzers for poly columns. More...
- Public Member Functions inherited from foreign_storage::AbstractFileStorageDataWrapper
 AbstractFileStorageDataWrapper ()
void validateServerOptions (const ForeignServer *foreign_server) const override
void validateUserMappingOptions (const UserMapping *user_mapping, const ForeignServer *foreign_server) const override
const std::set
< std::string_view > & 
getSupportedUserMappingOptions () const override
- Public Member Functions inherited from foreign_storage::ForeignDataWrapper
 ForeignDataWrapper ()=default
virtual ~ForeignDataWrapper ()=default
virtual const std::set
< std::string > 
getAlterableTableOptions () const
virtual void validateSchema (const std::list< ColumnDescriptor > &columns) const

Protected Member Functions

const TextFileBufferParsergetFileBufferParser () const override

Private Member Functions

std::set< std::string_view > getAllRegexTableOptions () const

Private Attributes

const RegexFileBufferParser regex_file_buffer_parser_

Static Private Attributes

static const std::set
< std::string_view > 

Additional Inherited Members

- Public Types inherited from foreign_storage::ForeignDataWrapper
- Static Public Attributes inherited from foreign_storage::AbstractFileStorageDataWrapper
static const std::string STORAGE_TYPE_KEY = "STORAGE_TYPE"
static const std::string BASE_PATH_KEY = "BASE_PATH"
static const std::string FILE_PATH_KEY = "FILE_PATH"
static const std::string REGEX_PATH_FILTER_KEY = "REGEX_PATH_FILTER"
static const std::string LOCAL_FILE_STORAGE_TYPE = "LOCAL_FILE"
static const std::string S3_STORAGE_TYPE = "AWS_S3"
static const std::string FILE_SORT_ORDER_BY_KEY = shared::FILE_SORT_ORDER_BY_KEY
static const std::string FILE_SORT_REGEX_KEY = shared::FILE_SORT_REGEX_KEY
static const std::array
< std::string, 1 > 
- Static Protected Member Functions inherited from foreign_storage::AbstractFileStorageDataWrapper
static std::string getFullFilePath (const ForeignTable *foreign_table)
 Returns the path to the source file/dir of the table. Depending on options this may result from a concatenation of server and table path options. More...

Detailed Description

Definition at line 23 of file RegexParserDataWrapper.h.

Constructor & Destructor Documentation

foreign_storage::RegexParserDataWrapper::RegexParserDataWrapper ( )
foreign_storage::RegexParserDataWrapper::RegexParserDataWrapper ( const int  db_id,
const ForeignTable foreign_table 

Definition at line 26 of file RegexParserDataWrapper.cpp.

foreign_storage::RegexParserDataWrapper::RegexParserDataWrapper ( const int  db_id,
const ForeignTable foreign_table,
const UserMapping user_mapping,
const bool  disable_cache = false 

Definition at line 31 of file RegexParserDataWrapper.cpp.

35  : AbstractTextFileDataWrapper(db_id, foreign_table, user_mapping, disable_cache)
36  , regex_file_buffer_parser_{foreign_table} {}
const RegexFileBufferParser regex_file_buffer_parser_

Member Function Documentation

std::set< std::string_view > foreign_storage::RegexParserDataWrapper::getAllRegexTableOptions ( ) const

Definition at line 79 of file RegexParserDataWrapper.cpp.

References foreign_storage::AbstractFileStorageDataWrapper::getSupportedTableOptions(), and regex_table_options_.

Referenced by getSupportedTableOptions().

79  {
80  std::set<std::string_view> supported_table_options(
83  supported_table_options.insert(regex_table_options_.begin(),
84  regex_table_options_.end());
85  return supported_table_options;
86 }
static const std::set< std::string_view > regex_table_options_
const std::set< std::string_view > & getSupportedTableOptions() const override

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

const TextFileBufferParser & foreign_storage::RegexParserDataWrapper::getFileBufferParser ( ) const

Implements foreign_storage::AbstractTextFileDataWrapper.

Definition at line 88 of file RegexParserDataWrapper.cpp.

References regex_file_buffer_parser_.

88  {
90 }
const RegexFileBufferParser regex_file_buffer_parser_
const std::set< std::string_view > & foreign_storage::RegexParserDataWrapper::getSupportedTableOptions ( ) const

Gets the set of supported table options for the data wrapper.

Reimplemented from foreign_storage::AbstractFileStorageDataWrapper.

Definition at line 73 of file RegexParserDataWrapper.cpp.

References getAllRegexTableOptions().

74  {
75  static const auto supported_table_options = getAllRegexTableOptions();
76  return supported_table_options;
77 }
std::set< std::string_view > getAllRegexTableOptions() const

+ Here is the call graph for this function:

void foreign_storage::RegexParserDataWrapper::validateTableOptions ( const ForeignTable foreign_table) const

Checks that the options for the given foreign table object are valid.

foreign_table- foreign table object containing options to be validated

Reimplemented from foreign_storage::AbstractFileStorageDataWrapper.

Definition at line 49 of file RegexParserDataWrapper.cpp.

References foreign_storage::RegexFileBufferParser::LINE_REGEX_KEY, foreign_storage::RegexFileBufferParser::LINE_START_REGEX_KEY, foreign_storage::OptionsContainer::options, foreign_storage::anonymous_namespace{RegexParserDataWrapper.cpp}::validate_regex(), and foreign_storage::AbstractFileStorageDataWrapper::validateTableOptions().

50  {
52  auto line_regex_it = foreign_table->options.find(RegexFileBufferParser::LINE_REGEX_KEY);
53  if (line_regex_it == foreign_table->options.end() || line_regex_it->second.empty()) {
54  throw ForeignStorageException{
55  "Foreign table options must contain a non-empty value for \"" +
57  }
60  auto line_start_regex_it =
61  foreign_table->options.find(RegexFileBufferParser::LINE_START_REGEX_KEY);
62  if (line_start_regex_it != foreign_table->options.end()) {
63  if (line_start_regex_it->second.empty()) {
64  throw ForeignStorageException{"Foreign table option \"" +
66  "\", when set, must contain a non-empty value."};
67  }
68  validate_regex(line_start_regex_it->second,
70  }
71 }
void validateTableOptions(const ForeignTable *foreign_table) const override
void validate_regex(const std::string &regex, const std::string &option_name)

+ Here is the call graph for this function:

Member Data Documentation

const RegexFileBufferParser foreign_storage::RegexParserDataWrapper::regex_file_buffer_parser_

Definition at line 44 of file RegexParserDataWrapper.h.

Referenced by getFileBufferParser().

const std::set< std::string_view > foreign_storage::RegexParserDataWrapper::regex_table_options_

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