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
d1507050
Commit
d1507050
authored
Mar 12, 2020
by
Sachin
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Solve compile error
parent
6729b0b2
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
60 additions
and
41 deletions
+60
-41
sql/rpl_mi.h
sql/rpl_mi.h
+0
-40
sql/sql_alter.cc
sql/sql_alter.cc
+8
-0
sql/sql_table.cc
sql/sql_table.cc
+9
-1
sql/table.h
sql/table.h
+43
-0
No files found.
sql/rpl_mi.h
View file @
d1507050
...
@@ -146,36 +146,6 @@ typedef struct st_rows_event_tracker
...
@@ -146,36 +146,6 @@ typedef struct st_rows_event_tracker
bool
check_and_report
(
const
char
*
file_name
,
my_off_t
pos
);
bool
check_and_report
(
const
char
*
file_name
,
my_off_t
pos
);
}
Rows_event_tracker
;
}
Rows_event_tracker
;
enum
start_alter_state
{
REGISTERED
=
0
,
// Start Alter exist, Default state
COMMIT_ALTER
,
// COMMIT the alter
ROLLBACK_ALTER
,
// Rollback the alter
COMMITTED
// COMMIT/ROLLBACK Alter written in binlog
};
struct
start_alter_info
{
/*
Unique among replication channel at one point of time
*/
uint
thread_id
;
//key for searching
/*
0 prepared and not error from commit and rollback
>0 error expected in commit/rollback
TODO maybe used later ?
*/
uint
error
;
enum
start_alter_state
state
;
/* We are not using mysql_cond_t because we do not need PSI */
mysql_cond_t
start_alter_cond
;
};
struct
start_alter_struct
{
List
<
start_alter_info
>
start_alter_list
;
mysql_mutex_t
start_alter_list_lock
,
start_alter_lock
;
mysql_cond_t
start_alter_list_cond
;
};
/*****************************************************************************
/*****************************************************************************
Replication IO Thread
Replication IO Thread
...
@@ -381,16 +351,6 @@ class Master_info : public Slave_reporting_capability
...
@@ -381,16 +351,6 @@ class Master_info : public Slave_reporting_capability
start_alter_struct
start_alter_struct_master
;
start_alter_struct
start_alter_struct_master
;
};
};
struct
start_alter_thd_args
{
rpl_group_info
*
rgi
;
LEX_CSTRING
query
;
LEX_CSTRING
*
db
;
char
*
catalog
;
bool
shutdown
;
CHARSET_INFO
*
cs
;
};
int
init_master_info
(
Master_info
*
mi
,
const
char
*
master_info_fname
,
int
init_master_info
(
Master_info
*
mi
,
const
char
*
master_info_fname
,
const
char
*
slave_info_fname
,
const
char
*
slave_info_fname
,
bool
abort_if_no_master_info_file
,
bool
abort_if_no_master_info_file
,
...
...
sql/sql_alter.cc
View file @
d1507050
...
@@ -20,6 +20,7 @@
...
@@ -20,6 +20,7 @@
// mysql_exchange_partition
// mysql_exchange_partition
#include "sql_alter.h"
#include "sql_alter.h"
#include "rpl_mi.h"
#include "rpl_mi.h"
#include "rpl_rli.h"
#include "slave.h"
#include "slave.h"
#include "wsrep_mysqld.h"
#include "wsrep_mysqld.h"
...
@@ -381,6 +382,8 @@ static int process_start_alter(THD *thd, uint64 thread_id,
...
@@ -381,6 +382,8 @@ static int process_start_alter(THD *thd, uint64 thread_id,
mysql_mutex_t
*
start_alter_lock
,
mysql_mutex_t
*
start_alter_lock
,
mysql_cond_t
*
start_alter_list_cond
)
mysql_cond_t
*
start_alter_list_cond
)
{
{
#ifdef HAVE_REPLICATION
/*
/*
start_alter_thread will be true for spawned thread
start_alter_thread will be true for spawned thread
*/
*/
...
@@ -445,6 +448,9 @@ static int process_start_alter(THD *thd, uint64 thread_id,
...
@@ -445,6 +448,9 @@ static int process_start_alter(THD *thd, uint64 thread_id,
DBUG_ASSERT
(
info
->
state
==
start_alter_state
::
REGISTERED
);
DBUG_ASSERT
(
info
->
state
==
start_alter_state
::
REGISTERED
);
if
(
write_bin_log
(
thd
,
false
,
thd
->
query
(),
thd
->
query_length
(),
true
)
&&
ha_commit_trans
(
thd
,
true
))
if
(
write_bin_log
(
thd
,
false
,
thd
->
query
(),
thd
->
query_length
(),
true
)
&&
ha_commit_trans
(
thd
,
true
))
return
2
;
return
2
;
#else
return
START_ALTER_PARSE
;
#endif
return
0
;
return
0
;
}
}
/* 0= Nothing to do skip query_log_event parsing , 1= query_log_event_parsing
/* 0= Nothing to do skip query_log_event parsing , 1= query_log_event_parsing
...
@@ -703,11 +709,13 @@ bool Sql_cmd_alter_table::execute(THD *thd)
...
@@ -703,11 +709,13 @@ bool Sql_cmd_alter_table::execute(THD *thd)
mysql_cond_t
*
start_alter_list_cond
;
mysql_cond_t
*
start_alter_list_cond
;
if
(
thd
->
rgi_slave
)
if
(
thd
->
rgi_slave
)
{
{
#ifdef HAVE_REPLICATION
start_alter_struct
*
data
=
&
thd
->
rgi_slave
->
rli
->
mi
->
start_alter_struct_master
;
start_alter_struct
*
data
=
&
thd
->
rgi_slave
->
rli
->
mi
->
start_alter_struct_master
;
start_alter_list
=
&
data
->
start_alter_list
;
start_alter_list
=
&
data
->
start_alter_list
;
start_alter_list_lock
=
&
data
->
start_alter_list_lock
;
start_alter_list_lock
=
&
data
->
start_alter_list_lock
;
start_alter_lock
=
&
data
->
start_alter_lock
;
start_alter_lock
=
&
data
->
start_alter_lock
;
start_alter_list_cond
=
&
data
->
start_alter_list_cond
;
start_alter_list_cond
=
&
data
->
start_alter_list_cond
;
#endif
}
}
else
else
{
{
...
...
sql/sql_table.cc
View file @
d1507050
...
@@ -56,6 +56,8 @@
...
@@ -56,6 +56,8 @@
#include "tztime.h"
#include "tztime.h"
#include <algorithm>
#include <algorithm>
#include "rpl_mi.h"
#include "rpl_mi.h"
#include "rpl_rli.h"
#include "slave.h"
#ifdef __WIN__
#ifdef __WIN__
...
@@ -9377,6 +9379,7 @@ static int master_result(THD *thd, start_alter_info *info,
...
@@ -9377,6 +9379,7 @@ static int master_result(THD *thd, start_alter_info *info,
}
}
else
if
(
info
->
state
==
start_alter_state
::
COMMIT_ALTER
&&
alter_result
)
else
if
(
info
->
state
==
start_alter_state
::
COMMIT_ALTER
&&
alter_result
)
{
{
/*
//TODO
//TODO
thd->rgi_slave->rli->report(ERROR_LEVEL, 0, thd->rgi_slave->gtid_info(),
thd->rgi_slave->rli->report(ERROR_LEVEL, 0, thd->rgi_slave->gtid_info(),
"Query caused different errors on master and slave. "
"Query caused different errors on master and slave. "
...
@@ -9387,6 +9390,7 @@ static int master_result(THD *thd, start_alter_info *info,
...
@@ -9387,6 +9390,7 @@ static int master_result(THD *thd, start_alter_info *info,
0, thd->get_stmt_da()->message() ,
0, thd->get_stmt_da()->message() ,
1045,
1045,
"test", thd->query());
"test", thd->query());
*/
thd
->
is_slave_error
=
1
;
thd
->
is_slave_error
=
1
;
return
MASTER_RESULT_COMMIT_ERROR
;
return
MASTER_RESULT_COMMIT_ERROR
;
}
}
...
@@ -9500,12 +9504,16 @@ bool mysql_alter_table(THD *thd, const LEX_CSTRING *new_db,
...
@@ -9500,12 +9504,16 @@ bool mysql_alter_table(THD *thd, const LEX_CSTRING *new_db,
bool
partial_alter
=
false
;
bool
partial_alter
=
false
;
start_alter_info
*
info
=
get_new_start_alter_info
(
thd
);
start_alter_info
*
info
=
get_new_start_alter_info
(
thd
);
start_alter_struct
*
alter_struct
;
start_alter_struct
*
alter_struct
;
DBUG_ENTER
(
"mysql_alter_table"
);
if
(
thd
->
slave_thread
)
if
(
thd
->
slave_thread
)
#ifdef HAVE_REPLICATION
alter_struct
=
&
thd
->
rgi_slave
->
rli
->
mi
->
start_alter_struct_master
;
alter_struct
=
&
thd
->
rgi_slave
->
rli
->
mi
->
start_alter_struct_master
;
#else
DBUG_RETURN
(
true
);
#endif
else
else
alter_struct
=
NULL
;
alter_struct
=
NULL
;
ulong
start_alter_id
=
thd
->
lex
->
alter_info
.
alter_identifier
;
ulong
start_alter_id
=
thd
->
lex
->
alter_info
.
alter_identifier
;
DBUG_ENTER
(
"mysql_alter_table"
);
/*
/*
Check if we attempt to alter mysql.slow_log or
Check if we attempt to alter mysql.slow_log or
...
...
sql/table.h
View file @
d1507050
...
@@ -324,6 +324,49 @@ typedef struct st_grant_info
...
@@ -324,6 +324,49 @@ typedef struct st_grant_info
GRANT_INTERNAL_INFO
m_internal
;
GRANT_INTERNAL_INFO
m_internal
;
}
GRANT_INFO
;
}
GRANT_INFO
;
enum
start_alter_state
{
REGISTERED
=
0
,
// Start Alter exist, Default state
COMMIT_ALTER
,
// COMMIT the alter
ROLLBACK_ALTER
,
// Rollback the alter
COMMITTED
// COMMIT/ROLLBACK Alter written in binlog
};
struct
start_alter_info
{
/*
Unique among replication channel at one point of time
*/
uint
thread_id
;
//key for searching
/*
0 prepared and not error from commit and rollback
>0 error expected in commit/rollback
TODO maybe used later ?
*/
uint
error
;
enum
start_alter_state
state
;
/* We are not using mysql_cond_t because we do not need PSI */
mysql_cond_t
start_alter_cond
;
};
struct
start_alter_struct
{
List
<
start_alter_info
>
start_alter_list
;
mysql_mutex_t
start_alter_list_lock
,
start_alter_lock
;
mysql_cond_t
start_alter_list_cond
;
};
struct
rpl_group_info
;
struct
start_alter_thd_args
{
rpl_group_info
*
rgi
;
LEX_CSTRING
query
;
LEX_CSTRING
*
db
;
char
*
catalog
;
bool
shutdown
;
CHARSET_INFO
*
cs
;
};
enum
tmp_table_type
enum
tmp_table_type
{
{
NO_TMP_TABLE
,
NON_TRANSACTIONAL_TMP_TABLE
,
TRANSACTIONAL_TMP_TABLE
,
NO_TMP_TABLE
,
NON_TRANSACTIONAL_TMP_TABLE
,
TRANSACTIONAL_TMP_TABLE
,
...
...
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