Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
M
MariaDB
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
nexedi
MariaDB
Commits
745cd57a
Commit
745cd57a
authored
Sep 19, 2017
by
Vicențiu Ciorbaru
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'merge-tokudb-5.6' into 10.0
parents
0e153963
618d8fdf
Changes
10
Hide whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
100 additions
and
366 deletions
+100
-366
storage/tokudb/CMakeLists.txt
storage/tokudb/CMakeLists.txt
+1
-1
storage/tokudb/PerconaFT/buildheader/make_tdb.cc
storage/tokudb/PerconaFT/buildheader/make_tdb.cc
+2
-0
storage/tokudb/PerconaFT/src/ydb-internal.h
storage/tokudb/PerconaFT/src/ydb-internal.h
+6
-3
storage/tokudb/PerconaFT/src/ydb_cursor.cc
storage/tokudb/PerconaFT/src/ydb_cursor.cc
+59
-49
storage/tokudb/ha_tokudb.cc
storage/tokudb/ha_tokudb.cc
+7
-1
storage/tokudb/mysql-test/rpl/r/rpl_row_log_tokudb.result
storage/tokudb/mysql-test/rpl/r/rpl_row_log_tokudb.result
+0
-293
storage/tokudb/mysql-test/rpl/t/rpl_row_log_tokudb-master.opt
...age/tokudb/mysql-test/rpl/t/rpl_row_log_tokudb-master.opt
+0
-2
storage/tokudb/mysql-test/rpl/t/rpl_row_log_tokudb.test
storage/tokudb/mysql-test/rpl/t/rpl_row_log_tokudb.test
+0
-15
storage/tokudb/mysql-test/tokudb/r/dir_per_db.result
storage/tokudb/mysql-test/tokudb/r/dir_per_db.result
+9
-1
storage/tokudb/mysql-test/tokudb/t/dir_per_db.test
storage/tokudb/mysql-test/tokudb/t/dir_per_db.test
+16
-1
No files found.
storage/tokudb/CMakeLists.txt
View file @
745cd57a
SET
(
TOKUDB_VERSION 5.6.3
6-82.1
)
SET
(
TOKUDB_VERSION 5.6.3
7-82.2
)
# PerconaFT only supports x86-64 and cmake-2.8.9+
IF
(
CMAKE_VERSION VERSION_LESS
"2.8.9"
)
MESSAGE
(
STATUS
"CMake 2.8.9 or higher is required by TokuDB"
)
...
...
storage/tokudb/PerconaFT/buildheader/make_tdb.cc
View file @
745cd57a
...
...
@@ -231,6 +231,8 @@ static void print_defines (void) {
printf
(
"#define DB_SET_RANGE_REVERSE 252
\n
"
);
// private tokudb
//printf("#define DB_GET_BOTH_RANGE_REVERSE 251\n"); // private tokudb. No longer supported #2862.
dodefine
(
DB_RMW
);
printf
(
"#define DB_LOCKING_READ 0x80000000
\n
"
);
printf
(
"#define DB_IS_RESETTING_OP 0x01000000
\n
"
);
// private tokudb
printf
(
"#define DB_PRELOCKED 0x00800000
\n
"
);
// private tokudb
printf
(
"#define DB_PRELOCKED_WRITE 0x00400000
\n
"
);
// private tokudb
...
...
storage/tokudb/PerconaFT/src/ydb-internal.h
View file @
745cd57a
...
...
@@ -238,13 +238,16 @@ struct __toku_dbc_internal {
struct
simple_dbt
skey_s
,
sval_s
;
struct
simple_dbt
*
skey
,
*
sval
;
// if the rmw flag is asserted, cursor operations (like set) grab write locks instead of read locks
// if the rmw flag is asserted, cursor operations (like set) grab write
// locks instead of read locks
// the rmw flag is set when the cursor is created with the DB_RMW flag set
bool
rmw
;
bool
locking_read
;
};
static_assert
(
sizeof
(
__toku_dbc_internal
)
<=
sizeof
(((
DBC
*
)
nullptr
)
->
_internal
),
"__toku_dbc_internal doesn't fit in the internal portion of a DBC"
);
static_assert
(
sizeof
(
__toku_dbc_internal
)
<=
sizeof
(((
DBC
*
)
nullptr
)
->
_internal
),
"__toku_dbc_internal doesn't fit in the internal portion of a DBC"
);
static
inline
__toku_dbc_internal
*
dbc_struct_i
(
DBC
*
c
)
{
union
dbc_union
{
...
...
storage/tokudb/PerconaFT/src/ydb_cursor.cc
View file @
745cd57a
...
...
@@ -110,12 +110,14 @@ c_get_wrapper_callback(DBT const *key, DBT const *val, void *extra) {
return
r
;
}
static
inline
uint32_t
get_cursor_prelocked_flags
(
uint32_t
flags
,
DBC
*
dbc
)
{
static
inline
uint32_t
get_cursor_prelocked_flags
(
uint32_t
flags
,
DBC
*
dbc
)
{
uint32_t
lock_flags
=
flags
&
(
DB_PRELOCKED
|
DB_PRELOCKED_WRITE
);
//DB_READ_UNCOMMITTED and DB_READ_COMMITTED transactions 'own' all read locks for user-data dictionaries.
if
(
dbc_struct_i
(
dbc
)
->
iso
!=
TOKU_ISO_SERIALIZABLE
)
{
// DB_READ_UNCOMMITTED and DB_READ_COMMITTED transactions 'own' all read
// locks for user-data dictionaries.
if
(
dbc_struct_i
(
dbc
)
->
iso
!=
TOKU_ISO_SERIALIZABLE
&&
!
(
dbc_struct_i
(
dbc
)
->
iso
==
TOKU_ISO_SNAPSHOT
&&
dbc_struct_i
(
dbc
)
->
locking_read
))
{
lock_flags
|=
DB_PRELOCKED
;
}
return
lock_flags
;
...
...
@@ -671,37 +673,44 @@ int toku_c_close(DBC *c) {
return
0
;
}
static
int
c_set_bounds
(
DBC
*
dbc
,
const
DBT
*
left_key
,
const
DBT
*
right_key
,
bool
pre_acquire
,
int
out_of_range_error
)
{
static
int
c_set_bounds
(
DBC
*
dbc
,
const
DBT
*
left_key
,
const
DBT
*
right_key
,
bool
pre_acquire
,
int
out_of_range_error
)
{
if
(
out_of_range_error
!=
DB_NOTFOUND
&&
out_of_range_error
!=
TOKUDB_OUT_OF_RANGE
&&
out_of_range_error
!=
0
)
{
return
toku_ydb_do_error
(
dbc
->
dbp
->
dbenv
,
EINVAL
,
"Invalid out_of_range_error [%d] for %s
\n
"
,
out_of_range_error
,
__FUNCTION__
);
}
if
(
left_key
==
toku_dbt_negative_infinity
()
&&
right_key
==
toku_dbt_positive_infinity
())
{
out_of_range_error
!=
TOKUDB_OUT_OF_RANGE
&&
out_of_range_error
!=
0
)
{
return
toku_ydb_do_error
(
dbc
->
dbp
->
dbenv
,
EINVAL
,
"Invalid out_of_range_error [%d] for %s
\n
"
,
out_of_range_error
,
__FUNCTION__
);
}
if
(
left_key
==
toku_dbt_negative_infinity
()
&&
right_key
==
toku_dbt_positive_infinity
())
{
out_of_range_error
=
0
;
}
DB
*
db
=
dbc
->
dbp
;
DB_TXN
*
txn
=
dbc_struct_i
(
dbc
)
->
txn
;
HANDLE_PANICKED_DB
(
db
);
toku_ft_cursor_set_range_lock
(
dbc_ftcursor
(
dbc
),
left_key
,
right_key
,
(
left_key
==
toku_dbt_negative_infinity
()),
(
right_key
==
toku_dbt_positive_infinity
()),
out_of_range_error
);
toku_ft_cursor_set_range_lock
(
dbc_ftcursor
(
dbc
),
left_key
,
right_key
,
(
left_key
==
toku_dbt_negative_infinity
()),
(
right_key
==
toku_dbt_positive_infinity
()),
out_of_range_error
);
if
(
!
db
->
i
->
lt
||
!
txn
||
!
pre_acquire
)
return
0
;
//READ_UNCOMMITTED and READ_COMMITTED transactions do not need read locks.
if
(
!
dbc_struct_i
(
dbc
)
->
rmw
&&
dbc_struct_i
(
dbc
)
->
iso
!=
TOKU_ISO_SERIALIZABLE
)
// READ_UNCOMMITTED and READ_COMMITTED transactions do not need read locks.
if
(
!
dbc_struct_i
(
dbc
)
->
rmw
&&
dbc_struct_i
(
dbc
)
->
iso
!=
TOKU_ISO_SERIALIZABLE
&&
!
(
dbc_struct_i
(
dbc
)
->
iso
==
TOKU_ISO_SNAPSHOT
&&
dbc_struct_i
(
dbc
)
->
locking_read
))
return
0
;
toku
::
lock_request
::
type
lock_type
=
dbc_struct_i
(
dbc
)
->
rmw
?
toku
::
lock_request
::
type
::
WRITE
:
toku
::
lock_request
::
type
::
READ
;
toku
::
lock_request
::
type
lock_type
=
dbc_struct_i
(
dbc
)
->
rmw
?
toku
::
lock_request
::
type
::
WRITE
:
toku
::
lock_request
::
type
::
READ
;
int
r
=
toku_db_get_range_lock
(
db
,
txn
,
left_key
,
right_key
,
lock_type
);
return
r
;
}
...
...
@@ -783,18 +792,20 @@ toku_c_get(DBC* c, DBT* key, DBT* val, uint32_t flag) {
return
r
;
}
int
toku_db_cursor_internal
(
DB
*
db
,
DB_TXN
*
txn
,
DBC
*
c
,
uint32_t
flags
,
int
is_temporary_cursor
)
{
int
toku_db_cursor_internal
(
DB
*
db
,
DB_TXN
*
txn
,
DBC
*
c
,
uint32_t
flags
,
int
is_temporary_cursor
)
{
HANDLE_PANICKED_DB
(
db
);
HANDLE_DB_ILLEGAL_WORKING_PARENT_TXN
(
db
,
txn
);
DB_ENV
*
env
=
db
->
dbenv
;
DB_ENV
*
env
=
db
->
dbenv
;
if
(
flags
&
~
(
DB_SERIALIZABLE
|
DB_INHERIT_ISOLATION
|
DB_RMW
|
DBC_DISABLE_PREFETCHING
))
{
if
(
flags
&
~
(
DB_SERIALIZABLE
|
DB_INHERIT_ISOLATION
|
DB_LOCKING_READ
|
DB_RMW
|
DBC_DISABLE_PREFETCHING
))
{
return
toku_ydb_do_error
(
env
,
EINVAL
,
"Invalid flags set for toku_db_cursor
\n
"
);
env
,
EINVAL
,
"Invalid flags set for toku_db_cursor
\n
"
);
}
#define SCRS(name) c->name = name
...
...
@@ -819,8 +830,8 @@ toku_db_cursor_internal(DB * db, DB_TXN * txn, DBC *c, uint32_t flags, int is_te
c
->
dbp
=
db
;
dbc_struct_i
(
c
)
->
txn
=
txn
;
dbc_struct_i
(
c
)
->
skey_s
=
(
struct
simple_dbt
){
0
,
0
};
dbc_struct_i
(
c
)
->
sval_s
=
(
struct
simple_dbt
){
0
,
0
};
dbc_struct_i
(
c
)
->
skey_s
=
(
struct
simple_dbt
){
0
,
0
};
dbc_struct_i
(
c
)
->
sval_s
=
(
struct
simple_dbt
){
0
,
0
};
if
(
is_temporary_cursor
)
{
dbc_struct_i
(
c
)
->
skey
=
&
db
->
i
->
skey
;
dbc_struct_i
(
c
)
->
sval
=
&
db
->
i
->
sval
;
...
...
@@ -831,28 +842,27 @@ toku_db_cursor_internal(DB * db, DB_TXN * txn, DBC *c, uint32_t flags, int is_te
if
(
flags
&
DB_SERIALIZABLE
)
{
dbc_struct_i
(
c
)
->
iso
=
TOKU_ISO_SERIALIZABLE
;
}
else
{
dbc_struct_i
(
c
)
->
iso
=
txn
?
db_txn_struct_i
(
txn
)
->
iso
:
TOKU_ISO_SERIALIZABLE
;
dbc_struct_i
(
c
)
->
iso
=
txn
?
db_txn_struct_i
(
txn
)
->
iso
:
TOKU_ISO_SERIALIZABLE
;
}
dbc_struct_i
(
c
)
->
rmw
=
(
flags
&
DB_RMW
)
!=
0
;
enum
cursor_read_type
read_type
=
C_READ_ANY
;
// default, used in serializable and read uncommitted
dbc_struct_i
(
c
)
->
locking_read
=
(
flags
&
DB_LOCKING_READ
)
!=
0
;
enum
cursor_read_type
read_type
=
C_READ_ANY
;
// default, used in serializable and read uncommitted
if
(
txn
)
{
if
(
dbc_struct_i
(
c
)
->
iso
==
TOKU_ISO_READ_COMMITTED
||
dbc_struct_i
(
c
)
->
iso
==
TOKU_ISO_SNAPSHOT
)
{
dbc_struct_i
(
c
)
->
iso
==
TOKU_ISO_SNAPSHOT
)
{
read_type
=
C_READ_SNAPSHOT
;
}
else
if
(
dbc_struct_i
(
c
)
->
iso
==
TOKU_ISO_READ_COMMITTED_ALWAYS
)
{
}
else
if
(
dbc_struct_i
(
c
)
->
iso
==
TOKU_ISO_READ_COMMITTED_ALWAYS
)
{
read_type
=
C_READ_COMMITTED
;
}
}
int
r
=
toku_ft_cursor_create
(
db
->
i
->
ft_handle
,
dbc_ftcursor
(
c
),
txn
?
db_txn_struct_i
(
txn
)
->
tokutxn
:
NULL
,
read_type
,
((
flags
&
DBC_DISABLE_PREFETCHING
)
!=
0
),
is_temporary_cursor
!=
0
);
int
r
=
toku_ft_cursor_create
(
db
->
i
->
ft_handle
,
dbc_ftcursor
(
c
),
txn
?
db_txn_struct_i
(
txn
)
->
tokutxn
:
NULL
,
read_type
,
((
flags
&
DBC_DISABLE_PREFETCHING
)
!=
0
),
is_temporary_cursor
!=
0
);
if
(
r
!=
0
)
{
invariant
(
r
==
TOKUDB_MVCC_DICTIONARY_TOO_NEW
);
}
...
...
storage/tokudb/ha_tokudb.cc
View file @
745cd57a
...
...
@@ -7645,7 +7645,13 @@ static bool tokudb_check_db_dir_exist_from_table_name(const char *table_name) {
memcpy
(
db_name
,
db_name_begin
,
db_name_size
);
db_name
[
db_name_size
]
=
'\0'
;
mysql_dir_exists
=
(
check_db_dir_existence
(
db_name
)
==
0
);
// At this point, db_name contains the MySQL formatted database name.
// This is exactly the same format that would come into us through a
// CREATE TABLE. Some charaters (like ':' for example) might be expanded
// into hex (':' would papear as "@003a").
// We need to check that the MySQL destination database directory exists.
mysql_dir_exists
=
(
my_access
(
db_name
,
F_OK
)
==
0
);
return
mysql_dir_exists
;
}
...
...
storage/tokudb/mysql-test/rpl/r/rpl_row_log_tokudb.result
deleted
100644 → 0
View file @
0e153963
include/master-slave.inc
[connection master]
include/stop_slave.inc
include/wait_for_slave_to_stop.inc
reset master;
reset slave;
start slave;
include/wait_for_slave_to_start.inc
set @save_slave_ddl_exec_mode=@@global.slave_ddl_exec_mode;
set @@global.slave_ddl_exec_mode=STRICT;
create table t1(n int not null auto_increment primary key)ENGINE=TokuDB;
insert into t1 values (NULL);
drop table t1;
create table t1 (word char(20) not null)ENGINE=TokuDB;
load data infile 'LOAD_FILE' into table t1 ignore 1 lines;
select count(*) from t1;
count(*)
69
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=TokuDB
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; create table t1 (word char(20) not null)ENGINE=TokuDB
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=TokuDB
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=TokuDB
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
flush logs;
create table t3 (a int)ENGINE=TokuDB;
select * from t1 order by 1 asc;
word
Aarhus
Aaron
Aaron
Ababa
Ababa
aback
aback
abaft
abaft
abandon
abandon
abandoned
abandoned
abandoning
abandoning
abandonment
abandonment
abandons
abandons
abase
abased
abasement
abasements
abases
abash
abashed
abashes
abashing
abasing
abate
abated
abatement
abatements
abater
abates
abating
Abba
abbe
abbey
abbeys
abbot
abbots
Abbott
abbreviate
abbreviated
abbreviates
abbreviating
abbreviation
abbreviations
Abby
abdomen
abdomens
abdominal
abduct
abducted
abduction
abductions
abductor
abductors
abducts
Abe
abed
Abel
Abelian
Abelson
Aberdeen
Abernathy
aberrant
aberration
select * from t1 order by 1 asc;
word
Aarhus
Aaron
Aaron
Ababa
Ababa
aback
aback
abaft
abaft
abandon
abandon
abandoned
abandoned
abandoning
abandoning
abandonment
abandonment
abandons
abandons
abase
abased
abasement
abasements
abases
abash
abashed
abashes
abashing
abasing
abate
abated
abatement
abatements
abater
abates
abating
Abba
abbe
abbey
abbeys
abbot
abbots
Abbott
abbreviate
abbreviated
abbreviates
abbreviating
abbreviation
abbreviations
Abby
abdomen
abdomens
abdominal
abduct
abducted
abduction
abductions
abductor
abductors
abducts
Abe
abed
Abel
Abelian
Abelson
Aberdeen
Abernathy
aberrant
aberration
flush logs;
include/stop_slave.inc
include/start_slave.inc
create table t2 (n int)ENGINE=TokuDB;
insert into t2 values (1);
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=TokuDB
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; create table t1 (word char(20) not null)ENGINE=TokuDB
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Xid # # COMMIT /* XID */
master-bin.000001 # Rotate # # master-bin.000002;pos=POS
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000002 # Binlog_checkpoint # # master-bin.000002
master-bin.000002 # Gtid # # GTID #-#-#
master-bin.000002 # Query # # use `test`; create table t3 (a int)ENGINE=TokuDB
master-bin.000002 # Gtid # # GTID #-#-#
master-bin.000002 # Query # # use `test`; create table t2 (n int)ENGINE=TokuDB
master-bin.000002 # Gtid # # BEGIN GTID #-#-#
master-bin.000002 # Table_map # # table_id: # (test.t2)
master-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000002 # Xid # # COMMIT /* XID */
show binary logs;
Log_name File_size
master-bin.000001 #
master-bin.000002 #
show binary logs;
Log_name File_size
slave-bin.000001 #
slave-bin.000002 #
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
slave-bin.000001 # Gtid # # GTID #-#-#
slave-bin.000001 # Query # # use `test`; create table t1(n int not null auto_increment primary key)ENGINE=TokuDB
slave-bin.000001 # Gtid # # BEGIN GTID #-#-#
slave-bin.000001 # Table_map # # table_id: # (test.t1)
slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
slave-bin.000001 # Xid # # COMMIT /* XID */
slave-bin.000001 # Gtid # # GTID #-#-#
slave-bin.000001 # Query # # use `test`; DROP TABLE `t1` /* generated by server */
slave-bin.000001 # Gtid # # GTID #-#-#
slave-bin.000001 # Query # # use `test`; create table t1 (word char(20) not null)ENGINE=TokuDB
slave-bin.000001 # Gtid # # BEGIN GTID #-#-#
slave-bin.000001 # Table_map # # table_id: # (test.t1)
slave-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
slave-bin.000001 # Xid # # COMMIT /* XID */
slave-bin.000001 # Gtid # # GTID #-#-#
slave-bin.000001 # Query # # use `test`; create table t3 (a int)ENGINE=TokuDB
slave-bin.000001 # Rotate # # slave-bin.000002;pos=POS
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
slave-bin.000002 # Binlog_checkpoint # # slave-bin.000002
slave-bin.000002 # Gtid # # GTID #-#-#
slave-bin.000002 # Query # # use `test`; create table t2 (n int)ENGINE=TokuDB
slave-bin.000002 # Gtid # # BEGIN GTID #-#-#
slave-bin.000002 # Table_map # # table_id: # (test.t2)
slave-bin.000002 # Write_rows_v1 # # table_id: # flags: STMT_END_F
slave-bin.000002 # Xid # # COMMIT /* XID */
include/check_slave_is_running.inc
show binlog events in 'slave-bin.000005' from 4;
ERROR HY000: Error when executing command SHOW BINLOG EVENTS: Could not find target log
DROP TABLE t1;
DROP TABLE t2;
DROP TABLE t3;
include/rpl_reset.inc
create table t1(a int auto_increment primary key, b int);
insert into t1 values (NULL, 1);
set insert_id=5;
insert into t1 values (NULL, last_insert_id()), (NULL, last_insert_id());
include/show_binlog_events.inc
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Gtid # # GTID #-#-#
master-bin.000001 # Query # # use `test`; create table t1(a int auto_increment primary key, b int)
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
master-bin.000001 # Gtid # # BEGIN GTID #-#-#
master-bin.000001 # Table_map # # table_id: # (test.t1)
master-bin.000001 # Write_rows_v1 # # table_id: # flags: STMT_END_F
master-bin.000001 # Query # # COMMIT
select * from t1;
a b
1 1
5 1
6 1
drop table t1;
set @@global.slave_ddl_exec_mode=@save_slave_ddl_exec_mode;
include/rpl_end.inc
storage/tokudb/mysql-test/rpl/t/rpl_row_log_tokudb-master.opt
deleted
100644 → 0
View file @
0e153963
--skip-external-locking
--default-storage-engine=MyISAM
storage/tokudb/mysql-test/rpl/t/rpl_row_log_tokudb.test
deleted
100644 → 0
View file @
0e153963
###################################
# Wrapper for rpl_row_log.test #
# Added wrapper so that MyISAM & #
# Innodb and NDB could all use the#
# Same test. NDB produced a diff #
# bin-log #
###################################
--
source
include
/
not_ndb_default
.
inc
--
source
include
/
have_binlog_format_row
.
inc
--
source
include
/
have_tokudb
.
inc
--
source
include
/
master
-
slave
.
inc
let
$engine_type
=
TokuDB
;
--
source
extra
/
rpl_tests
/
rpl_log
.
test
--
source
include
/
rpl_end
.
inc
storage/tokudb/mysql-test/tokudb/r/dir_per_db.result
View file @
745cd57a
SET @orig_tokudb_dir_per_db=@@global.tokudb_dir_per_db;
########
# tokudb_dir_per_db = 1
########
...
...
@@ -177,4 +178,11 @@ t1_status_id.tokudb
DROP TABLE t2;
## Looking for *.tokudb files in data_dir
## Looking for *.tokudb files in data_dir/test
SET GLOBAL tokudb_dir_per_db=default;
CREATE DATABASE `a::a@@`;
CREATE TABLE `a::a@@`.`t1` (a INT) ENGINE=TOKUDB;
CREATE DATABASE `!@#$%^&*()`;
ALTER TABLE `a::a@@`.`t1` RENAME `!@#$%^&*()`.`t1`;
DROP TABLE `!@#$%^&*()`.`t1`;
DROP DATABASE `!@#$%^&*()`;
DROP DATABASE `a::a@@`;
SET GLOBAL tokudb_dir_per_db=@orig_tokudb_dir_per_db;
storage/tokudb/mysql-test/tokudb/t/dir_per_db.test
View file @
745cd57a
source
include
/
have_tokudb
.
inc
;
SET
@
orig_tokudb_dir_per_db
=@@
global
.
tokudb_dir_per_db
;
--
let
$DB
=
test
--
let
$DATADIR
=
`select @@datadir`
--
let
$i
=
2
...
...
@@ -73,4 +75,17 @@ while ($i) {
--
source
dir_per_db_show_table_files
.
inc
}
SET
GLOBAL
tokudb_dir_per_db
=
default
;
# test case for TDB-72 : Can not rename table in database with non alphanum
# characters in its name.
CREATE
DATABASE
`a::a@@`
;
CREATE
TABLE
`a::a@@`
.
`t1`
(
a
INT
)
ENGINE
=
TOKUDB
;
CREATE
DATABASE
`!@#$%^&*()`
;
ALTER
TABLE
`a::a@@`
.
`t1`
RENAME
`!@#$%^&*()`
.
`t1`
;
DROP
TABLE
`!@#$%^&*()`
.
`t1`
;
DROP
DATABASE
`!@#$%^&*()`
;
DROP
DATABASE
`a::a@@`
;
# cleanup
SET
GLOBAL
tokudb_dir_per_db
=@
orig_tokudb_dir_per_db
;
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment