1
0
mirror of https://github.com/MariaDB/server.git synced 2025-07-05 12:42:17 +03:00

Added support for replication for S3

MDEV-19964 S3 replication support

Added new configure options:
s3_slave_ignore_updates
"If the slave has shares same S3 storage as the master"

s3_replicate_alter_as_create_select
"When converting S3 table to local table, log all rows in binary log"

This allows on to configure slaves to have the S3 storage shared or
independent from the master.

Other thing:
Added new session variable '@@sql_if_exists' to force IF_EXIST to DDL's.
This commit is contained in:
Monty
2019-12-30 13:56:19 +02:00
parent e5de1e26e7
commit 6a9e24d046
70 changed files with 1499 additions and 350 deletions

View File

@ -4954,119 +4954,3 @@ ulong STDCALL mysql_net_field_length(uchar **packet)
{
return net_field_length(packet);
}
/********************************************************************
Dummy functions to avoid linking with libmarias3 / libcurl
*********************************************************************/
#if defined(WITH_S3_STORAGE_ENGINE) || !defined(FIX_BEFORE_RELESE)
C_MODE_START
#include <stdint.h>
struct ms3_st;
typedef struct ms3_st ms3_st;
struct ms3_list_st;
typedef struct ms3_list_st ms3_list_st;
struct ms3_status_st;
typedef struct ms3_status_st ms3_status_st;
enum ms3_set_option_t
{
SOME_OPTIONS
};
typedef enum ms3_set_option_t ms3_set_option_t;
typedef void *(*ms3_malloc_callback)(size_t size);
typedef void (*ms3_free_callback)(void *ptr);
typedef void *(*ms3_realloc_callback)(void *ptr, size_t size);
typedef char *(*ms3_strdup_callback)(const char *str);
typedef void *(*ms3_calloc_callback)(size_t nmemb, size_t size);
uint8_t ms3_library_init_malloc(ms3_malloc_callback m,
ms3_free_callback f, ms3_realloc_callback r,
ms3_strdup_callback s, ms3_calloc_callback c)
{
return 1;
}
void ms3_library_deinit(void)
{
}
ms3_st *ms3_init(const char *s3key, const char *s3secret,
const char *region,
const char *base_domain)
{
return 0;
}
uint8_t ms3_set_option(ms3_st *ms3, ms3_set_option_t option, void *value)
{
return 0;
}
void ms3_deinit(ms3_st *ms3)
{}
const char *ms3_server_error(ms3_st *ms3)
{
return 0;
}
const char *ms3_error(uint8_t errcode)
{
return 0;
}
uint8_t ms3_list(ms3_st *ms3, const char *bucket, const char *prefix,
ms3_list_st **list)
{
return 0;
}
uint8_t ms3_list_dir(ms3_st *ms3, const char *bucket, const char *prefix,
ms3_list_st **list)
{
return 0;
}
void ms3_list_free(ms3_list_st *list)
{}
uint8_t ms3_put(ms3_st *ms3, const char *bucket, const char *key,
const uint8_t *data, size_t length)
{
return 1;
}
uint8_t ms3_get(ms3_st *ms3, const char *bucket, const char *key,
uint8_t **data, size_t *length)
{
return 1;
}
void ms3_free(uint8_t *data)
{}
uint8_t ms3_delete(ms3_st *ms3, const char *bucket, const char *key)
{
return 1;
}
uint8_t ms3_status(ms3_st *ms3, const char *bucket, const char *key,
ms3_status_st *status)
{
return 1;
}
uint8_t ms3_move(ms3_st *ms3, const char *source_bucket, const char *source_key,
const char *dest_bucket, const char *dest_key)
{
return 1;
}
void ms3_debug()
{
}
C_MODE_END
#endif /* WITH_S3_STORAGE_ENGINE */