Merge 10.2 into 10.3
This commit is contained in:
commit
289721de9a
@ -17,6 +17,12 @@ macro(restore WHAT)
|
|||||||
set(CPACK_RPM_PACKAGE_${WHAT} ${orig_CPACK_RPM_PACKAGE_${WHAT}})
|
set(CPACK_RPM_PACKAGE_${WHAT} ${orig_CPACK_RPM_PACKAGE_${WHAT}})
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
|
foreach (WHAT SUMMARY DESCRIPTION)
|
||||||
|
if(NOT CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_${WHAT})
|
||||||
|
message(FATAL_ERROR "CPACK_RPM_${CPACK_RPM_PACKAGE_COMPONENT}_PACKAGE_${WHAT} is not defined")
|
||||||
|
endif()
|
||||||
|
endforeach()
|
||||||
|
|
||||||
set_from_component(LICENSE)
|
set_from_component(LICENSE)
|
||||||
set_from_component(VENDOR)
|
set_from_component(VENDOR)
|
||||||
|
|
||||||
|
@ -61,13 +61,26 @@ conditions of the GNU General Public License Version 2 (http://www.gnu.org/licen
|
|||||||
MariaDB documentation can be found at https://mariadb.com/kb
|
MariaDB documentation can be found at https://mariadb.com/kb
|
||||||
MariaDB bug reports should be submitted through https://jira.mariadb.org")
|
MariaDB bug reports should be submitted through https://jira.mariadb.org")
|
||||||
|
|
||||||
|
# mariabackup
|
||||||
|
SET(CPACK_RPM_backup_PACKAGE_SUMMARY "Backup tool for MariaDB server")
|
||||||
|
SET(CPACK_RPM_backup_PACKAGE_DESCRIPTION "Mariabackup is an open source tool provided by MariaDB
|
||||||
|
for performing physical online backups of InnoDB, Aria and MyISAM tables.
|
||||||
|
For InnoDB, “hot online” backups are possible.
|
||||||
|
It was originally forked from Percona XtraBackup 2.3.8.")
|
||||||
|
|
||||||
# Packages with default description
|
# Packages with default description
|
||||||
SET(CPACK_RPM_client_PACKAGE_SUMMARY "MariaDB database client binaries")
|
SET(CPACK_RPM_client_PACKAGE_SUMMARY "MariaDB database client binaries")
|
||||||
|
SET(CPACK_RPM_client_PACKAGE_DESCRIPTION "${CPACK_RPM_PACKAGE_DESCRIPTION}")
|
||||||
SET(CPACK_RPM_common_PACKAGE_SUMMARY "MariaDB database common files (e.g. /etc/mysql/conf.d/mariadb.cnf)")
|
SET(CPACK_RPM_common_PACKAGE_SUMMARY "MariaDB database common files (e.g. /etc/mysql/conf.d/mariadb.cnf)")
|
||||||
|
SET(CPACK_RPM_common_PACKAGE_DESCRIPTION "${CPACK_RPM_PACKAGE_DESCRIPTION}")
|
||||||
SET(CPACK_RPM_compat_PACKAGE_SUMMARY "MariaDB database client library MySQL compat package")
|
SET(CPACK_RPM_compat_PACKAGE_SUMMARY "MariaDB database client library MySQL compat package")
|
||||||
|
SET(CPACK_RPM_compat_PACKAGE_DESCRIPTION "${CPACK_RPM_PACKAGE_DESCRIPTION}")
|
||||||
SET(CPACK_RPM_devel_PACKAGE_SUMMARY "MariaDB database development files")
|
SET(CPACK_RPM_devel_PACKAGE_SUMMARY "MariaDB database development files")
|
||||||
|
SET(CPACK_RPM_devel_PACKAGE_DESCRIPTION "${CPACK_RPM_PACKAGE_DESCRIPTION}")
|
||||||
SET(CPACK_RPM_server_PACKAGE_SUMMARY "MariaDB database server binaries")
|
SET(CPACK_RPM_server_PACKAGE_SUMMARY "MariaDB database server binaries")
|
||||||
|
SET(CPACK_RPM_server_PACKAGE_DESCRIPTION "${CPACK_RPM_PACKAGE_DESCRIPTION}")
|
||||||
SET(CPACK_RPM_test_PACKAGE_SUMMARY "MariaDB database regression test suite")
|
SET(CPACK_RPM_test_PACKAGE_SUMMARY "MariaDB database regression test suite")
|
||||||
|
SET(CPACK_RPM_test_PACKAGE_DESCRIPTION "${CPACK_RPM_PACKAGE_DESCRIPTION}")
|
||||||
|
|
||||||
# libmariadb3
|
# libmariadb3
|
||||||
SET(CPACK_RPM_shared_PACKAGE_SUMMARY "LGPL MariaDB database client library")
|
SET(CPACK_RPM_shared_PACKAGE_SUMMARY "LGPL MariaDB database client library")
|
||||||
@ -80,51 +93,6 @@ and PHP's mysqlnd extension.
|
|||||||
This product includes PHP software, freely available from
|
This product includes PHP software, freely available from
|
||||||
http://www.php.net/software/")
|
http://www.php.net/software/")
|
||||||
|
|
||||||
# Summary and descriptions per package
|
|
||||||
SET(CPACK_RPM_backup_PACKAGE_SUMMARY "Backup tool for MariaDB server")
|
|
||||||
SET(CPACK_RPM_backup_PACKAGE_DESCRIPTION "Mariabackup is an open source tool provided by MariaDB
|
|
||||||
for performing physical online backups of InnoDB, Aria and MyISAM tables.
|
|
||||||
For InnoDB, “hot online” backups are possible.
|
|
||||||
It was originally forked from Percona XtraBackup 2.3.8.")
|
|
||||||
|
|
||||||
SET(CPACK_RPM_cassandra-engine_PACKAGE_SUMMARY "Cassandra storage engine for MariaDB")
|
|
||||||
SET(CPACK_RPM_cassandra-engine_PACKAGE_DESCRIPTION "The Cassandra Storage Engine allows access to data in a Cassandra cluster from
|
|
||||||
MariaDB, combining the best of SQL and no-SQL worlds. Cassandra SE (storage
|
|
||||||
engine) makes Cassandra's column family appear as a table in MariaDB that you
|
|
||||||
can insert to, update, and select from. You can write joins against this table,
|
|
||||||
it is possible to join data that's stored in MariaDB with data that's stored in
|
|
||||||
Cassandra.")
|
|
||||||
|
|
||||||
SET(CPACK_RPM_connect-engine_PACKAGE_SUMMARY "Connect storage engine for MariaDB")
|
|
||||||
SET(CPACK_RPM_connect-engine_PACKAGE_DESCRIPTION "Connect engine supports a number of file formats (dbf, xml, txt, bin, etc),
|
|
||||||
connections to ODBC tables and remote MySQL tables, as well as a number of
|
|
||||||
other interesting features.")
|
|
||||||
|
|
||||||
SET(CPACK_RPM_cracklib-password-check_PACKAGE_SUMMARY "CrackLib Password Validation Plugin for MariaDB")
|
|
||||||
SET(CPACK_RPM_cracklib-password-check_PACKAGE_DESCRIPTION "This password validation plugin uses cracklib to allow only
|
|
||||||
sufficiently secure (as defined by cracklib) user passwords in MariaDB.")
|
|
||||||
|
|
||||||
SET(CPACK_RPM_gssapi-server_PACKAGE_SUMMARY "GSSAPI authentication plugin for MariaDB server")
|
|
||||||
SET(CPACK_RPM_gssapi-server_PACKAGE_DESCRIPTION "The gssapi authentication plugin allows the user to authenticate with services
|
|
||||||
that use the Generic Security Services Application Program Interface (GSSAPI).
|
|
||||||
The gssapi authentication plugin is most often used for authenticating with Microsoft Active Directory.")
|
|
||||||
|
|
||||||
SET(CPACK_RPM_oqgraph-engine_PACKAGE_SUMMARY "OQGraph storage engine for MariaDB")
|
|
||||||
SET(CPACK_RPM_oqgraph-engine_PACKAGE_DESCRIPTION "The Open Query GRAPH computation engine, or OQGRAPH as the engine itself is called,
|
|
||||||
allows you to handle hierarchies (tree structures) and complex graphs
|
|
||||||
(nodes having many connections in several directions).
|
|
||||||
It is intended to be used for retrieving hierarchical information, such as those used for graphs,
|
|
||||||
routes or social relationships, in plain SQL.")
|
|
||||||
|
|
||||||
SET(CPACK_RPM_rocksdb-engine_PACKAGE_SUMMARY "RocksDB storage engine for MariaDB")
|
|
||||||
SET(CPACK_RPM_rocksdb-engine_PACKAGE_DESCRIPTION "The RocksDB storage engine is a high performance storage engine, aimed
|
|
||||||
at maximising storage efficiency while maintaining InnoDB-like performance.")
|
|
||||||
|
|
||||||
SET(CPACK_RPM_tokudb-engine_PACKAGE_SUMMARY "TokuDB storage engine for MariaDB")
|
|
||||||
SET(CPACK_RPM_tokudb-engine_PACKAGE_DESCRIPTION "The TokuDB storage engine is for use in high-performance and write-intensive
|
|
||||||
environments, offering increased compression and better performance based
|
|
||||||
on fractal indexes.")
|
|
||||||
|
|
||||||
SET(CPACK_RPM_SPEC_MORE_DEFINE "
|
SET(CPACK_RPM_SPEC_MORE_DEFINE "
|
||||||
%define mysql_vendor ${CPACK_PACKAGE_VENDOR}
|
%define mysql_vendor ${CPACK_PACKAGE_VENDOR}
|
||||||
%define mysqlversion ${MYSQL_NO_DASH_VERSION}
|
%define mysqlversion ${MYSQL_NO_DASH_VERSION}
|
||||||
|
@ -16,11 +16,11 @@
|
|||||||
|
|
||||||
OPTION(WITH_MARIABACKUP "Include mariabackup" ON)
|
OPTION(WITH_MARIABACKUP "Include mariabackup" ON)
|
||||||
ADD_FEATURE_INFO(MARIABACKUP WITH_MARIABACKUP "MariaDB Backup Utility")
|
ADD_FEATURE_INFO(MARIABACKUP WITH_MARIABACKUP "MariaDB Backup Utility")
|
||||||
|
|
||||||
IF(NOT WITH_MARIABACKUP)
|
IF(NOT WITH_MARIABACKUP)
|
||||||
RETURN()
|
RETURN()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
IF(NOT WIN32)
|
IF(NOT WIN32)
|
||||||
CHECK_SYMBOL_EXISTS(regcomp regex.h HAVE_SYSTEM_REGEX)
|
CHECK_SYMBOL_EXISTS(regcomp regex.h HAVE_SYSTEM_REGEX)
|
||||||
IF(HAVE_SYSTEM_REGEX)
|
IF(HAVE_SYSTEM_REGEX)
|
||||||
@ -28,7 +28,6 @@ IF(NOT WIN32)
|
|||||||
ENDIF()
|
ENDIF()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
|
||||||
INCLUDE_DIRECTORIES(
|
INCLUDE_DIRECTORIES(
|
||||||
${CMAKE_SOURCE_DIR}/include
|
${CMAKE_SOURCE_DIR}/include
|
||||||
${CMAKE_SOURCE_DIR}/sql
|
${CMAKE_SOURCE_DIR}/sql
|
||||||
|
@ -443,8 +443,8 @@ extract_worker_thread_func(void *arg)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (chunk.type == XB_CHUNK_TYPE_EOF) {
|
if (chunk.type == XB_CHUNK_TYPE_EOF) {
|
||||||
pthread_mutex_lock(ctxt->mutex);
|
|
||||||
pthread_mutex_unlock(&entry->mutex);
|
pthread_mutex_unlock(&entry->mutex);
|
||||||
|
pthread_mutex_lock(ctxt->mutex);
|
||||||
my_hash_delete(ctxt->filehash, (uchar *) entry);
|
my_hash_delete(ctxt->filehash, (uchar *) entry);
|
||||||
pthread_mutex_unlock(ctxt->mutex);
|
pthread_mutex_unlock(ctxt->mutex);
|
||||||
|
|
||||||
|
@ -2136,6 +2136,54 @@ drop procedure sp1;
|
|||||||
drop function g;
|
drop function g;
|
||||||
drop function f;
|
drop function f;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
#
|
||||||
|
# MDEV-27086: union using CTEs in CREATE TABLE
|
||||||
|
#
|
||||||
|
create or replace temporary table tmp as
|
||||||
|
with cte1 as (select 1 as a), cte2 as (select 2 as a)
|
||||||
|
select * from cte1 union select * from cte2;
|
||||||
|
select * from tmp;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
2
|
||||||
|
create table t1 as
|
||||||
|
with cte1 as (select 1 as a), cte2 as (select 2 as a)
|
||||||
|
select * from cte1 union select * from cte2;
|
||||||
|
select * from t1;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
2
|
||||||
|
insert into t1 values (3);
|
||||||
|
create table t2 as
|
||||||
|
with cte1 as (select * from t1 where a <2), cte2 as (select * from t1 where a > 2)
|
||||||
|
select * from cte1 union select * from cte2;
|
||||||
|
select * from t2;
|
||||||
|
a
|
||||||
|
1
|
||||||
|
3
|
||||||
|
drop table t1,t2;
|
||||||
|
#
|
||||||
|
# MDEV-26470: CTE in WITH clause of subquery used in DELETE
|
||||||
|
#
|
||||||
|
create table t1 (a int);
|
||||||
|
insert into t1 values (3), (7), (1), (5);
|
||||||
|
create table t2 (b int);
|
||||||
|
insert into t2 values (4), (1), (3), (2);
|
||||||
|
delete from t1
|
||||||
|
where a in (with cte(a) as (select * from t2 where b <=2) select a from cte);
|
||||||
|
select * from t1;
|
||||||
|
a
|
||||||
|
3
|
||||||
|
7
|
||||||
|
5
|
||||||
|
insert into t1 values (1), (3);
|
||||||
|
delete t1 from t1, t2
|
||||||
|
where t1.a=t2.b or
|
||||||
|
t1.a in (with cte(a) as (select b+1 from t2) select * from cte);
|
||||||
|
select * from t1;
|
||||||
|
a
|
||||||
|
7
|
||||||
|
drop table t1,t2;
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
# MDEV-21673: several references to CTE that uses
|
# MDEV-21673: several references to CTE that uses
|
||||||
|
@ -1578,6 +1578,52 @@ drop function g;
|
|||||||
drop function f;
|
drop function f;
|
||||||
drop table t1;
|
drop table t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-27086: union using CTEs in CREATE TABLE
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
create or replace temporary table tmp as
|
||||||
|
with cte1 as (select 1 as a), cte2 as (select 2 as a)
|
||||||
|
select * from cte1 union select * from cte2;
|
||||||
|
select * from tmp;
|
||||||
|
|
||||||
|
create table t1 as
|
||||||
|
with cte1 as (select 1 as a), cte2 as (select 2 as a)
|
||||||
|
select * from cte1 union select * from cte2;
|
||||||
|
select * from t1;
|
||||||
|
|
||||||
|
insert into t1 values (3);
|
||||||
|
|
||||||
|
create table t2 as
|
||||||
|
with cte1 as (select * from t1 where a <2), cte2 as (select * from t1 where a > 2)
|
||||||
|
select * from cte1 union select * from cte2;
|
||||||
|
select * from t2;
|
||||||
|
|
||||||
|
drop table t1,t2;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-26470: CTE in WITH clause of subquery used in DELETE
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
create table t1 (a int);
|
||||||
|
insert into t1 values (3), (7), (1), (5);
|
||||||
|
|
||||||
|
create table t2 (b int);
|
||||||
|
insert into t2 values (4), (1), (3), (2);
|
||||||
|
|
||||||
|
delete from t1
|
||||||
|
where a in (with cte(a) as (select * from t2 where b <=2) select a from cte);
|
||||||
|
select * from t1;
|
||||||
|
|
||||||
|
insert into t1 values (1), (3);
|
||||||
|
|
||||||
|
delete t1 from t1, t2
|
||||||
|
where t1.a=t2.b or
|
||||||
|
t1.a in (with cte(a) as (select b+1 from t2) select * from cte);
|
||||||
|
select * from t1;
|
||||||
|
|
||||||
|
drop table t1,t2;
|
||||||
|
|
||||||
--echo # End of 10.2 tests
|
--echo # End of 10.2 tests
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -3309,6 +3309,9 @@ SELECT STRAIGHT_JOIN * FROM t1, t2 AS t2_1, t2 AS t2_2
|
|||||||
WHERE t2_2.c = t2_1.c AND t2_2.b = t2_1.b AND ( a IS NULL OR t2_1.c = a );
|
WHERE t2_2.c = t2_1.c AND t2_2.b = t2_1.b AND ( a IS NULL OR t2_1.c = a );
|
||||||
a b c b c
|
a b c b c
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
select a.a from (select 1 as a) a, (select 2 as b) b cross join (select 3 as c) c left join (select 4 as d) d on 1;
|
||||||
|
a
|
||||||
|
1
|
||||||
#
|
#
|
||||||
# MDEV-19600: The optimizer should be able to produce rows=1 estimate for unique index with NULLable columns
|
# MDEV-19600: The optimizer should be able to produce rows=1 estimate for unique index with NULLable columns
|
||||||
#
|
#
|
||||||
@ -3395,3 +3398,4 @@ id select_type table type possible_keys key key_len ref rows Extra
|
|||||||
1 SIMPLE t3 ref a a 5 test.t2.key2 1
|
1 SIMPLE t3 ref a a 5 test.t2.key2 1
|
||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
drop table t1000,t10,t03;
|
drop table t1000,t10,t03;
|
||||||
|
# End of 10.3 tests
|
||||||
|
@ -1719,6 +1719,11 @@ SELECT STRAIGHT_JOIN * FROM t1, t2 AS t2_1, t2 AS t2_2
|
|||||||
|
|
||||||
DROP TABLE t1,t2;
|
DROP TABLE t1,t2;
|
||||||
|
|
||||||
|
#
|
||||||
|
# MDEV-20330 Combination of "," (comma), cross join and left join fails to parse
|
||||||
|
#
|
||||||
|
select a.a from (select 1 as a) a, (select 2 as b) b cross join (select 3 as c) c left join (select 4 as d) d on 1;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # MDEV-19600: The optimizer should be able to produce rows=1 estimate for unique index with NULLable columns
|
--echo # MDEV-19600: The optimizer should be able to produce rows=1 estimate for unique index with NULLable columns
|
||||||
--echo #
|
--echo #
|
||||||
@ -1813,3 +1818,4 @@ WHERE
|
|||||||
drop table t1,t2,t3;
|
drop table t1,t2,t3;
|
||||||
drop table t1000,t10,t03;
|
drop table t1000,t10,t03;
|
||||||
|
|
||||||
|
--echo # End of 10.3 tests
|
||||||
|
@ -1332,6 +1332,37 @@ view_definition
|
|||||||
select 1 not between 2 like 3 and 4 AS `1 not between (2 like 3) and 4`
|
select 1 not between 2 like 3 and 4 AS `1 not between (2 like 3) and 4`
|
||||||
drop view v1;
|
drop view v1;
|
||||||
#
|
#
|
||||||
|
# Start of 10.2 tests
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# MDEV-27066 Fixed scientific notation parser
|
||||||
|
#
|
||||||
|
SELECT 1 1.e*1;
|
||||||
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1.e*1' at line 1
|
||||||
|
SELECT 1 1.e/1;
|
||||||
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1.e/1' at line 1
|
||||||
|
SELECT 1 1.e^1;
|
||||||
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1.e^1' at line 1
|
||||||
|
SELECT 1 1.e%1;
|
||||||
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1.e%1' at line 1
|
||||||
|
SELECT 1 1.e&1;
|
||||||
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1.e&1' at line 1
|
||||||
|
SELECT 1 1.e|1;
|
||||||
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1.e|1' at line 1
|
||||||
|
SELECT 1.e(1);
|
||||||
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1.e(1)' at line 1
|
||||||
|
SELECT (1 1.e);
|
||||||
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1.e)' at line 1
|
||||||
|
SELECT 1 1.e, 1;
|
||||||
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1.e, 1' at line 1
|
||||||
|
CREATE TABLE scientific_notation (test int);
|
||||||
|
SELECT tmp 1.e.test FROM scientific_notation AS tmp;
|
||||||
|
ERROR 42000: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near '1.e.test FROM scientific_notation AS tmp' at line 1
|
||||||
|
DROP TABLE scientific_notation;
|
||||||
|
#
|
||||||
|
# End of 10.2 tests
|
||||||
|
#
|
||||||
|
#
|
||||||
# MDEV-10343 Providing compatibility for basic SQL data types
|
# MDEV-10343 Providing compatibility for basic SQL data types
|
||||||
#
|
#
|
||||||
CREATE TABLE clob (clob int);
|
CREATE TABLE clob (clob int);
|
||||||
|
@ -1357,6 +1357,52 @@ Select view_definition from information_schema.views where table_schema='test' a
|
|||||||
|
|
||||||
drop view v1;
|
drop view v1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # Start of 10.2 tests
|
||||||
|
--echo #
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--echo # MDEV-27066 Fixed scientific notation parser
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
--error ER_PARSE_ERROR
|
||||||
|
SELECT 1 1.e*1;
|
||||||
|
|
||||||
|
--error ER_PARSE_ERROR
|
||||||
|
SELECT 1 1.e/1;
|
||||||
|
|
||||||
|
--error ER_PARSE_ERROR
|
||||||
|
SELECT 1 1.e^1;
|
||||||
|
|
||||||
|
--error ER_PARSE_ERROR
|
||||||
|
SELECT 1 1.e%1;
|
||||||
|
|
||||||
|
--error ER_PARSE_ERROR
|
||||||
|
SELECT 1 1.e&1;
|
||||||
|
|
||||||
|
--error ER_PARSE_ERROR
|
||||||
|
SELECT 1 1.e|1;
|
||||||
|
|
||||||
|
--error ER_PARSE_ERROR
|
||||||
|
SELECT 1.e(1);
|
||||||
|
|
||||||
|
--error ER_PARSE_ERROR
|
||||||
|
SELECT (1 1.e);
|
||||||
|
|
||||||
|
--error ER_PARSE_ERROR
|
||||||
|
SELECT 1 1.e, 1;
|
||||||
|
|
||||||
|
CREATE TABLE scientific_notation (test int);
|
||||||
|
|
||||||
|
--error ER_PARSE_ERROR
|
||||||
|
SELECT tmp 1.e.test FROM scientific_notation AS tmp;
|
||||||
|
|
||||||
|
DROP TABLE scientific_notation;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # End of 10.2 tests
|
||||||
|
--echo #
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # MDEV-10343 Providing compatibility for basic SQL data types
|
--echo # MDEV-10343 Providing compatibility for basic SQL data types
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -939,6 +939,18 @@ Warning 1292 Incorrect datetime value: '1995.0000000'
|
|||||||
Note 1003 select `test`.`t1`.`f` AS `f` from `test`.`t1` where '0000-00-00' between `test`.`t1`.`f` and <cache>('2012-12-12')
|
Note 1003 select `test`.`t1`.`f` AS `f` from `test`.`t1` where '0000-00-00' between `test`.`t1`.`f` and <cache>('2012-12-12')
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
|
# MDEV-27072 Subquery using the ALL keyword on date columns produces a wrong result
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (d DATE);
|
||||||
|
INSERT INTO t1 VALUES ('2021-11-17'), ('2021-10-17'),('2022-11-17'), ('2020-10-17');
|
||||||
|
SELECT * FROM t1 WHERE d >= ALL (SELECT * FROM t1);
|
||||||
|
d
|
||||||
|
2022-11-17
|
||||||
|
SELECT * FROM t1 WHERE d <= ALL (SELECT * FROM t1);
|
||||||
|
d
|
||||||
|
2020-10-17
|
||||||
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
@ -647,6 +647,15 @@ INSERT INTO t1 VALUES ('2020-01-01'),('2020-01-02');
|
|||||||
EXPLAIN EXTENDED SELECT * FROM t1 WHERE 1995.0000000 BETWEEN f AND '2012-12-12';
|
EXPLAIN EXTENDED SELECT * FROM t1 WHERE 1995.0000000 BETWEEN f AND '2012-12-12';
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-27072 Subquery using the ALL keyword on date columns produces a wrong result
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (d DATE);
|
||||||
|
INSERT INTO t1 VALUES ('2021-11-17'), ('2021-10-17'),('2022-11-17'), ('2020-10-17');
|
||||||
|
SELECT * FROM t1 WHERE d >= ALL (SELECT * FROM t1);
|
||||||
|
SELECT * FROM t1 WHERE d <= ALL (SELECT * FROM t1);
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 10.2 tests
|
--echo # End of 10.2 tests
|
||||||
|
@ -1368,6 +1368,18 @@ Warning 1292 Incorrect datetime value: '1995.0000000'
|
|||||||
Note 1003 select `test`.`t1`.`f` AS `f` from `test`.`t1` where '00:00:00.000000' between `test`.`t1`.`f` and <cache>('23:59:59')
|
Note 1003 select `test`.`t1`.`f` AS `f` from `test`.`t1` where '00:00:00.000000' between `test`.`t1`.`f` and <cache>('23:59:59')
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
#
|
#
|
||||||
|
# MDEV-27098 Subquery using the ALL keyword on TIME columns produces a wrong result
|
||||||
|
#
|
||||||
|
CREATE TABLE t1 (d TIME);
|
||||||
|
INSERT INTO t1 VALUES ('120:00:00'), ('20:00:00'), ('-120:00:00'), ('-220:00:00');
|
||||||
|
SELECT * FROM t1 WHERE d >= ALL (SELECT * FROM t1);
|
||||||
|
d
|
||||||
|
120:00:00
|
||||||
|
SELECT * FROM t1 WHERE d <= ALL (SELECT * FROM t1);
|
||||||
|
d
|
||||||
|
-220:00:00
|
||||||
|
DROP TABLE t1;
|
||||||
|
#
|
||||||
# End of 10.2 tests
|
# End of 10.2 tests
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
|
@ -823,6 +823,16 @@ INSERT INTO t1 VALUES ('10:10:10'),('20:20:20');
|
|||||||
EXPLAIN EXTENDED SELECT * FROM t1 WHERE 1995.0000000 BETWEEN f AND '23:59:59';
|
EXPLAIN EXTENDED SELECT * FROM t1 WHERE 1995.0000000 BETWEEN f AND '23:59:59';
|
||||||
DROP TABLE t1;
|
DROP TABLE t1;
|
||||||
|
|
||||||
|
--echo #
|
||||||
|
--echo # MDEV-27098 Subquery using the ALL keyword on TIME columns produces a wrong result
|
||||||
|
--echo #
|
||||||
|
|
||||||
|
CREATE TABLE t1 (d TIME);
|
||||||
|
INSERT INTO t1 VALUES ('120:00:00'), ('20:00:00'), ('-120:00:00'), ('-220:00:00');
|
||||||
|
SELECT * FROM t1 WHERE d >= ALL (SELECT * FROM t1);
|
||||||
|
SELECT * FROM t1 WHERE d <= ALL (SELECT * FROM t1);
|
||||||
|
DROP TABLE t1;
|
||||||
|
|
||||||
--echo #
|
--echo #
|
||||||
--echo # End of 10.2 tests
|
--echo # End of 10.2 tests
|
||||||
--echo #
|
--echo #
|
||||||
|
@ -5100,6 +5100,7 @@ sub mysqld_start ($$) {
|
|||||||
# Differs from "generic" MYSQLD_CMD by including all command line
|
# Differs from "generic" MYSQLD_CMD by including all command line
|
||||||
# options from *.opt and *.combination files.
|
# options from *.opt and *.combination files.
|
||||||
$ENV{'MYSQLD_LAST_CMD'}= "$exe @$args";
|
$ENV{'MYSQLD_LAST_CMD'}= "$exe @$args";
|
||||||
|
my $oldexe= $exe;
|
||||||
|
|
||||||
My::Debugger::setup_args(\$args, \$exe, $mysqld->name());
|
My::Debugger::setup_args(\$args, \$exe, $mysqld->name());
|
||||||
$ENV{'VALGRIND_TEST'}= $opt_valgrind = int(($exe || '') eq 'valgrind');
|
$ENV{'VALGRIND_TEST'}= $opt_valgrind = int(($exe || '') eq 'valgrind');
|
||||||
@ -5155,7 +5156,8 @@ sub mysqld_start ($$) {
|
|||||||
$mysqld->{'started_opts'}= $extra_opts;
|
$mysqld->{'started_opts'}= $extra_opts;
|
||||||
|
|
||||||
my $expect_file= "$opt_vardir/tmp/".$mysqld->name().".expect";
|
my $expect_file= "$opt_vardir/tmp/".$mysqld->name().".expect";
|
||||||
return sleep_until_file_created($mysqld->value('pid-file'), $expect_file,
|
return $oldexe eq $exe ||
|
||||||
|
sleep_until_file_created($mysqld->value('pid-file'), $expect_file,
|
||||||
$opt_start_timeout, $mysqld->{'proc'}, $warn_seconds);
|
$opt_start_timeout, $mysqld->{'proc'}, $warn_seconds);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
73
mysql-test/suite/galera/r/galera_log_bin_ext.result
Normal file
73
mysql-test/suite/galera/r/galera_log_bin_ext.result
Normal file
@ -0,0 +1,73 @@
|
|||||||
|
connection node_1;
|
||||||
|
reset master;
|
||||||
|
connection node_2;
|
||||||
|
reset master;
|
||||||
|
CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB;
|
||||||
|
INSERT INTO t1 VALUES (1);
|
||||||
|
CREATE TABLE t2 (id INT) ENGINE=InnoDB;
|
||||||
|
INSERT INTO t2 VALUES (1);
|
||||||
|
INSERT INTO t2 VALUES (1);
|
||||||
|
connection node_2;
|
||||||
|
SELECT COUNT(*) = 1 FROM t1;
|
||||||
|
COUNT(*) = 1
|
||||||
|
1
|
||||||
|
SELECT COUNT(*) = 2 FROM t2;
|
||||||
|
COUNT(*) = 2
|
||||||
|
1
|
||||||
|
connection node_1;
|
||||||
|
ALTER TABLE t1 ADD COLUMN f2 INTEGER;
|
||||||
|
include/show_binlog_events.inc
|
||||||
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
|
hostname1-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
hostname1-bin.000001 # Query # # use `test`; CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB
|
||||||
|
hostname1-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
hostname1-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1)
|
||||||
|
hostname1-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||||
|
hostname1-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
|
||||||
|
hostname1-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
hostname1-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
hostname1-bin.000001 # Query # # use `test`; CREATE TABLE t2 (id INT) ENGINE=InnoDB
|
||||||
|
hostname1-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
hostname1-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (1)
|
||||||
|
hostname1-bin.000001 # Table_map # # table_id: # (test.t2)
|
||||||
|
hostname1-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
|
||||||
|
hostname1-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
hostname1-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
hostname1-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (1)
|
||||||
|
hostname1-bin.000001 # Table_map # # table_id: # (test.t2)
|
||||||
|
hostname1-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
|
||||||
|
hostname1-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
hostname1-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
hostname1-bin.000001 # Query # # use `test`; ALTER TABLE t1 ADD COLUMN f2 INTEGER
|
||||||
|
connection node_2;
|
||||||
|
SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
|
||||||
|
COUNT(*) = 2
|
||||||
|
1
|
||||||
|
include/show_binlog_events.inc
|
||||||
|
Log_name Pos Event_type Server_id End_log_pos Info
|
||||||
|
hostname1-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
hostname1-bin.000001 # Query # # use `test`; CREATE TABLE t1 (id INT PRIMARY KEY) ENGINE=InnoDB
|
||||||
|
hostname1-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
hostname1-bin.000001 # Annotate_rows # # INSERT INTO t1 VALUES (1)
|
||||||
|
hostname1-bin.000001 # Table_map # # table_id: # (test.t1)
|
||||||
|
hostname1-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
|
||||||
|
hostname1-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
hostname1-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
hostname1-bin.000001 # Query # # use `test`; CREATE TABLE t2 (id INT) ENGINE=InnoDB
|
||||||
|
hostname1-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
hostname1-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (1)
|
||||||
|
hostname1-bin.000001 # Table_map # # table_id: # (test.t2)
|
||||||
|
hostname1-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
|
||||||
|
hostname1-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
hostname1-bin.000001 # Gtid # # BEGIN GTID #-#-#
|
||||||
|
hostname1-bin.000001 # Annotate_rows # # INSERT INTO t2 VALUES (1)
|
||||||
|
hostname1-bin.000001 # Table_map # # table_id: # (test.t2)
|
||||||
|
hostname1-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
|
||||||
|
hostname1-bin.000001 # Xid # # COMMIT /* XID */
|
||||||
|
hostname1-bin.000001 # Gtid # # GTID #-#-#
|
||||||
|
hostname1-bin.000001 # Query # # use `test`; ALTER TABLE t1 ADD COLUMN f2 INTEGER
|
||||||
|
DROP TABLE t1;
|
||||||
|
DROP TABLE t2;
|
||||||
|
#cleanup
|
||||||
|
connection node_1;
|
||||||
|
RESET MASTER;
|
@ -0,0 +1,116 @@
|
|||||||
|
--- r/galera_sst_mariabackup.result 2018-11-21 16:50:35.766982279 +0200
|
||||||
|
+++ r/galera_sst_mariabackup.reject 2018-11-22 09:20:10.344408266 +0200
|
||||||
|
@@ -286,5 +286,113 @@
|
||||||
|
DROP TABLE t1;
|
||||||
|
COMMIT;
|
||||||
|
SET AUTOCOMMIT=ON;
|
||||||
|
+Performing State Transfer on a server that has been killed and restarted
|
||||||
|
+while a DDL was in progress on it
|
||||||
|
+connection node_1;
|
||||||
|
+CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
|
||||||
|
+SET AUTOCOMMIT=OFF;
|
||||||
|
+START TRANSACTION;
|
||||||
|
+INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
+INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
+INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
+INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
+INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
+connection node_2;
|
||||||
|
+START TRANSACTION;
|
||||||
|
+INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
+INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
+INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
+INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
+INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
+COMMIT;
|
||||||
|
+SET GLOBAL debug_dbug = 'd,sync.alter_opened_table';
|
||||||
|
+connection node_1;
|
||||||
|
+ALTER TABLE t1 ADD COLUMN f2 INTEGER;
|
||||||
|
+connection node_2;
|
||||||
|
+SET wsrep_sync_wait = 0;
|
||||||
|
+Killing server ...
|
||||||
|
+connection node_1;
|
||||||
|
+SET AUTOCOMMIT=OFF;
|
||||||
|
+START TRANSACTION;
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_committed_during');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_committed_during');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_committed_during');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_committed_during');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_committed_during');
|
||||||
|
+COMMIT;
|
||||||
|
+START TRANSACTION;
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
|
||||||
|
+connect node_1a_galera_st_kill_slave_ddl, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
||||||
|
+SET AUTOCOMMIT=OFF;
|
||||||
|
+START TRANSACTION;
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
+connection node_2;
|
||||||
|
+Performing --wsrep-recover ...
|
||||||
|
+connection node_2;
|
||||||
|
+Starting server ...
|
||||||
|
+Using --wsrep-start-position when starting mysqld ...
|
||||||
|
+SET AUTOCOMMIT=OFF;
|
||||||
|
+START TRANSACTION;
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node2_committed_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node2_committed_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node2_committed_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node2_committed_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node2_committed_after');
|
||||||
|
+COMMIT;
|
||||||
|
+connection node_1;
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_committed_after');
|
||||||
|
+COMMIT;
|
||||||
|
+SET AUTOCOMMIT=OFF;
|
||||||
|
+START TRANSACTION;
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_committed_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_committed_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_committed_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_committed_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_committed_after');
|
||||||
|
+COMMIT;
|
||||||
|
+connection node_1a_galera_st_kill_slave_ddl;
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
+INSERT INTO t1 (f1) VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
+ROLLBACK;
|
||||||
|
+SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
|
||||||
|
+COUNT(*) = 2
|
||||||
|
+1
|
||||||
|
+SELECT COUNT(*) = 35 FROM t1;
|
||||||
|
+COUNT(*) = 35
|
||||||
|
+1
|
||||||
|
+SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
|
||||||
|
+COUNT(*) = 0
|
||||||
|
+1
|
||||||
|
+COMMIT;
|
||||||
|
+SET AUTOCOMMIT=ON;
|
||||||
|
+connection node_1;
|
||||||
|
+SELECT COUNT(*) = 2 FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_NAME = 't1';
|
||||||
|
+COUNT(*) = 2
|
||||||
|
+1
|
||||||
|
+SELECT COUNT(*) = 35 FROM t1;
|
||||||
|
+COUNT(*) = 35
|
||||||
|
+1
|
||||||
|
+SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
|
||||||
|
+COUNT(*) = 0
|
||||||
|
+1
|
||||||
|
+DROP TABLE t1;
|
||||||
|
+COMMIT;
|
||||||
|
+SET AUTOCOMMIT=ON;
|
||||||
|
+SET GLOBAL debug_dbug = $debug_orig;
|
||||||
|
disconnect node_2;
|
||||||
|
disconnect node_1;
|
@ -0,0 +1,290 @@
|
|||||||
|
connection node_1;
|
||||||
|
connection node_2;
|
||||||
|
Performing State Transfer on a server that has been shut down cleanly and restarted
|
||||||
|
connection node_1;
|
||||||
|
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
|
||||||
|
SET AUTOCOMMIT=OFF;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
COMMIT;
|
||||||
|
connection node_2;
|
||||||
|
SET AUTOCOMMIT=OFF;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
COMMIT;
|
||||||
|
Shutting down server ...
|
||||||
|
connection node_1;
|
||||||
|
SET AUTOCOMMIT=OFF;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_during');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_during');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_during');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_during');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_during');
|
||||||
|
COMMIT;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
connect node_1a_galera_st_shutdown_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
||||||
|
SET AUTOCOMMIT=OFF;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
connection node_2;
|
||||||
|
Starting server ...
|
||||||
|
SET AUTOCOMMIT=OFF;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_after');
|
||||||
|
COMMIT;
|
||||||
|
connection node_1;
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
COMMIT;
|
||||||
|
SET AUTOCOMMIT=OFF;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_after');
|
||||||
|
COMMIT;
|
||||||
|
connection node_1a_galera_st_shutdown_slave;
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
ROLLBACK;
|
||||||
|
SELECT COUNT(*) = 35 FROM t1;
|
||||||
|
COUNT(*) = 35
|
||||||
|
1
|
||||||
|
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
|
||||||
|
COUNT(*) = 0
|
||||||
|
1
|
||||||
|
COMMIT;
|
||||||
|
SET AUTOCOMMIT=ON;
|
||||||
|
connection node_1;
|
||||||
|
SELECT COUNT(*) = 35 FROM t1;
|
||||||
|
COUNT(*) = 35
|
||||||
|
1
|
||||||
|
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
|
||||||
|
COUNT(*) = 0
|
||||||
|
1
|
||||||
|
DROP TABLE t1;
|
||||||
|
COMMIT;
|
||||||
|
SET AUTOCOMMIT=ON;
|
||||||
|
Performing State Transfer on a server that starts from a clean var directory
|
||||||
|
This is accomplished by shutting down node #2 and removing its var directory before restarting it
|
||||||
|
connection node_1;
|
||||||
|
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
|
||||||
|
SET AUTOCOMMIT=OFF;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
COMMIT;
|
||||||
|
connection node_2;
|
||||||
|
SET AUTOCOMMIT=OFF;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
COMMIT;
|
||||||
|
Shutting down server ...
|
||||||
|
connection node_1;
|
||||||
|
Cleaning var directory ...
|
||||||
|
SET AUTOCOMMIT=OFF;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_during');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_during');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_during');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_during');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_during');
|
||||||
|
COMMIT;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
connect node_1a_galera_st_clean_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
||||||
|
SET AUTOCOMMIT=OFF;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
connection node_2;
|
||||||
|
Starting server ...
|
||||||
|
SET AUTOCOMMIT=OFF;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_after');
|
||||||
|
COMMIT;
|
||||||
|
connection node_1;
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
COMMIT;
|
||||||
|
SET AUTOCOMMIT=OFF;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_after');
|
||||||
|
COMMIT;
|
||||||
|
connection node_1a_galera_st_clean_slave;
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
ROLLBACK;
|
||||||
|
SELECT COUNT(*) = 35 FROM t1;
|
||||||
|
COUNT(*) = 35
|
||||||
|
1
|
||||||
|
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
|
||||||
|
COUNT(*) = 0
|
||||||
|
1
|
||||||
|
COMMIT;
|
||||||
|
SET AUTOCOMMIT=ON;
|
||||||
|
connection node_1;
|
||||||
|
SELECT COUNT(*) = 35 FROM t1;
|
||||||
|
COUNT(*) = 35
|
||||||
|
1
|
||||||
|
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
|
||||||
|
COUNT(*) = 0
|
||||||
|
1
|
||||||
|
DROP TABLE t1;
|
||||||
|
COMMIT;
|
||||||
|
SET AUTOCOMMIT=ON;
|
||||||
|
Performing State Transfer on a server that has been killed and restarted
|
||||||
|
connection node_1;
|
||||||
|
CREATE TABLE t1 (f1 CHAR(255)) ENGINE=InnoDB;
|
||||||
|
SET AUTOCOMMIT=OFF;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_before');
|
||||||
|
COMMIT;
|
||||||
|
connection node_2;
|
||||||
|
SET AUTOCOMMIT=OFF;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_before');
|
||||||
|
COMMIT;
|
||||||
|
Killing server ...
|
||||||
|
connection node_1;
|
||||||
|
SET AUTOCOMMIT=OFF;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_during');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_during');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_during');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_during');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_during');
|
||||||
|
COMMIT;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
connect node_1a_galera_st_kill_slave, 127.0.0.1, root, , test, $NODE_MYPORT_1;
|
||||||
|
SET AUTOCOMMIT=OFF;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
connection node_2;
|
||||||
|
Performing --wsrep-recover ...
|
||||||
|
Starting server ...
|
||||||
|
Using --wsrep-start-position when starting mysqld ...
|
||||||
|
SET AUTOCOMMIT=OFF;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node2_committed_after');
|
||||||
|
COMMIT;
|
||||||
|
connection node_1;
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_committed_after');
|
||||||
|
COMMIT;
|
||||||
|
SET AUTOCOMMIT=OFF;
|
||||||
|
START TRANSACTION;
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_committed_after');
|
||||||
|
COMMIT;
|
||||||
|
connection node_1a_galera_st_kill_slave;
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
INSERT INTO t1 VALUES ('node1_to_be_rollbacked_after');
|
||||||
|
ROLLBACK;
|
||||||
|
SELECT COUNT(*) = 35 FROM t1;
|
||||||
|
COUNT(*) = 35
|
||||||
|
1
|
||||||
|
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
|
||||||
|
COUNT(*) = 0
|
||||||
|
1
|
||||||
|
COMMIT;
|
||||||
|
SET AUTOCOMMIT=ON;
|
||||||
|
connection node_1;
|
||||||
|
SELECT COUNT(*) = 35 FROM t1;
|
||||||
|
COUNT(*) = 35
|
||||||
|
1
|
||||||
|
SELECT COUNT(*) = 0 FROM (SELECT COUNT(*) AS c, f1 FROM t1 GROUP BY f1 HAVING c NOT IN (5, 10)) AS a1;
|
||||||
|
COUNT(*) = 0
|
||||||
|
1
|
||||||
|
DROP TABLE t1;
|
||||||
|
COMMIT;
|
||||||
|
SET AUTOCOMMIT=ON;
|
||||||
|
disconnect node_2;
|
||||||
|
disconnect node_1;
|
11
mysql-test/suite/galera/t/galera_log_bin_ext.cnf
Normal file
11
mysql-test/suite/galera/t/galera_log_bin_ext.cnf
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
!include ../galera_2nodes.cnf
|
||||||
|
|
||||||
|
[mysqld.1]
|
||||||
|
log-bin = hostname1-bin
|
||||||
|
log-bin-index = hostname1.bdx
|
||||||
|
log-slave-updates
|
||||||
|
|
||||||
|
[mysqld.2]
|
||||||
|
log-bin = hostname2-bin
|
||||||
|
log-bin-index = hostname2.bdx
|
||||||
|
log-slave-updates
|
1
mysql-test/suite/galera/t/galera_log_bin_ext.test
Normal file
1
mysql-test/suite/galera/t/galera_log_bin_ext.test
Normal file
@ -0,0 +1 @@
|
|||||||
|
--source galera_log_bin.inc
|
@ -0,0 +1 @@
|
|||||||
|
--innodb-force-recovery=1
|
@ -0,0 +1,16 @@
|
|||||||
|
!include ../galera_2nodes.cnf
|
||||||
|
|
||||||
|
[mysqld]
|
||||||
|
wsrep_sst_method=mariabackup
|
||||||
|
wsrep_sst_auth="root:"
|
||||||
|
wsrep_debug=ON
|
||||||
|
|
||||||
|
[mysqld.1]
|
||||||
|
wsrep_provider_options='base_port=@mysqld.1.#galera_port;gcache.size=1;pc.ignore_sb=true'
|
||||||
|
|
||||||
|
[mysqld.2]
|
||||||
|
wsrep_provider_options='base_port=@mysqld.2.#galera_port;gcache.size=1;pc.ignore_sb=true'
|
||||||
|
|
||||||
|
[sst]
|
||||||
|
transferfmt=@ENV.MTR_GALERA_TFMT
|
||||||
|
streamfmt=mbstream
|
@ -0,0 +1,20 @@
|
|||||||
|
--source include/big_test.inc
|
||||||
|
--source include/galera_cluster.inc
|
||||||
|
--source include/have_innodb.inc
|
||||||
|
--source include/have_mariabackup.inc
|
||||||
|
|
||||||
|
# Save original auto_increment_offset values.
|
||||||
|
--let $node_1=node_1
|
||||||
|
--let $node_2=node_2
|
||||||
|
--source include/auto_increment_offset_save.inc
|
||||||
|
|
||||||
|
--source suite/galera/include/galera_st_shutdown_slave.inc
|
||||||
|
--source suite/galera/include/galera_st_clean_slave.inc
|
||||||
|
|
||||||
|
--source suite/galera/include/galera_st_kill_slave.inc
|
||||||
|
--source suite/galera/include/galera_st_kill_slave_ddl.inc
|
||||||
|
|
||||||
|
# Restore original auto_increment_offset values.
|
||||||
|
--source include/auto_increment_offset_restore.inc
|
||||||
|
|
||||||
|
--source include/galera_end.inc
|
@ -1,3 +1,9 @@
|
|||||||
|
|
||||||
|
SET(CPACK_RPM_gssapi-server_PACKAGE_SUMMARY "GSSAPI authentication plugin for MariaDB server" PARENT_SCOPE)
|
||||||
|
SET(CPACK_RPM_gssapi-server_PACKAGE_DESCRIPTION "The gssapi authentication plugin allows the user to authenticate with services
|
||||||
|
that use the Generic Security Services Application Program Interface (GSSAPI).
|
||||||
|
The gssapi authentication plugin is most often used for authenticating with Microsoft Active Directory." PARENT_SCOPE)
|
||||||
|
|
||||||
IF (WIN32)
|
IF (WIN32)
|
||||||
SET(USE_SSPI 1)
|
SET(USE_SSPI 1)
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
INCLUDE (CheckIncludeFiles)
|
INCLUDE (CheckIncludeFiles)
|
||||||
INCLUDE (CheckLibraryExists)
|
INCLUDE (CheckLibraryExists)
|
||||||
|
|
||||||
|
SET(CPACK_RPM_cracklib-password-check_PACKAGE_SUMMARY "CrackLib Password Validation Plugin for MariaDB" PARENT_SCOPE)
|
||||||
|
SET(CPACK_RPM_cracklib-password-check_PACKAGE_DESCRIPTION "This password validation plugin uses cracklib to allow only
|
||||||
|
sufficiently secure (as defined by cracklib) user passwords in MariaDB." PARENT_SCOPE)
|
||||||
|
|
||||||
CHECK_LIBRARY_EXISTS(crack FascistCheckUser "" HAVE_LIBCRACK)
|
CHECK_LIBRARY_EXISTS(crack FascistCheckUser "" HAVE_LIBCRACK)
|
||||||
|
|
||||||
SET(CMAKE_REQUIRED_DEFINITIONS -Dsize_t=int) # debian hack, debian bug.
|
SET(CMAKE_REQUIRED_DEFINITIONS -Dsize_t=int) # debian hack, debian bug.
|
||||||
|
@ -582,8 +582,7 @@ then
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo "See the MariaDB Knowledgebase at http://mariadb.com/kb or the"
|
echo "See the MariaDB Knowledgebase at http://mariadb.com/kb"
|
||||||
echo "MySQL manual for more instructions."
|
|
||||||
|
|
||||||
if test "$in_rpm" -eq 0
|
if test "$in_rpm" -eq 0
|
||||||
then
|
then
|
||||||
@ -599,8 +598,7 @@ then
|
|||||||
echo "Please report any problems at http://mariadb.org/jira"
|
echo "Please report any problems at http://mariadb.org/jira"
|
||||||
echo
|
echo
|
||||||
echo "The latest information about MariaDB is available at http://mariadb.org/."
|
echo "The latest information about MariaDB is available at http://mariadb.org/."
|
||||||
echo "You can find additional information about the MySQL part at:"
|
echo
|
||||||
echo "http://dev.mysql.com"
|
|
||||||
echo "Consider joining MariaDB's strong and vibrant community:"
|
echo "Consider joining MariaDB's strong and vibrant community:"
|
||||||
echo "https://mariadb.org/get-involved/"
|
echo "https://mariadb.org/get-involved/"
|
||||||
echo
|
echo
|
||||||
|
@ -44,6 +44,7 @@ WSREP_SST_OPT_HOST_ESCAPED=""
|
|||||||
INNODB_DATA_HOME_DIR="${INNODB_DATA_HOME_DIR:-}"
|
INNODB_DATA_HOME_DIR="${INNODB_DATA_HOME_DIR:-}"
|
||||||
INNODB_LOG_GROUP_HOME="${INNODB_LOG_GROUP_HOME:-}"
|
INNODB_LOG_GROUP_HOME="${INNODB_LOG_GROUP_HOME:-}"
|
||||||
INNODB_UNDO_DIR="${INNODB_UNDO_DIR:-}"
|
INNODB_UNDO_DIR="${INNODB_UNDO_DIR:-}"
|
||||||
|
INNODB_FORCE_RECOVERY=""
|
||||||
INNOEXTRA=""
|
INNOEXTRA=""
|
||||||
|
|
||||||
while [ $# -gt 0 ]; do
|
while [ $# -gt 0 ]; do
|
||||||
@ -229,7 +230,7 @@ case "$1" in
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
'--binlog-index'|'--log-bin-index')
|
'--binlog-index'|'--log-bin-index')
|
||||||
readonly WSREP_SST_OPT_BINLOG_INDEX="$2"
|
WSREP_SST_OPT_BINLOG_INDEX="$2"
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
'--log-basename')
|
'--log-basename')
|
||||||
@ -382,6 +383,14 @@ case "$1" in
|
|||||||
fi
|
fi
|
||||||
skip_mysqld_arg=1
|
skip_mysqld_arg=1
|
||||||
;;
|
;;
|
||||||
|
'--innodb-force-recovery')
|
||||||
|
if [ -n "$value" ]; then
|
||||||
|
if [ "$value" -ne 0 ]; then
|
||||||
|
INNODB_FORCE_RECOVERY="$value"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
skip_mysqld_arg=1
|
||||||
|
;;
|
||||||
'--log-bin')
|
'--log-bin')
|
||||||
if [ -z "$WSREP_SST_OPT_BINLOG" ]; then
|
if [ -z "$WSREP_SST_OPT_BINLOG" ]; then
|
||||||
MYSQLD_OPT_LOG_BIN="$value"
|
MYSQLD_OPT_LOG_BIN="$value"
|
||||||
@ -444,7 +453,7 @@ if [ -n "${MYSQLD_OPT_LOG_BIN:-}" -a \
|
|||||||
fi
|
fi
|
||||||
if [ -n "${MYSQLD_OPT_LOG_BIN_INDEX:-}" -a \
|
if [ -n "${MYSQLD_OPT_LOG_BIN_INDEX:-}" -a \
|
||||||
-z "$WSREP_SST_OPT_BINLOG_INDEX" ]; then
|
-z "$WSREP_SST_OPT_BINLOG_INDEX" ]; then
|
||||||
readonly WSREP_SST_OPT_BINLOG_INDEX="$MYSQLD_OPT_LOG_BIN_INDEX"
|
WSREP_SST_OPT_BINLOG_INDEX="$MYSQLD_OPT_LOG_BIN_INDEX"
|
||||||
fi
|
fi
|
||||||
if [ -n "${MYSQLD_OPT_DATADIR:-}" -a \
|
if [ -n "${MYSQLD_OPT_DATADIR:-}" -a \
|
||||||
-z "$WSREP_SST_OPT_DATA" ]; then
|
-z "$WSREP_SST_OPT_DATA" ]; then
|
||||||
@ -499,6 +508,7 @@ if [ -n "$WSREP_SST_OPT_BINLOG" ]; then
|
|||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
readonly INNODB_FORCE_RECOVERY
|
||||||
readonly WSREP_SST_OPT_MYSQLD
|
readonly WSREP_SST_OPT_MYSQLD
|
||||||
|
|
||||||
get_binlog()
|
get_binlog()
|
||||||
@ -553,6 +563,16 @@ get_binlog()
|
|||||||
# is already defined above):
|
# is already defined above):
|
||||||
readonly WSREP_SST_OPT_BINLOG_INDEX="$WSREP_SST_OPT_BINLOG.index"
|
readonly WSREP_SST_OPT_BINLOG_INDEX="$WSREP_SST_OPT_BINLOG.index"
|
||||||
fi
|
fi
|
||||||
|
else
|
||||||
|
# Remove all directories from the index file path:
|
||||||
|
local filename="${WSREP_SST_OPT_BINLOG_INDEX##*/}"
|
||||||
|
# Check if the index file name contains the extension:
|
||||||
|
if [ "${filename%.*}" = "$filename" ]; then
|
||||||
|
# Let's add the default extension (".index"):
|
||||||
|
readonly WSREP_SST_OPT_BINLOG_INDEX="$WSREP_SST_OPT_BINLOG_INDEX.index"
|
||||||
|
else
|
||||||
|
readonly WSREP_SST_OPT_BINLOG_INDEX
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
@ -951,7 +951,11 @@ setup_commands()
|
|||||||
if [ -n "$WSREP_SST_OPT_MYSQLD" ]; then
|
if [ -n "$WSREP_SST_OPT_MYSQLD" ]; then
|
||||||
mysqld_args="--mysqld-args $WSREP_SST_OPT_MYSQLD"
|
mysqld_args="--mysqld-args $WSREP_SST_OPT_MYSQLD"
|
||||||
fi
|
fi
|
||||||
|
if [ -z "$INNODB_FORCE_RECOVERY" ]; then
|
||||||
INNOAPPLY="$BACKUP_BIN --prepare $disver $iapts $INNOEXTRA --target-dir='$DATA' --datadir='$DATA' $mysqld_args $INNOAPPLY"
|
INNOAPPLY="$BACKUP_BIN --prepare $disver $iapts $INNOEXTRA --target-dir='$DATA' --datadir='$DATA' $mysqld_args $INNOAPPLY"
|
||||||
|
else
|
||||||
|
INNOAPPLY="$BACKUP_BIN --prepare $disver $iapts $INNOEXTRA --innodb-force-recovery=$INNODB_FORCE_RECOVERY --target-dir='$DATA' --datadir='$DATA' $mysqld_args $INNOAPPLY"
|
||||||
|
fi
|
||||||
INNOMOVE="$BACKUP_BIN $WSREP_SST_OPT_CONF --move-back $disver $impts --force-non-empty-directories --target-dir='$DATA' --datadir='${TDATA:-$DATA}' $INNOMOVE"
|
INNOMOVE="$BACKUP_BIN $WSREP_SST_OPT_CONF --move-back $disver $impts --force-non-empty-directories --target-dir='$DATA' --datadir='${TDATA:-$DATA}' $INNOMOVE"
|
||||||
INNOBACKUP="$BACKUP_BIN $WSREP_SST_OPT_CONF --backup $disver $iopts $tmpopts $INNOEXTRA --galera-info --stream=$sfmt --target-dir='$itmpdir' --datadir='$DATA' $mysqld_args $INNOBACKUP"
|
INNOBACKUP="$BACKUP_BIN $WSREP_SST_OPT_CONF --backup $disver $iopts $tmpopts $INNOEXTRA --galera-info --stream=$sfmt --target-dir='$itmpdir' --datadir='$DATA' $mysqld_args $INNOBACKUP"
|
||||||
}
|
}
|
||||||
@ -1245,8 +1249,8 @@ then
|
|||||||
cd "$binlog_dir"
|
cd "$binlog_dir"
|
||||||
wsrep_log_info "Cleaning the binlog directory $binlog_dir as well"
|
wsrep_log_info "Cleaning the binlog directory $binlog_dir as well"
|
||||||
rm -fv "$WSREP_SST_OPT_BINLOG".[0-9]* 1>&2 \+ || true
|
rm -fv "$WSREP_SST_OPT_BINLOG".[0-9]* 1>&2 \+ || true
|
||||||
binlog_index="${WSREP_SST_OPT_BINLOG_INDEX%.index}.index"
|
[ -f "$WSREP_SST_OPT_BINLOG_INDEX" ] && \
|
||||||
[ -f "$binlog_index" ] && rm -fv "$binlog_index" 1>&2 \+ || true
|
rm -fv "$WSREP_SST_OPT_BINLOG_INDEX" 1>&2 \+ || true
|
||||||
cd "$OLD_PWD"
|
cd "$OLD_PWD"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@ -1321,7 +1325,7 @@ then
|
|||||||
|
|
||||||
cd "$BINLOG_DIRNAME"
|
cd "$BINLOG_DIRNAME"
|
||||||
for bfile in $(ls -1 "$BINLOG_FILENAME".[0-9]*); do
|
for bfile in $(ls -1 "$BINLOG_FILENAME".[0-9]*); do
|
||||||
echo "$BINLOG_DIRNAME/$bfile" >> "${WSREP_SST_OPT_BINLOG_INDEX%.index}.index"
|
echo "$BINLOG_DIRNAME/$bfile" >> "$WSREP_SST_OPT_BINLOG_INDEX"
|
||||||
done
|
done
|
||||||
cd "$OLD_PWD"
|
cd "$OLD_PWD"
|
||||||
|
|
||||||
|
@ -392,7 +392,7 @@ EOF
|
|||||||
# Prepare binlog files
|
# Prepare binlog files
|
||||||
cd "$BINLOG_DIRNAME"
|
cd "$BINLOG_DIRNAME"
|
||||||
|
|
||||||
binlog_files_full=$(tail -n $BINLOG_N_FILES "${WSREP_SST_OPT_BINLOG_INDEX%.index}.index")
|
binlog_files_full=$(tail -n $BINLOG_N_FILES "$WSREP_SST_OPT_BINLOG_INDEX")
|
||||||
|
|
||||||
binlog_files=""
|
binlog_files=""
|
||||||
for ii in $binlog_files_full
|
for ii in $binlog_files_full
|
||||||
@ -732,7 +732,7 @@ EOF
|
|||||||
if [ -f "$BINLOG_TAR_FILE" ]; then
|
if [ -f "$BINLOG_TAR_FILE" ]; then
|
||||||
cd "$BINLOG_DIRNAME"
|
cd "$BINLOG_DIRNAME"
|
||||||
|
|
||||||
binlog_index="${WSREP_SST_OPT_BINLOG_INDEX%.index}.index"
|
binlog_index="$WSREP_SST_OPT_BINLOG_INDEX"
|
||||||
|
|
||||||
# Clean up old binlog files first
|
# Clean up old binlog files first
|
||||||
rm -f "$BINLOG_FILENAME".[0-9]*
|
rm -f "$BINLOG_FILENAME".[0-9]*
|
||||||
|
@ -368,8 +368,6 @@ static void get_service_config()
|
|||||||
*/
|
*/
|
||||||
static void change_service_config()
|
static void change_service_config()
|
||||||
{
|
{
|
||||||
char defaults_file[MAX_PATH];
|
|
||||||
char default_character_set[64];
|
|
||||||
char buf[MAX_PATH];
|
char buf[MAX_PATH];
|
||||||
char commandline[3 * MAX_PATH + 19];
|
char commandline[3 * MAX_PATH + 19];
|
||||||
int i;
|
int i;
|
||||||
@ -392,22 +390,6 @@ static void change_service_config()
|
|||||||
*/
|
*/
|
||||||
WritePrivateProfileString("mysqld", "basedir",NULL, service_properties.inifile);
|
WritePrivateProfileString("mysqld", "basedir",NULL, service_properties.inifile);
|
||||||
|
|
||||||
/*
|
|
||||||
Replace default-character-set with character-set-server, to avoid
|
|
||||||
"default-character-set is deprecated and will be replaced ..."
|
|
||||||
message.
|
|
||||||
*/
|
|
||||||
default_character_set[0]= 0;
|
|
||||||
GetPrivateProfileString("mysqld", "default-character-set", NULL,
|
|
||||||
default_character_set, sizeof(default_character_set), defaults_file);
|
|
||||||
if (default_character_set[0])
|
|
||||||
{
|
|
||||||
WritePrivateProfileString("mysqld", "default-character-set", NULL,
|
|
||||||
defaults_file);
|
|
||||||
WritePrivateProfileString("mysqld", "character-set-server",
|
|
||||||
default_character_set, defaults_file);
|
|
||||||
}
|
|
||||||
|
|
||||||
sprintf(defaults_file_param,"--defaults-file=%s", service_properties.inifile);
|
sprintf(defaults_file_param,"--defaults-file=%s", service_properties.inifile);
|
||||||
sprintf_s(commandline, "\"%s\" \"%s\" \"%s\"", mysqld_path,
|
sprintf_s(commandline, "\"%s\" \"%s\" \"%s\"", mysqld_path,
|
||||||
defaults_file_param, opt_service);
|
defaults_file_param, opt_service);
|
||||||
|
@ -3610,7 +3610,7 @@ int select_max_min_finder_subselect::send_data(List<Item> &items)
|
|||||||
if (!cache)
|
if (!cache)
|
||||||
{
|
{
|
||||||
cache= val_item->get_cache(thd);
|
cache= val_item->get_cache(thd);
|
||||||
switch (val_item->result_type()) {
|
switch (val_item->cmp_type()) {
|
||||||
case REAL_RESULT:
|
case REAL_RESULT:
|
||||||
op= &select_max_min_finder_subselect::cmp_real;
|
op= &select_max_min_finder_subselect::cmp_real;
|
||||||
break;
|
break;
|
||||||
@ -3623,8 +3623,13 @@ int select_max_min_finder_subselect::send_data(List<Item> &items)
|
|||||||
case DECIMAL_RESULT:
|
case DECIMAL_RESULT:
|
||||||
op= &select_max_min_finder_subselect::cmp_decimal;
|
op= &select_max_min_finder_subselect::cmp_decimal;
|
||||||
break;
|
break;
|
||||||
case ROW_RESULT:
|
|
||||||
case TIME_RESULT:
|
case TIME_RESULT:
|
||||||
|
if (val_item->field_type() == MYSQL_TYPE_TIME)
|
||||||
|
op= &select_max_min_finder_subselect::cmp_time;
|
||||||
|
else
|
||||||
|
op= &select_max_min_finder_subselect::cmp_str;
|
||||||
|
break;
|
||||||
|
case ROW_RESULT:
|
||||||
// This case should never be choosen
|
// This case should never be choosen
|
||||||
DBUG_ASSERT(0);
|
DBUG_ASSERT(0);
|
||||||
op= 0;
|
op= 0;
|
||||||
@ -3669,6 +3674,22 @@ bool select_max_min_finder_subselect::cmp_int()
|
|||||||
return (val1 < val2);
|
return (val1 < val2);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool select_max_min_finder_subselect::cmp_time()
|
||||||
|
{
|
||||||
|
Item *maxmin= ((Item_singlerow_subselect *)item)->element_index(0);
|
||||||
|
longlong val1= cache->val_time_packed(), val2= maxmin->val_time_packed();
|
||||||
|
|
||||||
|
/* Ignore NULLs for ANY and keep them for ALL subqueries */
|
||||||
|
if (cache->null_value)
|
||||||
|
return (is_all && !maxmin->null_value) || (!is_all && maxmin->null_value);
|
||||||
|
if (maxmin->null_value)
|
||||||
|
return !is_all;
|
||||||
|
|
||||||
|
if (fmax)
|
||||||
|
return(val1 > val2);
|
||||||
|
return (val1 < val2);
|
||||||
|
}
|
||||||
|
|
||||||
bool select_max_min_finder_subselect::cmp_decimal()
|
bool select_max_min_finder_subselect::cmp_decimal()
|
||||||
{
|
{
|
||||||
Item *maxmin= ((Item_singlerow_subselect *)item)->element_index(0);
|
Item *maxmin= ((Item_singlerow_subselect *)item)->element_index(0);
|
||||||
@ -3695,7 +3716,7 @@ bool select_max_min_finder_subselect::cmp_str()
|
|||||||
but added for safety
|
but added for safety
|
||||||
*/
|
*/
|
||||||
val1= cache->val_str(&buf1);
|
val1= cache->val_str(&buf1);
|
||||||
val2= maxmin->val_str(&buf1);
|
val2= maxmin->val_str(&buf2);
|
||||||
|
|
||||||
/* Ignore NULLs for ANY and keep them for ALL subqueries */
|
/* Ignore NULLs for ANY and keep them for ALL subqueries */
|
||||||
if (cache->null_value)
|
if (cache->null_value)
|
||||||
|
@ -4899,12 +4899,10 @@ inline void add_to_active_threads(THD *thd)
|
|||||||
/*
|
/*
|
||||||
This should be called when you want to delete a thd that was not
|
This should be called when you want to delete a thd that was not
|
||||||
running any queries.
|
running any queries.
|
||||||
This function will assert that the THD is linked.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
inline void unlink_not_visible_thd(THD *thd)
|
inline void unlink_not_visible_thd(THD *thd)
|
||||||
{
|
{
|
||||||
thd->assert_linked();
|
|
||||||
mysql_mutex_lock(&LOCK_thread_count);
|
mysql_mutex_lock(&LOCK_thread_count);
|
||||||
thd->unlink();
|
thd->unlink();
|
||||||
mysql_mutex_unlock(&LOCK_thread_count);
|
mysql_mutex_unlock(&LOCK_thread_count);
|
||||||
@ -5881,6 +5879,7 @@ public:
|
|||||||
bool cmp_int();
|
bool cmp_int();
|
||||||
bool cmp_decimal();
|
bool cmp_decimal();
|
||||||
bool cmp_str();
|
bool cmp_str();
|
||||||
|
bool cmp_time();
|
||||||
};
|
};
|
||||||
|
|
||||||
/* EXISTS subselect interface class */
|
/* EXISTS subselect interface class */
|
||||||
|
@ -1642,10 +1642,7 @@ int Lex_input_stream::lex_one_token(YYSTYPE *yylval, THD *thd)
|
|||||||
if (c == '-' || c == '+')
|
if (c == '-' || c == '+')
|
||||||
c= yyGet(); // Skip sign
|
c= yyGet(); // Skip sign
|
||||||
if (!my_isdigit(cs, c))
|
if (!my_isdigit(cs, c))
|
||||||
{ // No digit after sign
|
return ABORT_SYM; // No digit after sign
|
||||||
state= MY_LEX_CHAR;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
while (my_isdigit(cs, yyGet())) ;
|
while (my_isdigit(cs, yyGet())) ;
|
||||||
yylval->lex_str= get_token(0, yyLength());
|
yylval->lex_str= get_token(0, yyLength());
|
||||||
return(FLOAT_NUM);
|
return(FLOAT_NUM);
|
||||||
|
@ -5347,7 +5347,12 @@ create_like:
|
|||||||
|
|
||||||
opt_create_select:
|
opt_create_select:
|
||||||
/* empty */ {}
|
/* empty */ {}
|
||||||
| opt_duplicate opt_as create_select_query_expression opt_versioning_option
|
| opt_duplicate opt_as create_select_query_expression
|
||||||
|
opt_versioning_option
|
||||||
|
{
|
||||||
|
if (Lex->check_cte_dependencies_and_resolve_references())
|
||||||
|
MYSQL_YYABORT;
|
||||||
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
create_select_query_expression:
|
create_select_query_expression:
|
||||||
@ -5356,16 +5361,12 @@ create_select_query_expression:
|
|||||||
{
|
{
|
||||||
Select->set_braces(0);
|
Select->set_braces(0);
|
||||||
Select->set_with_clause($1);
|
Select->set_with_clause($1);
|
||||||
if (Lex->check_cte_dependencies_and_resolve_references())
|
|
||||||
MYSQL_YYABORT;
|
|
||||||
}
|
}
|
||||||
union_clause
|
union_clause
|
||||||
| opt_with_clause SELECT_SYM create_select_part2
|
| opt_with_clause SELECT_SYM create_select_part2
|
||||||
create_select_part3_union_not_ready create_select_part4
|
create_select_part3_union_not_ready create_select_part4
|
||||||
{
|
{
|
||||||
Select->set_with_clause($1);
|
Select->set_with_clause($1);
|
||||||
if (Lex->check_cte_dependencies_and_resolve_references())
|
|
||||||
MYSQL_YYABORT;
|
|
||||||
}
|
}
|
||||||
| '(' create_select_query_specification ')'
|
| '(' create_select_query_specification ')'
|
||||||
| '(' create_select_query_specification ')'
|
| '(' create_select_query_specification ')'
|
||||||
@ -13826,6 +13827,10 @@ delete:
|
|||||||
lex->select_lex.init_order();
|
lex->select_lex.init_order();
|
||||||
}
|
}
|
||||||
delete_part2
|
delete_part2
|
||||||
|
{
|
||||||
|
if (Lex->check_cte_dependencies_and_resolve_references())
|
||||||
|
MYSQL_YYABORT;
|
||||||
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
opt_delete_system_time:
|
opt_delete_system_time:
|
||||||
|
@ -5189,7 +5189,12 @@ create_like:
|
|||||||
|
|
||||||
opt_create_select:
|
opt_create_select:
|
||||||
/* empty */ {}
|
/* empty */ {}
|
||||||
| opt_duplicate opt_as create_select_query_expression opt_versioning_option
|
| opt_duplicate opt_as create_select_query_expression
|
||||||
|
opt_versioning_option
|
||||||
|
{
|
||||||
|
if (Lex->check_cte_dependencies_and_resolve_references())
|
||||||
|
MYSQL_YYABORT;
|
||||||
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
create_select_query_expression:
|
create_select_query_expression:
|
||||||
@ -5198,16 +5203,12 @@ create_select_query_expression:
|
|||||||
{
|
{
|
||||||
Select->set_braces(0);
|
Select->set_braces(0);
|
||||||
Select->set_with_clause($1);
|
Select->set_with_clause($1);
|
||||||
if (Lex->check_cte_dependencies_and_resolve_references())
|
|
||||||
MYSQL_YYABORT;
|
|
||||||
}
|
}
|
||||||
union_clause
|
union_clause
|
||||||
| opt_with_clause SELECT_SYM create_select_part2
|
| opt_with_clause SELECT_SYM create_select_part2
|
||||||
create_select_part3_union_not_ready create_select_part4
|
create_select_part3_union_not_ready create_select_part4
|
||||||
{
|
{
|
||||||
Select->set_with_clause($1);
|
Select->set_with_clause($1);
|
||||||
if (Lex->check_cte_dependencies_and_resolve_references())
|
|
||||||
MYSQL_YYABORT;
|
|
||||||
}
|
}
|
||||||
| '(' create_select_query_specification ')'
|
| '(' create_select_query_specification ')'
|
||||||
| '(' create_select_query_specification ')'
|
| '(' create_select_query_specification ')'
|
||||||
@ -13780,6 +13781,10 @@ delete:
|
|||||||
lex->select_lex.init_order();
|
lex->select_lex.init_order();
|
||||||
}
|
}
|
||||||
delete_part2
|
delete_part2
|
||||||
|
{
|
||||||
|
if (Lex->check_cte_dependencies_and_resolve_references())
|
||||||
|
MYSQL_YYABORT;
|
||||||
|
}
|
||||||
;
|
;
|
||||||
|
|
||||||
opt_delete_system_time:
|
opt_delete_system_time:
|
||||||
|
@ -1,3 +1,12 @@
|
|||||||
|
|
||||||
|
SET(CPACK_RPM_cassandra-engine_PACKAGE_SUMMARY "Cassandra storage engine for MariaDB" PARENT_SCOPE)
|
||||||
|
SET(CPACK_RPM_cassandra-engine_PACKAGE_DESCRIPTION "The Cassandra Storage Engine allows access to data in a Cassandra cluster from
|
||||||
|
MariaDB, combining the best of SQL and no-SQL worlds. Cassandra SE (storage
|
||||||
|
engine) makes Cassandra's column family appear as a table in MariaDB that you
|
||||||
|
can insert to, update, and select from. You can write joins against this table,
|
||||||
|
it is possible to join data that's stored in MariaDB with data that's stored in
|
||||||
|
Cassandra." PARENT_SCOPE)
|
||||||
|
|
||||||
# use the first path that has Thrift.h included, if found
|
# use the first path that has Thrift.h included, if found
|
||||||
|
|
||||||
FIND_PATH(Thrift_INCLUDE_DIRS Thrift.h PATHS
|
FIND_PATH(Thrift_INCLUDE_DIRS Thrift.h PATHS
|
||||||
|
@ -17,6 +17,11 @@ IF(WITHOUT_DYNAMIC_PLUGINS OR WITH_NONE OR ("${PLUGIN_CONNECT}" STREQUAL "NO"))
|
|||||||
RETURN()
|
RETURN()
|
||||||
ENDIF()
|
ENDIF()
|
||||||
|
|
||||||
|
SET(CPACK_RPM_connect-engine_PACKAGE_SUMMARY "Connect storage engine for MariaDB" PARENT_SCOPE)
|
||||||
|
SET(CPACK_RPM_connect-engine_PACKAGE_DESCRIPTION "Connect engine supports a number of file formats (dbf, xml, txt, bin, etc),
|
||||||
|
connections to ODBC tables and remote MySQL tables, as well as a number of
|
||||||
|
other interesting features." PARENT_SCOPE)
|
||||||
|
|
||||||
SET(CONNECT_PLUGIN_STATIC "connect")
|
SET(CONNECT_PLUGIN_STATIC "connect")
|
||||||
SET(CONNECT_PLUGIN_DYNAMIC "connect")
|
SET(CONNECT_PLUGIN_DYNAMIC "connect")
|
||||||
|
|
||||||
|
@ -1,5 +1,12 @@
|
|||||||
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
set(CMAKE_MODULE_PATH "${CMAKE_CURRENT_SOURCE_DIR}/cmake")
|
||||||
|
|
||||||
|
SET(CPACK_RPM_oqgraph-engine_PACKAGE_SUMMARY "OQGraph storage engine for MariaDB" PARENT_SCOPE)
|
||||||
|
SET(CPACK_RPM_oqgraph-engine_PACKAGE_DESCRIPTION "The Open Query GRAPH computation engine, or OQGRAPH as the engine itself is called,
|
||||||
|
allows you to handle hierarchies (tree structures) and complex graphs
|
||||||
|
(nodes having many connections in several directions).
|
||||||
|
It is intended to be used for retrieving hierarchical information, such as those used for graphs,
|
||||||
|
routes or social relationships, in plain SQL." PARENT_SCOPE)
|
||||||
|
|
||||||
FUNCTION(CHECK_OQGRAPH)
|
FUNCTION(CHECK_OQGRAPH)
|
||||||
MESSAGE(STATUS "Configuring OQGraph")
|
MESSAGE(STATUS "Configuring OQGraph")
|
||||||
FIND_PACKAGE(Boost 1.40.0)
|
FIND_PACKAGE(Boost 1.40.0)
|
||||||
|
@ -1,5 +1,9 @@
|
|||||||
# TODO: Copyrights
|
# TODO: Copyrights
|
||||||
|
|
||||||
|
SET(CPACK_RPM_rocksdb-engine_PACKAGE_SUMMARY "RocksDB storage engine for MariaDB" PARENT_SCOPE)
|
||||||
|
SET(CPACK_RPM_rocksdb-engine_PACKAGE_DESCRIPTION "The RocksDB storage engine is a high performance storage engine, aimed
|
||||||
|
at maximising storage efficiency while maintaining InnoDB-like performance." PARENT_SCOPE)
|
||||||
|
|
||||||
MACRO(SKIP_ROCKSDB_PLUGIN msg)
|
MACRO(SKIP_ROCKSDB_PLUGIN msg)
|
||||||
MESSAGE_ONCE(SKIP_ROCKSDB_PLUGIN "Can't build rocksdb engine - ${msg}")
|
MESSAGE_ONCE(SKIP_ROCKSDB_PLUGIN "Can't build rocksdb engine - ${msg}")
|
||||||
ADD_FEATURE_INFO(ROCKSDB "OFF" "Storage Engine")
|
ADD_FEATURE_INFO(ROCKSDB "OFF" "Storage Engine")
|
||||||
|
@ -1,3 +1,8 @@
|
|||||||
|
SET(CPACK_RPM_tokudb-engine_PACKAGE_SUMMARY "TokuDB storage engine for MariaDB" PARENT_SCOPE)
|
||||||
|
SET(CPACK_RPM_tokudb-engine_PACKAGE_DESCRIPTION "The TokuDB storage engine is for use in high-performance and write-intensive
|
||||||
|
environments, offering increased compression and better performance based
|
||||||
|
on fractal indexes." PARENT_SCOPE)
|
||||||
|
|
||||||
SET(TOKUDB_VERSION 5.6.49-89.0)
|
SET(TOKUDB_VERSION 5.6.49-89.0)
|
||||||
# PerconaFT only supports x86-64 and cmake-2.8.9+
|
# PerconaFT only supports x86-64 and cmake-2.8.9+
|
||||||
IF(WIN32)
|
IF(WIN32)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user