MDEV-11901 : MariaRocks on Windows
fixed compilation, disabled unix-only tests (the ones that use bash etc). Changed plugin library name to ha_rocksdb.dll/so
This commit is contained in:
parent
13c7839ba7
commit
5875633c2a
@ -360,7 +360,7 @@ struct my_collation_handler_st
|
|||||||
};
|
};
|
||||||
|
|
||||||
extern MY_COLLATION_HANDLER my_collation_8bit_bin_handler;
|
extern MY_COLLATION_HANDLER my_collation_8bit_bin_handler;
|
||||||
extern MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler;
|
extern MYSQL_PLUGIN_IMPORT MY_COLLATION_HANDLER my_collation_8bit_simple_ci_handler;
|
||||||
extern MY_COLLATION_HANDLER my_collation_8bit_nopad_bin_handler;
|
extern MY_COLLATION_HANDLER my_collation_8bit_nopad_bin_handler;
|
||||||
extern MY_COLLATION_HANDLER my_collation_8bit_simple_nopad_ci_handler;
|
extern MY_COLLATION_HANDLER my_collation_8bit_simple_nopad_ci_handler;
|
||||||
extern MY_COLLATION_HANDLER my_collation_ucs2_uca_handler;
|
extern MY_COLLATION_HANDLER my_collation_ucs2_uca_handler;
|
||||||
@ -586,83 +586,83 @@ extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_latin1_nopad;
|
|||||||
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_filename;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_filename;
|
||||||
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf8_general_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf8_general_ci;
|
||||||
|
|
||||||
extern struct charset_info_st my_charset_big5_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_big5_bin;
|
||||||
extern struct charset_info_st my_charset_big5_chinese_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_big5_chinese_ci;
|
||||||
extern struct charset_info_st my_charset_big5_nopad_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_big5_nopad_bin;
|
||||||
extern struct charset_info_st my_charset_big5_chinese_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_big5_chinese_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_cp1250_czech_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_cp1250_czech_ci;
|
||||||
extern struct charset_info_st my_charset_cp932_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_cp932_bin;
|
||||||
extern struct charset_info_st my_charset_cp932_japanese_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_cp932_japanese_ci;
|
||||||
extern struct charset_info_st my_charset_cp932_nopad_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_cp932_nopad_bin;
|
||||||
extern struct charset_info_st my_charset_cp932_japanese_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_cp932_japanese_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_eucjpms_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_eucjpms_bin;
|
||||||
extern struct charset_info_st my_charset_eucjpms_japanese_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_eucjpms_japanese_ci;
|
||||||
extern struct charset_info_st my_charset_eucjpms_nopad_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_eucjpms_nopad_bin;
|
||||||
extern struct charset_info_st my_charset_eucjpms_japanese_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_eucjpms_japanese_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_euckr_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_euckr_bin;
|
||||||
extern struct charset_info_st my_charset_euckr_korean_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_euckr_korean_ci;
|
||||||
extern struct charset_info_st my_charset_euckr_nopad_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_euckr_nopad_bin;
|
||||||
extern struct charset_info_st my_charset_euckr_korean_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_euckr_korean_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_gb2312_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_gb2312_bin;
|
||||||
extern struct charset_info_st my_charset_gb2312_chinese_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_gb2312_chinese_ci;
|
||||||
extern struct charset_info_st my_charset_gb2312_nopad_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_gb2312_nopad_bin;
|
||||||
extern struct charset_info_st my_charset_gb2312_chinese_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_gb2312_chinese_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_gbk_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_gbk_bin;
|
||||||
extern struct charset_info_st my_charset_gbk_chinese_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_gbk_chinese_ci;
|
||||||
extern struct charset_info_st my_charset_gbk_nopad_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_gbk_nopad_bin;
|
||||||
extern struct charset_info_st my_charset_gbk_chinese_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_gbk_chinese_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_latin1_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_latin1_bin;
|
||||||
extern struct charset_info_st my_charset_latin1_nopad_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_latin1_nopad_bin;
|
||||||
extern struct charset_info_st my_charset_latin1_german2_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_latin1_german2_ci;
|
||||||
extern struct charset_info_st my_charset_latin2_czech_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_latin2_czech_ci;
|
||||||
extern struct charset_info_st my_charset_sjis_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_sjis_bin;
|
||||||
extern struct charset_info_st my_charset_sjis_japanese_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_sjis_japanese_ci;
|
||||||
extern struct charset_info_st my_charset_sjis_nopad_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_sjis_nopad_bin;
|
||||||
extern struct charset_info_st my_charset_sjis_japanese_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_sjis_japanese_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_tis620_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_tis620_bin;
|
||||||
extern struct charset_info_st my_charset_tis620_thai_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_tis620_thai_ci;
|
||||||
extern struct charset_info_st my_charset_tis620_nopad_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_tis620_nopad_bin;
|
||||||
extern struct charset_info_st my_charset_tis620_thai_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_tis620_thai_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_ucs2_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_ucs2_bin;
|
||||||
extern struct charset_info_st my_charset_ucs2_general_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_ucs2_general_ci;
|
||||||
extern struct charset_info_st my_charset_ucs2_nopad_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_ucs2_nopad_bin;
|
||||||
extern struct charset_info_st my_charset_ucs2_general_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_ucs2_general_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_ucs2_general_mysql500_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_ucs2_general_mysql500_ci;
|
||||||
extern struct charset_info_st my_charset_ucs2_unicode_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_ucs2_unicode_ci;
|
||||||
extern struct charset_info_st my_charset_ucs2_unicode_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_ucs2_unicode_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_ucs2_general_mysql500_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_ucs2_general_mysql500_ci;
|
||||||
extern struct charset_info_st my_charset_ujis_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_ujis_bin;
|
||||||
extern struct charset_info_st my_charset_ujis_japanese_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_ujis_japanese_ci;
|
||||||
extern struct charset_info_st my_charset_ujis_nopad_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_ujis_nopad_bin;
|
||||||
extern struct charset_info_st my_charset_ujis_japanese_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_ujis_japanese_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_utf16_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf16_bin;
|
||||||
extern struct charset_info_st my_charset_utf16_general_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf16_general_ci;
|
||||||
extern struct charset_info_st my_charset_utf16_unicode_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf16_unicode_ci;
|
||||||
extern struct charset_info_st my_charset_utf16_unicode_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf16_unicode_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_utf16le_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf16le_bin;
|
||||||
extern struct charset_info_st my_charset_utf16le_general_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf16le_general_ci;
|
||||||
extern struct charset_info_st my_charset_utf16_general_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf16_general_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_utf16_nopad_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf16_nopad_bin;
|
||||||
extern struct charset_info_st my_charset_utf16le_nopad_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf16le_nopad_bin;
|
||||||
extern struct charset_info_st my_charset_utf16le_general_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf16le_general_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_utf32_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf32_bin;
|
||||||
extern struct charset_info_st my_charset_utf32_general_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf32_general_ci;
|
||||||
extern struct charset_info_st my_charset_utf32_unicode_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf32_unicode_ci;
|
||||||
extern struct charset_info_st my_charset_utf32_unicode_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf32_unicode_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_utf32_nopad_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf32_nopad_bin;
|
||||||
extern struct charset_info_st my_charset_utf32_general_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf32_general_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_utf8_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf8_bin;
|
||||||
extern struct charset_info_st my_charset_utf8_nopad_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf8_nopad_bin;
|
||||||
extern struct charset_info_st my_charset_utf8_general_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf8_general_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_utf8_general_mysql500_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf8_general_mysql500_ci;
|
||||||
extern struct charset_info_st my_charset_utf8_unicode_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf8_unicode_ci;
|
||||||
extern struct charset_info_st my_charset_utf8_unicode_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf8_unicode_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_utf8mb4_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf8mb4_bin;
|
||||||
extern struct charset_info_st my_charset_utf8mb4_general_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf8mb4_general_ci;
|
||||||
extern struct charset_info_st my_charset_utf8mb4_nopad_bin;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf8mb4_nopad_bin;
|
||||||
extern struct charset_info_st my_charset_utf8mb4_general_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf8mb4_general_nopad_ci;
|
||||||
extern struct charset_info_st my_charset_utf8mb4_unicode_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf8mb4_unicode_ci;
|
||||||
extern struct charset_info_st my_charset_utf8mb4_unicode_nopad_ci;
|
extern MYSQL_PLUGIN_IMPORT struct charset_info_st my_charset_utf8mb4_unicode_nopad_ci;
|
||||||
|
|
||||||
#define MY_UTF8MB3 "utf8"
|
#define MY_UTF8MB3 "utf8"
|
||||||
#define MY_UTF8MB4 "utf8mb4"
|
#define MY_UTF8MB4 "utf8mb4"
|
||||||
|
@ -25,7 +25,6 @@
|
|||||||
|
|
||||||
C_MODE_START
|
C_MODE_START
|
||||||
|
|
||||||
extern const char _my_bits_nbits[256];
|
|
||||||
extern const uchar _my_bits_reverse_table[256];
|
extern const uchar _my_bits_reverse_table[256];
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -40,37 +39,32 @@ static inline uint my_bit_log2(ulong value)
|
|||||||
return bit;
|
return bit;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline uint my_count_bits(ulonglong v)
|
|
||||||
{
|
|
||||||
#if SIZEOF_LONG_LONG > 4
|
|
||||||
/* The following code is a bit faster on 16 bit machines than if we would
|
|
||||||
only shift v */
|
|
||||||
ulong v2=(ulong) (v >> 32);
|
|
||||||
return (uint) (uchar) (_my_bits_nbits[(uchar) v] +
|
|
||||||
_my_bits_nbits[(uchar) (v >> 8)] +
|
|
||||||
_my_bits_nbits[(uchar) (v >> 16)] +
|
|
||||||
_my_bits_nbits[(uchar) (v >> 24)] +
|
|
||||||
_my_bits_nbits[(uchar) (v2)] +
|
|
||||||
_my_bits_nbits[(uchar) (v2 >> 8)] +
|
|
||||||
_my_bits_nbits[(uchar) (v2 >> 16)] +
|
|
||||||
_my_bits_nbits[(uchar) (v2 >> 24)]);
|
|
||||||
#else
|
|
||||||
return (uint) (uchar) (_my_bits_nbits[(uchar) v] +
|
|
||||||
_my_bits_nbits[(uchar) (v >> 8)] +
|
|
||||||
_my_bits_nbits[(uchar) (v >> 16)] +
|
|
||||||
_my_bits_nbits[(uchar) (v >> 24)]);
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
Count bits in 32bit integer
|
||||||
|
|
||||||
|
Algorithm by Sean Anderson, according to:
|
||||||
|
http://graphics.stanford.edu/~seander/bithacks.html
|
||||||
|
under "Counting bits set, in parallel"
|
||||||
|
|
||||||
|
(Orignal code public domain).
|
||||||
|
*/
|
||||||
static inline uint my_count_bits_uint32(uint32 v)
|
static inline uint my_count_bits_uint32(uint32 v)
|
||||||
{
|
{
|
||||||
return (uint) (uchar) (_my_bits_nbits[(uchar) v] +
|
v = v - ((v >> 1) & 0x55555555);
|
||||||
_my_bits_nbits[(uchar) (v >> 8)] +
|
v = (v & 0x33333333) + ((v >> 2) & 0x33333333);
|
||||||
_my_bits_nbits[(uchar) (v >> 16)] +
|
return (((v + (v >> 4)) & 0xF0F0F0F) * 0x1010101) >> 24;
|
||||||
_my_bits_nbits[(uchar) (v >> 24)]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static inline uint my_count_bits(ulonglong x)
|
||||||
|
{
|
||||||
|
return my_count_bits_uint32((uint32)x) + my_count_bits_uint32((uint32)(x >> 32));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
Next highest power of two
|
Next highest power of two
|
||||||
|
|
||||||
|
@ -393,6 +393,23 @@ DECLARE_MYSQL_SYSVAR_SIMPLE(name, unsigned long long) = { \
|
|||||||
PLUGIN_VAR_LONGLONG | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
|
PLUGIN_VAR_LONGLONG | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
#name, comment, check, update, &varname, def, min, max, blk }
|
#name, comment, check, update, &varname, def, min, max, blk }
|
||||||
|
|
||||||
|
#define MYSQL_SYSVAR_UINT64_T(name, varname, opt, comment, check, update, def, min, max, blk) \
|
||||||
|
DECLARE_MYSQL_SYSVAR_SIMPLE(name, uint64_t) = { \
|
||||||
|
PLUGIN_VAR_LONGLONG | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, &varname, def, min, max, blk }
|
||||||
|
|
||||||
|
#ifdef _WIN64
|
||||||
|
#define MYSQL_SYSVAR_SIZE_T(name, varname, opt, comment, check, update, def, min, max, blk) \
|
||||||
|
DECLARE_MYSQL_SYSVAR_SIMPLE(name, size_t) = { \
|
||||||
|
PLUGIN_VAR_LONGLONG | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, &varname, def, min, max, blk }
|
||||||
|
#else
|
||||||
|
#define MYSQL_SYSVAR_SIZE_T(name, varname, opt, comment, check, update, def, min, max, blk) \
|
||||||
|
DECLARE_MYSQL_SYSVAR_SIMPLE(name, size_t) = { \
|
||||||
|
PLUGIN_VAR_LONG | PLUGIN_VAR_UNSIGNED | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
#name, comment, check, update, &varname, def, min, max, blk }
|
||||||
|
#endif
|
||||||
|
|
||||||
#define MYSQL_SYSVAR_ENUM(name, varname, opt, comment, check, update, def, typelib) \
|
#define MYSQL_SYSVAR_ENUM(name, varname, opt, comment, check, update, def, typelib) \
|
||||||
DECLARE_MYSQL_SYSVAR_TYPELIB(name, unsigned long) = { \
|
DECLARE_MYSQL_SYSVAR_TYPELIB(name, unsigned long) = { \
|
||||||
PLUGIN_VAR_ENUM | ((opt) & PLUGIN_VAR_MASK), \
|
PLUGIN_VAR_ENUM | ((opt) & PLUGIN_VAR_MASK), \
|
||||||
|
@ -17,24 +17,6 @@
|
|||||||
|
|
||||||
#include <my_bit.h>
|
#include <my_bit.h>
|
||||||
|
|
||||||
const char _my_bits_nbits[256] = {
|
|
||||||
0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4,
|
|
||||||
1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
|
|
||||||
1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
|
|
||||||
2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
|
|
||||||
1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
|
|
||||||
2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
|
|
||||||
2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
|
|
||||||
3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
|
|
||||||
1, 2, 2, 3, 2, 3, 3, 4, 2, 3, 3, 4, 3, 4, 4, 5,
|
|
||||||
2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
|
|
||||||
2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
|
|
||||||
3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
|
|
||||||
2, 3, 3, 4, 3, 4, 4, 5, 3, 4, 4, 5, 4, 5, 5, 6,
|
|
||||||
3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
|
|
||||||
3, 4, 4, 5, 4, 5, 5, 6, 4, 5, 5, 6, 5, 6, 6, 7,
|
|
||||||
4, 5, 5, 6, 5, 6, 6, 7, 5, 6, 6, 7, 6, 7, 7, 8,
|
|
||||||
};
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
perl -e 'print map{", 0x".unpack H2,pack B8,unpack b8,chr$_}(0..255)'
|
perl -e 'print map{", 0x".unpack H2,pack B8,unpack b8,chr$_}(0..255)'
|
||||||
|
@ -1,91 +1,157 @@
|
|||||||
# TODO: Copyrights
|
# TODO: Copyrights
|
||||||
|
|
||||||
IF (NOT EXISTS "${CMAKE_SOURCE_DIR}/storage/rocksdb/rocksdb/Makefile")
|
|
||||||
|
IF (NOT EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/rocksdb/Makefile")
|
||||||
MESSAGE(SEND_ERROR "Missing Makefile in rocksdb directory. Try \"git submodule update\".")
|
MESSAGE(SEND_ERROR "Missing Makefile in rocksdb directory. Try \"git submodule update\".")
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
SET(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11")
|
MACRO(SKIP_ROCKSDB_PLUGIN msg)
|
||||||
|
MESSAGE_ONCE(SKIP_ROCKSDB_PLUGIN "Can't build rocksdb engine - ${msg}")
|
||||||
|
RETURN()
|
||||||
|
ENDMACRO()
|
||||||
|
|
||||||
|
|
||||||
|
# This plugin needs recent C++ compilers (it is using C++11 features)
|
||||||
|
# Skip build for the old compilers
|
||||||
|
SET(CXX11_FLAGS)
|
||||||
|
SET(OLD_COMPILER_MSG "requires c++11 -capable compiler (minimal supported versions are g++ 4.8, clang 3.3, VS2015)")
|
||||||
|
|
||||||
|
IF(CMAKE_CXX_COMPILER_ID MATCHES "GNU")
|
||||||
|
EXECUTE_PROCESS(COMMAND ${CMAKE_CXX_COMPILER} -dumpversion OUTPUT_VARIABLE GCC_VERSION)
|
||||||
|
IF (GCC_VERSION VERSION_LESS 4.8)
|
||||||
|
SKIP_ROCKSDB_PLUGIN("${OLD_COMPILER_MSG}")
|
||||||
|
ENDIF()
|
||||||
|
SET(CXX11_FLAGS "-std=c++11")
|
||||||
|
ELSEIF (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
|
||||||
|
IF ((CMAKE_CXX_COMPILER_VERSION AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.3) OR
|
||||||
|
(CLANG_VERSION_STRING AND CLANG_VERSION_STRING VERSION_LESS 3.3))
|
||||||
|
SKIP_ROCKSDB_PLUGIN("${OLD_COMPILER_MSG}")
|
||||||
|
ENDIF()
|
||||||
|
SET(CXX11_FLAGS "-stdlib=libc++ -std=c++11")
|
||||||
|
ELSEIF(MSVC)
|
||||||
|
IF (MSVC_VERSION LESS 1900)
|
||||||
|
SKIP_ROCKSDB_PLUGIN("${OLD_COMPILER_MSG}")
|
||||||
|
ENDIF()
|
||||||
|
ELSE()
|
||||||
|
SKIP_ROCKSDB_PLUGIN("Compiler not supported")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
IF(CXX11_FLAGS)
|
||||||
|
ADD_DEFINITIONS(${CXX11_FLAGS})
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
SET(ROCKSDB_SE_SOURCES
|
||||||
|
rdb_mariadb_server_port.cc
|
||||||
|
rdb_mariadb_server_port.h
|
||||||
|
ha_rocksdb.cc
|
||||||
|
ha_rocksdb.h
|
||||||
|
rdb_i_s.cc
|
||||||
|
rdb_i_s.h
|
||||||
|
rdb_mutex_wrapper.cc
|
||||||
|
rdb_mutex_wrapper.h
|
||||||
|
rdb_index_merge.cc
|
||||||
|
rdb_index_merge.h
|
||||||
|
properties_collector.cc
|
||||||
|
properties_collector.h
|
||||||
|
rdb_datadic.cc
|
||||||
|
rdb_datadic.h
|
||||||
|
rdb_cf_manager.cc
|
||||||
|
rdb_cf_manager.h
|
||||||
|
rdb_utils.cc rdb_utils.h
|
||||||
|
rdb_threads.cc
|
||||||
|
rdb_threads.h
|
||||||
|
)
|
||||||
|
|
||||||
|
MYSQL_ADD_PLUGIN(rocksdb_se ${ROCKSDB_SE_SOURCES} STORAGE_ENGINE MODULE_OUTPUT_NAME ha_rocksdb)
|
||||||
|
|
||||||
|
IF(NOT TARGET rocksdb_se)
|
||||||
|
# Bail out if compilation with rocksdb engine is not requested
|
||||||
|
RETURN()
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
INCLUDE(build_rocksdb.cmake)
|
||||||
|
|
||||||
|
ADD_CONVENIENCE_LIBRARY(rocksdb_aux_lib
|
||||||
|
ha_rocksdb_proto.h
|
||||||
|
logger.h
|
||||||
|
rdb_comparator.h
|
||||||
|
rdb_cf_options.cc
|
||||||
|
rdb_cf_options.h
|
||||||
|
event_listener.cc
|
||||||
|
event_listener.h
|
||||||
|
rdb_perf_context.cc
|
||||||
|
rdb_perf_context.h
|
||||||
|
rdb_sst_info.cc
|
||||||
|
rdb_sst_info.h
|
||||||
|
rdb_buff.h
|
||||||
|
rdb_mariadb_port.h)
|
||||||
|
|
||||||
|
ADD_DEPENDENCIES(rocksdb_aux_lib GenError)
|
||||||
|
|
||||||
|
TARGET_LINK_LIBRARIES(rocksdb_aux_lib rocksdblib ${ZLIB_LIBRARY})
|
||||||
|
TARGET_LINK_LIBRARIES(rocksdb_se rocksdb_aux_lib)
|
||||||
|
|
||||||
|
IF(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
|
# MARIAROCKS_NOT_YET: Add -frtti flag when compiling RocksDB files.
|
||||||
|
# TODO: is this the right way to do this?
|
||||||
|
# - SQL layer and storage/rocksdb/*.cc are compiled with -fnortti
|
||||||
|
# - RocksDB files are compiled with "-fnortti ... -frtti"
|
||||||
|
# - This causes RocksDB headers to be compiled with different settings:
|
||||||
|
# = with RTTI when compiling RocksDB
|
||||||
|
# = without RTTI when compiling storage/rocksdb/*.cc
|
||||||
|
#
|
||||||
|
# (facebook/mysql-5.6 just compiles everything without -f*rtti, which means
|
||||||
|
# everything is compiled with -frtti)
|
||||||
|
#
|
||||||
|
# (also had to add -frtti above, because something that event_listener.cc
|
||||||
|
# includes requires it. So, now everything in MariaRocks is compiled with
|
||||||
|
# -frtti)
|
||||||
|
set_source_files_properties(event_listener.cc rdb_cf_options.cc
|
||||||
|
PROPERTIES COMPILE_FLAGS -frtti)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
CHECK_FUNCTION_EXISTS(sched_getcpu HAVE_SCHED_GETCPU)
|
CHECK_FUNCTION_EXISTS(sched_getcpu HAVE_SCHED_GETCPU)
|
||||||
IF(HAVE_SCHED_GETCPU)
|
IF(HAVE_SCHED_GETCPU)
|
||||||
ADD_DEFINITIONS(-DHAVE_SCHED_GETCPU=1)
|
ADD_DEFINITIONS(-DHAVE_SCHED_GETCPU=1)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
# get a list of rocksdb library source files
|
IF(WITH_UNIT_TESTS AND WITH_EMBEDDED_SERVER)
|
||||||
# run with env -i to avoid passing variables
|
ADD_SUBDIRECTORY(unittest)
|
||||||
EXECUTE_PROCESS(
|
|
||||||
COMMAND env -i ${CMAKE_SOURCE_DIR}/storage/rocksdb/get_rocksdb_files.sh
|
|
||||||
OUTPUT_VARIABLE SCRIPT_OUTPUT
|
|
||||||
WORKING_DIRECTORY ${CMAKE_SOURCE_DIR}
|
|
||||||
)
|
|
||||||
# split the list into lines
|
|
||||||
STRING(REGEX MATCHALL "[^\n]+" ROCKSDB_LIB_SOURCES ${SCRIPT_OUTPUT})
|
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(
|
|
||||||
${CMAKE_SOURCE_DIR}/storage/rocksdb/rocksdb
|
|
||||||
${CMAKE_SOURCE_DIR}/storage/rocksdb/rocksdb/include
|
|
||||||
${CMAKE_SOURCE_DIR}/storage/rocksdb/rocksdb/third-party/gtest-1.7.0/fused-src
|
|
||||||
)
|
|
||||||
|
|
||||||
ADD_DEFINITIONS(-DROCKSDB_PLATFORM_POSIX -DROCKSDB_LIB_IO_POSIX -DOS_LINUX
|
|
||||||
-DZLIB)
|
|
||||||
|
|
||||||
# MARIAROCKS_NOT_YET: Add -frtti flag when compiling RocksDB files.
|
|
||||||
# TODO: is this the right way to do this?
|
|
||||||
# - SQL layer and storage/rocksdb/*.cc are compiled with -fnortti
|
|
||||||
# - RocksDB files are compiled with "-fnortti ... -frtti"
|
|
||||||
# - This causes RocksDB headers to be compiled with different settings:
|
|
||||||
# = with RTTI when compiling RocksDB
|
|
||||||
# = without RTTI when compiling storage/rocksdb/*.cc
|
|
||||||
#
|
|
||||||
# (facebook/mysql-5.6 just compiles everything without -f*rtti, which means
|
|
||||||
# everything is compiled with -frtti)
|
|
||||||
#
|
|
||||||
# (also had to add -frtti above, because something that event_listener.cc
|
|
||||||
# includes requires it. So, now everything in MariaRocks is compiled with
|
|
||||||
# -frtti)
|
|
||||||
set_source_files_properties(${ROCKSDB_LIB_SOURCES} PROPERTIES COMPILE_FLAGS -frtti)
|
|
||||||
set_source_files_properties(event_listener.cc PROPERTIES COMPILE_FLAGS -frtti)
|
|
||||||
set_source_files_properties(rdb_cf_options.cc PROPERTIES COMPILE_FLAGS -frtti)
|
|
||||||
|
|
||||||
ADD_CONVENIENCE_LIBRARY(
|
|
||||||
ROCKSDB_AUX_LIB
|
|
||||||
ha_rocksdb_proto.h
|
|
||||||
logger.h
|
|
||||||
rdb_comparator.h
|
|
||||||
rdb_datadic.cc rdb_datadic.h
|
|
||||||
rdb_cf_options.cc rdb_cf_options.h
|
|
||||||
rdb_cf_manager.cc rdb_cf_manager.h
|
|
||||||
properties_collector.cc properties_collector.h
|
|
||||||
event_listener.cc event_listener.h
|
|
||||||
rdb_i_s.cc rdb_i_s.h
|
|
||||||
rdb_index_merge.cc rdb_index_merge.h
|
|
||||||
rdb_perf_context.cc rdb_perf_context.h
|
|
||||||
rdb_mutex_wrapper.cc rdb_mutex_wrapper.h
|
|
||||||
rdb_sst_info.cc rdb_sst_info.h
|
|
||||||
rdb_utils.cc rdb_utils.h rdb_buff.h
|
|
||||||
rdb_threads.cc rdb_threads.h
|
|
||||||
rdb_mariadb_port.h
|
|
||||||
${ROCKSDB_LIB_SOURCES}
|
|
||||||
)
|
|
||||||
|
|
||||||
# We include storage/innobase/include/ut0counter.h, which includes
|
|
||||||
# univ.i, which includes mysqld_error.h.
|
|
||||||
# Indicate that MyRocks is dependent on that file (just like innochecksum does)
|
|
||||||
ADD_DEPENDENCIES(ROCKSDB_AUX_LIB GenError)
|
|
||||||
|
|
||||||
SET(ROCKSDB_SOURCES
|
|
||||||
rdb_mariadb_server_port.cc rdb_mariadb_server_port.h
|
|
||||||
ha_rocksdb.cc ha_rocksdb.h
|
|
||||||
)
|
|
||||||
|
|
||||||
IF(WITH_FB_TSAN)
|
|
||||||
SET(PIC_EXT "_pic")
|
|
||||||
ELSE()
|
|
||||||
SET(PIC_EXT "")
|
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
SET(rocksdb_static_libs )
|
ADD_LIBRARY(rocksdb_tools STATIC
|
||||||
|
rocksdb/tools/ldb_tool.cc
|
||||||
|
rocksdb/tools/ldb_cmd.cc
|
||||||
|
rocksdb/tools/sst_dump_tool.cc
|
||||||
|
)
|
||||||
|
|
||||||
|
MYSQL_ADD_EXECUTABLE(sst_dump rocksdb/tools/sst_dump.cc)
|
||||||
|
TARGET_LINK_LIBRARIES(sst_dump rocksdblib)
|
||||||
|
|
||||||
|
MYSQL_ADD_EXECUTABLE(ldb rocksdb/tools/ldb.cc)
|
||||||
|
TARGET_LINK_LIBRARIES(ldb rocksdb_tools rocksdblib)
|
||||||
|
|
||||||
|
MYSQL_ADD_EXECUTABLE(mysql_ldb tools/mysql_ldb.cc)
|
||||||
|
TARGET_LINK_LIBRARIES(mysql_ldb rocksdb_tools rocksdb_aux_lib)
|
||||||
|
|
||||||
|
IF(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
|
SET_TARGET_PROPERTIES(rocksdb_tools sst_dump ldb mysql_ldb PROPERTIES COMPILE_FLAGS -frtti)
|
||||||
|
ENDIF()
|
||||||
|
IF(MSVC)
|
||||||
|
# RocksDB, the storage engine, overdoes "const" by adding
|
||||||
|
# additional const qualifiers to parameters of the overriden virtual functions
|
||||||
|
# This creates a lot of warnings, that we silence here.
|
||||||
|
ADD_DEFINITIONS(/wd4373)
|
||||||
|
|
||||||
|
# Some checks in C++ runtime that make debug build much slower
|
||||||
|
ADD_DEFINITIONS(-D_ITERATOR_DEBUG_LEVEL=0)
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
# Optional compression libraries.
|
||||||
|
#
|
||||||
|
# TODO: search compression libraries properly.
|
||||||
|
# Use FIND_PACKAGE, CHECK_LIBRARY_EXISTS etc
|
||||||
|
IF(MARIAROCKS_NOT_YET)
|
||||||
IF (NOT "$ENV{WITH_SNAPPY}" STREQUAL "")
|
IF (NOT "$ENV{WITH_SNAPPY}" STREQUAL "")
|
||||||
SET(rocksdb_static_libs ${rocksdb_static_libs}
|
SET(rocksdb_static_libs ${rocksdb_static_libs}
|
||||||
$ENV{WITH_SNAPPY}/libsnappy${PIC_EXT}.a)
|
$ENV{WITH_SNAPPY}/libsnappy${PIC_EXT}.a)
|
||||||
@ -110,31 +176,4 @@ IF (NOT "$ENV{WITH_ZSTD}" STREQUAL "")
|
|||||||
$ENV{WITH_ZSTD}/libzstd${PIC_EXT}.a)
|
$ENV{WITH_ZSTD}/libzstd${PIC_EXT}.a)
|
||||||
ADD_DEFINITIONS(-DZSTD)
|
ADD_DEFINITIONS(-DZSTD)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
ENDIF(MARIAROCKS_NOT_YET)
|
||||||
SET(rocksdb_static_libs ROCKSDB_AUX_LIB ${rocksdb_static_libs} ${ZLIB_LIBRARY} "-lrt")
|
|
||||||
|
|
||||||
MYSQL_ADD_PLUGIN(rocksdb_se ${ROCKSDB_SOURCES} STORAGE_ENGINE DEFAULT MODULE_ONLY
|
|
||||||
LINK_LIBRARIES ${rocksdb_static_libs}
|
|
||||||
)
|
|
||||||
|
|
||||||
IF(WITH_EMBEDDED_SERVER)
|
|
||||||
ADD_SUBDIRECTORY(unittest)
|
|
||||||
ENDIF()
|
|
||||||
|
|
||||||
IF (WITH_ROCKSDB_SE_STORAGE_ENGINE)
|
|
||||||
# TODO: read this file list from src.mk:TOOL_SOURCES
|
|
||||||
SET(ROCKSDB_TOOL_SOURCES
|
|
||||||
${CMAKE_SOURCE_DIR}/storage/rocksdb/rocksdb/tools/ldb_tool.cc
|
|
||||||
${CMAKE_SOURCE_DIR}/storage/rocksdb/rocksdb/tools/ldb_cmd.cc
|
|
||||||
${CMAKE_SOURCE_DIR}/storage/rocksdb/rocksdb/tools/sst_dump_tool.cc
|
|
||||||
)
|
|
||||||
set_source_files_properties(${ROCKSDB_TOOL_SOURCES} PROPERTIES COMPILE_FLAGS -frtti)
|
|
||||||
MYSQL_ADD_EXECUTABLE(sst_dump ${CMAKE_SOURCE_DIR}/storage/rocksdb/rocksdb/tools/sst_dump.cc ${ROCKSDB_TOOL_SOURCES})
|
|
||||||
TARGET_LINK_LIBRARIES(sst_dump ${rocksdb_static_libs})
|
|
||||||
|
|
||||||
MYSQL_ADD_EXECUTABLE(ldb ${CMAKE_SOURCE_DIR}/storage/rocksdb/rocksdb/tools/ldb.cc ${ROCKSDB_TOOL_SOURCES})
|
|
||||||
TARGET_LINK_LIBRARIES(ldb ${rocksdb_static_libs})
|
|
||||||
|
|
||||||
MYSQL_ADD_EXECUTABLE(mysql_ldb ${CMAKE_SOURCE_DIR}/storage/rocksdb/tools/mysql_ldb.cc ${ROCKSDB_TOOL_SOURCES})
|
|
||||||
TARGET_LINK_LIBRARIES(mysql_ldb ${rocksdb_static_libs})
|
|
||||||
ENDIF()
|
|
||||||
|
337
storage/rocksdb/build_rocksdb.cmake
Normal file
337
storage/rocksdb/build_rocksdb.cmake
Normal file
@ -0,0 +1,337 @@
|
|||||||
|
|
||||||
|
if(POLICY CMP0042)
|
||||||
|
cmake_policy(SET CMP0042 NEW)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
SET(ROCKSDB_SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/rocksdb)
|
||||||
|
|
||||||
|
INCLUDE_DIRECTORIES(
|
||||||
|
${ROCKSDB_SOURCE_DIR}
|
||||||
|
${ROCKSDB_SOURCE_DIR}/include
|
||||||
|
${ROCKSDB_SOURCE_DIR}/third-party/gtest-1.7.0/fused-src
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
list(APPEND CMAKE_MODULE_PATH "${ROCKSDB_SOURCE_DIR}/cmake/modules/")
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
# include(${ROCKSDB_SOURCE_DIR}/thirdparty.inc)
|
||||||
|
else()
|
||||||
|
option(WITH_ROCKSDB_JEMALLOC "build RocksDB with JeMalloc" OFF)
|
||||||
|
if(WITH_ROCKSDB_JEMALLOC)
|
||||||
|
find_package(JeMalloc REQUIRED)
|
||||||
|
add_definitions(-DROCKSDB_JEMALLOC)
|
||||||
|
include_directories(${JEMALLOC_INCLUDE_DIR})
|
||||||
|
endif()
|
||||||
|
if(CMAKE_SYSTEM_NAME STREQUAL "FreeBSD")
|
||||||
|
# FreeBSD has jemaloc as default malloc
|
||||||
|
add_definitions(-DROCKSDB_JEMALLOC)
|
||||||
|
set(WITH_JEMALLOC ON)
|
||||||
|
endif()
|
||||||
|
option(WITH_ROCKSDB_SNAPPY "build RocksDB with SNAPPY" OFF)
|
||||||
|
if(WITH_ROCKSDB_SNAPPY)
|
||||||
|
find_package(snappy REQUIRED)
|
||||||
|
add_definitions(-DSNAPPY)
|
||||||
|
include_directories(${SNAPPY_INCLUDE_DIR})
|
||||||
|
list(APPEND THIRDPARTY_LIBS ${SNAPPY_LIBRARIES})
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if(CMAKE_SYSTEM_NAME MATCHES "Cygwin")
|
||||||
|
add_definitions(-fno-builtin-memcmp -DCYGWIN)
|
||||||
|
elseif(CMAKE_SYSTEM_NAME MATCHES "Darwin")
|
||||||
|
add_definitions(-DOS_MACOSX)
|
||||||
|
elseif(CMAKE_SYSTEM_NAME MATCHES "Linux")
|
||||||
|
add_definitions(-DOS_LINUX)
|
||||||
|
elseif(CMAKE_SYSTEM_NAME MATCHES "SunOS")
|
||||||
|
add_definitions(-DOS_SOLARIS)
|
||||||
|
elseif(CMAKE_SYSTEM_NAME MATCHES "FreeBSD")
|
||||||
|
add_definitions(-DOS_FREEBSD)
|
||||||
|
elseif(CMAKE_SYSTEM_NAME MATCHES "NetBSD")
|
||||||
|
add_definitions(-DOS_NETBSD)
|
||||||
|
elseif(CMAKE_SYSTEM_NAME MATCHES "OpenBSD")
|
||||||
|
add_definitions(-DOS_OPENBSD)
|
||||||
|
elseif(CMAKE_SYSTEM_NAME MATCHES "DragonFly")
|
||||||
|
add_definitions(-DOS_DRAGONFLYBSD)
|
||||||
|
elseif(CMAKE_SYSTEM_NAME MATCHES "Android")
|
||||||
|
add_definitions(-DOS_ANDROID)
|
||||||
|
elseif(CMAKE_SYSTEM_NAME MATCHES "Windows")
|
||||||
|
add_definitions(-DOS_WIN)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
IF(MSVC)
|
||||||
|
add_definitions(/wd4244)
|
||||||
|
ENDIF()
|
||||||
|
if(NOT WIN32)
|
||||||
|
add_definitions(-DROCKSDB_PLATFORM_POSIX -DROCKSDB_LIB_IO_POSIX)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
option(WITH_FALLOCATE "build with fallocate" ON)
|
||||||
|
|
||||||
|
if(WITH_FALLOCATE AND UNIX)
|
||||||
|
include(CheckCSourceCompiles)
|
||||||
|
CHECK_C_SOURCE_COMPILES("
|
||||||
|
#include <fcntl.h>
|
||||||
|
#include <linux/falloc.h>
|
||||||
|
int main() {
|
||||||
|
int fd = open(\"/dev/null\", 0);
|
||||||
|
fallocate(fd, FALLOC_FL_KEEP_SIZE | FALLOC_FL_PUNCH_HOLE, 0, 1024);
|
||||||
|
}
|
||||||
|
" HAVE_FALLOCATE)
|
||||||
|
if(HAVE_FALLOCATE)
|
||||||
|
add_definitions(-DROCKSDB_FALLOCATE_PRESENT)
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include(CheckFunctionExists)
|
||||||
|
CHECK_FUNCTION_EXISTS(malloc_usable_size HAVE_MALLOC_USABLE_SIZE)
|
||||||
|
if(HAVE_MALLOC_USABLE_SIZE)
|
||||||
|
add_definitions(-DROCKSDB_MALLOC_USABLE_SIZE)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include_directories(${ROCKSDB_SOURCE_DIR})
|
||||||
|
include_directories(${ROCKSDB_SOURCE_DIR}/include)
|
||||||
|
include_directories(SYSTEM ${ROCKSDB_SOURCE_DIR}/third-party/gtest-1.7.0/fused-src)
|
||||||
|
|
||||||
|
find_package(Threads REQUIRED)
|
||||||
|
if(WIN32)
|
||||||
|
set(SYSTEM_LIBS ${SYSTEM_LIBS} Shlwapi.lib Rpcrt4.lib)
|
||||||
|
else()
|
||||||
|
set(SYSTEM_LIBS ${CMAKE_THREAD_LIBS_INIT})
|
||||||
|
endif()
|
||||||
|
|
||||||
|
set(ROCKSDB_LIBS rocksdblib})
|
||||||
|
set(LIBS ${ROCKSDB_LIBS} ${THIRDPARTY_LIBS} ${SYSTEM_LIBS})
|
||||||
|
|
||||||
|
#add_subdirectory(${ROCKSDB_SOURCE_DIR}/tools)
|
||||||
|
|
||||||
|
# Main library source code
|
||||||
|
|
||||||
|
set(ROCKSDB_SOURCES
|
||||||
|
db/auto_roll_logger.cc
|
||||||
|
db/builder.cc
|
||||||
|
db/c.cc
|
||||||
|
db/column_family.cc
|
||||||
|
db/compacted_db_impl.cc
|
||||||
|
db/compaction.cc
|
||||||
|
db/compaction_iterator.cc
|
||||||
|
db/compaction_job.cc
|
||||||
|
db/compaction_picker.cc
|
||||||
|
db/convenience.cc
|
||||||
|
db/dbformat.cc
|
||||||
|
db/db_filesnapshot.cc
|
||||||
|
db/db_impl.cc
|
||||||
|
db/db_impl_debug.cc
|
||||||
|
db/db_impl_experimental.cc
|
||||||
|
db/db_impl_readonly.cc
|
||||||
|
db/db_info_dumper.cc
|
||||||
|
db/db_iter.cc
|
||||||
|
db/event_helpers.cc
|
||||||
|
db/external_sst_file_ingestion_job.cc
|
||||||
|
db/experimental.cc
|
||||||
|
db/filename.cc
|
||||||
|
db/file_indexer.cc
|
||||||
|
db/flush_job.cc
|
||||||
|
db/flush_scheduler.cc
|
||||||
|
db/forward_iterator.cc
|
||||||
|
db/internal_stats.cc
|
||||||
|
db/log_reader.cc
|
||||||
|
db/log_writer.cc
|
||||||
|
db/managed_iterator.cc
|
||||||
|
db/memtable.cc
|
||||||
|
db/memtable_allocator.cc
|
||||||
|
db/memtable_list.cc
|
||||||
|
db/merge_helper.cc
|
||||||
|
db/merge_operator.cc
|
||||||
|
db/range_del_aggregator.cc
|
||||||
|
db/repair.cc
|
||||||
|
db/snapshot_impl.cc
|
||||||
|
db/table_cache.cc
|
||||||
|
db/table_properties_collector.cc
|
||||||
|
db/transaction_log_impl.cc
|
||||||
|
db/version_builder.cc
|
||||||
|
db/version_edit.cc
|
||||||
|
db/version_set.cc
|
||||||
|
db/wal_manager.cc
|
||||||
|
db/write_batch.cc
|
||||||
|
db/write_batch_base.cc
|
||||||
|
db/write_controller.cc
|
||||||
|
db/write_thread.cc
|
||||||
|
db/xfunc_test_points.cc
|
||||||
|
memtable/hash_cuckoo_rep.cc
|
||||||
|
memtable/hash_linklist_rep.cc
|
||||||
|
memtable/hash_skiplist_rep.cc
|
||||||
|
memtable/skiplistrep.cc
|
||||||
|
memtable/vectorrep.cc
|
||||||
|
port/stack_trace.cc
|
||||||
|
table/adaptive_table_factory.cc
|
||||||
|
table/block.cc
|
||||||
|
table/block_based_filter_block.cc
|
||||||
|
table/block_based_table_builder.cc
|
||||||
|
table/block_based_table_factory.cc
|
||||||
|
table/block_based_table_reader.cc
|
||||||
|
table/block_builder.cc
|
||||||
|
table/block_prefix_index.cc
|
||||||
|
table/bloom_block.cc
|
||||||
|
table/cuckoo_table_builder.cc
|
||||||
|
table/cuckoo_table_factory.cc
|
||||||
|
table/cuckoo_table_reader.cc
|
||||||
|
table/flush_block_policy.cc
|
||||||
|
table/format.cc
|
||||||
|
table/full_filter_block.cc
|
||||||
|
table/get_context.cc
|
||||||
|
table/iterator.cc
|
||||||
|
table/merger.cc
|
||||||
|
table/sst_file_writer.cc
|
||||||
|
table/meta_blocks.cc
|
||||||
|
table/plain_table_builder.cc
|
||||||
|
table/plain_table_factory.cc
|
||||||
|
table/plain_table_index.cc
|
||||||
|
table/plain_table_key_coding.cc
|
||||||
|
table/plain_table_reader.cc
|
||||||
|
table/persistent_cache_helper.cc
|
||||||
|
table/table_properties.cc
|
||||||
|
table/two_level_iterator.cc
|
||||||
|
tools/sst_dump_tool.cc
|
||||||
|
tools/db_bench_tool.cc
|
||||||
|
tools/dump/db_dump_tool.cc
|
||||||
|
util/arena.cc
|
||||||
|
util/bloom.cc
|
||||||
|
util/cf_options.cc
|
||||||
|
util/clock_cache.cc
|
||||||
|
util/coding.cc
|
||||||
|
util/compaction_job_stats_impl.cc
|
||||||
|
util/comparator.cc
|
||||||
|
util/concurrent_arena.cc
|
||||||
|
util/crc32c.cc
|
||||||
|
util/db_options.cc
|
||||||
|
util/delete_scheduler.cc
|
||||||
|
util/dynamic_bloom.cc
|
||||||
|
util/env.cc
|
||||||
|
util/env_chroot.cc
|
||||||
|
util/env_hdfs.cc
|
||||||
|
util/event_logger.cc
|
||||||
|
util/file_util.cc
|
||||||
|
util/file_reader_writer.cc
|
||||||
|
util/sst_file_manager_impl.cc
|
||||||
|
util/filter_policy.cc
|
||||||
|
util/hash.cc
|
||||||
|
util/histogram.cc
|
||||||
|
util/histogram_windowing.cc
|
||||||
|
util/instrumented_mutex.cc
|
||||||
|
util/iostats_context.cc
|
||||||
|
util/lru_cache.cc
|
||||||
|
tools/ldb_cmd.cc
|
||||||
|
tools/ldb_tool.cc
|
||||||
|
util/logging.cc
|
||||||
|
util/log_buffer.cc
|
||||||
|
util/memenv.cc
|
||||||
|
util/murmurhash.cc
|
||||||
|
util/options.cc
|
||||||
|
util/options_helper.cc
|
||||||
|
util/options_parser.cc
|
||||||
|
util/options_sanity_check.cc
|
||||||
|
util/perf_context.cc
|
||||||
|
util/perf_level.cc
|
||||||
|
util/random.cc
|
||||||
|
util/rate_limiter.cc
|
||||||
|
util/sharded_cache.cc
|
||||||
|
util/slice.cc
|
||||||
|
util/statistics.cc
|
||||||
|
util/status.cc
|
||||||
|
util/status_message.cc
|
||||||
|
util/string_util.cc
|
||||||
|
util/sync_point.cc
|
||||||
|
util/testutil.cc
|
||||||
|
util/thread_local.cc
|
||||||
|
util/threadpool_imp.cc
|
||||||
|
util/thread_status_impl.cc
|
||||||
|
util/thread_status_updater.cc
|
||||||
|
util/thread_status_util.cc
|
||||||
|
util/thread_status_util_debug.cc
|
||||||
|
util/transaction_test_util.cc
|
||||||
|
util/xfunc.cc
|
||||||
|
util/xxhash.cc
|
||||||
|
utilities/backupable/backupable_db.cc
|
||||||
|
utilities/blob_db/blob_db.cc
|
||||||
|
utilities/checkpoint/checkpoint.cc
|
||||||
|
utilities/compaction_filters/remove_emptyvalue_compactionfilter.cc
|
||||||
|
utilities/date_tiered/date_tiered_db_impl.cc
|
||||||
|
utilities/document/document_db.cc
|
||||||
|
utilities/document/json_document.cc
|
||||||
|
utilities/document/json_document_builder.cc
|
||||||
|
utilities/env_mirror.cc
|
||||||
|
utilities/env_registry.cc
|
||||||
|
utilities/geodb/geodb_impl.cc
|
||||||
|
utilities/leveldb_options/leveldb_options.cc
|
||||||
|
utilities/lua/rocks_lua_compaction_filter.cc
|
||||||
|
utilities/memory/memory_util.cc
|
||||||
|
utilities/merge_operators/string_append/stringappend.cc
|
||||||
|
utilities/merge_operators/string_append/stringappend2.cc
|
||||||
|
utilities/merge_operators/put.cc
|
||||||
|
utilities/merge_operators/max.cc
|
||||||
|
utilities/merge_operators/uint64add.cc
|
||||||
|
utilities/option_change_migration/option_change_migration.cc
|
||||||
|
utilities/options/options_util.cc
|
||||||
|
utilities/persistent_cache/block_cache_tier.cc
|
||||||
|
utilities/persistent_cache/block_cache_tier_file.cc
|
||||||
|
utilities/persistent_cache/block_cache_tier_metadata.cc
|
||||||
|
utilities/persistent_cache/persistent_cache_tier.cc
|
||||||
|
utilities/persistent_cache/volatile_tier_impl.cc
|
||||||
|
utilities/redis/redis_lists.cc
|
||||||
|
utilities/simulator_cache/sim_cache.cc
|
||||||
|
utilities/spatialdb/spatial_db.cc
|
||||||
|
utilities/table_properties_collectors/compact_on_deletion_collector.cc
|
||||||
|
utilities/transactions/optimistic_transaction_impl.cc
|
||||||
|
utilities/transactions/optimistic_transaction_db_impl.cc
|
||||||
|
utilities/transactions/transaction_base.cc
|
||||||
|
utilities/transactions/transaction_impl.cc
|
||||||
|
utilities/transactions/transaction_db_impl.cc
|
||||||
|
utilities/transactions/transaction_db_mutex_impl.cc
|
||||||
|
utilities/transactions/transaction_lock_mgr.cc
|
||||||
|
utilities/transactions/transaction_util.cc
|
||||||
|
utilities/ttl/db_ttl_impl.cc
|
||||||
|
utilities/write_batch_with_index/write_batch_with_index.cc
|
||||||
|
utilities/write_batch_with_index/write_batch_with_index_internal.cc
|
||||||
|
utilities/col_buf_encoder.cc
|
||||||
|
utilities/col_buf_decoder.cc
|
||||||
|
utilities/column_aware_encoding_util.cc
|
||||||
|
)
|
||||||
|
|
||||||
|
if(WIN32)
|
||||||
|
list(APPEND ROCKSDB_SOURCES
|
||||||
|
port/win/io_win.cc
|
||||||
|
port/win/env_win.cc
|
||||||
|
port/win/env_default.cc
|
||||||
|
port/win/port_win.cc
|
||||||
|
port/win/win_logger.cc
|
||||||
|
port/win/xpress_win.cc)
|
||||||
|
else()
|
||||||
|
list(APPEND ROCKSDB_SOURCES
|
||||||
|
port/port_posix.cc
|
||||||
|
util/env_posix.cc
|
||||||
|
util/io_posix.cc)
|
||||||
|
endif()
|
||||||
|
SET(SOURCES)
|
||||||
|
FOREACH(s ${ROCKSDB_SOURCES})
|
||||||
|
list(APPEND SOURCES ${ROCKSDB_SOURCE_DIR}/${s})
|
||||||
|
ENDFOREACH()
|
||||||
|
|
||||||
|
IF(CMAKE_VERSION VERSION_GREATER "2.8.10")
|
||||||
|
STRING(TIMESTAMP GIT_DATE_TIME "%Y-%m-%d %H:%M:%S")
|
||||||
|
ENDIF()
|
||||||
|
|
||||||
|
CONFIGURE_FILE(${ROCKSDB_SOURCE_DIR}/util/build_version.cc.in build_version.cc @ONLY)
|
||||||
|
INCLUDE_DIRECTORIES(${ROCKSDB_SOURCE_DIR}/util)
|
||||||
|
list(APPEND SOURCES ${CMAKE_CURRENT_BINARY_DIR}/build_version.cc)
|
||||||
|
|
||||||
|
ADD_CONVENIENCE_LIBRARY(rocksdblib STATIC ${SOURCES})
|
||||||
|
target_link_libraries(rocksdblib ${THIRDPARTY_LIBS} ${SYSTEM_LIBS})
|
||||||
|
if(CMAKE_COMPILER_IS_GNUCXX)
|
||||||
|
set_target_properties(rocksdblib PROPERTIES COMPILE_FLAGS "-fno-builtin-memcmp -frtti")
|
||||||
|
endif()
|
@ -394,9 +394,9 @@ static long long rocksdb_block_cache_size;
|
|||||||
/* Use unsigned long long instead of uint64_t because of MySQL compatibility */
|
/* Use unsigned long long instead of uint64_t because of MySQL compatibility */
|
||||||
static unsigned long long // NOLINT(runtime/int)
|
static unsigned long long // NOLINT(runtime/int)
|
||||||
rocksdb_rate_limiter_bytes_per_sec;
|
rocksdb_rate_limiter_bytes_per_sec;
|
||||||
static uint64_t rocksdb_info_log_level;
|
static ulong rocksdb_info_log_level;
|
||||||
static char * rocksdb_wal_dir;
|
static char * rocksdb_wal_dir;
|
||||||
static uint64_t rocksdb_index_type;
|
static ulong rocksdb_index_type;
|
||||||
static char rocksdb_background_sync;
|
static char rocksdb_background_sync;
|
||||||
static uint32_t rocksdb_debug_optimizer_n_rows;
|
static uint32_t rocksdb_debug_optimizer_n_rows;
|
||||||
static my_bool rocksdb_debug_optimizer_no_zero_cardinality;
|
static my_bool rocksdb_debug_optimizer_no_zero_cardinality;
|
||||||
@ -651,12 +651,12 @@ static MYSQL_SYSVAR_UINT(wal_recovery_mode,
|
|||||||
/* min */ (uint) rocksdb::WALRecoveryMode::kTolerateCorruptedTailRecords,
|
/* min */ (uint) rocksdb::WALRecoveryMode::kTolerateCorruptedTailRecords,
|
||||||
/* max */ (uint) rocksdb::WALRecoveryMode::kSkipAnyCorruptedRecords, 0);
|
/* max */ (uint) rocksdb::WALRecoveryMode::kSkipAnyCorruptedRecords, 0);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_ULONG(compaction_readahead_size,
|
static MYSQL_SYSVAR_SIZE_T(compaction_readahead_size,
|
||||||
rocksdb_db_options.compaction_readahead_size,
|
rocksdb_db_options.compaction_readahead_size,
|
||||||
PLUGIN_VAR_RQCMDARG,
|
PLUGIN_VAR_RQCMDARG,
|
||||||
"DBOptions::compaction_readahead_size for RocksDB",
|
"DBOptions::compaction_readahead_size for RocksDB",
|
||||||
nullptr, nullptr, rocksdb_db_options.compaction_readahead_size,
|
nullptr, nullptr, rocksdb_db_options.compaction_readahead_size,
|
||||||
/* min */ 0L, /* max */ ULONG_MAX, 0);
|
/* min */ 0L, /* max */ SIZE_T_MAX, 0);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_BOOL(new_table_reader_for_compaction_inputs,
|
static MYSQL_SYSVAR_BOOL(new_table_reader_for_compaction_inputs,
|
||||||
*reinterpret_cast<my_bool*>
|
*reinterpret_cast<my_bool*>
|
||||||
@ -695,12 +695,12 @@ static MYSQL_SYSVAR_INT(max_open_files,
|
|||||||
nullptr, nullptr, rocksdb_db_options.max_open_files,
|
nullptr, nullptr, rocksdb_db_options.max_open_files,
|
||||||
/* min */ -1, /* max */ INT_MAX, 0);
|
/* min */ -1, /* max */ INT_MAX, 0);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_ULONG(max_total_wal_size,
|
static MYSQL_SYSVAR_UINT64_T(max_total_wal_size,
|
||||||
rocksdb_db_options.max_total_wal_size,
|
rocksdb_db_options.max_total_wal_size,
|
||||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||||
"DBOptions::max_total_wal_size for RocksDB",
|
"DBOptions::max_total_wal_size for RocksDB",
|
||||||
nullptr, nullptr, rocksdb_db_options.max_total_wal_size,
|
nullptr, nullptr, rocksdb_db_options.max_total_wal_size,
|
||||||
/* min */ 0L, /* max */ LONG_MAX, 0);
|
/* min */ 0, /* max */ LONGLONG_MAX, 0);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_BOOL(disabledatasync,
|
static MYSQL_SYSVAR_BOOL(disabledatasync,
|
||||||
*reinterpret_cast<my_bool*>(&rocksdb_db_options.disableDataSync),
|
*reinterpret_cast<my_bool*>(&rocksdb_db_options.disableDataSync),
|
||||||
@ -719,12 +719,12 @@ static MYSQL_SYSVAR_STR(wal_dir, rocksdb_wal_dir,
|
|||||||
"DBOptions::wal_dir for RocksDB",
|
"DBOptions::wal_dir for RocksDB",
|
||||||
nullptr, nullptr, rocksdb_db_options.wal_dir.c_str());
|
nullptr, nullptr, rocksdb_db_options.wal_dir.c_str());
|
||||||
|
|
||||||
static MYSQL_SYSVAR_ULONG(delete_obsolete_files_period_micros,
|
static MYSQL_SYSVAR_UINT64_T(delete_obsolete_files_period_micros,
|
||||||
rocksdb_db_options.delete_obsolete_files_period_micros,
|
rocksdb_db_options.delete_obsolete_files_period_micros,
|
||||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||||
"DBOptions::delete_obsolete_files_period_micros for RocksDB",
|
"DBOptions::delete_obsolete_files_period_micros for RocksDB",
|
||||||
nullptr, nullptr, rocksdb_db_options.delete_obsolete_files_period_micros,
|
nullptr, nullptr, rocksdb_db_options.delete_obsolete_files_period_micros,
|
||||||
/* min */ 0L, /* max */ LONG_MAX, 0);
|
/* min */ 0, /* max */ LONGLONG_MAX, 0);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_INT(base_background_compactions,
|
static MYSQL_SYSVAR_INT(base_background_compactions,
|
||||||
rocksdb_db_options.base_background_compactions,
|
rocksdb_db_options.base_background_compactions,
|
||||||
@ -754,33 +754,33 @@ static MYSQL_SYSVAR_UINT(max_subcompactions,
|
|||||||
nullptr, nullptr, rocksdb_db_options.max_subcompactions,
|
nullptr, nullptr, rocksdb_db_options.max_subcompactions,
|
||||||
/* min */ 1, /* max */ MAX_SUBCOMPACTIONS, 0);
|
/* min */ 1, /* max */ MAX_SUBCOMPACTIONS, 0);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_ULONG(max_log_file_size,
|
static MYSQL_SYSVAR_SIZE_T(max_log_file_size,
|
||||||
rocksdb_db_options.max_log_file_size,
|
rocksdb_db_options.max_log_file_size,
|
||||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||||
"DBOptions::max_log_file_size for RocksDB",
|
"DBOptions::max_log_file_size for RocksDB",
|
||||||
nullptr, nullptr, rocksdb_db_options.max_log_file_size,
|
nullptr, nullptr, rocksdb_db_options.max_log_file_size,
|
||||||
/* min */ 0L, /* max */ LONG_MAX, 0);
|
/* min */ 0L, /* max */ SIZE_T_MAX, 0);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_ULONG(log_file_time_to_roll,
|
static MYSQL_SYSVAR_SIZE_T(log_file_time_to_roll,
|
||||||
rocksdb_db_options.log_file_time_to_roll,
|
rocksdb_db_options.log_file_time_to_roll,
|
||||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||||
"DBOptions::log_file_time_to_roll for RocksDB",
|
"DBOptions::log_file_time_to_roll for RocksDB",
|
||||||
nullptr, nullptr, rocksdb_db_options.log_file_time_to_roll,
|
nullptr, nullptr, rocksdb_db_options.log_file_time_to_roll,
|
||||||
/* min */ 0L, /* max */ LONG_MAX, 0);
|
/* min */ 0L, /* max */ SIZE_T_MAX, 0);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_ULONG(keep_log_file_num,
|
static MYSQL_SYSVAR_SIZE_T(keep_log_file_num,
|
||||||
rocksdb_db_options.keep_log_file_num,
|
rocksdb_db_options.keep_log_file_num,
|
||||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||||
"DBOptions::keep_log_file_num for RocksDB",
|
"DBOptions::keep_log_file_num for RocksDB",
|
||||||
nullptr, nullptr, rocksdb_db_options.keep_log_file_num,
|
nullptr, nullptr, rocksdb_db_options.keep_log_file_num,
|
||||||
/* min */ 0L, /* max */ LONG_MAX, 0);
|
/* min */ 0L, /* max */ SIZE_T_MAX, 0);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_ULONG(max_manifest_file_size,
|
static MYSQL_SYSVAR_UINT64_T(max_manifest_file_size,
|
||||||
rocksdb_db_options.max_manifest_file_size,
|
rocksdb_db_options.max_manifest_file_size,
|
||||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||||
"DBOptions::max_manifest_file_size for RocksDB",
|
"DBOptions::max_manifest_file_size for RocksDB",
|
||||||
nullptr, nullptr, rocksdb_db_options.max_manifest_file_size,
|
nullptr, nullptr, rocksdb_db_options.max_manifest_file_size,
|
||||||
/* min */ 0L, /* max */ ULONG_MAX, 0);
|
/* min */ 0L, /* max */ ULONGLONG_MAX, 0);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_INT(table_cache_numshardbits,
|
static MYSQL_SYSVAR_INT(table_cache_numshardbits,
|
||||||
rocksdb_db_options.table_cache_numshardbits,
|
rocksdb_db_options.table_cache_numshardbits,
|
||||||
@ -789,26 +789,26 @@ static MYSQL_SYSVAR_INT(table_cache_numshardbits,
|
|||||||
nullptr, nullptr, rocksdb_db_options.table_cache_numshardbits,
|
nullptr, nullptr, rocksdb_db_options.table_cache_numshardbits,
|
||||||
/* min */ 0, /* max */ INT_MAX, 0);
|
/* min */ 0, /* max */ INT_MAX, 0);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_ULONG(wal_ttl_seconds,
|
static MYSQL_SYSVAR_UINT64_T(wal_ttl_seconds,
|
||||||
rocksdb_db_options.WAL_ttl_seconds,
|
rocksdb_db_options.WAL_ttl_seconds,
|
||||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||||
"DBOptions::WAL_ttl_seconds for RocksDB",
|
"DBOptions::WAL_ttl_seconds for RocksDB",
|
||||||
nullptr, nullptr, rocksdb_db_options.WAL_ttl_seconds,
|
nullptr, nullptr, rocksdb_db_options.WAL_ttl_seconds,
|
||||||
/* min */ 0L, /* max */ LONG_MAX, 0);
|
/* min */ 0L, /* max */ LONGLONG_MAX, 0);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_ULONG(wal_size_limit_mb,
|
static MYSQL_SYSVAR_UINT64_T(wal_size_limit_mb,
|
||||||
rocksdb_db_options.WAL_size_limit_MB,
|
rocksdb_db_options.WAL_size_limit_MB,
|
||||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||||
"DBOptions::WAL_size_limit_MB for RocksDB",
|
"DBOptions::WAL_size_limit_MB for RocksDB",
|
||||||
nullptr, nullptr, rocksdb_db_options.WAL_size_limit_MB,
|
nullptr, nullptr, rocksdb_db_options.WAL_size_limit_MB,
|
||||||
/* min */ 0L, /* max */ LONG_MAX, 0);
|
/* min */ 0L, /* max */ LONGLONG_MAX, 0);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_ULONG(manifest_preallocation_size,
|
static MYSQL_SYSVAR_SIZE_T(manifest_preallocation_size,
|
||||||
rocksdb_db_options.manifest_preallocation_size,
|
rocksdb_db_options.manifest_preallocation_size,
|
||||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||||
"DBOptions::manifest_preallocation_size for RocksDB",
|
"DBOptions::manifest_preallocation_size for RocksDB",
|
||||||
nullptr, nullptr, rocksdb_db_options.manifest_preallocation_size,
|
nullptr, nullptr, rocksdb_db_options.manifest_preallocation_size,
|
||||||
/* min */ 0L, /* max */ LONG_MAX, 0);
|
/* min */ 0L, /* max */ SIZE_T_MAX, 0);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_BOOL(use_direct_reads,
|
static MYSQL_SYSVAR_BOOL(use_direct_reads,
|
||||||
*reinterpret_cast<my_bool*>(&rocksdb_db_options.use_direct_reads),
|
*reinterpret_cast<my_bool*>(&rocksdb_db_options.use_direct_reads),
|
||||||
@ -853,12 +853,12 @@ static MYSQL_SYSVAR_BOOL(advise_random_on_open,
|
|||||||
"DBOptions::advise_random_on_open for RocksDB",
|
"DBOptions::advise_random_on_open for RocksDB",
|
||||||
nullptr, nullptr, rocksdb_db_options.advise_random_on_open);
|
nullptr, nullptr, rocksdb_db_options.advise_random_on_open);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_ULONG(db_write_buffer_size,
|
static MYSQL_SYSVAR_SIZE_T(db_write_buffer_size,
|
||||||
rocksdb_db_options.db_write_buffer_size,
|
rocksdb_db_options.db_write_buffer_size,
|
||||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||||
"DBOptions::db_write_buffer_size for RocksDB",
|
"DBOptions::db_write_buffer_size for RocksDB",
|
||||||
nullptr, nullptr, rocksdb_db_options.db_write_buffer_size,
|
nullptr, nullptr, rocksdb_db_options.db_write_buffer_size,
|
||||||
/* min */ 0L, /* max */ LONG_MAX, 0);
|
/* min */ 0L, /* max */ SIZE_T_MAX, 0);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_BOOL(use_adaptive_mutex,
|
static MYSQL_SYSVAR_BOOL(use_adaptive_mutex,
|
||||||
*reinterpret_cast<my_bool*>(&rocksdb_db_options.use_adaptive_mutex),
|
*reinterpret_cast<my_bool*>(&rocksdb_db_options.use_adaptive_mutex),
|
||||||
@ -866,19 +866,19 @@ static MYSQL_SYSVAR_BOOL(use_adaptive_mutex,
|
|||||||
"DBOptions::use_adaptive_mutex for RocksDB",
|
"DBOptions::use_adaptive_mutex for RocksDB",
|
||||||
nullptr, nullptr, rocksdb_db_options.use_adaptive_mutex);
|
nullptr, nullptr, rocksdb_db_options.use_adaptive_mutex);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_ULONG(bytes_per_sync,
|
static MYSQL_SYSVAR_UINT64_T(bytes_per_sync,
|
||||||
rocksdb_db_options.bytes_per_sync,
|
rocksdb_db_options.bytes_per_sync,
|
||||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||||
"DBOptions::bytes_per_sync for RocksDB",
|
"DBOptions::bytes_per_sync for RocksDB",
|
||||||
nullptr, nullptr, rocksdb_db_options.bytes_per_sync,
|
nullptr, nullptr, rocksdb_db_options.bytes_per_sync,
|
||||||
/* min */ 0L, /* max */ LONG_MAX, 0);
|
/* min */ 0L, /* max */ ULONGLONG_MAX, 0);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_ULONG(wal_bytes_per_sync,
|
static MYSQL_SYSVAR_UINT64_T(wal_bytes_per_sync,
|
||||||
rocksdb_db_options.wal_bytes_per_sync,
|
rocksdb_db_options.wal_bytes_per_sync,
|
||||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||||
"DBOptions::wal_bytes_per_sync for RocksDB",
|
"DBOptions::wal_bytes_per_sync for RocksDB",
|
||||||
nullptr, nullptr, rocksdb_db_options.wal_bytes_per_sync,
|
nullptr, nullptr, rocksdb_db_options.wal_bytes_per_sync,
|
||||||
/* min */ 0L, /* max */ LONG_MAX, 0);
|
/* min */ 0L, /* max */ ULONGLONG_MAX, 0);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_BOOL(enable_thread_tracking,
|
static MYSQL_SYSVAR_BOOL(enable_thread_tracking,
|
||||||
*reinterpret_cast<my_bool*>(&rocksdb_db_options.enable_thread_tracking),
|
*reinterpret_cast<my_bool*>(&rocksdb_db_options.enable_thread_tracking),
|
||||||
@ -921,7 +921,7 @@ static MYSQL_SYSVAR_ENUM(index_type,
|
|||||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||||
"BlockBasedTableOptions::index_type for RocksDB",
|
"BlockBasedTableOptions::index_type for RocksDB",
|
||||||
nullptr, nullptr,
|
nullptr, nullptr,
|
||||||
(uint64_t)rocksdb_tbl_options.index_type, &index_type_typelib);
|
(ulong)rocksdb_tbl_options.index_type, &index_type_typelib);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_BOOL(hash_index_allow_collision,
|
static MYSQL_SYSVAR_BOOL(hash_index_allow_collision,
|
||||||
*reinterpret_cast<my_bool*>(&rocksdb_tbl_options.hash_index_allow_collision),
|
*reinterpret_cast<my_bool*>(&rocksdb_tbl_options.hash_index_allow_collision),
|
||||||
@ -935,12 +935,12 @@ static MYSQL_SYSVAR_BOOL(no_block_cache,
|
|||||||
"BlockBasedTableOptions::no_block_cache for RocksDB",
|
"BlockBasedTableOptions::no_block_cache for RocksDB",
|
||||||
nullptr, nullptr, rocksdb_tbl_options.no_block_cache);
|
nullptr, nullptr, rocksdb_tbl_options.no_block_cache);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_ULONG(block_size,
|
static MYSQL_SYSVAR_SIZE_T(block_size,
|
||||||
rocksdb_tbl_options.block_size,
|
rocksdb_tbl_options.block_size,
|
||||||
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
PLUGIN_VAR_RQCMDARG | PLUGIN_VAR_READONLY,
|
||||||
"BlockBasedTableOptions::block_size for RocksDB",
|
"BlockBasedTableOptions::block_size for RocksDB",
|
||||||
nullptr, nullptr, rocksdb_tbl_options.block_size,
|
nullptr, nullptr, rocksdb_tbl_options.block_size,
|
||||||
/* min */ 1L, /* max */ LONG_MAX, 0);
|
/* min */ 1L, /* max */ SIZE_T_MAX, 0);
|
||||||
|
|
||||||
static MYSQL_SYSVAR_INT(block_size_deviation,
|
static MYSQL_SYSVAR_INT(block_size_deviation,
|
||||||
rocksdb_tbl_options.block_size_deviation,
|
rocksdb_tbl_options.block_size_deviation,
|
||||||
@ -3097,7 +3097,7 @@ class Rdb_snapshot_status : public Rdb_tx_list_walker
|
|||||||
m_data += format_string("---SNAPSHOT, ACTIVE %lld sec\n"
|
m_data += format_string("---SNAPSHOT, ACTIVE %lld sec\n"
|
||||||
"%s\n"
|
"%s\n"
|
||||||
"lock count %llu, write count %llu\n",
|
"lock count %llu, write count %llu\n",
|
||||||
curr_time - snapshot_timestamp,
|
(longlong)(curr_time - snapshot_timestamp),
|
||||||
buffer,
|
buffer,
|
||||||
tx->get_lock_count(), tx->get_write_count());
|
tx->get_lock_count(), tx->get_write_count());
|
||||||
}
|
}
|
||||||
@ -3307,20 +3307,20 @@ static bool rocksdb_show_status(handlerton* const hton,
|
|||||||
str.clear();
|
str.clear();
|
||||||
rocksdb::MemoryUtil::GetApproximateMemoryUsageByType(
|
rocksdb::MemoryUtil::GetApproximateMemoryUsageByType(
|
||||||
dbs, cache_set, &temp_usage_by_type);
|
dbs, cache_set, &temp_usage_by_type);
|
||||||
snprintf(buf, sizeof(buf), "\nMemTable Total: %lu",
|
snprintf(buf, sizeof(buf), "\nMemTable Total: %llu",
|
||||||
temp_usage_by_type[rocksdb::MemoryUtil::kMemTableTotal]);
|
(ulonglong)temp_usage_by_type[rocksdb::MemoryUtil::kMemTableTotal]);
|
||||||
str.append(buf);
|
str.append(buf);
|
||||||
snprintf(buf, sizeof(buf), "\nMemTable Unflushed: %lu",
|
snprintf(buf, sizeof(buf), "\nMemTable Unflushed: %llu",
|
||||||
temp_usage_by_type[rocksdb::MemoryUtil::kMemTableUnFlushed]);
|
(ulonglong)temp_usage_by_type[rocksdb::MemoryUtil::kMemTableUnFlushed]);
|
||||||
str.append(buf);
|
str.append(buf);
|
||||||
snprintf(buf, sizeof(buf), "\nTable Readers Total: %lu",
|
snprintf(buf, sizeof(buf), "\nTable Readers Total: %llu",
|
||||||
temp_usage_by_type[rocksdb::MemoryUtil::kTableReadersTotal]);
|
(ulonglong)temp_usage_by_type[rocksdb::MemoryUtil::kTableReadersTotal]);
|
||||||
str.append(buf);
|
str.append(buf);
|
||||||
snprintf(buf, sizeof(buf), "\nCache Total: %lu",
|
snprintf(buf, sizeof(buf), "\nCache Total: %llu",
|
||||||
temp_usage_by_type[rocksdb::MemoryUtil::kCacheTotal]);
|
(ulonglong)temp_usage_by_type[rocksdb::MemoryUtil::kCacheTotal]);
|
||||||
str.append(buf);
|
str.append(buf);
|
||||||
snprintf(buf, sizeof(buf), "\nDefault Cache Capacity: %lu",
|
snprintf(buf, sizeof(buf), "\nDefault Cache Capacity: %llu",
|
||||||
internal_cache_count * kDefaultInternalCacheSize);
|
(ulonglong)internal_cache_count * kDefaultInternalCacheSize);
|
||||||
str.append(buf);
|
str.append(buf);
|
||||||
res |= print_stats(thd, "Memory_Stats", "rocksdb", str, stat_print);
|
res |= print_stats(thd, "Memory_Stats", "rocksdb", str, stat_print);
|
||||||
}
|
}
|
||||||
@ -3711,7 +3711,11 @@ static int rocksdb_init_func(void* const p)
|
|||||||
and RocksDB doesn't provide any way to check what kind of error it was.
|
and RocksDB doesn't provide any way to check what kind of error it was.
|
||||||
Checking system errno happens to work right now.
|
Checking system errno happens to work right now.
|
||||||
*/
|
*/
|
||||||
if (status.IsIOError() && errno == ENOENT)
|
if (status.IsIOError()
|
||||||
|
#ifndef _WIN32
|
||||||
|
&& errno == ENOENT
|
||||||
|
#endif
|
||||||
|
)
|
||||||
{
|
{
|
||||||
sql_print_information("RocksDB: Got ENOENT when listing column families");
|
sql_print_information("RocksDB: Got ENOENT when listing column families");
|
||||||
sql_print_information("RocksDB: assuming that we're creating a new database");
|
sql_print_information("RocksDB: assuming that we're creating a new database");
|
||||||
@ -5662,13 +5666,13 @@ int rdb_normalize_tablename(const std::string& tablename,
|
|||||||
{
|
{
|
||||||
DBUG_ASSERT(strbuf != nullptr);
|
DBUG_ASSERT(strbuf != nullptr);
|
||||||
|
|
||||||
if (tablename.size() < 2 || tablename[0] != '.' || tablename[1] != '/')
|
if (tablename.size() < 2 || tablename[0] != '.' || tablename[1] != FN_LIBCHAR)
|
||||||
{
|
{
|
||||||
DBUG_ASSERT(0); // We were not passed table name?
|
DBUG_ASSERT(0); // We were not passed table name?
|
||||||
return HA_ERR_INTERNAL_ERROR;
|
return HA_ERR_INTERNAL_ERROR;
|
||||||
}
|
}
|
||||||
|
|
||||||
size_t pos = tablename.find_first_of('/', 2);
|
size_t pos = tablename.find_first_of(FN_LIBCHAR, 2);
|
||||||
if (pos == std::string::npos)
|
if (pos == std::string::npos)
|
||||||
{
|
{
|
||||||
DBUG_ASSERT(0); // We were not passed table name?
|
DBUG_ASSERT(0); // We were not passed table name?
|
||||||
@ -9271,10 +9275,10 @@ void Rdb_drop_index_thread::run()
|
|||||||
}
|
}
|
||||||
|
|
||||||
timespec ts;
|
timespec ts;
|
||||||
clock_gettime(CLOCK_REALTIME, &ts);
|
int sec= dict_manager.is_drop_index_empty()
|
||||||
ts.tv_sec += dict_manager.is_drop_index_empty()
|
? 24 * 60 * 60 // no filtering
|
||||||
? 24*60*60 // no filtering
|
|
||||||
: 60; // filtering
|
: 60; // filtering
|
||||||
|
set_timespec(ts,sec);
|
||||||
|
|
||||||
const auto ret __attribute__((__unused__)) = mysql_cond_timedwait(
|
const auto ret __attribute__((__unused__)) = mysql_cond_timedwait(
|
||||||
&m_signal_cond, &m_signal_mutex, &ts);
|
&m_signal_cond, &m_signal_mutex, &ts);
|
||||||
@ -10805,8 +10809,7 @@ void Rdb_background_thread::run()
|
|||||||
const int WAKE_UP_INTERVAL = 1;
|
const int WAKE_UP_INTERVAL = 1;
|
||||||
|
|
||||||
timespec ts_next_sync;
|
timespec ts_next_sync;
|
||||||
clock_gettime(CLOCK_REALTIME, &ts_next_sync);
|
set_timespec(ts_next_sync, WAKE_UP_INTERVAL);
|
||||||
ts_next_sync.tv_sec += WAKE_UP_INTERVAL;
|
|
||||||
|
|
||||||
for (;;)
|
for (;;)
|
||||||
{
|
{
|
||||||
@ -10840,8 +10843,9 @@ void Rdb_background_thread::run()
|
|||||||
ddl_manager.persist_stats();
|
ddl_manager.persist_stats();
|
||||||
}
|
}
|
||||||
|
|
||||||
timespec ts;
|
// Set the next timestamp for mysql_cond_timedwait() (which ends up calling
|
||||||
clock_gettime(CLOCK_REALTIME, &ts);
|
// pthread_cond_timedwait()) to wait on.
|
||||||
|
set_timespec(ts_next_sync, WAKE_UP_INTERVAL);
|
||||||
|
|
||||||
// Flush the WAL.
|
// Flush the WAL.
|
||||||
if (rdb && rocksdb_background_sync)
|
if (rdb && rocksdb_background_sync)
|
||||||
@ -10852,10 +10856,6 @@ void Rdb_background_thread::run()
|
|||||||
rdb_handle_io_error(s, RDB_IO_ERROR_BG_THREAD);
|
rdb_handle_io_error(s, RDB_IO_ERROR_BG_THREAD);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Set the next timestamp for mysql_cond_timedwait() (which ends up calling
|
|
||||||
// pthread_cond_timedwait()) to wait on.
|
|
||||||
ts_next_sync.tv_sec= ts.tv_sec + WAKE_UP_INTERVAL;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// save remaining stats which might've left unsaved
|
// save remaining stats which might've left unsaved
|
||||||
|
@ -30,6 +30,14 @@
|
|||||||
#include "./my_global.h" /* ulonglong */
|
#include "./my_global.h" /* ulonglong */
|
||||||
#include "./sql_string.h"
|
#include "./sql_string.h"
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#undef pthread_key_create
|
||||||
|
#undef pthread_key_delete
|
||||||
|
#undef pthread_setspecific
|
||||||
|
#undef pthread_getspecific
|
||||||
|
#endif
|
||||||
|
|
||||||
|
|
||||||
/* RocksDB header files */
|
/* RocksDB header files */
|
||||||
#include "rocksdb/cache.h"
|
#include "rocksdb/cache.h"
|
||||||
#include "rocksdb/perf_context.h"
|
#include "rocksdb/perf_context.h"
|
||||||
|
@ -1,39 +1,21 @@
|
|||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
|
||||||
trx_id trx_state trx_started trx_requested_lock_id trx_wait_started trx_weight trx_mysql_thread_id trx_query trx_operation_state trx_tables_in_use trx_tables_locked trx_lock_structs trx_lock_memory_bytes trx_rows_locked trx_rows_modified trx_concurrency_tickets trx_isolation_level trx_unique_checks trx_foreign_key_checks trx_last_foreign_key_error trx_adaptive_hash_latched trx_adaptive_hash_timeout trx_is_read_only trx_autocommit_non_locking
|
trx_id trx_state trx_started trx_requested_lock_id trx_wait_started trx_weight trx_mysql_thread_id trx_query trx_operation_state trx_tables_in_use trx_tables_locked trx_lock_structs trx_lock_memory_bytes trx_rows_locked trx_rows_modified trx_concurrency_tickets trx_isolation_level trx_unique_checks trx_foreign_key_checks trx_last_foreign_key_error trx_adaptive_hash_latched trx_adaptive_hash_timeout trx_is_read_only trx_autocommit_non_locking
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_TRX but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
|
||||||
lock_id lock_trx_id lock_mode lock_type lock_table lock_index lock_space lock_page lock_rec lock_data
|
lock_id lock_trx_id lock_mode lock_type lock_table lock_index lock_space lock_page lock_rec lock_data
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_LOCKS but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
|
||||||
requesting_trx_id requested_lock_id blocking_trx_id blocking_lock_id
|
requesting_trx_id requested_lock_id blocking_trx_id blocking_lock_id
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_LOCK_WAITS but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP;
|
||||||
page_size compress_ops compress_ops_ok compress_time uncompress_ops uncompress_time
|
page_size compress_ops compress_ops_ok compress_time uncompress_ops uncompress_time
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_CMP but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP_RESET;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP_RESET;
|
||||||
page_size compress_ops compress_ops_ok compress_time uncompress_ops uncompress_time
|
page_size compress_ops compress_ops_ok compress_time uncompress_ops uncompress_time
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_CMP_RESET but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP_PER_INDEX;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP_PER_INDEX;
|
||||||
database_name table_name index_name compress_ops compress_ops_ok compress_time uncompress_ops uncompress_time
|
database_name table_name index_name compress_ops compress_ops_ok compress_time uncompress_ops uncompress_time
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_CMP_PER_INDEX but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP_PER_INDEX_RESET;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP_PER_INDEX_RESET;
|
||||||
database_name table_name index_name compress_ops compress_ops_ok compress_time uncompress_ops uncompress_time
|
database_name table_name index_name compress_ops compress_ops_ok compress_time uncompress_ops uncompress_time
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_CMP_PER_INDEX_RESET but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMPMEM;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMPMEM;
|
||||||
page_size buffer_pool_instance pages_used pages_free relocation_ops relocation_time
|
page_size buffer_pool_instance pages_used pages_free relocation_ops relocation_time
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_CMPMEM but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMPMEM_RESET;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMPMEM_RESET;
|
||||||
page_size buffer_pool_instance pages_used pages_free relocation_ops relocation_time
|
page_size buffer_pool_instance pages_used pages_free relocation_ops relocation_time
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_CMPMEM_RESET but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_METRICS;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_METRICS;
|
||||||
NAME SUBSYSTEM COUNT MAX_COUNT MIN_COUNT AVG_COUNT COUNT_RESET MAX_COUNT_RESET MIN_COUNT_RESET AVG_COUNT_RESET TIME_ENABLED TIME_DISABLED TIME_ELAPSED TIME_RESET STATUS TYPE COMMENT
|
NAME SUBSYSTEM COUNT MAX_COUNT MIN_COUNT AVG_COUNT COUNT_RESET MAX_COUNT_RESET MIN_COUNT_RESET AVG_COUNT_RESET TIME_ENABLED TIME_DISABLED TIME_ELAPSED TIME_RESET STATUS TYPE COMMENT
|
||||||
metadata_table_handles_opened metadata 0 NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL NULL disabled counter Number of table handles opened
|
metadata_table_handles_opened metadata 0 NULL NULL NULL 0 NULL NULL NULL NULL NULL NULL NULL disabled counter Number of table handles opened
|
||||||
@ -346,49 +328,25 @@ SELECT * FROM INFORMATION_SCHEMA.INNODB_FT_CONFIG;
|
|||||||
KEY VALUE
|
KEY VALUE
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_POOL_STATS;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_POOL_STATS;
|
||||||
POOL_ID POOL_SIZE FREE_BUFFERS DATABASE_PAGES OLD_DATABASE_PAGES MODIFIED_DATABASE_PAGES PENDING_DECOMPRESS PENDING_READS PENDING_FLUSH_LRU PENDING_FLUSH_LIST PAGES_MADE_YOUNG PAGES_NOT_MADE_YOUNG PAGES_MADE_YOUNG_RATE PAGES_MADE_NOT_YOUNG_RATE NUMBER_PAGES_READ NUMBER_PAGES_CREATED NUMBER_PAGES_WRITTEN PAGES_READ_RATE PAGES_CREATE_RATE PAGES_WRITTEN_RATE NUMBER_PAGES_GET HIT_RATE YOUNG_MAKE_PER_THOUSAND_GETS NOT_YOUNG_MAKE_PER_THOUSAND_GETS NUMBER_PAGES_READ_AHEAD NUMBER_READ_AHEAD_EVICTED READ_AHEAD_RATE READ_AHEAD_EVICTED_RATE LRU_IO_TOTAL LRU_IO_CURRENT UNCOMPRESS_TOTAL UNCOMPRESS_CURRENT
|
POOL_ID POOL_SIZE FREE_BUFFERS DATABASE_PAGES OLD_DATABASE_PAGES MODIFIED_DATABASE_PAGES PENDING_DECOMPRESS PENDING_READS PENDING_FLUSH_LRU PENDING_FLUSH_LIST PAGES_MADE_YOUNG PAGES_NOT_MADE_YOUNG PAGES_MADE_YOUNG_RATE PAGES_MADE_NOT_YOUNG_RATE NUMBER_PAGES_READ NUMBER_PAGES_CREATED NUMBER_PAGES_WRITTEN PAGES_READ_RATE PAGES_CREATE_RATE PAGES_WRITTEN_RATE NUMBER_PAGES_GET HIT_RATE YOUNG_MAKE_PER_THOUSAND_GETS NOT_YOUNG_MAKE_PER_THOUSAND_GETS NUMBER_PAGES_READ_AHEAD NUMBER_READ_AHEAD_EVICTED READ_AHEAD_RATE READ_AHEAD_EVICTED_RATE LRU_IO_TOTAL LRU_IO_CURRENT UNCOMPRESS_TOTAL UNCOMPRESS_CURRENT
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_BUFFER_POOL_STATS but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE;
|
||||||
POOL_ID BLOCK_ID SPACE PAGE_NUMBER PAGE_TYPE FLUSH_TYPE FIX_COUNT IS_HASHED NEWEST_MODIFICATION OLDEST_MODIFICATION ACCESS_TIME TABLE_NAME INDEX_NAME NUMBER_RECORDS DATA_SIZE COMPRESSED_SIZE PAGE_STATE IO_FIX IS_OLD FREE_PAGE_CLOCK
|
POOL_ID BLOCK_ID SPACE PAGE_NUMBER PAGE_TYPE FLUSH_TYPE FIX_COUNT IS_HASHED NEWEST_MODIFICATION OLDEST_MODIFICATION ACCESS_TIME TABLE_NAME INDEX_NAME NUMBER_RECORDS DATA_SIZE COMPRESSED_SIZE PAGE_STATE IO_FIX IS_OLD FREE_PAGE_CLOCK
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_BUFFER_PAGE but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE_LRU;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_BUFFER_PAGE_LRU;
|
||||||
POOL_ID LRU_POSITION SPACE PAGE_NUMBER PAGE_TYPE FLUSH_TYPE FIX_COUNT IS_HASHED NEWEST_MODIFICATION OLDEST_MODIFICATION ACCESS_TIME TABLE_NAME INDEX_NAME NUMBER_RECORDS DATA_SIZE COMPRESSED_SIZE COMPRESSED IO_FIX IS_OLD FREE_PAGE_CLOCK
|
POOL_ID LRU_POSITION SPACE PAGE_NUMBER PAGE_TYPE FLUSH_TYPE FIX_COUNT IS_HASHED NEWEST_MODIFICATION OLDEST_MODIFICATION ACCESS_TIME TABLE_NAME INDEX_NAME NUMBER_RECORDS DATA_SIZE COMPRESSED_SIZE COMPRESSED IO_FIX IS_OLD FREE_PAGE_CLOCK
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_BUFFER_PAGE_LRU but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLES;
|
||||||
TABLE_ID NAME FLAG N_COLS SPACE FILE_FORMAT ROW_FORMAT ZIP_PAGE_SIZE SPACE_TYPE
|
TABLE_ID NAME FLAG N_COLS SPACE FILE_FORMAT ROW_FORMAT ZIP_PAGE_SIZE SPACE_TYPE
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_TABLES but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS;
|
||||||
TABLE_ID NAME STATS_INITIALIZED NUM_ROWS CLUST_INDEX_SIZE OTHER_INDEX_SIZE MODIFIED_COUNTER AUTOINC REF_COUNT
|
TABLE_ID NAME STATS_INITIALIZED NUM_ROWS CLUST_INDEX_SIZE OTHER_INDEX_SIZE MODIFIED_COUNTER AUTOINC REF_COUNT
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_TABLESTATS but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_INDEXES;
|
||||||
INDEX_ID NAME TABLE_ID TYPE N_FIELDS PAGE_NO SPACE MERGE_THRESHOLD
|
INDEX_ID NAME TABLE_ID TYPE N_FIELDS PAGE_NO SPACE MERGE_THRESHOLD
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_INDEXES but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_COLUMNS;
|
||||||
TABLE_ID NAME POS MTYPE PRTYPE LEN
|
TABLE_ID NAME POS MTYPE PRTYPE LEN
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_COLUMNS but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FIELDS;
|
||||||
INDEX_ID NAME POS
|
INDEX_ID NAME POS
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_FIELDS but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN;
|
||||||
ID FOR_NAME REF_NAME N_COLS TYPE
|
ID FOR_NAME REF_NAME N_COLS TYPE
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_FOREIGN but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
|
||||||
ID FOR_COL_NAME REF_COL_NAME POS
|
ID FOR_COL_NAME REF_COL_NAME POS
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES;
|
||||||
SPACE NAME FLAG FILE_FORMAT ROW_FORMAT PAGE_SIZE ZIP_PAGE_SIZE SPACE_TYPE FS_BLOCK_SIZE FILE_SIZE ALLOCATED_SIZE
|
SPACE NAME FLAG FILE_FORMAT ROW_FORMAT PAGE_SIZE ZIP_PAGE_SIZE SPACE_TYPE FS_BLOCK_SIZE FILE_SIZE ALLOCATED_SIZE
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES but the InnoDB storage engine is not installed
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_DATAFILES;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_DATAFILES;
|
||||||
SPACE PATH
|
SPACE PATH
|
||||||
Warnings:
|
|
||||||
Warning 1012 InnoDB: SELECTing from INFORMATION_SCHEMA.INNODB_SYS_DATAFILES but the InnoDB storage engine is not installed
|
|
||||||
|
@ -3,12 +3,12 @@ DROP TABLE IF EXISTS VAR_POP;
|
|||||||
DROP TABLE IF EXISTS TEMP0;
|
DROP TABLE IF EXISTS TEMP0;
|
||||||
DROP TABLE IF EXISTS VAR_SAMP;
|
DROP TABLE IF EXISTS VAR_SAMP;
|
||||||
CREATE TABLE t1 (i INT, j INT, k INT, PRIMARY KEY (i)) ENGINE = ROCKSDB PARTITION BY KEY(i) PARTITIONS 4;
|
CREATE TABLE t1 (i INT, j INT, k INT, PRIMARY KEY (i)) ENGINE = ROCKSDB PARTITION BY KEY(i) PARTITIONS 4;
|
||||||
SHOW TABLES;
|
show tables;
|
||||||
Tables_in_test
|
tables_in_test
|
||||||
TEMP0
|
|
||||||
VAR_POP
|
|
||||||
VAR_SAMP
|
|
||||||
t1
|
t1
|
||||||
|
temp0
|
||||||
|
var_pop
|
||||||
|
var_samp
|
||||||
SELECT * FROM t1 ORDER BY i LIMIT 10;
|
SELECT * FROM t1 ORDER BY i LIMIT 10;
|
||||||
i j k
|
i j k
|
||||||
1 1 1
|
1 1 1
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
--ignore-db-dirs=.rocksdb --plugin-load=ha_rocksdb_se
|
--ignore-db-dirs=.rocksdb --plugin-load=$HA_ROCKSDB_SO
|
||||||
|
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
--source include/have_rocksdb.inc
|
--source include/have_rocksdb.inc
|
||||||
|
|
||||||
|
# Unixisms ("exec ls" in set_checkpoint.inc etc)
|
||||||
|
--source include/not_windows.inc
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
DROP TABLE IF EXISTS t2;
|
DROP TABLE IF EXISTS t2;
|
||||||
|
@ -3,6 +3,10 @@
|
|||||||
# following check is commented out:
|
# following check is commented out:
|
||||||
# --source include/have_fullregex.inc
|
# --source include/have_fullregex.inc
|
||||||
|
|
||||||
|
# Unixisms (exec grep)
|
||||||
|
--source include/not_windows.inc
|
||||||
|
|
||||||
|
|
||||||
SET @start_global_value = @@global.ROCKSDB_STRICT_COLLATION_EXCEPTIONS;
|
SET @start_global_value = @@global.ROCKSDB_STRICT_COLLATION_EXCEPTIONS;
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
--source include/not_windows.inc
|
||||||
--source include/have_rocksdb.inc
|
--source include/have_rocksdb.inc
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
--source include/have_rocksdb.inc
|
--source include/have_rocksdb.inc
|
||||||
|
|
||||||
|
# Bash
|
||||||
|
--source include/not_windows.inc
|
||||||
|
|
||||||
#
|
#
|
||||||
# Generate concurrent requests to alter a table using mysqlslap
|
# Generate concurrent requests to alter a table using mysqlslap
|
||||||
#
|
#
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
--source include/have_rocksdb.inc
|
--source include/have_rocksdb.inc
|
||||||
|
#Unixisms (possibly Linuxisms, exec truncate)
|
||||||
|
--source include/not_windows.inc
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
|
@ -1,5 +1,8 @@
|
|||||||
--source include/have_rocksdb.inc
|
--source include/have_rocksdb.inc
|
||||||
|
|
||||||
|
#Unixisms (--exec truncate, du, grep ,sed)
|
||||||
|
--source include/not_windows.inc
|
||||||
|
|
||||||
--disable_warnings
|
--disable_warnings
|
||||||
DROP TABLE IF EXISTS t1;
|
DROP TABLE IF EXISTS t1;
|
||||||
DROP TABLE IF EXISTS t2;
|
DROP TABLE IF EXISTS t2;
|
||||||
|
@ -7,10 +7,10 @@ INSERT INTO t values (1), (2), (3);
|
|||||||
--error ER_TABLE_EXISTS_ERROR
|
--error ER_TABLE_EXISTS_ERROR
|
||||||
CREATE TABLE t(id int primary key) engine=rocksdb;
|
CREATE TABLE t(id int primary key) engine=rocksdb;
|
||||||
FLUSH TABLES;
|
FLUSH TABLES;
|
||||||
--exec mv $MYSQLTEST_VARDIR/mysqld.1/data/test/t.frm $MYSQLTEST_VARDIR/mysqld.1/data/test/t.frm.tmp
|
move_file $MYSQLTEST_VARDIR/mysqld.1/data/test/t.frm $MYSQLTEST_VARDIR/mysqld.1/data/test/t.frm.tmp;
|
||||||
--error ER_UNKNOWN_ERROR
|
--error ER_UNKNOWN_ERROR
|
||||||
CREATE TABLE t(id int primary key) engine=rocksdb;
|
CREATE TABLE t(id int primary key) engine=rocksdb;
|
||||||
--exec mv $MYSQLTEST_VARDIR/mysqld.1/data/test/t.frm.tmp $MYSQLTEST_VARDIR/mysqld.1/data/test/t.frm
|
move_file $MYSQLTEST_VARDIR/mysqld.1/data/test/t.frm.tmp $MYSQLTEST_VARDIR/mysqld.1/data/test/t.frm;
|
||||||
FLUSH TABLES;
|
FLUSH TABLES;
|
||||||
SELECT * FROM t;
|
SELECT * FROM t;
|
||||||
DROP TABLE t;
|
DROP TABLE t;
|
||||||
|
@ -3,8 +3,14 @@
|
|||||||
# Make sure that the InnoDb information schema tables are disabled when InnoDB
|
# Make sure that the InnoDb information schema tables are disabled when InnoDB
|
||||||
# is turned off and attempting to access them doesn't crash.
|
# is turned off and attempting to access them doesn't crash.
|
||||||
|
|
||||||
|
# Disable warnings, as the table names in warnings appear in lower or uppercase
|
||||||
|
# depending on platform
|
||||||
|
|
||||||
|
--disable_warnings
|
||||||
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_TRX;
|
||||||
#Not in MariaDB: SELECT * FROM INFORMATION_SCHEMA.INNODB_FILE_STATUS;
|
#Not in MariaDB: SELECT * FROM INFORMATION_SCHEMA.INNODB_FILE_STATUS;
|
||||||
|
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCKS;
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_LOCK_WAITS;
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_CMP;
|
||||||
@ -33,3 +39,5 @@ SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_FOREIGN_COLS;
|
|||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_TABLESPACES;
|
||||||
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_DATAFILES;
|
SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_DATAFILES;
|
||||||
#Not in MariaDB: SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_DOCSTORE_FIELDS;
|
#Not in MariaDB: SELECT * FROM INFORMATION_SCHEMA.INNODB_SYS_DOCSTORE_FIELDS;
|
||||||
|
|
||||||
|
--enable_warnings
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
|
||||||
--source include/have_rocksdb.inc
|
--source include/have_rocksdb.inc
|
||||||
--source include/have_partition.inc
|
--source include/have_partition.inc
|
||||||
|
|
||||||
@ -30,7 +31,7 @@ CREATE TABLE TEMP0 (a int) ENGINE = ROCKSDB PARTITION BY HASH (a) PARTITIONS 3;
|
|||||||
CREATE TABLE VAR_SAMP (a int) ENGINE = ROCKSDB PARTITION BY HASH (a) PARTITIONS 10;
|
CREATE TABLE VAR_SAMP (a int) ENGINE = ROCKSDB PARTITION BY HASH (a) PARTITIONS 10;
|
||||||
|
|
||||||
--enable_query_log
|
--enable_query_log
|
||||||
|
--lowercase_result
|
||||||
SHOW TABLES;
|
SHOW TABLES;
|
||||||
|
|
||||||
SELECT * FROM t1 ORDER BY i LIMIT 10;
|
SELECT * FROM t1 ORDER BY i LIMIT 10;
|
||||||
|
@ -1,4 +1,6 @@
|
|||||||
--source include/have_rocksdb.inc
|
--source include/have_rocksdb.inc
|
||||||
|
# Does not run on Windows, because of unixisms (exec grep, cut, truncate file with exec echo)
|
||||||
|
--source include/not_windows.inc
|
||||||
|
|
||||||
#
|
#
|
||||||
# Tests for row checksums feature
|
# Tests for row checksums feature
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
--source include/have_rocksdb.inc
|
--source include/have_rocksdb.inc
|
||||||
|
# Unixisms (exec ls | wc -l)
|
||||||
|
--source include/not_windows.inc
|
||||||
let $ddir = $MYSQL_TMP_DIR/.rocksdb_datadir.test.install.db;
|
let $ddir = $MYSQL_TMP_DIR/.rocksdb_datadir.test.install.db;
|
||||||
let $rdb_ddir = $MYSQL_TMP_DIR/.rocksdb_datadir.test;
|
let $rdb_ddir = $MYSQL_TMP_DIR/.rocksdb_datadir.test;
|
||||||
let $sql_file = $MYSQL_TMP_DIR/rocksdb_datadir.sql;
|
let $sql_file = $MYSQL_TMP_DIR/rocksdb_datadir.sql;
|
||||||
|
@ -99,6 +99,7 @@ drop table t1, t2;
|
|||||||
--echo #
|
--echo #
|
||||||
CREATE TABLE t1 (c1 INT NOT NULL, c2 CHAR(5)) PARTITION BY HASH(c1) PARTITIONS 4;
|
CREATE TABLE t1 (c1 INT NOT NULL, c2 CHAR(5)) PARTITION BY HASH(c1) PARTITIONS 4;
|
||||||
INSERT INTO t1 VALUES(1,'a');
|
INSERT INTO t1 VALUES(1,'a');
|
||||||
|
--replace_result \\ /
|
||||||
--error ER_ERROR_ON_RENAME
|
--error ER_ERROR_ON_RENAME
|
||||||
RENAME TABLE t1 TO db3.t3;
|
RENAME TABLE t1 TO db3.t3;
|
||||||
SELECT * FROM t1;
|
SELECT * FROM t1;
|
||||||
|
@ -20,10 +20,11 @@ let TESTDB = $TESTDB;
|
|||||||
|
|
||||||
--perl
|
--perl
|
||||||
|
|
||||||
|
$ENV{'RQG_HOME'}=$ENV{'RQG_BASE'};
|
||||||
foreach $grammar_file (split(/ /, $ENV{'GRAMMAR_FILES'})) {
|
foreach $grammar_file (split(/ /, $ENV{'GRAMMAR_FILES'})) {
|
||||||
|
|
||||||
# Errors from the gentest.pl file will be captured in the results file
|
# Errors from the gentest.pl file will be captured in the results file
|
||||||
my $cmd = "RQG_HOME=$ENV{'RQG_BASE'} perl $ENV{'RQG_BASE'}/gentest.pl " .
|
my $cmd = "perl $ENV{'RQG_BASE'}/gentest.pl " .
|
||||||
"--dsn=dbi:mysql:host=:port=:user=root:database=$ENV{'TESTDB'}" .
|
"--dsn=dbi:mysql:host=:port=:user=root:database=$ENV{'TESTDB'}" .
|
||||||
":mysql_socket=$ENV{'MYSQL_SOCKET'} " .
|
":mysql_socket=$ENV{'MYSQL_SOCKET'} " .
|
||||||
"--gendata=$ENV{'RQG_BASE'}/conf/$ENV{'TESTDIR'}/$ENV{'DATA_FILE'} " .
|
"--gendata=$ENV{'RQG_BASE'}/conf/$ENV{'TESTDIR'}/$ENV{'DATA_FILE'} " .
|
||||||
|
@ -1,4 +1,7 @@
|
|||||||
--source include/have_rocksdb.inc
|
--source include/have_rocksdb.inc
|
||||||
|
#Unixism (exec awk)
|
||||||
|
-- source include/not_windows.inc
|
||||||
|
|
||||||
SET @cur_long_query_time = @@long_query_time;
|
SET @cur_long_query_time = @@long_query_time;
|
||||||
# Set the long query time to something big so that nothing unexpected gets into it
|
# Set the long query time to something big so that nothing unexpected gets into it
|
||||||
SET @@long_query_time = 600;
|
SET @@long_query_time = 600;
|
||||||
|
@ -60,7 +60,7 @@ SELECT table_name, data_length>0, index_length>0 FROM information_schema.tables
|
|||||||
--source include/restart_mysqld.inc
|
--source include/restart_mysqld.inc
|
||||||
|
|
||||||
# give the server a chance to load in statistics
|
# give the server a chance to load in statistics
|
||||||
--exec sleep 5
|
--sleep 5
|
||||||
|
|
||||||
SELECT table_name, table_rows FROM information_schema.tables WHERE table_schema = DATABASE();
|
SELECT table_name, table_rows FROM information_schema.tables WHERE table_schema = DATABASE();
|
||||||
SELECT table_name, data_length>0, index_length>0 FROM information_schema.tables WHERE table_schema = DATABASE();
|
SELECT table_name, data_length>0, index_length>0 FROM information_schema.tables WHERE table_schema = DATABASE();
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
--source include/have_rocksdb.inc
|
--source include/have_rocksdb.inc
|
||||||
--source include/have_partition.inc
|
--source include/have_partition.inc
|
||||||
|
# Unixism, exec sed
|
||||||
|
--source include/not_windows.inc
|
||||||
|
|
||||||
let ddl= $MYSQL_TMP_DIR/unique_sec.sql;
|
let ddl= $MYSQL_TMP_DIR/unique_sec.sql;
|
||||||
--exec sed s/##CF##//g ../storage/rocksdb/mysql-test/rocksdb/t/unique_sec.inc > $ddl
|
--exec sed s/##CF##//g ../storage/rocksdb/mysql-test/rocksdb/t/unique_sec.inc > $ddl
|
||||||
|
@ -15,7 +15,11 @@
|
|||||||
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */
|
||||||
|
|
||||||
#include <my_config.h>
|
#include <my_config.h>
|
||||||
|
#ifdef _WIN32
|
||||||
|
#define _CRT_RAND_S
|
||||||
|
#include <stdlib.h>
|
||||||
|
#define rand_r rand_s
|
||||||
|
#endif
|
||||||
/* This C++ file's header file */
|
/* This C++ file's header file */
|
||||||
#include "./properties_collector.h"
|
#include "./properties_collector.h"
|
||||||
|
|
||||||
@ -130,10 +134,9 @@ void Rdb_tbl_prop_coll::AdjustDeletedRows(rocksdb::EntryType type)
|
|||||||
Rdb_index_stats* Rdb_tbl_prop_coll::AccessStats(
|
Rdb_index_stats* Rdb_tbl_prop_coll::AccessStats(
|
||||||
const rocksdb::Slice& key)
|
const rocksdb::Slice& key)
|
||||||
{
|
{
|
||||||
GL_INDEX_ID gl_index_id = {
|
GL_INDEX_ID gl_index_id;
|
||||||
.cf_id = m_cf_id,
|
gl_index_id.cf_id = m_cf_id;
|
||||||
.index_id = rdb_netbuf_to_uint32(reinterpret_cast<const uchar*>(key.data()))
|
gl_index_id.index_id = rdb_netbuf_to_uint32(reinterpret_cast<const uchar*>(key.data()));
|
||||||
};
|
|
||||||
|
|
||||||
if (m_last_stats == nullptr || m_last_stats->m_gl_index_id != gl_index_id)
|
if (m_last_stats == nullptr || m_last_stats->m_gl_index_id != gl_index_id)
|
||||||
{
|
{
|
||||||
|
@ -20,6 +20,16 @@
|
|||||||
#include <string>
|
#include <string>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <stdlib.h>
|
||||||
|
#define htobe64 _byteswap_uint64
|
||||||
|
#define be64toh _byteswap_uint64
|
||||||
|
#define htobe32 _byteswap_ulong
|
||||||
|
#define be32toh _byteswap_ulong
|
||||||
|
#define htobe16 _byteswap_ushort
|
||||||
|
#define be16toh _byteswap_ushort
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace myrocks {
|
namespace myrocks {
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -1523,7 +1523,7 @@ static void rdb_pack_with_varchar_encoding(
|
|||||||
// pad with zeros if necessary;
|
// pad with zeros if necessary;
|
||||||
for (size_t idx= 0; idx < padding_bytes; idx++)
|
for (size_t idx= 0; idx < padding_bytes; idx++)
|
||||||
*(ptr++)= 0;
|
*(ptr++)= 0;
|
||||||
*(ptr++) = 255 - padding_bytes;
|
*(ptr++) = 255 - (uchar)padding_bytes;
|
||||||
|
|
||||||
xfrm_len -= copy_len;
|
xfrm_len -= copy_len;
|
||||||
encoded_size += RDB_ESCAPE_LENGTH;
|
encoded_size += RDB_ESCAPE_LENGTH;
|
||||||
@ -1814,7 +1814,7 @@ static int rdb_unpack_binary_or_utf8_varchar(
|
|||||||
/* Save the length */
|
/* Save the length */
|
||||||
if (field_var->length_bytes == 1)
|
if (field_var->length_bytes == 1)
|
||||||
{
|
{
|
||||||
d0[0]= len;
|
d0[0]= (uchar)len;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1944,7 +1944,7 @@ static int rdb_unpack_binary_or_utf8_varchar_space_pad(
|
|||||||
/* Save the length */
|
/* Save the length */
|
||||||
if (field_var->length_bytes == 1)
|
if (field_var->length_bytes == 1)
|
||||||
{
|
{
|
||||||
d0[0]= len;
|
d0[0]= (uchar)len;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -2257,7 +2257,7 @@ rdb_unpack_simple_varchar_space_pad(Rdb_field_packing* const fpi,
|
|||||||
/* Save the length */
|
/* Save the length */
|
||||||
if (field_var->length_bytes == 1)
|
if (field_var->length_bytes == 1)
|
||||||
{
|
{
|
||||||
d0[0]= len;
|
d0[0]= (uchar)len;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -3796,7 +3796,7 @@ rocksdb::Slice Rdb_binlog_manager::pack_value(uchar* const buf,
|
|||||||
|
|
||||||
// store binlog file name length
|
// store binlog file name length
|
||||||
DBUG_ASSERT(strlen(binlog_name) <= FN_REFLEN);
|
DBUG_ASSERT(strlen(binlog_name) <= FN_REFLEN);
|
||||||
const uint16_t binlog_name_len = strlen(binlog_name);
|
const uint16_t binlog_name_len = (uint16_t)strlen(binlog_name);
|
||||||
rdb_netbuf_store_uint16(buf+pack_len, binlog_name_len);
|
rdb_netbuf_store_uint16(buf+pack_len, binlog_name_len);
|
||||||
pack_len += sizeof(uint16);
|
pack_len += sizeof(uint16);
|
||||||
|
|
||||||
@ -3810,7 +3810,7 @@ rocksdb::Slice Rdb_binlog_manager::pack_value(uchar* const buf,
|
|||||||
|
|
||||||
// store binlog gtid length.
|
// store binlog gtid length.
|
||||||
// If gtid was not set, store 0 instead
|
// If gtid was not set, store 0 instead
|
||||||
const uint16_t binlog_gtid_len = binlog_gtid? strlen(binlog_gtid) : 0;
|
const uint16_t binlog_gtid_len = binlog_gtid? (uint16_t)strlen(binlog_gtid) : 0;
|
||||||
rdb_netbuf_store_uint16(buf+pack_len, binlog_gtid_len);
|
rdb_netbuf_store_uint16(buf+pack_len, binlog_gtid_len);
|
||||||
pack_len += sizeof(uint16);
|
pack_len += sizeof(uint16);
|
||||||
|
|
||||||
|
@ -24,9 +24,12 @@
|
|||||||
#include <unordered_set>
|
#include <unordered_set>
|
||||||
#include <utility>
|
#include <utility>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
#include <array>
|
||||||
|
|
||||||
/* C standard header files */
|
/* C standard header files */
|
||||||
|
#ifndef _WIN32
|
||||||
#include <arpa/inet.h>
|
#include <arpa/inet.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
/* MyRocks header files */
|
/* MyRocks header files */
|
||||||
#include "./ha_rocksdb.h"
|
#include "./ha_rocksdb.h"
|
||||||
|
@ -797,7 +797,7 @@ static int rdb_i_s_global_info_fill_table(
|
|||||||
char gtid_buf[GTID_BUF_LEN]= {0};
|
char gtid_buf[GTID_BUF_LEN]= {0};
|
||||||
|
|
||||||
if (blm->read(file_buf, &pos, gtid_buf)) {
|
if (blm->read(file_buf, &pos, gtid_buf)) {
|
||||||
snprintf(pos_buf, INT_BUF_LEN, "%lu", (uint64_t) pos);
|
snprintf(pos_buf, INT_BUF_LEN, "%llu", (ulonglong) pos);
|
||||||
ret |= rdb_global_info_fill_row(thd, tables, "BINLOG", "FILE", file_buf);
|
ret |= rdb_global_info_fill_row(thd, tables, "BINLOG", "FILE", file_buf);
|
||||||
ret |= rdb_global_info_fill_row(thd, tables, "BINLOG", "POS", pos_buf);
|
ret |= rdb_global_info_fill_row(thd, tables, "BINLOG", "POS", pos_buf);
|
||||||
ret |= rdb_global_info_fill_row(thd, tables, "BINLOG", "GTID", gtid_buf);
|
ret |= rdb_global_info_fill_row(thd, tables, "BINLOG", "GTID", gtid_buf);
|
||||||
@ -1534,7 +1534,7 @@ struct st_maria_plugin rdb_i_s_index_file_map=
|
|||||||
0, /* flags */
|
0, /* flags */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct st_mysql_plugin rdb_i_s_lock_info=
|
struct st_maria_plugin rdb_i_s_lock_info=
|
||||||
{
|
{
|
||||||
MYSQL_INFORMATION_SCHEMA_PLUGIN,
|
MYSQL_INFORMATION_SCHEMA_PLUGIN,
|
||||||
&rdb_i_s_info,
|
&rdb_i_s_info,
|
||||||
@ -1551,7 +1551,7 @@ struct st_mysql_plugin rdb_i_s_lock_info=
|
|||||||
0, /* flags */
|
0, /* flags */
|
||||||
};
|
};
|
||||||
|
|
||||||
struct st_mysql_plugin rdb_i_s_trx_info=
|
struct st_maria_plugin rdb_i_s_trx_info=
|
||||||
{
|
{
|
||||||
MYSQL_INFORMATION_SCHEMA_PLUGIN,
|
MYSQL_INFORMATION_SCHEMA_PLUGIN,
|
||||||
&rdb_i_s_info,
|
&rdb_i_s_info,
|
||||||
|
@ -64,7 +64,7 @@ bool Regex_list_handler::set_patterns(const std::string& pattern_str)
|
|||||||
delete m_pattern;
|
delete m_pattern;
|
||||||
m_pattern= pattern;
|
m_pattern= pattern;
|
||||||
}
|
}
|
||||||
catch (const std::regex_error& e)
|
catch (const std::regex_error&)
|
||||||
{
|
{
|
||||||
// This pattern is invalid.
|
// This pattern is invalid.
|
||||||
pattern_valid= false;
|
pattern_valid= false;
|
||||||
|
@ -68,7 +68,7 @@ class Rdb_sst_info {
|
|||||||
const rocksdb::DBOptions& m_db_options;
|
const rocksdb::DBOptions& m_db_options;
|
||||||
uint64_t m_curr_size;
|
uint64_t m_curr_size;
|
||||||
uint64_t m_max_size;
|
uint64_t m_max_size;
|
||||||
uint m_sst_count;
|
uint32_t m_sst_count;
|
||||||
std::string m_error_msg;
|
std::string m_error_msg;
|
||||||
std::string m_prefix;
|
std::string m_prefix;
|
||||||
static std::string m_suffix;
|
static std::string m_suffix;
|
||||||
|
@ -18,6 +18,17 @@
|
|||||||
|
|
||||||
/* MySQL includes */
|
/* MySQL includes */
|
||||||
#include "./my_global.h"
|
#include "./my_global.h"
|
||||||
|
#ifdef _WIN32
|
||||||
|
#include <my_pthread.h>
|
||||||
|
/*
|
||||||
|
Rocksdb implements their own pthread_key functions
|
||||||
|
undefine some my_pthread.h macros
|
||||||
|
*/
|
||||||
|
#undef pthread_key_create
|
||||||
|
#undef pthread_key_delete
|
||||||
|
#undef pthread_setspecific
|
||||||
|
#undef pthread_getspecific
|
||||||
|
#endif
|
||||||
#include <mysql/psi/mysql_table.h>
|
#include <mysql/psi/mysql_table.h>
|
||||||
#ifdef MARIAROCKS_NOT_YET
|
#ifdef MARIAROCKS_NOT_YET
|
||||||
#include <mysql/thread_pool_priv.h>
|
#include <mysql/thread_pool_priv.h>
|
||||||
@ -64,7 +75,22 @@ class Rdb_thread
|
|||||||
|
|
||||||
int join()
|
int join()
|
||||||
{
|
{
|
||||||
|
#ifndef _WIN32
|
||||||
return pthread_join(m_handle, nullptr);
|
return pthread_join(m_handle, nullptr);
|
||||||
|
#else
|
||||||
|
/*
|
||||||
|
mysys on Windows creates "detached" threads in pthread_create().
|
||||||
|
|
||||||
|
m_handle here is the thread id I(it is not reused by the OS
|
||||||
|
thus it is safe to state there can't be other thread with
|
||||||
|
the same id at this point).
|
||||||
|
|
||||||
|
If thread is already finished before pthread_join(),
|
||||||
|
we get EINVAL, and it is safe to ignore and handle this as success.
|
||||||
|
*/
|
||||||
|
(void)pthread_join(m_handle, nullptr);
|
||||||
|
return 0;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void uninit();
|
void uninit();
|
||||||
|
Loading…
x
Reference in New Issue
Block a user