Skip to content

Commit

Permalink
Merge pull request #9725 from teo-tsirpanis/tiledb-deprecated
Browse files Browse the repository at this point in the history
TileDB: migrate away from deprecated APIs
  • Loading branch information
rouault committed Apr 26, 2024
2 parents 94505d0 + 848608b commit 512003c
Show file tree
Hide file tree
Showing 17 changed files with 263 additions and 605 deletions.
13 changes: 1 addition & 12 deletions autotest/gdrivers/tiledb_multidim.py
Expand Up @@ -38,18 +38,7 @@

from osgeo import gdal, osr


def has_tiledb_multidim():
drv = gdal.GetDriverByName("TileDB")
if drv is None:
return False
return drv.GetMetadataItem(gdal.DCAP_CREATE_MULTIDIMENSIONAL) == "YES"


pytestmark = [
pytest.mark.require_driver("TileDB"),
pytest.mark.skipif(not has_tiledb_multidim(), reason="TileDB >= 2.15 required"),
]
pytestmark = pytest.mark.require_driver("TileDB")


def test_tiledb_multidim_basic():
Expand Down
195 changes: 80 additions & 115 deletions autotest/ogr/ogr_tiledb.py

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion cmake/helpers/CheckDependentLibraries.cmake
Expand Up @@ -751,7 +751,7 @@ gdal_check_package(Crnlib "enable gdal_DDS driver" CAN_DISABLE)
gdal_check_package(basisu "Enable BASISU driver" CONFIG CAN_DISABLE)
gdal_check_package(IDB "enable ogr_IDB driver" CAN_DISABLE)
gdal_check_package(rdb "enable RIEGL RDB library" CONFIG CAN_DISABLE)
gdal_check_package(TileDB "enable TileDB driver" CONFIG CAN_DISABLE VERSION "2.7")
gdal_check_package(TileDB "enable TileDB driver" CONFIG CAN_DISABLE VERSION "2.15")

gdal_check_package(OpenEXR "OpenEXR >=2.2" CAN_DISABLE)
gdal_check_package(MONGOCXX "Enable MongoDBV3 driver" CAN_DISABLE)
Expand Down
2 changes: 2 additions & 0 deletions doc/source/development/building_from_source.rst
Expand Up @@ -1907,6 +1907,8 @@ TileDB
The `TileDB <https://github.com/TileDB-Inc/TileDB>` library is required for the :ref:`raster.tiledb` driver.
Specify install prefix in the ``CMAKE_PREFIX_PATH`` variable.

TileDB >= 2.15 is required since GDAL 3.9

.. option:: GDAL_USE_TILEDB=ON/OFF

Control whether to use TileDB. Defaults to ON when TileDB is found.
Expand Down
1 change: 0 additions & 1 deletion frmts/tiledb/CMakeLists.txt
Expand Up @@ -25,5 +25,4 @@ endif()
gdal_standard_includes(gdal_TileDB)
target_include_directories(gdal_TileDB PRIVATE
${GDAL_RASTER_FORMAT_SOURCE_DIR}/mem)
target_compile_definitions(gdal_TileDB PRIVATE -DTILEDB_DEPRECATED=)
gdal_target_link_libraries(gdal_TileDB PRIVATE TileDB::tiledb_shared)
38 changes: 0 additions & 38 deletions frmts/tiledb/include_tiledb.h
Expand Up @@ -35,51 +35,13 @@
#pragma GCC system_header
#endif

#ifdef _MSC_VER
#pragma warning(push)
#pragma warning(disable : 4996) /* XXXX was deprecated */
#endif

#ifdef INCLUDE_ONLY_TILEDB_VERSION
#include "tiledb/tiledb_version.h"
#else
#include "tiledb/tiledb"
#include "tiledb/tiledb_experimental"
#endif

#ifdef _MSC_VER
#pragma warning(pop)
#endif

#if TILEDB_VERSION_MAJOR > 2 || \
(TILEDB_VERSION_MAJOR == 2 && TILEDB_VERSION_MINOR >= 9)
#define HAS_TILEDB_GROUP
#endif

#if TILEDB_VERSION_MAJOR > 2 || \
(TILEDB_VERSION_MAJOR == 2 && TILEDB_VERSION_MINOR >= 10)
#define HAS_TILEDB_BOOL
#endif

#if TILEDB_VERSION_MAJOR > 2 || \
(TILEDB_VERSION_MAJOR == 2 && TILEDB_VERSION_MINOR >= 11)
#define HAS_TILEDB_WORKING_OR_FILTER
#endif

#if TILEDB_VERSION_MAJOR > 2 || \
(TILEDB_VERSION_MAJOR == 2 && TILEDB_VERSION_MINOR >= 14)
#define HAS_TILEDB_WORKING_UTF8_STRING_FILTER
#endif

