OmniSciDB  72c90bc290
 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
 
bool isLazyFragmentFetchingEnabled () const override
 
- 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
 
const std::set< std::string > getAlterableTableOptions () const override
 
- Public Member Functions inherited from foreign_storage::ForeignDataWrapper
 ForeignDataWrapper ()=default
 
virtual ~ForeignDataWrapper ()=default
 
virtual void validateSchema (const std::list< ColumnDescriptor > &columns) const
 

Protected Member Functions

const TextFileBufferParsergetFileBufferParser () const override
 
- Protected Member Functions inherited from foreign_storage::AbstractTextFileDataWrapper
virtual std::optional< size_t > getMaxFileCount () const
 

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 > 
regex_table_options_
 

Additional Inherited Members

- Public Types inherited from foreign_storage::ForeignDataWrapper
enum  ParallelismLevel { NONE, INTRA_FRAGMENT, INTER_FRAGMENT }
 
- Static Public Member Functions inherited from foreign_storage::AbstractFileStorageDataWrapper
static shared::FilePathOptions getFilePathOptions (const ForeignTable *foreign_table)
 
- 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::string ALLOW_FILE_ROLL_OFF_KEY = "ALLOW_FILE_ROLL_OFF"
 
static const std::string THREADS_KEY = "THREADS"
 
static const std::array
< std::string, 1 > 
supported_storage_types
 
- 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...
 
static bool allowFileRollOff (const ForeignTable *foreign_table)
 

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
private

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
overrideprotectedvirtual

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
overridevirtual

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
overridevirtual

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

Parameters
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  }
59 
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_
private

Definition at line 44 of file RegexParserDataWrapper.h.

Referenced by getFileBufferParser().

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

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