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
6f17e233
Commit
6f17e233
authored
Apr 28, 2015
by
Sergei Golubchik
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
post-merge fixes
parent
f9c02d7c
Changes
11
Expand all
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
194 additions
and
198 deletions
+194
-198
client/client_priv.h
client/client_priv.h
+0
-1
client/mysql_upgrade.c
client/mysql_upgrade.c
+23
-13
client/mysqlcheck.c
client/mysqlcheck.c
+77
-89
mysql-test/r/log_tables_upgrade.result
mysql-test/r/log_tables_upgrade.result
+4
-3
mysql-test/r/mysql_upgrade.result
mysql-test/r/mysql_upgrade.result
+12
-9
mysql-test/r/mysql_upgrade_ssl.result
mysql-test/r/mysql_upgrade_ssl.result
+4
-3
mysql-test/r/mysql_upgrade_view.result
mysql-test/r/mysql_upgrade_view.result
+33
-4
mysql-test/t/mysql_upgrade_view.test
mysql-test/t/mysql_upgrade_view.test
+16
-30
sql/sql_admin.cc
sql/sql_admin.cc
+10
-1
sql/sql_view.cc
sql/sql_view.cc
+11
-35
sql/sql_yacc.yy
sql/sql_yacc.yy
+4
-10
No files found.
client/client_priv.h
View file @
6f17e233
...
@@ -79,7 +79,6 @@ enum options_client
...
@@ -79,7 +79,6 @@ enum options_client
OPT_SLAP_COMMIT
,
OPT_SLAP_COMMIT
,
OPT_SLAP_DETACH
,
OPT_SLAP_DETACH
,
OPT_SLAP_NO_DROP
,
OPT_SLAP_NO_DROP
,
OPT_UPGRADE_VIEWS
,
OPT_MYSQL_REPLACE_INTO
,
OPT_BASE64_OUTPUT_MODE
,
OPT_SERVER_ID
,
OPT_MYSQL_REPLACE_INTO
,
OPT_BASE64_OUTPUT_MODE
,
OPT_SERVER_ID
,
OPT_FIX_TABLE_NAMES
,
OPT_FIX_DB_NAMES
,
OPT_SSL_VERIFY_SERVER_CERT
,
OPT_FIX_TABLE_NAMES
,
OPT_FIX_DB_NAMES
,
OPT_SSL_VERIFY_SERVER_CERT
,
OPT_AUTO_VERTICAL_OUTPUT
,
OPT_AUTO_VERTICAL_OUTPUT
,
...
...
client/mysql_upgrade.c
View file @
6f17e233
...
@@ -741,6 +741,12 @@ static void print_conn_args(const char *tool_name)
...
@@ -741,6 +741,12 @@ static void print_conn_args(const char *tool_name)
static
int
run_mysqlcheck_upgrade
(
void
)
static
int
run_mysqlcheck_upgrade
(
void
)
{
{
int
retch
;
int
retch
;
if
(
opt_systables_only
)
{
verbose
(
"Phase %d/%d: Checking and upgrading tables... Skipped"
,
phase
++
,
phases_total
);
return
0
;
}
verbose
(
"Phase %d/%d: Checking and upgrading tables"
,
phase
++
,
phases_total
);
verbose
(
"Phase %d/%d: Checking and upgrading tables"
,
phase
++
,
phases_total
);
print_conn_args
(
"mysqlcheck"
);
print_conn_args
(
"mysqlcheck"
);
retch
=
run_tool
(
mysqlcheck_path
,
retch
=
run_tool
(
mysqlcheck_path
,
...
@@ -755,8 +761,6 @@ static int run_mysqlcheck_upgrade(void)
...
@@ -755,8 +761,6 @@ static int run_mysqlcheck_upgrade(void)
opt_write_binlog
?
"--write-binlog"
:
"--skip-write-binlog"
,
opt_write_binlog
?
"--write-binlog"
:
"--skip-write-binlog"
,
"2>&1"
,
"2>&1"
,
NULL
);
NULL
);
if
(
retch
||
opt_systables_only
)
verbose
(
"Phase %d/%d: Skipping 'mysql_fix_privilege_tables'... not needed"
,
phase
++
,
phases_total
);
return
retch
;
return
retch
;
}
}
...
@@ -784,15 +788,15 @@ static my_bool is_mysql()
...
@@ -784,15 +788,15 @@ static my_bool is_mysql()
static
int
run_mysqlcheck_views
(
void
)
static
int
run_mysqlcheck_views
(
void
)
{
{
const
char
*
upgrade_views
=
"--
upgrade
-views=YES"
;
const
char
*
upgrade_views
=
"--
process
-views=YES"
;
if
(
is_mysql
())
if
(
is_mysql
())
{
{
upgrade_views
=
"--
upgrade-views=
FROM_MYSQL"
;
upgrade_views
=
"--
process-views=UPGRADE_
FROM_MYSQL"
;
verbose
(
"Phase %d/%d: Fixing views from mysql"
,
phase
++
,
phases_total
);
verbose
(
"Phase %d/%d: Fixing views from mysql"
,
phase
++
,
phases_total
);
}
}
else
if
(
opt_systables_only
)
else
if
(
opt_systables_only
)
{
{
verbose
(
"Phase %d/%d: Fixing views
- skipped - not requir
ed"
,
phase
++
,
phases_total
);
verbose
(
"Phase %d/%d: Fixing views
... Skipp
ed"
,
phase
++
,
phases_total
);
return
0
;
return
0
;
}
}
else
else
...
@@ -803,9 +807,9 @@ static int run_mysqlcheck_views(void)
...
@@ -803,9 +807,9 @@ static int run_mysqlcheck_views(void)
NULL
,
/* Send output from mysqlcheck directly to screen */
NULL
,
/* Send output from mysqlcheck directly to screen */
"--no-defaults"
,
"--no-defaults"
,
ds_args
.
str
,
ds_args
.
str
,
"--all-databases"
,
"--all-databases"
,
"--repair"
,
upgrade_views
,
upgrade_views
,
"--skip-
fix
-tables"
,
"--skip-
process
-tables"
,
opt_verbose
?
"--verbose"
:
""
,
opt_verbose
?
"--verbose"
:
""
,
opt_silent
?
"--silent"
:
""
,
opt_silent
?
"--silent"
:
""
,
opt_write_binlog
?
"--write-binlog"
:
"--skip-write-binlog"
,
opt_write_binlog
?
"--write-binlog"
:
"--skip-write-binlog"
,
...
@@ -815,7 +819,14 @@ static int run_mysqlcheck_views(void)
...
@@ -815,7 +819,14 @@ static int run_mysqlcheck_views(void)
static
int
run_mysqlcheck_fixnames
(
void
)
static
int
run_mysqlcheck_fixnames
(
void
)
{
{
verbose
(
"Phase %d/%d: Fixing table and database names"
,
phase
++
,
phases_total
);
if
(
opt_systables_only
)
{
verbose
(
"Phase %d/%d: Fixing table and database names ... Skipped"
,
phase
++
,
phases_total
);
return
0
;
}
verbose
(
"Phase %d/%d: Fixing table and database names"
,
phase
++
,
phases_total
);
print_conn_args
(
"mysqlcheck"
);
print_conn_args
(
"mysqlcheck"
);
return
run_tool
(
mysqlcheck_path
,
return
run_tool
(
mysqlcheck_path
,
NULL
,
/* Send output from mysqlcheck directly to screen */
NULL
,
/* Send output from mysqlcheck directly to screen */
...
@@ -896,7 +907,8 @@ static int run_sql_fix_privilege_tables(void)
...
@@ -896,7 +907,8 @@ static int run_sql_fix_privilege_tables(void)
if
(
init_dynamic_string
(
&
ds_result
,
""
,
512
,
512
))
if
(
init_dynamic_string
(
&
ds_result
,
""
,
512
,
512
))
die
(
"Out of memory"
);
die
(
"Out of memory"
);
verbose
(
"Phase %d/%d: Running 'mysql_fix_privilege_tables'..."
,
phase
++
,
phases_total
);
verbose
(
"Phase %d/%d: Running 'mysql_fix_privilege_tables'"
,
phase
++
,
phases_total
);
run_query
(
mysql_fix_privilege_tables
,
run_query
(
mysql_fix_privilege_tables
,
&
ds_result
,
/* Collect result */
&
ds_result
,
/* Collect result */
TRUE
);
TRUE
);
...
@@ -1058,10 +1070,8 @@ int main(int argc, char **argv)
...
@@ -1058,10 +1070,8 @@ int main(int argc, char **argv)
/*
/*
Run "mysqlcheck" and "mysql_fix_privilege_tables.sql"
Run "mysqlcheck" and "mysql_fix_privilege_tables.sql"
*/
*/
if
((
!
opt_systables_only
&&
if
(
run_mysqlcheck_views
()
||
run_mysqlcheck_fixnames
()
||
(
run_mysqlcheck_views
()
||
run_mysqlcheck_upgrade
()
||
run_sql_fix_privilege_tables
())
run_mysqlcheck_fixnames
()
||
run_mysqlcheck_upgrade
()))
||
run_sql_fix_privilege_tables
())
{
{
/*
/*
The upgrade failed to complete in some way or another,
The upgrade failed to complete in some way or another,
...
...
client/mysqlcheck.c
View file @
6f17e233
This diff is collapsed.
Click to expand it.
mysql-test/r/log_tables_upgrade.result
View file @
6f17e233
...
@@ -11,8 +11,9 @@ Table Op Msg_type Msg_text
...
@@ -11,8 +11,9 @@ Table Op Msg_type Msg_text
test.bug49823 repair status OK
test.bug49823 repair status OK
RENAME TABLE general_log TO renamed_general_log;
RENAME TABLE general_log TO renamed_general_log;
RENAME TABLE test.bug49823 TO general_log;
RENAME TABLE test.bug49823 TO general_log;
Phase 1/3: Fixing table and database names
Phase 1/4: Fixing views
Phase 2/3: Checking and upgrading tables
Phase 2/4: Fixing table and database names
Phase 3/4: Checking and upgrading tables
Processing databases
Processing databases
information_schema
information_schema
mtr
mtr
...
@@ -44,7 +45,7 @@ mysql.time_zone_transition_type OK
...
@@ -44,7 +45,7 @@ mysql.time_zone_transition_type OK
mysql.user OK
mysql.user OK
performance_schema
performance_schema
test
test
Phase
3/3: Running 'mysql_fix_privilege_tables'...
Phase
4/4: Running 'mysql_fix_privilege_tables'
OK
OK
DROP TABLE general_log;
DROP TABLE general_log;
RENAME TABLE renamed_general_log TO general_log;
RENAME TABLE renamed_general_log TO general_log;
...
...
mysql-test/r/mysql_upgrade.result
View file @
6f17e233
...
@@ -32,7 +32,7 @@ mysql.time_zone_transition_type OK
...
@@ -32,7 +32,7 @@ mysql.time_zone_transition_type OK
mysql.user OK
mysql.user OK
performance_schema
performance_schema
test
test
Phase 4/4: Running 'mysql_fix_privilege_tables'
...
Phase 4/4: Running 'mysql_fix_privilege_tables'
OK
OK
Run it again - should say already completed
Run it again - should say already completed
This installation of MySQL is already upgraded to VERSION, use --force if you still need to run mysql_upgrade
This installation of MySQL is already upgraded to VERSION, use --force if you still need to run mysql_upgrade
...
@@ -70,7 +70,7 @@ mysql.time_zone_transition_type OK
...
@@ -70,7 +70,7 @@ mysql.time_zone_transition_type OK
mysql.user OK
mysql.user OK
performance_schema
performance_schema
test
test
Phase 4/4: Running 'mysql_fix_privilege_tables'
...
Phase 4/4: Running 'mysql_fix_privilege_tables'
OK
OK
CREATE USER mysqltest1@'%' IDENTIFIED by 'sakila';
CREATE USER mysqltest1@'%' IDENTIFIED by 'sakila';
GRANT ALL ON *.* TO mysqltest1@'%';
GRANT ALL ON *.* TO mysqltest1@'%';
...
@@ -108,7 +108,7 @@ mysql.time_zone_transition_type OK
...
@@ -108,7 +108,7 @@ mysql.time_zone_transition_type OK
mysql.user OK
mysql.user OK
performance_schema
performance_schema
test
test
Phase 4/4: Running 'mysql_fix_privilege_tables'
...
Phase 4/4: Running 'mysql_fix_privilege_tables'
OK
OK
DROP USER mysqltest1@'%';
DROP USER mysqltest1@'%';
Version check failed. Got the following error when calling the 'mysql' command line client
Version check failed. Got the following error when calling the 'mysql' command line client
...
@@ -151,7 +151,7 @@ mysql.time_zone_transition_type OK
...
@@ -151,7 +151,7 @@ mysql.time_zone_transition_type OK
mysql.user OK
mysql.user OK
performance_schema
performance_schema
test
test
Phase 4/4: Running 'mysql_fix_privilege_tables'
...
Phase 4/4: Running 'mysql_fix_privilege_tables'
OK
OK
set GLOBAL sql_mode=default;
set GLOBAL sql_mode=default;
#
#
...
@@ -195,7 +195,7 @@ mysql.time_zone_transition_type OK
...
@@ -195,7 +195,7 @@ mysql.time_zone_transition_type OK
mysql.user OK
mysql.user OK
performance_schema
performance_schema
test
test
Phase 4/4: Running 'mysql_fix_privilege_tables'
...
Phase 4/4: Running 'mysql_fix_privilege_tables'
OK
OK
CALL testproc();
CALL testproc();
DROP PROCEDURE testproc;
DROP PROCEDURE testproc;
...
@@ -242,7 +242,7 @@ mysql.time_zone_transition_type OK
...
@@ -242,7 +242,7 @@ mysql.time_zone_transition_type OK
mysql.user OK
mysql.user OK
performance_schema
performance_schema
test
test
Phase 4/4: Running 'mysql_fix_privilege_tables'
...
Phase 4/4: Running 'mysql_fix_privilege_tables'
OK
OK
SHOW GRANTS FOR 'user3'@'%';
SHOW GRANTS FOR 'user3'@'%';
Grants for user3@%
Grants for user3@%
...
@@ -251,7 +251,10 @@ GRANT ALL PRIVILEGES ON `roelt`.`test2` TO 'user3'@'%'
...
@@ -251,7 +251,10 @@ GRANT ALL PRIVILEGES ON `roelt`.`test2` TO 'user3'@'%'
DROP USER 'user3'@'%';
DROP USER 'user3'@'%';
End of 5.1 tests
End of 5.1 tests
The --upgrade-system-tables option was used, databases won't be touched.
The --upgrade-system-tables option was used, databases won't be touched.
Phase 1/4: Running 'mysql_fix_privilege_tables'...
Phase 1/4: Fixing views... Skipped
Phase 2/4: Fixing table and database names ... Skipped
Phase 3/4: Checking and upgrading tables... Skipped
Phase 4/4: Running 'mysql_fix_privilege_tables'
OK
OK
#
#
# Bug#11827359 60223: MYSQL_UPGRADE PROBLEM WITH OPTION
# Bug#11827359 60223: MYSQL_UPGRADE PROBLEM WITH OPTION
...
@@ -292,7 +295,7 @@ mysql.time_zone_transition_type OK
...
@@ -292,7 +295,7 @@ mysql.time_zone_transition_type OK
mysql.user OK
mysql.user OK
performance_schema
performance_schema
test
test
Phase 4/4: Running 'mysql_fix_privilege_tables'
...
Phase 4/4: Running 'mysql_fix_privilege_tables'
OK
OK
#
#
# MDEV-4332 Increase username length from 16 characters
# MDEV-4332 Increase username length from 16 characters
...
@@ -353,7 +356,7 @@ mysql.time_zone_transition_type OK
...
@@ -353,7 +356,7 @@ mysql.time_zone_transition_type OK
mysql.user OK
mysql.user OK
performance_schema
performance_schema
test
test
Phase 4/4: Running 'mysql_fix_privilege_tables'
...
Phase 4/4: Running 'mysql_fix_privilege_tables'
OK
OK
SELECT definer FROM mysql.proc WHERE db = 'test' AND name = 'pr';
SELECT definer FROM mysql.proc WHERE db = 'test' AND name = 'pr';
definer
definer
...
...
mysql-test/r/mysql_upgrade_ssl.result
View file @
6f17e233
#
#
# Bug#55672 mysql_upgrade dies with internal error
# Bug#55672 mysql_upgrade dies with internal error
#
#
Phase 1/3: Fixing table and database names
Phase 1/4: Fixing views
Phase 2/3: Checking and upgrading tables
Phase 2/4: Fixing table and database names
Phase 3/4: Checking and upgrading tables
Processing databases
Processing databases
information_schema
information_schema
mtr
mtr
...
@@ -33,5 +34,5 @@ mysql.time_zone_transition_type OK
...
@@ -33,5 +34,5 @@ mysql.time_zone_transition_type OK
mysql.user OK
mysql.user OK
performance_schema
performance_schema
test
test
Phase
3/3: Running 'mysql_fix_privilege_tables'...
Phase
4/4: Running 'mysql_fix_privilege_tables'
OK
OK
mysql-test/r/mysql_upgrade_view.result
View file @
6f17e233
...
@@ -4,6 +4,30 @@ drop view if exists t1,v1,v2,v3,v4,v1badcheck;
...
@@ -4,6 +4,30 @@ drop view if exists t1,v1,v2,v3,v4,v1badcheck;
create table t1(a int);
create table t1(a int);
create table kv(k varchar(30) NOT NULL PRIMARY KEY,v varchar(50));
create table kv(k varchar(30) NOT NULL PRIMARY KEY,v varchar(50));
flush tables;
flush tables;
check view v1;
Table Op Msg_type Msg_text
test.v1 check status OK
check view v1badcheck;
Table Op Msg_type Msg_text
test.v1badcheck check note View text checksum failed
check view v2;
Table Op Msg_type Msg_text
test.v2 check status OK
check view v3;
Table Op Msg_type Msg_text
test.v3 check status OK
check view v1 for upgrade;
Table Op Msg_type Msg_text
test.v1 check error Upgrade required. Please do "REPAIR VIEW `v1`" or dump/reload to fix it!
check view v1badcheck for upgrade;
Table Op Msg_type Msg_text
test.v1badcheck check note View text checksum failed
check view v2 for upgrade;
Table Op Msg_type Msg_text
test.v2 check error Upgrade required. Please do "REPAIR VIEW `v2`" or dump/reload to fix it!
check view v3 for upgrade;
Table Op Msg_type Msg_text
test.v3 check error Upgrade required. Please do "REPAIR VIEW `v3`" or dump/reload to fix it!
Phase 1/4: Fixing views
Phase 1/4: Fixing views
test.v1 OK
test.v1 OK
test.v1badcheck OK
test.v1badcheck OK
...
@@ -43,7 +67,7 @@ performance_schema
...
@@ -43,7 +67,7 @@ performance_schema
test
test
test.kv OK
test.kv OK
test.t1 OK
test.t1 OK
Phase 4/4: Running 'mysql_fix_privilege_tables'
...
Phase 4/4: Running 'mysql_fix_privilege_tables'
OK
OK
show create view v1;
show create view v1;
View Create View character_set_client collation_connection
View Create View character_set_client collation_connection
...
@@ -107,6 +131,7 @@ k
...
@@ -107,6 +131,7 @@ k
mariadb-version
mariadb-version
truncate table kv;
truncate table kv;
drop view if exists v1,v2,v3,v1badcheck;
drop view if exists v1,v2,v3,v1badcheck;
rename table mysql.event to mysql.ev_bk;
flush tables;
flush tables;
create algorithm=temptable view v4 as select a from t1;
create algorithm=temptable view v4 as select a from t1;
show create view v1;
show create view v1;
...
@@ -162,7 +187,7 @@ performance_schema
...
@@ -162,7 +187,7 @@ performance_schema
test
test
test.kv OK
test.kv OK
test.t1 OK
test.t1 OK
Phase 4/4: Running 'mysql_fix_privilege_tables'
...
Phase 4/4: Running 'mysql_fix_privilege_tables'
OK
OK
show create view v1;
show create view v1;
View Create View character_set_client collation_connection
View Create View character_set_client collation_connection
...
@@ -186,7 +211,10 @@ k
...
@@ -186,7 +211,10 @@ k
mariadb-version
mariadb-version
truncate table kv;
truncate table kv;
drop view if exists v1,v2,v3;
drop view if exists v1,v2,v3;
flush tables;
drop table mysql.event;
rename table mysql.ev_bk to mysql.event;
test.kv OK
test.t1 OK
test.v1 OK
test.v1 OK
test.v2 OK
test.v2 OK
test.v3 OK
test.v3 OK
...
@@ -195,11 +223,12 @@ show binlog events from <binlog_start>;
...
@@ -195,11 +223,12 @@ show binlog events from <binlog_start>;
Log_name Pos Event_type Server_id End_log_pos Info
Log_name Pos Event_type Server_id End_log_pos Info
master-bin.000001 # Query # # use `test`; REPAIR VIEW v1,v2
master-bin.000001 # Query # # use `test`; REPAIR VIEW v1,v2
master-bin.000001 # Query # # use `test`; REPAIR VIEW v1badcheck
master-bin.000001 # Query # # use `test`; REPAIR VIEW v1badcheck
master-bin.000001 # Query # # use `test`; REPAIR TABLE `kv` USE_FRM
master-bin.000001 # Query # # use `test`; REPAIR TABLE `t1` USE_FRM
master-bin.000001 # Query # # use `test`; REPAIR VIEW `v1` FROM MYSQL
master-bin.000001 # Query # # use `test`; REPAIR VIEW `v1` FROM MYSQL
master-bin.000001 # Query # # use `test`; REPAIR VIEW `v2` FROM MYSQL
master-bin.000001 # Query # # use `test`; REPAIR VIEW `v2` FROM MYSQL
master-bin.000001 # Query # # use `test`; REPAIR VIEW `v3` FROM MYSQL
master-bin.000001 # Query # # use `test`; REPAIR VIEW `v3` FROM MYSQL
master-bin.000001 # Query # # use `test`; REPAIR VIEW `v4` FROM MYSQL
master-bin.000001 # Query # # use `test`; REPAIR VIEW `v4` FROM MYSQL
flush tables;
drop table if exists kv;
drop table if exists kv;
drop view v1,v2,v3,v4;
drop view v1,v2,v3,v4;
drop table t1;
drop table t1;
mysql-test/t/mysql_upgrade_view.test
View file @
6f17e233
...
@@ -18,6 +18,16 @@ let $MYSQLD_DATADIR= `select @@datadir`;
...
@@ -18,6 +18,16 @@ let $MYSQLD_DATADIR= `select @@datadir`;
flush
tables
;
flush
tables
;
check
view
v1
;
check
view
v1badcheck
;
check
view
v2
;
check
view
v3
;
check
view
v1
for
upgrade
;
check
view
v1badcheck
for
upgrade
;
check
view
v2
for
upgrade
;
check
view
v3
for
upgrade
;
--
replace_result
$MYSQLTEST_VARDIR
var
--
replace_result
$MYSQLTEST_VARDIR
var
--
exec
$MYSQL_UPGRADE
--
force
2
>&
1
--
exec
$MYSQL_UPGRADE
--
force
2
>&
1
...
@@ -67,12 +77,7 @@ drop view if exists v1,v2,v3,v1badcheck;
...
@@ -67,12 +77,7 @@ drop view if exists v1,v2,v3,v1badcheck;
# Make it look like a MySQL directory now
# Make it look like a MySQL directory now
--
copy_file
$MYSQLD_DATADIR
/
mysql
/
event
.
MYI
$MYSQLD_DATADIR
/
mysql
/
ev_bk
.
MYI
rename
table
mysql
.
event
to
mysql
.
ev_bk
;
--
copy_file
$MYSQLD_DATADIR
/
mysql
/
event
.
MYD
$MYSQLD_DATADIR
/
mysql
/
ev_bk
.
MYD
--
copy_file
$MYSQLD_DATADIR
/
mysql
/
event
.
frm
$MYSQLD_DATADIR
/
mysql
/
ev_bk
.
frm
--
remove_file
$MYSQLD_DATADIR
/
mysql
/
event
.
MYI
--
remove_file
$MYSQLD_DATADIR
/
mysql
/
event
.
MYD
--
remove_file
$MYSQLD_DATADIR
/
mysql
/
event
.
frm
--
copy_file
$MYSQL_TEST_DIR
/
std_data
/
mysql_upgrade
/
event
.
MYI
$MYSQLD_DATADIR
/
mysql
/
event
.
MYI
--
copy_file
$MYSQL_TEST_DIR
/
std_data
/
mysql_upgrade
/
event
.
MYI
$MYSQLD_DATADIR
/
mysql
/
event
.
MYI
--
copy_file
$MYSQL_TEST_DIR
/
std_data
/
mysql_upgrade
/
event
.
MYD
$MYSQLD_DATADIR
/
mysql
/
event
.
MYD
--
copy_file
$MYSQL_TEST_DIR
/
std_data
/
mysql_upgrade
/
event
.
MYD
$MYSQLD_DATADIR
/
mysql
/
event
.
MYD
--
copy_file
$MYSQL_TEST_DIR
/
std_data
/
mysql_upgrade
/
event
.
frm
$MYSQLD_DATADIR
/
mysql
/
event
.
frm
--
copy_file
$MYSQL_TEST_DIR
/
std_data
/
mysql_upgrade
/
event
.
frm
$MYSQLD_DATADIR
/
mysql
/
event
.
frm
...
@@ -108,38 +113,19 @@ truncate table kv;
...
@@ -108,38 +113,19 @@ truncate table kv;
drop
view
if
exists
v1
,
v2
,
v3
;
drop
view
if
exists
v1
,
v2
,
v3
;
--
enable_warnings
--
enable_warnings
# back to mariadb default
--
remove_file
$MYSQLD_DATADIR
/
mysql
/
event
.
MYI
drop
table
mysql
.
event
;
--
remove_file
$MYSQLD_DATADIR
/
mysql
/
event
.
MYD
rename
table
mysql
.
ev_bk
to
mysql
.
event
;
--
remove_file
$MYSQLD_DATADIR
/
mysql
/
event
.
frm
--
copy_file
$MYSQL_TEST_DIR
/
std_data
/
mysql_upgrade
/
event
.
MYI
$MYSQLD_DATADIR
/
mysql
/
event
.
MYI
--
copy_file
$MYSQL_TEST_DIR
/
std_data
/
mysql_upgrade
/
event
.
MYD
$MYSQLD_DATADIR
/
mysql
/
event
.
MYD
--
copy_file
$MYSQL_TEST_DIR
/
std_data
/
mysql_upgrade
/
event
.
frm
$MYSQLD_DATADIR
/
mysql
/
event
.
frm
--
copy_file
$MYSQL_TEST_DIR
/
std_data
/
mysql_upgrade
/
v1
.
frm
$MYSQLD_DATADIR
/
test
/
v1
.
frm
--
copy_file
$MYSQL_TEST_DIR
/
std_data
/
mysql_upgrade
/
v1
.
frm
$MYSQLD_DATADIR
/
test
/
v1
.
frm
--
copy_file
$MYSQL_TEST_DIR
/
std_data
/
mysql_upgrade
/
v2
.
frm
$MYSQLD_DATADIR
/
test
/
v2
.
frm
--
copy_file
$MYSQL_TEST_DIR
/
std_data
/
mysql_upgrade
/
v2
.
frm
$MYSQLD_DATADIR
/
test
/
v2
.
frm
--
copy_file
$MYSQL_TEST_DIR
/
std_data
/
mysql_upgrade
/
v3
.
frm
$MYSQLD_DATADIR
/
test
/
v3
.
frm
--
copy_file
$MYSQL_TEST_DIR
/
std_data
/
mysql_upgrade
/
v3
.
frm
$MYSQLD_DATADIR
/
test
/
v3
.
frm
flush
tables
;
# check of binlog
# check of binlog
and mixing tables (with table specific options) and views
--
exec
$MYSQL_CHECK
--
write
-
binlog
--
upgrade
-
views
=
FROM_MYSQL
--
skip
-
fix
-
tables
--
all
-
databases
2
>&
1
--
exec
$MYSQL_CHECK
--
repair
--
write
-
binlog
--
process
-
tables
--
use
-
frm
--
process
-
views
=
UPGRADE_FROM_MYSQL
test
2
>&
1
--
source
include
/
show_binlog_events
.
inc
--
source
include
/
show_binlog_events
.
inc
# back to mariadb default
--
remove_file
$MYSQLD_DATADIR
/
mysql
/
event
.
MYI
--
remove_file
$MYSQLD_DATADIR
/
mysql
/
event
.
MYD
--
remove_file
$MYSQLD_DATADIR
/
mysql
/
event
.
frm
--
copy_file
$MYSQLD_DATADIR
/
mysql
/
ev_bk
.
MYI
$MYSQLD_DATADIR
/
mysql
/
event
.
MYI
--
copy_file
$MYSQLD_DATADIR
/
mysql
/
ev_bk
.
MYD
$MYSQLD_DATADIR
/
mysql
/
event
.
MYD
--
copy_file
$MYSQLD_DATADIR
/
mysql
/
ev_bk
.
frm
$MYSQLD_DATADIR
/
mysql
/
event
.
frm
--
remove_file
$MYSQLD_DATADIR
/
mysql
/
ev_bk
.
MYI
--
remove_file
$MYSQLD_DATADIR
/
mysql
/
ev_bk
.
MYD
--
remove_file
$MYSQLD_DATADIR
/
mysql
/
ev_bk
.
frm
flush
tables
;
drop
table
if
exists
kv
;
drop
table
if
exists
kv
;
drop
view
v1
,
v2
,
v3
,
v4
;
drop
view
v1
,
v2
,
v3
,
v4
;
drop
table
t1
;
drop
table
t1
;
...
...
sql/sql_admin.cc
View file @
6f17e233
...
@@ -869,7 +869,16 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables,
...
@@ -869,7 +869,16 @@ static bool mysql_admin_table(THD* thd, TABLE_LIST* tables,
size_t
length
;
size_t
length
;
protocol
->
store
(
STRING_WITH_LEN
(
"error"
),
system_charset_info
);
protocol
->
store
(
STRING_WITH_LEN
(
"error"
),
system_charset_info
);
if
(
table
->
table
->
file
->
ha_table_flags
()
&
HA_CAN_REPAIR
)
#if MYSQL_VERSION_ID > 100104
#error fix the error message to take TABLE or VIEW as an argument
#else
if
(
table
->
view
)
length
=
my_snprintf
(
buf
,
sizeof
(
buf
),
"Upgrade required. Please do
\"
REPAIR VIEW %`s
\"
or dump/reload to fix it!"
,
table
->
table_name
);
else
#endif
if
(
table
->
table
->
file
->
ha_table_flags
()
&
HA_CAN_REPAIR
||
table
->
view
)
length
=
my_snprintf
(
buf
,
sizeof
(
buf
),
ER
(
ER_TABLE_NEEDS_UPGRADE
),
length
=
my_snprintf
(
buf
,
sizeof
(
buf
),
ER
(
ER_TABLE_NEEDS_UPGRADE
),
table
->
table_name
);
table
->
table_name
);
else
else
...
...
sql/sql_view.cc
View file @
6f17e233
...
@@ -828,25 +828,6 @@ int mariadb_fix_view(THD *thd, TABLE_LIST *view, bool wrong_checksum,
...
@@ -828,25 +828,6 @@ int mariadb_fix_view(THD *thd, TABLE_LIST *view, bool wrong_checksum,
if
(
!
view
->
timestamp
.
str
)
if
(
!
view
->
timestamp
.
str
)
view
->
timestamp
.
str
=
view
->
timestamp_buffer
;
view
->
timestamp
.
str
=
view
->
timestamp_buffer
;
/* check old .frm */
{
char
path_buff
[
FN_REFLEN
];
LEX_STRING
path
;
File_parser
*
parser
;
path
.
str
=
path_buff
;
fn_format
(
path_buff
,
file
.
str
,
dir
.
str
,
""
,
MY_UNPACK_FILENAME
);
path
.
length
=
strlen
(
path_buff
);
if
(
access
(
path
.
str
,
F_OK
))
DBUG_RETURN
(
HA_ADMIN_INVALID
);
if
(
!
(
parser
=
sql_parse_prepare
(
&
path
,
thd
->
mem_root
,
0
)))
DBUG_RETURN
(
HA_ADMIN_INTERNAL_ERROR
);
if
(
!
parser
->
ok
()
||
!
is_equal
(
&
view_type
,
parser
->
type
()))
DBUG_RETURN
(
HA_ADMIN_INVALID
);
}
if
(
swap_alg
&&
view
->
algorithm
!=
VIEW_ALGORITHM_UNDEFINED
)
if
(
swap_alg
&&
view
->
algorithm
!=
VIEW_ALGORITHM_UNDEFINED
)
{
{
DBUG_ASSERT
(
view
->
algorithm
==
VIEW_ALGORITHM_MERGE
||
DBUG_ASSERT
(
view
->
algorithm
==
VIEW_ALGORITHM_MERGE
||
...
@@ -877,13 +858,13 @@ int mariadb_fix_view(THD *thd, TABLE_LIST *view, bool wrong_checksum,
...
@@ -877,13 +858,13 @@ int mariadb_fix_view(THD *thd, TABLE_LIST *view, bool wrong_checksum,
view
->
db
,
view
->
table_name
);
view
->
db
,
view
->
table_name
);
DBUG_RETURN
(
HA_ADMIN_INTERNAL_ERROR
);
DBUG_RETURN
(
HA_ADMIN_INTERNAL_ERROR
);
}
}
sql_print_information
(
"View
'%-.192s'.'%-.192s': versioned
to %llu%s%s"
,
sql_print_information
(
"View
%`s.%`s: the version is set
to %llu%s%s"
,
view
->
db
,
view
->
table_name
,
view
->
mariadb_version
,
view
->
db
,
view
->
table_name
,
view
->
mariadb_version
,
(
wrong_checksum
?
",
and
checksum corrected"
:
""
),
(
wrong_checksum
?
", checksum corrected"
:
""
),
(
swap_alg
?
(
swap_alg
?
((
view
->
algorithm
==
VIEW_ALGORITHM_MERGE
)
?
((
view
->
algorithm
==
VIEW_ALGORITHM_MERGE
)
?
", a
nd algorithm swapped to 'MERGE'
"
", a
lgorithm restored to be MERGE
"
:
", a
nd algorithm swapped to 'TEMPTABLE'
"
)
:
", a
lgorithm restored to be TEMPTABLE
"
)
:
""
));
:
""
));
...
@@ -2046,20 +2027,15 @@ int view_checksum(THD *thd, TABLE_LIST *view)
...
@@ -2046,20 +2027,15 @@ int view_checksum(THD *thd, TABLE_LIST *view)
*/
*/
int
view_check
(
THD
*
thd
,
TABLE_LIST
*
view
,
HA_CHECK_OPT
*
check_opt
)
int
view_check
(
THD
*
thd
,
TABLE_LIST
*
view
,
HA_CHECK_OPT
*
check_opt
)
{
{
int
res
;
DBUG_ENTER
(
"view_check"
);
DBUG_ENTER
(
"view_check"
);
if
((
res
=
view_checksum
(
thd
,
view
))
!=
HA_ADMIN_OK
)
int
res
=
view_checksum
(
thd
,
view
);
if
(
res
!=
HA_ADMIN_OK
)
DBUG_RETURN
(
res
);
DBUG_RETURN
(
res
);
if
(((
check_opt
->
sql_flags
&
TT_FOR_UPGRADE
)
&&
!
view
->
mariadb_version
))
if
(((
check_opt
->
sql_flags
&
TT_FOR_UPGRADE
)
&&
!
view
->
mariadb_version
))
{
push_warning_printf
(
thd
,
MYSQL_ERROR
::
WARN_LEVEL_NOTE
,
ER_TABLE_NEEDS_UPGRADE
,
ER
(
ER_TABLE_NEEDS_UPGRADE
),
view
->
db
,
view
->
table_name
);
DBUG_RETURN
(
HA_ADMIN_NEEDS_UPGRADE
);
DBUG_RETURN
(
HA_ADMIN_NEEDS_UPGRADE
);
}
DBUG_RETURN
(
HA_ADMIN_OK
);
DBUG_RETURN
(
HA_ADMIN_OK
);
}
}
...
@@ -2080,7 +2056,7 @@ int view_repair(THD *thd, TABLE_LIST *view, HA_CHECK_OPT *check_opt)
...
@@ -2080,7 +2056,7 @@ int view_repair(THD *thd, TABLE_LIST *view, HA_CHECK_OPT *check_opt)
{
{
DBUG_ENTER
(
"view_repair"
);
DBUG_ENTER
(
"view_repair"
);
bool
swap_alg
=
(
check_opt
->
sql_flags
&
TT_FROM_MYSQL
);
bool
swap_alg
=
(
check_opt
->
sql_flags
&
TT_FROM_MYSQL
);
bool
wrong_checksum
=
view_checksum
(
thd
,
view
);
bool
wrong_checksum
=
view_checksum
(
thd
,
view
)
!=
HA_ADMIN_OK
;
int
ret
;
int
ret
;
if
(
wrong_checksum
||
swap_alg
||
(
!
view
->
mariadb_version
))
if
(
wrong_checksum
||
swap_alg
||
(
!
view
->
mariadb_version
))
{
{
...
...
sql/sql_yacc.yy
View file @
6f17e233
...
@@ -13806,19 +13806,13 @@ lock:
...
@@ -13806,19 +13806,13 @@ lock:
;
;
table_or_tables:
table_or_tables:
TABLE_SYM
TABLE_SYM { Lex->only_view= FALSE; }
{ Lex->only_view= FALSE; }
| TABLES { Lex->only_view= FALSE; }
| TABLES
{ Lex->only_view= FALSE; }
;
;
table_or_view:
table_or_view:
TABLE_SYM
table_or_tables
{ Lex->only_view= FALSE; }
| VIEW_SYM { Lex->only_view= TRUE; }
| TABLES
{ Lex->only_view= FALSE; }
| VIEW_SYM
{ Lex->only_view= TRUE; }
;
;
table_lock_list:
table_lock_list:
...
...
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