Plugin build failures on MySQL 8.0.42
- Dominant language
- Python
- Stars
- 149
- Forks
- 27
- PR merge metrics
- No merged PRs in 30d
Description
Hi Team,
I've tried building the videx plugin on MySQL CE 8.0.42(released last week) but have been running into build failures.
**Issue 1:**
Seems same happens with latest Percona 8.0 releases too. Based on my troubleshooting, it seems related to this fix implemented in MySQL 8.0.40: Commit [Bug#33334911 - Multi-valued index performance is too slow: d2ab06a](https://github.com/mysql/mysql-server/commit/d2ab06a8c658e849af4d18e73580e176b68ae6cc)
```
diff --git a/storage/videx/ha_videx.cc b/storage/videx/ha_videx.cc
.
.
@@ -1113,6 +1113,7 @@ ha_rows ha_videx::multi_range_read_info_const(uint keyno, RANGE_SEQ_IF *seq,
void *seq_init_param,
uint n_ranges, uint *bufsz,
uint *flags,
+ bool *force_default_mrr [[maybe_unused]],
Cost_estimate *cost) {
videx_log_ins.markHaFuncPassby(FUNC_FILE_LINE);
/* See comments in ha_myisam::multi_range_read_info_const */
diff --git a/storage/videx/ha_videx.h b/storage/videx/ha_videx.h
index bb89cbb421b..49550dff26e 100644
--- a/storage/videx/ha_videx.h
+++ b/storage/videx/ha_videx.h
@@ -174,6 +174,7 @@ class ha_videx : public handler {
ha_rows multi_range_read_info_const(uint keyno, RANGE_SEQ_IF *seq,
void *seq_init_param, uint n_ranges,
uint *bufsz, uint *flags,
+ bool *force_default_mrr [[maybe_unused]],
Cost_estimate *cost) override;
```
**Issue 2:**
Videx seems to have the curl version hard coded, which can change between releases. To build on 8042 I had to make the following change, but perhaps it should be dynamic.
```
diff --git a/storage/videx/CMakeLists.txt b/storage/videx/CMakeLists.txt
index 36286c28224..6f02f6b8c17 100644
--- a/storage/videx/CMakeLists.txt
+++ b/storage/videx/CMakeLists.txt
@@ -28,7 +28,7 @@ INCLUDE_DIRECTORIES(
${CMAKE_SOURCE_DIR}/sql
${CMAKE_SOURCE_DIR}/sql/auth
${CMAKE_SOURCE_DIR}/extra/rapidjson/include
- ${CMAKE_SOURCE_DIR}/extra/curl/curl-8.1.2/include
+ ${CMAKE_SOURCE_DIR}/extra/curl/curl-8.12.1/include
)
```
**Issue 3:**
There are some unsupported features in MySQL, that are present in Percona server. Here I had to comment out the following:
```
diff --git a/storage/videx/ha_videx.cc b/storage/videx/ha_videx.cc
index 194026c6e6a..03e65e17dd8 100644
--- a/storage/videx/ha_videx.cc
+++ b/storage/videx/ha_videx.cc
@@ -266,7 +266,7 @@ static int videx_init_func(void *p) {
HTON_SUPPORTS_SECONDARY_ENGINE | // Supports secondary storage engine
// HTON_SUPPORTS_TABLE_ENCRYPTION | // Supports table encryption (commented out)
// HTON_SUPPORTS_ONLINE_BACKUPS | // Supports online backups (commented out)
- HTON_SUPPORTS_COMPRESSED_COLUMNS | // Supports compressed columns
+ //HTON_SUPPORTS_COMPRESSED_COLUMNS | // Supports compressed columns
HTON_SUPPORTS_GENERATED_INVISIBLE_PK; // Supports generated invisible primary keys
```
`has_gap_locks()` seems to be Percona server specific too: [Commit 3728e66 MYR-15 : Optionally block/log queries relying on Gap Locks](https://github.com/percona/percona-server/commit/3728e668711cd0b096f6492254b4430920d42980)
```
int index_last(uchar *buf) override;
- bool has_gap_locks() const noexcept override {
- videx_log_ins.markPassbyUnexpected(FUNC_FILE_LINE);
- return true; }
+ /** Seems to be PS Server only:
+ * see https://github.com/percona/percona-server/commit/3728e668711cd0b096f6492254b4430920d42980
+ * bool has_gap_locks() const noexcept override {
+ * videx_log_ins.markPassbyUnexpected(FUNC_FILE_LINE);
+ * return true; }
+ */
```
After making the above changes, 8042 builds successfully.
Thanks,
Marc
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.