OmniSciDB  a987f07e93
 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...
 
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: