Class import_export::Importer

class Importer : public import_export::DataStreamSink, public import_export::AbstractImporter

Public Types

enum GeoFileLayerContents

Values:

EMPTY
GEO
NON_GEO
UNSUPPORTED_GEO

Public Functions

Importer(Catalog_Namespace::Catalog &c, const TableDescriptor *t, const std::string &f, const CopyParams &p)
Importer(Loader *providedLoader, const std::string &f, const CopyParams &p)
~Importer()
ImportStatus import(const Catalog_Namespace::SessionInfo *session_info)
ImportStatus importDelimited(const std::string &file_path, const bool decompressed, const Catalog_Namespace::SessionInfo *session_info)
ImportStatus importGDAL(const std::map<std::string, std::string> &colname_to_src, const Catalog_Namespace::SessionInfo *session_info, const bool is_raster)
const CopyParams &get_copy_params() const
const std::list<const ColumnDescriptor *> &get_column_descs() const
void load(const std::vector<std::unique_ptr<TypedImportBuffer>> &import_buffers, size_t row_count, const Catalog_Namespace::SessionInfo *session_info)
std::vector<std::vector<std::unique_ptr<TypedImportBuffer>>> &get_import_buffers_vec()
std::vector<std::unique_ptr<TypedImportBuffer>> &get_import_buffers(int i)
const bool *get_is_array() const
Catalog_Namespace::Catalog &getCatalog()
void checkpoint(const std::vector<Catalog_Namespace::TableEpochInfo> &table_epochs)
auto getLoader() const

Public Static Functions

ImportStatus get_import_status(const std::string &id)
void set_import_status(const std::string &id, const ImportStatus is)
const std::list<ColumnDescriptor> gdalToColumnDescriptors(const std::string &fileName, const bool is_raster, const std::string &geoColumnName, const CopyParams &copy_params)
void readMetadataSampleGDAL(const std::string &fileName, const std::string &geoColumnName, std::map<std::string, std::vector<std::string>> &metadata, int rowLimit, const CopyParams &copy_params)
bool gdalFileExists(const std::string &path, const CopyParams &copy_params)
bool gdalFileOrDirectoryExists(const std::string &path, const CopyParams &copy_params)
std::vector<std::string> gdalGetAllFilesInArchive(const std::string &archive_path, const CopyParams &copy_params)
std::vector<Importer::GeoFileLayerInfo> gdalGetLayersInGeoFile(const std::string &file_name, const CopyParams &copy_params)
void set_geo_physical_import_buffer(const Catalog_Namespace::Catalog &catalog, const ColumnDescriptor *cd, std::vector<std::unique_ptr<TypedImportBuffer>> &import_buffers, size_t &col_idx, std::vector<double> &coords, std::vector<double> &bounds, std::vector<int> &ring_sizes, std::vector<int> &poly_rings, int render_group, const bool force_null = false)
void set_geo_physical_import_buffer_columnar(const Catalog_Namespace::Catalog &catalog, const ColumnDescriptor *cd, std::vector<std::unique_ptr<TypedImportBuffer>> &import_buffers, size_t &col_idx, std::vector<std::vector<double>> &coords_column, std::vector<std::vector<double>> &bounds_column, std::vector<std::vector<int>> &ring_sizes_column, std::vector<std::vector<int>> &poly_rings_column, std::vector<int> &render_groups_column)

Private Functions

ImportStatus importGDALGeo(const std::map<std::string, std::string> &colname_to_src, const Catalog_Namespace::SessionInfo *session_info)
ImportStatus importGDALRaster(const Catalog_Namespace::SessionInfo *session_info)

Private Members

std::string import_id
size_t file_size
size_t max_threads
char *buffer[2]
std::vector<std::vector<std::unique_ptr<TypedImportBuffer>>> import_buffers_vec
std::unique_ptr<Loader> loader
std::unique_ptr<bool[]> is_array_a

Private Static Functions

bool gdalStatInternal(const std::string &path, const CopyParams &copy_params, bool also_dir)
Geospatial::GDAL::DataSourceUqPtr openGDALDataSource(const std::string &fileName, const CopyParams &copy_params)
const std::list<ColumnDescriptor> gdalToColumnDescriptorsGeo(const std::string &fileName, const std::string &geoColumnName, const CopyParams &copy_params)
const std::list<ColumnDescriptor> gdalToColumnDescriptorsRaster(const std::string &fileName, const std::string &geoColumnName, const CopyParams &copy_params)

Private Static Attributes

std::mutex init_gdal_mutex
struct GeoFileLayerInfo

Public Functions

GeoFileLayerInfo(const std::string &name_, GeoFileLayerContents contents_)

Public Members

std::string name
GeoFileLayerContents contents