OmniSciDB
cde582ebc3
|
#include <GeospatialEncoder.h>
Public Member Functions | |
virtual | ~GeospatialEncoder ()=default |
GeospatialEncoder (const RenderGroupAnalyzerMap *render_group_analyzer_map) | |
GeospatialEncoder (std::list< Chunk_NS::Chunk > &chunks, const RenderGroupAnalyzerMap *render_group_analyzer_map) | |
GeospatialEncoder (std::list< Chunk_NS::Chunk > &chunks, std::list< std::unique_ptr< ChunkMetadata >> &chunk_metadata, const RenderGroupAnalyzerMap *render_group_analyzer_map) | |
Protected Types | |
enum | GeoColumnType { COORDS, BOUNDS, RING_SIZES, POLY_RINGS, RENDER_GROUP } |
Protected Member Functions | |
void | appendBaseAndRenderGroupDataAndUpdateMetadata (const int64_t row_count) |
void | validateChunksSizing (std::list< Chunk_NS::Chunk > &chunks) const |
void | validateMetadataSizing (std::list< std::unique_ptr< ChunkMetadata >> &chunk_metadata) const |
void | appendArrayDatumsToBufferAndUpdateMetadata () |
void | appendToArrayEncoderAndUpdateMetadata (const std::vector< ArrayDatum > &datum_parse_buffer, Encoder *encoder, ChunkMetadata *chunk_metadata) const |
void | processGeoElement (std::string_view geo_string_view) |
void | processNullGeoElement () |
void | clearParseBuffers () |
void | clearDatumBuffers () |
template<typename T > | |
std::list< T >::iterator | getIteratorForGeoColumnType (std::list< T > &list, const SQLTypes column_type, const GeoColumnType geo_column) |
std::tuple< Encoder *, ChunkMetadata *, const ColumnDescriptor * > | initEncoderAndGetEncoderAndMetadata (std::list< Chunk_NS::Chunk > &chunks, std::list< std::unique_ptr< ChunkMetadata >> &chunk_metadata, const SQLTypes sql_type, GeoColumnType geo_column_type) |
const ColumnDescriptor * | getColumnDescriptor (std::list< Chunk_NS::Chunk > &chunks, const SQLTypes sql_type, GeoColumnType geo_column_type) |
bool | hasBoundsColumn () const |
bool | hasRingSizesColumn () const |
bool | hasRenderGroupColumn () const |
bool | hasPolyRingsColumn () const |
Static Protected Member Functions | |
static void | throwMalformedGeoElement (const std::string &omnisci_column_name) |
static void | throwMismatchedGeoElement (const std::string &omnisci_column_name) |
Static Protected Attributes | |
static constexpr bool | PROMOTE_POLYGON_TO_MULTIPOLYGON = true |
Definition at line 40 of file GeospatialEncoder.h.
|
protected |
Enumerator | |
---|---|
COORDS | |
BOUNDS | |
RING_SIZES | |
POLY_RINGS | |
RENDER_GROUP |
Definition at line 354 of file GeospatialEncoder.h.
|
virtualdefault |
|
inline |
Definition at line 44 of file GeospatialEncoder.h.
|
inline |
Definition at line 47 of file GeospatialEncoder.h.
|
inline |
Definition at line 92 of file GeospatialEncoder.h.
|
inlineprotected |
Definition at line 204 of file GeospatialEncoder.h.
References appendToArrayEncoderAndUpdateMetadata(), bounds_column_encoder_, bounds_column_metadata_, bounds_datum_buffer_, coords_column_encoder_, coords_column_metadata_, coords_datum_buffer_, poly_rings_column_encoder_, poly_rings_column_metadata_, poly_rings_datum_buffer_, ring_sizes_column_encoder_, ring_sizes_column_metadata_, and ring_sizes_datum_buffer_.
Referenced by foreign_storage::OdbcGeospatialEncoder::appendData(), and foreign_storage::ParquetGeospatialEncoder::appendData().
|
inlineprotected |
Definition at line 164 of file GeospatialEncoder.h.
References StringNoneEncoder::appendData(), Encoder::appendData(), base_column_encoder_, base_column_metadata_, base_values_, CHECK_EQ, ColumnDescriptor::columnType, hasRenderGroupColumn(), render_group_column_descriptor_, render_group_column_encoder_, render_group_column_metadata_, and render_group_value_buffer_.
Referenced by foreign_storage::OdbcGeospatialEncoder::appendData(), and foreign_storage::ParquetGeospatialEncoder::appendData().
|
inlineprotected |
Definition at line 217 of file GeospatialEncoder.h.
References CHECK, and UNREACHABLE.
Referenced by appendArrayDatumsToBufferAndUpdateMetadata().
|
inlineprotected |
Definition at line 346 of file GeospatialEncoder.h.
References bounds_datum_buffer_, coords_datum_buffer_, poly_rings_datum_buffer_, render_group_value_buffer_, and ring_sizes_datum_buffer_.
Referenced by foreign_storage::OdbcGeospatialEncoder::appendData(), foreign_storage::ParquetGeospatialEncoder::appendData(), and foreign_storage::ParquetGeospatialImportEncoder::appendData().
|
inlineprotected |
Definition at line 339 of file GeospatialEncoder.h.
References bounds_parse_buffer_, coords_parse_buffer_, poly_rings_parse_buffer_, and ring_sizes_parse_buffer_.
Referenced by foreign_storage::OdbcGeospatialEncoder::appendData(), foreign_storage::ParquetGeospatialEncoder::appendData(), and foreign_storage::ParquetGeospatialImportEncoder::appendData().
|
inlineprotected |
Definition at line 441 of file GeospatialEncoder.h.
References getIteratorForGeoColumnType().
|
inlineprotected |
Definition at line 357 of file GeospatialEncoder.h.
References BOUNDS, COORDS, kLINESTRING, kMULTIPOLYGON, kPOINT, kPOLYGON, POLY_RINGS, RENDER_GROUP, RING_SIZES, and UNREACHABLE.
Referenced by foreign_storage::ParquetGeospatialImportEncoder::getBuffer(), getColumnDescriptor(), and initEncoderAndGetEncoderAndMetadata().
|
inlineprotected |
Definition at line 462 of file GeospatialEncoder.h.
References ColumnDescriptor::columnType, geo_column_descriptor_, SQLTypeInfo::get_type(), kLINESTRING, kMULTIPOLYGON, and kPOLYGON.
Referenced by foreign_storage::ParquetGeospatialImportEncoder::eraseInvalidIndicesInBuffer(), foreign_storage::ParquetGeospatialImportEncoder::ParquetGeospatialImportEncoder(), processGeoElement(), and processNullGeoElement().
|
inlineprotected |
Definition at line 478 of file GeospatialEncoder.h.
References ColumnDescriptor::columnType, geo_column_descriptor_, SQLTypeInfo::get_type(), and kMULTIPOLYGON.
Referenced by foreign_storage::ParquetGeospatialImportEncoder::eraseInvalidIndicesInBuffer(), foreign_storage::ParquetGeospatialImportEncoder::ParquetGeospatialImportEncoder(), processGeoElement(), and processNullGeoElement().
|
inlineprotected |
Definition at line 473 of file GeospatialEncoder.h.
References ColumnDescriptor::columnType, geo_column_descriptor_, SQLTypeInfo::get_type(), kMULTIPOLYGON, and kPOLYGON.
Referenced by appendBaseAndRenderGroupDataAndUpdateMetadata(), foreign_storage::ParquetGeospatialImportEncoder::eraseInvalidIndicesInBuffer(), foreign_storage::ParquetGeospatialImportEncoder::ParquetGeospatialImportEncoder(), processGeoElement(), and processNullGeoElement().
|
inlineprotected |
Definition at line 468 of file GeospatialEncoder.h.
References ColumnDescriptor::columnType, geo_column_descriptor_, SQLTypeInfo::get_type(), kMULTIPOLYGON, and kPOLYGON.
Referenced by foreign_storage::ParquetGeospatialImportEncoder::eraseInvalidIndicesInBuffer(), foreign_storage::ParquetGeospatialImportEncoder::ParquetGeospatialImportEncoder(), processGeoElement(), and processNullGeoElement().
|
inlineprotected |
Definition at line 427 of file GeospatialEncoder.h.
References getIteratorForGeoColumnType().
|
inlineprotected |
Definition at line 239 of file GeospatialEncoder.h.
References bounds_datum_buffer_, bounds_parse_buffer_, CHECK_EQ, ColumnDescriptor::columnId, ColumnDescriptor::columnName, ColumnDescriptor::columnType, Geospatial::compress_coords(), coords_datum_buffer_, coords_parse_buffer_, foreign_storage::encode_as_array_datum(), geo_column_descriptor_, SQLTypeInfo::get_type(), Geospatial::GeoTypesFactory::getGeoColumns(), hasBoundsColumn(), hasPolyRingsColumn(), hasRenderGroupColumn(), hasRingSizesColumn(), IS_GEO_POLY, kMULTIPOLYGON, kPOLYGON, poly_rings_datum_buffer_, poly_rings_parse_buffer_, PROMOTE_POLYGON_TO_MULTIPOLYGON, render_group_analyzer_map_, render_group_value_buffer_, ring_sizes_datum_buffer_, ring_sizes_parse_buffer_, throwMalformedGeoElement(), and throwMismatchedGeoElement().
Referenced by foreign_storage::OdbcGeospatialEncoder::appendData(), foreign_storage::ParquetGeospatialEncoder::appendData(), and foreign_storage::ParquetGeospatialImportEncoder::appendData().
|
inlineprotected |
Definition at line 301 of file GeospatialEncoder.h.
References bounds_column_descriptor_, bounds_datum_buffer_, bounds_parse_buffer_, ColumnDescriptor::columnType, import_export::ImporterUtils::composeNullArray(), Geospatial::compress_coords(), coords_column_descriptor_, coords_datum_buffer_, coords_parse_buffer_, foreign_storage::encode_as_array_datum(), geo_column_descriptor_, SQLTypeInfo::get_type(), Geospatial::GeoTypesFactory::getNullGeoColumns(), hasBoundsColumn(), hasPolyRingsColumn(), hasRenderGroupColumn(), hasRingSizesColumn(), kPOINT, poly_rings_column_descriptor_, poly_rings_datum_buffer_, poly_rings_parse_buffer_, PROMOTE_POLYGON_TO_MULTIPOLYGON, render_group_value_buffer_, ring_sizes_column_descriptor_, ring_sizes_datum_buffer_, and ring_sizes_parse_buffer_.
Referenced by foreign_storage::OdbcGeospatialEncoder::appendData(), foreign_storage::ParquetGeospatialEncoder::appendData(), and foreign_storage::ParquetGeospatialImportEncoder::appendData().
|
inlinestaticprotected |
Definition at line 449 of file GeospatialEncoder.h.
Referenced by processGeoElement().
|
inlinestaticprotected |
Definition at line 455 of file GeospatialEncoder.h.
Referenced by processGeoElement().
|
inlineprotected |
Definition at line 177 of file GeospatialEncoder.h.
References CHECK, ColumnDescriptor::columnType, geo_column_descriptor_, SQLTypeInfo::get_type(), kLINESTRING, kMULTIPOLYGON, kPOINT, and kPOLYGON.
|
inlineprotected |
Definition at line 190 of file GeospatialEncoder.h.
References CHECK, ColumnDescriptor::columnType, geo_column_descriptor_, SQLTypeInfo::get_type(), kLINESTRING, kMULTIPOLYGON, kPOINT, and kPOLYGON.
|
protected |
Definition at line 487 of file GeospatialEncoder.h.
Referenced by appendBaseAndRenderGroupDataAndUpdateMetadata().
|
protected |
Definition at line 494 of file GeospatialEncoder.h.
Referenced by appendBaseAndRenderGroupDataAndUpdateMetadata().
|
protected |
Definition at line 507 of file GeospatialEncoder.h.
Referenced by appendBaseAndRenderGroupDataAndUpdateMetadata().
|
protected |
Definition at line 502 of file GeospatialEncoder.h.
Referenced by processNullGeoElement().
|
protected |
Definition at line 489 of file GeospatialEncoder.h.
Referenced by appendArrayDatumsToBufferAndUpdateMetadata().
|
protected |
Definition at line 496 of file GeospatialEncoder.h.
Referenced by appendArrayDatumsToBufferAndUpdateMetadata().
|
protected |
Definition at line 518 of file GeospatialEncoder.h.
Referenced by foreign_storage::ParquetGeospatialImportEncoder::appendArrayDatumsToBuffer(), appendArrayDatumsToBufferAndUpdateMetadata(), clearDatumBuffers(), processGeoElement(), and processNullGeoElement().
|
protected |
Definition at line 512 of file GeospatialEncoder.h.
Referenced by clearParseBuffers(), processGeoElement(), and processNullGeoElement().
|
protected |
Definition at line 501 of file GeospatialEncoder.h.
Referenced by processNullGeoElement().
|
protected |
Definition at line 488 of file GeospatialEncoder.h.
Referenced by appendArrayDatumsToBufferAndUpdateMetadata().
|
protected |
Definition at line 495 of file GeospatialEncoder.h.
Referenced by appendArrayDatumsToBufferAndUpdateMetadata().
|
protected |
Definition at line 517 of file GeospatialEncoder.h.
Referenced by foreign_storage::ParquetGeospatialImportEncoder::appendArrayDatumsToBuffer(), appendArrayDatumsToBufferAndUpdateMetadata(), clearDatumBuffers(), processGeoElement(), and processNullGeoElement().
|
protected |
Definition at line 511 of file GeospatialEncoder.h.
Referenced by clearParseBuffers(), processGeoElement(), and processNullGeoElement().
|
protected |
Definition at line 483 of file GeospatialEncoder.h.
Referenced by hasBoundsColumn(), hasPolyRingsColumn(), hasRenderGroupColumn(), hasRingSizesColumn(), foreign_storage::ParquetGeospatialImportEncoder::ParquetGeospatialImportEncoder(), processGeoElement(), processNullGeoElement(), validateChunksSizing(), and validateMetadataSizing().
|
protected |
Definition at line 504 of file GeospatialEncoder.h.
Referenced by processNullGeoElement().
|
protected |
Definition at line 491 of file GeospatialEncoder.h.
Referenced by appendArrayDatumsToBufferAndUpdateMetadata().
|
protected |
Definition at line 498 of file GeospatialEncoder.h.
Referenced by appendArrayDatumsToBufferAndUpdateMetadata().
|
protected |
Definition at line 520 of file GeospatialEncoder.h.
Referenced by foreign_storage::ParquetGeospatialImportEncoder::appendArrayDatumsToBuffer(), appendArrayDatumsToBufferAndUpdateMetadata(), clearDatumBuffers(), processGeoElement(), and processNullGeoElement().
|
protected |
Definition at line 514 of file GeospatialEncoder.h.
Referenced by clearParseBuffers(), processGeoElement(), and processNullGeoElement().
|
staticprotected |
Definition at line 485 of file GeospatialEncoder.h.
Referenced by processGeoElement(), and processNullGeoElement().
|
protected |
Definition at line 523 of file GeospatialEncoder.h.
Referenced by processGeoElement().
|
protected |
Definition at line 505 of file GeospatialEncoder.h.
Referenced by appendBaseAndRenderGroupDataAndUpdateMetadata().
|
protected |
Definition at line 492 of file GeospatialEncoder.h.
Referenced by appendBaseAndRenderGroupDataAndUpdateMetadata().
|
protected |
Definition at line 499 of file GeospatialEncoder.h.
Referenced by appendBaseAndRenderGroupDataAndUpdateMetadata().
|
protected |
Definition at line 521 of file GeospatialEncoder.h.
Referenced by foreign_storage::ParquetGeospatialImportEncoder::appendBaseAndRenderGroupData(), appendBaseAndRenderGroupDataAndUpdateMetadata(), clearDatumBuffers(), processGeoElement(), and processNullGeoElement().
|
protected |
Definition at line 503 of file GeospatialEncoder.h.
Referenced by processNullGeoElement().
|
protected |
Definition at line 490 of file GeospatialEncoder.h.
Referenced by appendArrayDatumsToBufferAndUpdateMetadata().
|
protected |
Definition at line 497 of file GeospatialEncoder.h.
Referenced by appendArrayDatumsToBufferAndUpdateMetadata().
|
protected |
Definition at line 519 of file GeospatialEncoder.h.
Referenced by foreign_storage::ParquetGeospatialImportEncoder::appendArrayDatumsToBuffer(), appendArrayDatumsToBufferAndUpdateMetadata(), clearDatumBuffers(), processGeoElement(), and processNullGeoElement().
|
protected |
Definition at line 513 of file GeospatialEncoder.h.
Referenced by clearParseBuffers(), processGeoElement(), and processNullGeoElement().