#if TILEDB_VERSION_MAJOR > 2 || \
(TILEDB_VERSION_MAJOR == 2 && TILEDB_VERSION_MINOR >= 15)
#define HAS_TILEDB_DIMENSION_LABEL
#endif

#ifdef HAS_TILEDB_DIMENSION_LABEL
#define HAS_TILEDB_MULTIDIM
#endif

#if TILEDB_VERSION_MAJOR > 2 || \
(TILEDB_VERSION_MAJOR == 2 && TILEDB_VERSION_MINOR >= 21)
#define HAS_TILEDB_GEOM_WKB_WKT
Expand Down
17 changes: 1 addition & 16 deletions frmts/tiledb/tiledbcommon.cpp
Expand Up @@ -150,28 +150,23 @@ int TileDBDataset::Identify(GDALOpenInfo *poOpenInfo)
CPLString osArrayPath =
TileDBDataset::VSI_to_tiledb_uri(poOpenInfo->pszFilename);
const auto eType = tiledb::Object::object(ctx, osArrayPath).type();
#ifdef HAS_TILEDB_GROUP
if ((poOpenInfo->nOpenFlags & GDAL_OF_VECTOR) != 0)
{
if (eType == tiledb::Object::Type::Array ||
eType == tiledb::Object::Type::Group)
return true;
}
#endif
#ifdef HAS_TILEDB_MULTIDIM

if ((poOpenInfo->nOpenFlags & GDAL_OF_MULTIDIM_RASTER) != 0)
{
if (eType == tiledb::Object::Type::Array ||
eType == tiledb::Object::Type::Group)
return true;
}
#endif
if ((poOpenInfo->nOpenFlags & GDAL_OF_RASTER) != 0)
{
#ifdef HAS_TILEDB_MULTIDIM
if (eType == tiledb::Object::Type::Group)
return GDAL_IDENTIFY_UNKNOWN;
#endif
return eType == tiledb::Object::Type::Array;
}
}
Expand Down Expand Up @@ -233,12 +228,10 @@ GDALDataset *TileDBDataset::Open(GDALOpenInfo *poOpenInfo)
}
else
{
#ifdef HAS_TILEDB_MULTIDIM
if ((poOpenInfo->nOpenFlags & GDAL_OF_MULTIDIM_RASTER) != 0)
{
return TileDBDataset::OpenMultiDimensional(poOpenInfo);
}
#endif

const char *pszConfig = CSLFetchNameValue(
poOpenInfo->papszOpenOptions, "TILEDB_CONFIG");
Expand All @@ -259,13 +252,11 @@ GDALDataset *TileDBDataset::Open(GDALOpenInfo *poOpenInfo)
TileDBDataset::VSI_to_tiledb_uri(poOpenInfo->pszFilename);

const auto eType = tiledb::Object::object(oCtx, osPath).type();
#ifdef HAS_TILEDB_GROUP
if ((poOpenInfo->nOpenFlags & GDAL_OF_VECTOR) != 0 &&
eType == tiledb::Object::Type::Group)
{
return OGRTileDBDataset::Open(poOpenInfo, eType);
}
#ifdef HAS_TILEDB_MULTIDIM
else if ((poOpenInfo->nOpenFlags & GDAL_OF_RASTER) != 0 &&
eType == tiledb::Object::Type::Group)
{
Expand Down Expand Up @@ -314,8 +305,6 @@ GDALDataset *TileDBDataset::Open(GDALOpenInfo *poOpenInfo)
}
return nullptr;
}
#endif
#endif

tiledb::ArraySchema schema(oCtx, osPath);

Expand Down Expand Up @@ -368,7 +357,6 @@ GDALDataset *TileDBDataset::CreateCopy(const char *pszFilename,
void *pProgressData)

{
#ifdef HAS_TILEDB_MULTIDIM
if (poSrcDS->GetRootGroup())
{
auto poDrv = GDALDriver::FromHandle(GDALGetDriverByName("TileDB"));
Expand All @@ -379,7 +367,6 @@ GDALDataset *TileDBDataset::CreateCopy(const char *pszFilename,
pProgressData);
}
}
#endif

try
{
Expand Down Expand Up @@ -417,9 +404,7 @@ void GDALRegister_TileDB()
poDriver->pfnCreate = TileDBDataset::Create;
poDriver->pfnCreateCopy = TileDBDataset::CreateCopy;
poDriver->pfnDelete = TileDBDataset::Delete;
#ifdef HAS_TILEDB_MULTIDIM
poDriver->pfnCreateMultiDimensional = TileDBDataset::CreateMultiDimensional;
#endif

GetGDALDriverManager()->RegisterDriver(poDriver);
}

0 comments on commit 512003c

Please sign in to comment.