To test S3 Storage engine the following main steps should be performed:
1. Install libcurl and libxml2-devel libs.
2. Build MariaDB from the `maria-s3` repository in the mariadb server repo.
3. Run mysql-test/mtr-aws for `s3` suite.
4. Run `s3.no_s3` as usual mtr.
Additional tasks:
Create more tests for s3.
Do test with big tables.
Run complex queries with join with 2,3,4 tables.
Do self joins.
Test replication when table is created in s3 and data is read from s3. In this case the data is 'shared' so the slave should just instantiate the table, not create it.
Attachments
Issue Links
relates to
MDEV-19461Assertion failure upon altering temporary S3 table
Closed
MDEV-20834Engine cannot be altered to S3 from MyISAM for a 110Gb table.
Stalled
MDEV-22606Include the S3 storage engine in MariaDB Community Server binary packages
Closed
MDEV-19463Altering sequence to S3 leaves unremovable garbage behind
Closed
MDEV-19464Altering partitioned table into S3 causes an obscure error
Closed
MDEV-19465Server crashes in s3_block_read upon IN query
Closed
MDEV-19466Syntax error in the error message: Expected object ... didn't exists
Closed
MDEV-19575Assertion `page_st == 1' failed upon SELECT from S3 table which is being converted into Aria
Closed
MDEV-19585Assertion `!is_set() || (m_status == DA_OK_BULK && is_bulk_op())' failed upon SELECT from S3 table with concurrent BACKUP stage
Closed
MDEV-19591Assertion `!table->pos_in_locked_tables' failed in tc_release_table upon altering table into S3 under lock
Stepan Patryshev (Inactive)
added a comment - - edited The status as of 10.05.2019:
Env: Centos 7.
`s3` suite has passed. Run command:
./mtr --suite s3 --force --big-test --max-test-fail=0 --timer --timestamp --timediff --mysqld="--s3-bucket=storage-engine" --mysqld="--s3-access-key=*******" --mysqld="--s3-secret-key=*******" --mysqld="--s3-region=eu-north-1"
There were some issues to build and compile it:
1. To make this "cmake -DPLUGIN_S3=YES" works I had to install gnutls and mhash-devel.
2. When I run "make" I got "error: ‘for’ loop initial declarations are only allowed in C99".
LinuxJedi has fixed it with this patch:
diff --git a/storage/maria/CMakeLists.txt b/storage/maria/CMakeLists.txt
index bf980e3383d..e73c4dcdf3b 100644
--- a/storage/maria/CMakeLists.txt
+++ b/storage/maria/CMakeLists.txt
@@ -105,6 +105,14 @@ OPTION(USE_ARIA_FOR_TMP_TABLES "Use Aria for temporary tables" ON)
#
INCLUDE (CheckIncludeFiles)
+if (CMAKE_VERSION VERSION_LESS "3.1")
+ if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
+ set (CMAKE_C_FLAGS "-std=gnu99 ${CMAKE_C_FLAGS}")
+ endif ()
+else ()
+ set (CMAKE_C_STANDARD 99)
+endif ()
+
SET(S3_SOURCES ha_s3.cc s3_func.c
libmarias3/src/debug.c libmarias3/src/error.c libmarias3/src/marias3.c
libmarias3/src/request.c libmarias3/src/response.c)
See appropriate PR for it: https://github.com/MariaDB/server/pull/1300
In the end we fixed it by removing the C99 compiler mode requirement in libMariaS3 instead so that PR was closed. The fix will be to have the libmarias3 submodule in MariaDB point to the latest libmarias3 version once it is released (still some minor changes to go in).
Andrew Hutchings (Inactive)
added a comment - In the end we fixed it by removing the C99 compiler mode requirement in libMariaS3 instead so that PR was closed. The fix will be to have the libmarias3 submodule in MariaDB point to the latest libmarias3 version once it is released (still some minor changes to go in).
1. RENAME TABLE and DROP TABLE.
1.1. Create a table S3Table with MyISAM engine.
1.2. ALTER TABLE S3Table engine=s3;
1.3. SHOW CREATE TABLE S3Table;
1.4. ALTER TABLE S3Table RENAME TO NewS3Table; # should be ok
1.5. SHOW CREATE TABLE NewS3Table; # should be ok
1.6. SHOW CREATE TABLE S3Table; # should be error: not found such table
1.7. DROP TABLE NewS3Table; # should be ok
1.8. SHOW CREATE TABLE NewS3Table; # should be error: not found such table
2. Test with big tables.
2.1. create table BigTable (id bigint unsigned, b int, primary key (id)) engine=MyISAM;
2.2. insert into BigTable select seq, -mod(seq, 1000) from seq_1_to_10000000000;
2.3. alter table BigTable engine=s3;
2.4. Select from the beginning, the middle and the end of the table.
2.5. alter table BigTable engine=MyISAM;
2.6. Update some rows from the beginning, the middle and the end of the table.
2.7. Delete some rows from the beginning, the middle and the end of the table.
2.8. Add some rows.
2.9. alter table BigTable engine=s3;
2.10. Select for updated and not updated rows from the beginning, the middle and the end of the table.
2.11. Select for deleted rows from the beginning, the middle and the end of the table. Should not find them.
2.12. Select for the newly added rows.
2.13. alter table BigTable engine=MyISAM;
2.14. Add rows with id from deleted rows on the step 2.7.
2.15. alter table BigTable engine=s3;
2.16. Select for the newly added rows.
3. Use sysbench in read-only mode to ensure that all read operation works.
4. Run some complex queries with join with 2,3,4 tables.
5. Do self joins.
6. Port the following MTR tests from suite/engines/funcs test suite:
7. Test replication when table is created in s3 and data is read from s3. In this case the data is 'shared' so the slave should just instantiate the table, not create it.
Stepan Patryshev (Inactive)
added a comment - - edited Items to test:
1. RENAME TABLE and DROP TABLE.
1.1. Create a table S3Table with MyISAM engine.
1.2. ALTER TABLE S3Table engine=s3;
1.3. SHOW CREATE TABLE S3Table;
1.4. ALTER TABLE S3Table RENAME TO NewS3Table; # should be ok
1.5. SHOW CREATE TABLE NewS3Table; # should be ok
1.6. SHOW CREATE TABLE S3Table; # should be error: not found such table
1.7. DROP TABLE NewS3Table; # should be ok
1.8. SHOW CREATE TABLE NewS3Table; # should be error: not found such table
2. Test with big tables.
2.1. create table BigTable (id bigint unsigned, b int, primary key (id)) engine=MyISAM;
2.2. insert into BigTable select seq, -mod(seq, 1000) from seq_1_to_10000000000;
2.3. alter table BigTable engine=s3;
2.4. Select from the beginning, the middle and the end of the table.
2.5. alter table BigTable engine=MyISAM;
2.6. Update some rows from the beginning, the middle and the end of the table.
2.7. Delete some rows from the beginning, the middle and the end of the table.
2.8. Add some rows.
2.9. alter table BigTable engine=s3;
2.10. Select for updated and not updated rows from the beginning, the middle and the end of the table.
2.11. Select for deleted rows from the beginning, the middle and the end of the table. Should not find them.
2.12. Select for the newly added rows.
2.13. alter table BigTable engine=MyISAM;
2.14. Add rows with id from deleted rows on the step 2.7.
2.15. alter table BigTable engine=s3;
2.16. Select for the newly added rows.
3. Use sysbench in read-only mode to ensure that all read operation works.
4. Run some complex queries with join with 2,3,4 tables.
5. Do self joins.
6. Port the following MTR tests from suite/engines/funcs test suite:
comment_column.test
comment_column2.test
comment_index.test
comment_table.test
crash_manycolumns_number.test
crash_manycolumns_string.test
crash_manyindexes_number.test
crash_manyindexes_string.test
crash_manytables_number.test
crash_manytables_string.test
date_function.test
db_alter_character_set.test
db_alter_character_set_collate.test
db_alter_collate_ascii.test
db_alter_collate_utf8.test
fu_aggregate_avg_number.test
fu_aggregate_count_number.test
fu_aggregate_max_number.test
fu_aggregate_max_subquery.test
fu_aggregate_min_number.test
fu_aggregate_sum_number.test
general_no_data.test
general_not_null.test
general_null.test
jp_comment_column.test
jp_comment_index.test
jp_comment_older_compatibility1.test
jp_comment_table.test
ld_all_number_string_calendar_types.test
ld_bit.test
ld_enum_set.test
ld_less_columns.test
ld_more_columns_truncated.test
ld_null.test
ld_quote.test
ld_simple.test
ld_starting.test
ld_unique_error1.test
ld_unique_error1_local.test
ld_unique_error2.test
ld_unique_error2_local.test
ld_unique_error3.test
ld_unique_error3_local.test
ps_number_length.test
ps_number_null.test
ps_string_not_null.test
ps_string_null.test
se_join_cross.test
se_join_default.test
se_join_inner.test
se_join_left.test
se_join_left_outer.test
se_join_natural_left.test
se_join_natural_left_outer.test
se_join_natural_right.test
se_join_natural_right_outer.test
se_join_right.test
se_join_right_outer.test
se_join_straight.test
se_rowid.test
se_string_distinct.test
se_string_from.test
se_string_groupby.test
se_string_having.test
se_string_limit.test
se_string_orderby.test
se_string_union.test
se_string_where.test
se_string_where_and.test
se_string_where_or.test
sq_all.test
sq_any.test
sq_corr.test
sq_error.test
sq_exists.test
sq_from.test
sq_in.test
sq_row.test
sq_scalar.test
sq_some.test
7. Test replication when table is created in s3 and data is read from s3. In this case the data is 'shared' so the slave should just instantiate the table, not create it.
I tried to perform a test with a big table, but instead of 10Gb table I tested it with 110Gb one by mistake. And I've found an issue MENT-129: Engine cannot be altered to S3 from MyISAM for a 110Gb table.
Stepan Patryshev (Inactive)
added a comment - I tried to perform a test with a big table, but instead of 10Gb table I tested it with 110Gb one by mistake. And I've found an issue MENT-129 : Engine cannot be altered to S3 from MyISAM for a 110Gb table.
People
Elena Stepanova
Stepan Patryshev (Inactive)
Votes:
0Vote for this issue
Watchers:
5Start watching this issue
Dates
Created:
Updated:
Resolved:
Git Integration
Error rendering 'com.xiplink.jira.git.jira_git_plugin:git-issue-webpanel'. Please contact your Jira administrators.
{"report":{"fcp":840.1999998092651,"ttfb":198.19999980926514,"pageVisibility":"visible","entityId":75910,"key":"jira.project.issue.view-issue","isInitial":true,"threshold":1000,"elementTimings":{},"userDeviceMemory":8,"userDeviceProcessors":64,"apdex":1,"journeyId":"a361545b-6d59-46ab-8917-204205cabb4a","navigationType":0,"readyForUser":928.5999994277954,"redirectCount":0,"resourceLoadedEnd":891.0999994277954,"resourceLoadedStart":204.69999980926514,"resourceTiming":[{"duration":182.19999980926514,"initiatorType":"link","name":"https://jira.mariadb.org/s/2c21342762a6a02add1c328bed317ffd-CDN/lu2bv2/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/css/_super/batch.css","startTime":204.69999980926514,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":204.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":386.8999996185303,"responseStart":0,"secureConnectionStart":0},{"duration":182,"initiatorType":"link","name":"https://jira.mariadb.org/s/7ebd35e77e471bc30ff0eba799ebc151-CDN/lu2bv2/820016/12ta74/2380add21a9a1006587582385952de73/_/download/contextbatch/css/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.css?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":205,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":205,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":387,"responseStart":0,"secureConnectionStart":0},{"duration":190.80000019073486,"initiatorType":"script","name":"https://jira.mariadb.org/s/e9b27a47da5fb0f74a35acd57e9847fb-CDN/lu2bv2/820016/12ta74/0a8bac35585be7fc6c9cc5a0464cd4cf/_/download/contextbatch/js/_super/batch.js?locale=en","startTime":205.19999980926514,"connectEnd":205.19999980926514,"connectStart":205.19999980926514,"domainLookupEnd":205.19999980926514,"domainLookupStart":205.19999980926514,"fetchStart":205.19999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":205.19999980926514,"responseEnd":396,"responseStart":396,"secureConnectionStart":205.19999980926514},{"duration":264.19999980926514,"initiatorType":"script","name":"https://jira.mariadb.org/s/c32eb0da7ad9831253f8397e6cc26afd-CDN/lu2bv2/820016/12ta74/2380add21a9a1006587582385952de73/_/download/contextbatch/js/jira.browse.project,project.issue.navigator,jira.view.issue,jira.general,jira.global,atl.general,-_super/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&locale=en&slack-enabled=true","startTime":205.39999961853027,"connectEnd":205.39999961853027,"connectStart":205.39999961853027,"domainLookupEnd":205.39999961853027,"domainLookupStart":205.39999961853027,"fetchStart":205.39999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":205.39999961853027,"responseEnd":469.5999994277954,"responseStart":469.5999994277954,"secureConnectionStart":205.39999961853027},{"duration":267.6000003814697,"initiatorType":"script","name":"https://jira.mariadb.org/s/bc0bcb146314416123c992714ee00ff7-CDN/lu2bv2/820016/12ta74/c92c0caa9a024ae85b0ebdbed7fb4bd7/_/download/contextbatch/js/atl.global,-_super/batch.js?locale=en","startTime":205.5999994277954,"connectEnd":205.5999994277954,"connectStart":205.5999994277954,"domainLookupEnd":205.5999994277954,"domainLookupStart":205.5999994277954,"fetchStart":205.5999994277954,"redirectEnd":0,"redirectStart":0,"requestStart":205.5999994277954,"responseEnd":473.19999980926514,"responseStart":473.19999980926514,"secureConnectionStart":205.5999994277954},{"duration":268.0999994277954,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-en/jira.webresources:calendar-en.js","startTime":205.80000019073486,"connectEnd":205.80000019073486,"connectStart":205.80000019073486,"domainLookupEnd":205.80000019073486,"domainLookupStart":205.80000019073486,"fetchStart":205.80000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":205.80000019073486,"responseEnd":473.8999996185303,"responseStart":473.8999996185303,"secureConnectionStart":205.80000019073486},{"duration":268.80000019073486,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:calendar-localisation-moment/jira.webresources:calendar-localisation-moment.js","startTime":205.89999961853027,"connectEnd":205.89999961853027,"connectStart":205.89999961853027,"domainLookupEnd":205.89999961853027,"domainLookupStart":205.89999961853027,"fetchStart":205.89999961853027,"redirectEnd":0,"redirectStart":0,"requestStart":205.89999961853027,"responseEnd":474.69999980926514,"responseStart":474.69999980926514,"secureConnectionStart":205.89999961853027},{"duration":329,"initiatorType":"link","name":"https://jira.mariadb.org/s/b04b06a02d1959df322d9cded3aeecc1-CDN/lu2bv2/820016/12ta74/a2ff6aa845ffc9a1d22fe23d9ee791fc/_/download/contextbatch/css/jira.global.look-and-feel,-_super/batch.css","startTime":206.0999994277954,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":206.0999994277954,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":535.0999994277954,"responseStart":0,"secureConnectionStart":0},{"duration":269.0999994277954,"initiatorType":"script","name":"https://jira.mariadb.org/rest/api/1.0/shortcuts/820016/47140b6e0a9bc2e4913da06536125810/shortcuts.js?context=issuenavigation&context=issueaction","startTime":206.30000019073486,"connectEnd":206.30000019073486,"connectStart":206.30000019073486,"domainLookupEnd":206.30000019073486,"domainLookupStart":206.30000019073486,"fetchStart":206.30000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":206.30000019073486,"responseEnd":475.3999996185303,"responseStart":475.3999996185303,"secureConnectionStart":206.30000019073486},{"duration":328.80000019073486,"initiatorType":"link","name":"https://jira.mariadb.org/s/3ac36323ba5e4eb0af2aa7ac7211b4bb-CDN/lu2bv2/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/css/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.css?jira.create.linked.issue=true","startTime":206.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":206.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":535.3000001907349,"responseStart":0,"secureConnectionStart":0},{"duration":269.5,"initiatorType":"script","name":"https://jira.mariadb.org/s/719848dd97ebe0663199f49a3936487a-CDN/lu2bv2/820016/12ta74/d176f0986478cc64f24226b3d20c140d/_/download/contextbatch/js/com.atlassian.jira.projects.sidebar.init,-_super,-project.issue.navigator,-jira.view.issue/batch.js?jira.create.linked.issue=true&locale=en","startTime":206.5999994277954,"connectEnd":206.5999994277954,"connectStart":206.5999994277954,"domainLookupEnd":206.5999994277954,"domainLookupStart":206.5999994277954,"fetchStart":206.5999994277954,"redirectEnd":0,"redirectStart":0,"requestStart":206.5999994277954,"responseEnd":476.0999994277954,"responseStart":476.0999994277954,"secureConnectionStart":206.5999994277954},{"duration":479.19999980926514,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-js/jira.webresources:bigpipe-js.js","startTime":208.30000019073486,"connectEnd":208.30000019073486,"connectStart":208.30000019073486,"domainLookupEnd":208.30000019073486,"domainLookupStart":208.30000019073486,"fetchStart":208.30000019073486,"redirectEnd":0,"redirectStart":0,"requestStart":208.30000019073486,"responseEnd":687.5,"responseStart":687.5,"secureConnectionStart":208.30000019073486},{"duration":674,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/1.0/_/download/batch/jira.webresources:bigpipe-init/jira.webresources:bigpipe-init.js","startTime":212.69999980926514,"connectEnd":212.69999980926514,"connectStart":212.69999980926514,"domainLookupEnd":212.69999980926514,"domainLookupStart":212.69999980926514,"fetchStart":212.69999980926514,"redirectEnd":0,"redirectStart":0,"requestStart":212.69999980926514,"responseEnd":886.6999998092651,"responseStart":886.6999998092651,"secureConnectionStart":212.69999980926514},{"duration":200.10000038146973,"initiatorType":"xmlhttprequest","name":"https://jira.mariadb.org/rest/webResources/1.0/resources","startTime":546.6999998092651,"connectEnd":546.6999998092651,"connectStart":546.6999998092651,"domainLookupEnd":546.6999998092651,"domainLookupStart":546.6999998092651,"fetchStart":546.6999998092651,"redirectEnd":0,"redirectStart":0,"requestStart":546.6999998092651,"responseEnd":746.8000001907349,"responseStart":746.8000001907349,"secureConnectionStart":546.6999998092651},{"duration":90.69999980926514,"initiatorType":"script","name":"https://jira.mariadb.org/s/d41d8cd98f00b204e9800998ecf8427e-CDN/lu2bv2/820016/12ta74/e65b778d185daf5aee24936755b43da6/_/download/contextbatch/js/browser-metrics-plugin.contrib,-_super,-project.issue.navigator,-jira.view.issue,-atl.general/batch.js?agile_global_admin_condition=true&jag=true&jira.create.linked.issue=true&slack-enabled=true","startTime":800.3999996185303,"connectEnd":800.3999996185303,"connectStart":800.3999996185303,"domainLookupEnd":800.3999996185303,"domainLookupStart":800.3999996185303,"fetchStart":800.3999996185303,"redirectEnd":0,"redirectStart":0,"requestStart":800.3999996185303,"responseEnd":891.0999994277954,"responseStart":891.0999994277954,"secureConnectionStart":800.3999996185303},{"duration":166.0999994277954,"initiatorType":"script","name":"https://www.google-analytics.com/analytics.js","startTime":834.5,"connectEnd":0,"connectStart":0,"domainLookupEnd":0,"domainLookupStart":0,"fetchStart":834.5,"redirectEnd":0,"redirectStart":0,"requestStart":0,"responseEnd":1000.5999994277954,"responseStart":0,"secureConnectionStart":0}],"fetchStart":0,"domainLookupStart":0,"domainLookupEnd":0,"connectStart":0,"connectEnd":0,"requestStart":20,"responseStart":198,"responseEnd":203,"domLoading":202,"domInteractive":1028,"domContentLoadedEventStart":1028,"domContentLoadedEventEnd":1073,"domComplete":1498,"loadEventStart":1498,"loadEventEnd":1498,"userAgent":"Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)","marks":[{"name":"bigPipe.sidebar-id.start","time":1005.8999996185303},{"name":"bigPipe.sidebar-id.end","time":1006.8999996185303},{"name":"bigPipe.activity-panel-pipe-id.start","time":1007.6999998092651},{"name":"bigPipe.activity-panel-pipe-id.end","time":1010.6999998092651},{"name":"activityTabFullyLoaded","time":1096}],"measures":[],"correlationId":"c86397e1644eca","effectiveType":"4g","downlink":9.3,"rtt":0,"serverDuration":119,"dbReadsTimeInMs":23,"dbConnsTimeInMs":33,"applicationHash":"9d11dbea5f4be3d4cc21f03a88dd11d8c8687422","experiments":[]}}
The status as of 10.05.2019:
Env: Centos 7.
`s3` suite has passed. Run command:
./mtr --suite s3 --force --big-test --max-test-fail=0 --timer --timestamp --timediff --mysqld="--s3-bucket=storage-engine" --mysqld="--s3-access-key=*******" --mysqld="--s3-secret-key=*******" --mysqld="--s3-region=eu-north-1"
There were some issues to build and compile it:
1. To make this "cmake -DPLUGIN_S3=YES" works I had to install gnutls and mhash-devel.
2. When I run "make" I got "error: ‘for’ loop initial declarations are only allowed in C99".
LinuxJedi has fixed it with this patch:
diff --git a/storage/maria/CMakeLists.txt b/storage/maria/CMakeLists.txt
index bf980e3383d..e73c4dcdf3b 100644
--- a/storage/maria/CMakeLists.txt
+++ b/storage/maria/CMakeLists.txt
@@ -105,6 +105,14 @@ OPTION(USE_ARIA_FOR_TMP_TABLES "Use Aria for temporary tables" ON)
#
INCLUDE (CheckIncludeFiles)
+if (CMAKE_VERSION VERSION_LESS "3.1")
+ if (CMAKE_C_COMPILER_ID STREQUAL "GNU")
+ set (CMAKE_C_FLAGS "-std=gnu99 ${CMAKE_C_FLAGS}")
+ endif ()
+else ()
+ set (CMAKE_C_STANDARD 99)
+endif ()
+
SET(S3_SOURCES ha_s3.cc s3_func.c
libmarias3/src/debug.c libmarias3/src/error.c libmarias3/src/marias3.c
libmarias3/src/request.c libmarias3/src/response.c)
See appropriate PR for it: https://github.com/MariaDB/server/pull/1300