Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update to TileDB-2.21.0 and add support for the TILEDB_GEOM_* types: #311

Merged
merged 2 commits into from Mar 21, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/stable.yaml
Expand Up @@ -25,7 +25,7 @@ jobs:
env:
OWNER_TILEDB_MARIADB: ${{ github.repository_owner }} # support building from a fork
REF_MARIADB: mariadb-11.0.2
REF_LIBTILEDB: 2.20.1
REF_LIBTILEDB: 2.21.0
REF_TILEDB_MARIADB: ${{ github.sha }}
TILEDB_FORCE_ALL_DEPS: OFF
steps:
Expand Down
6 changes: 3 additions & 3 deletions CMakeLists.txt
Expand Up @@ -51,15 +51,15 @@ if(NOT TileDB_FOUND AND SUPERBUILD)
include(ExternalProject)

SET(TILEDB_VERSION_MAJOR "2")
SET(TILEDB_VERSION_MINOR "20")
SET(TILEDB_VERSION_PATCH "1")
SET(TILEDB_VERSION_MINOR "21")
SET(TILEDB_VERSION_PATCH "0")
SET(TILEDB_VERSION "${TILEDB_VERSION_MAJOR}.${TILEDB_VERSION_MINOR}.${TILEDB_VERSION_PATCH}")

SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-error=non-virtual-dtor -Wno-error=missing-braces")
ExternalProject_Add(tiledb
PREFIX "externals"
URL "https://github.com/TileDB-Inc/TileDB/archive/${TILEDB_VERSION}.zip"
URL_HASH SHA1=10921fb7317e718e9bb6c88d6d410eac2ab49e10
URL_HASH SHA1=9bae46f598dd895268ec8ff38ddf6106c9895d07
DOWNLOAD_NAME "tiledb.zip"
CMAKE_ARGS
-DCMAKE_INSTALL_PREFIX=${EP_INSTALL_PREFIX}
Expand Down
6 changes: 3 additions & 3 deletions docker/Dockerfile
Expand Up @@ -55,10 +55,10 @@ WORKDIR /tmp

ENV MARIADB_VERSION="mariadb-11.0.2"

ARG MYTILE_VERSION="0.28.0"
ARG MYTILE_VERSION="0.29.0"

ARG TILEDB_VERSION="2.20.1"
ARG TILEDB_VERSION_SHORT_SHA="249c024"
ARG TILEDB_VERSION="2.21.0"
ARG TILEDB_VERSION_SHORT_SHA="0ea9c13"
ARG TILEDB_PREBUILT_FILE="tiledb-linux-x86_64-${TILEDB_VERSION}-${TILEDB_VERSION_SHORT_SHA}.tar.gz"

# Download mytile release
Expand Down
6 changes: 3 additions & 3 deletions docker/Dockerfile-R
Expand Up @@ -72,10 +72,10 @@ WORKDIR /tmp

ENV MARIADB_VERSION="mariadb-11.0.2"

ARG MYTILE_VERSION="0.28.0"
ARG MYTILE_VERSION="0.29.0"

ARG TILEDB_VERSION="2.20.1"
ARG TILEDB_VERSION_SHORT_SHA="249c024"
ARG TILEDB_VERSION="2.21.0"
ARG TILEDB_VERSION_SHORT_SHA="0ea9c13"
ARG TILEDB_PREBUILT_FILE="tiledb-linux-x86_64-${TILEDB_VERSION}-${TILEDB_VERSION_SHORT_SHA}.tar.gz"

# Download mytile release
Expand Down
4 changes: 2 additions & 2 deletions docker/Dockerfile-dev
Expand Up @@ -51,8 +51,8 @@ RUN apt-get update && apt-get install -y \

ENV MTR_MEM /tmp

ARG TILEDB_VERSION="2.20.1"
ARG TILEDB_VERSION_SHORT_SHA="249c024"
ARG TILEDB_VERSION="2.21.0"
ARG TILEDB_VERSION_SHORT_SHA="0ea9c13"
ARG TILEDB_PREBUILT_FILE="tiledb-linux-x86_64-${TILEDB_VERSION}-${TILEDB_VERSION_SHORT_SHA}.tar.gz"

WORKDIR /tmp
Expand Down
6 changes: 3 additions & 3 deletions docker/Dockerfile-min
Expand Up @@ -53,10 +53,10 @@ ENV MTR_MEM=/tmp \
MARIADB_VERSION="mariadb-11.0.2"
WORKDIR /tmp

ARG MYTILE_VERSION="0.28.0"
ARG MYTILE_VERSION="0.29.0"

ARG TILEDB_VERSION="2.20.1"
ARG TILEDB_VERSION_SHORT_SHA="249c024"
ARG TILEDB_VERSION="2.21.0"
ARG TILEDB_VERSION_SHORT_SHA="0ea9c13"
ARG TILEDB_PREBUILT_FILE="tiledb-linux-x86_64-${TILEDB_VERSION}-${TILEDB_VERSION_SHORT_SHA}.tar.gz"

# add our user and group first to make sure their IDs get assigned consistently, regardless of whatever dependencies get added
Expand Down
6 changes: 3 additions & 3 deletions docker/Dockerfile-server
Expand Up @@ -54,10 +54,10 @@ WORKDIR /tmp

ENV MARIADB_VERSION="mariadb-11.0.2"

ARG MYTILE_VERSION="0.28.0"
ARG MYTILE_VERSION="0.29.0"

ARG TILEDB_VERSION="2.20.1"
ARG TILEDB_VERSION_SHORT_SHA="249c024"
ARG TILEDB_VERSION="2.21.0"
ARG TILEDB_VERSION_SHORT_SHA="0ea9c13"
ARG TILEDB_PREBUILT_FILE="tiledb-linux-x86_64-${TILEDB_VERSION}-${TILEDB_VERSION_SHORT_SHA}.tar.gz"

# Download mytile release
Expand Down
8 changes: 5 additions & 3 deletions mytile/ha_mytile.cc
Expand Up @@ -3226,6 +3226,8 @@ int8_t tile::mytile::compare_key_to_dim(const uint64_t dim_idx,
return compare_key_to_dim<char>(dim_idx, key + key_offset, char_length, buff, size);
}
case TILEDB_BLOB:
case TILEDB_GEOM_WKB:
case TILEDB_GEOM_WKT:
return compare_key_to_dim<std::byte>(dim_idx, key, key_part_len, fixed_buff_pointer);
case TILEDB_BOOL:
return compare_key_to_dim<bool>(dim_idx, key, key_part_len, fixed_buff_pointer);
Expand Down Expand Up @@ -3754,7 +3756,7 @@ mysql_declare_plugin(mytile){
PLUGIN_LICENSE_PROPRIETARY, /* the plugin license (PLUGIN_LICENSE_XXX) */
mytile_init_func, /* Plugin Init */
NULL, /* Plugin Deinit */
0x0280, /* version number (0.28.0) */
0x0290, /* version number (0.29.0) */
tile::statusvars::mytile_status_variables, /* status variables */
tile::sysvars::mytile_system_variables, /* system variables */
NULL, /* config options */
Expand All @@ -3771,9 +3773,9 @@ maria_declare_plugin(mytile){
PLUGIN_LICENSE_PROPRIETARY, /* the plugin license (PLUGIN_LICENSE_XXX) */
mytile_init_func, /* Plugin Init */
NULL, /* Plugin Deinit */
0x0280, /* version number (0.28.0) */
0x0290, /* version number (0.29.0) */
tile::statusvars::mytile_status_variables, /* status variables */
tile::sysvars::mytile_system_variables, /* system variables */
"0.28.0", /* string version */
"0.29.0", /* string version */
MariaDB_PLUGIN_MATURITY_BETA /* maturity */
} maria_declare_plugin_end;
2 changes: 2 additions & 0 deletions mytile/mytile-metadata.cc
Expand Up @@ -70,6 +70,8 @@ std::string tile::build_metadata_value_string(THD *thd, const void *data,
case TILEDB_STRING_UCS4:
case TILEDB_ANY:
case TILEDB_BLOB:
case TILEDB_GEOM_WKB:
case TILEDB_GEOM_WKT:
return tile::build_metadata_string_value_string<char>(data, num);
case TILEDB_DATETIME_YEAR:
return tile::build_metadata_numeric_value_string<int64_t>(data, num);
Expand Down
22 changes: 19 additions & 3 deletions mytile/mytile.cc
Expand Up @@ -187,7 +187,9 @@ int tile::TileDBTypeToMysqlType(tiledb_datatype_t type, bool multi_value, uint32
return MYSQL_TYPE_LONG_BLOB;
return MYSQL_TYPE_TINY;
}
case TILEDB_BLOB: {
case TILEDB_BLOB:
case TILEDB_GEOM_WKB:
case TILEDB_GEOM_WKT:{
if (multi_value)
return MYSQL_TYPE_LONG_BLOB;
return MYSQL_TYPE_TINY_BLOB;
Expand Down Expand Up @@ -351,7 +353,9 @@ std::string tile::TileDBTypeValueToString(tiledb_datatype_t type,
case TILEDB_STRING_UCS2:
case TILEDB_STRING_UCS4:
case TILEDB_ANY:
case TILEDB_BLOB: {
case TILEDB_BLOB:
case TILEDB_GEOM_WKB:
case TILEDB_GEOM_WKT: {
auto v = reinterpret_cast<const char *>(value);
std::string s(v, value_size);
// If the string is the null character we have to us the escaped version
Expand Down Expand Up @@ -751,6 +755,8 @@ void *tile::alloc_buffer(tiledb_datatype_t type, uint64_t size) {
return alloc_buffer<int64_t>(rounded_size);

case tiledb_datatype_t::TILEDB_BLOB:
case tiledb_datatype_t::TILEDB_GEOM_WKB:
case tiledb_datatype_t::TILEDB_GEOM_WKT:
return alloc_buffer<std::byte>(rounded_size);

case tiledb_datatype_t::TILEDB_BOOL:
Expand Down Expand Up @@ -1062,6 +1068,8 @@ int tile::set_field(THD *thd, Field *field, std::shared_ptr<buffer> &buff,
MYSQL_TIMESTAMP_TIME);
}
case TILEDB_BLOB:
case TILEDB_GEOM_WKB:
case TILEDB_GEOM_WKT:
return set_string_field<std::byte>(field, buff, i, &my_charset_latin1);
case TILEDB_BOOL:
return set_field<bool>(field, i, buff, fixed_size_multi_value, fixed_size_elements);
Expand Down Expand Up @@ -1245,7 +1253,9 @@ int tile::set_buffer_from_field(Field *field, std::shared_ptr<buffer> &buff,
int64_t xs = MysqlTimeToTileDBTimeVal(thd, mysql_time, buff->type);
return set_buffer_from_field<int64_t>(xs, field_null, buff, i);
}
case TILEDB_BLOB: {
case TILEDB_BLOB:
case TILEDB_GEOM_WKB:
case TILEDB_GEOM_WKT:{
if (buff->offset_buffer != nullptr)
return set_string_buffer_from_field<std::byte>(field, field_null, buff,
i);
Expand Down Expand Up @@ -1473,6 +1483,8 @@ const void *tile::default_tiledb_fill_value(const tiledb_datatype_t &type) {
case tiledb_datatype_t::TILEDB_ANY:
return &constants::empty_any;
case tiledb_datatype_t::TILEDB_BLOB:
case tiledb_datatype_t::TILEDB_GEOM_WKB:
case tiledb_datatype_t::TILEDB_GEOM_WKT:
return &constants::empty_blob;
case tiledb_datatype_t::TILEDB_STRING_ASCII:
return &constants::empty_ascii;
Expand Down Expand Up @@ -1541,6 +1553,8 @@ bool tile::is_string_datatype(const tiledb_datatype_t &type) {
case tiledb_datatype_t::TILEDB_FLOAT64:
case tiledb_datatype_t::TILEDB_ANY:
case tiledb_datatype_t::TILEDB_BLOB:
case tiledb_datatype_t::TILEDB_GEOM_WKB:
case tiledb_datatype_t::TILEDB_GEOM_WKT:
case tiledb_datatype_t::TILEDB_DATETIME_YEAR:
case tiledb_datatype_t::TILEDB_DATETIME_MONTH:
case tiledb_datatype_t::TILEDB_DATETIME_WEEK:
Expand Down Expand Up @@ -1676,6 +1690,8 @@ tile::BufferSizeByType tile::compute_buffer_sizes(
num_int64_buffers += 1;
break;
case TILEDB_BLOB:
case TILEDB_GEOM_WKB:
case TILEDB_GEOM_WKT:
num_blob_buffers += 1;
break;
case TILEDB_BOOL:
Expand Down
2 changes: 2 additions & 0 deletions mytile/mytile.h
Expand Up @@ -127,6 +127,8 @@ struct BufferSizeByType {
case TILEDB_TIME_AS:
return int64_buffer_size;
case TILEDB_BLOB:
case TILEDB_GEOM_WKB:
case TILEDB_GEOM_WKT:
return blob_buffer_size;
case TILEDB_BOOL:
return bool_buffer_size;
Expand Down