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
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
Kirill Smelkov
mariadb
Commits
ed4f5ac9
Commit
ed4f5ac9
authored
Feb 17, 2006
by
bar@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
mysqlcheck.c:
WL#3046 Migration tool for 5.1 table-name encoding
parent
bd690b5e
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
60 additions
and
4 deletions
+60
-4
client/mysqlcheck.c
client/mysqlcheck.c
+60
-4
No files found.
client/mysqlcheck.c
View file @
ed4f5ac9
...
...
@@ -34,7 +34,8 @@ static my_bool opt_alldbs = 0, opt_check_only_changed = 0, opt_extended = 0,
opt_compress
=
0
,
opt_databases
=
0
,
opt_fast
=
0
,
opt_medium_check
=
0
,
opt_quick
=
0
,
opt_all_in_1
=
0
,
opt_silent
=
0
,
opt_auto_repair
=
0
,
ignore_errors
=
0
,
tty_password
=
0
,
opt_frm
=
0
;
tty_password
=
0
,
opt_frm
=
0
,
opt_fix_table_names
=
0
,
opt_fix_db_names
=
0
;
static
uint
verbose
=
0
,
opt_mysql_port
=
0
;
static
my_string
opt_mysql_unix_port
=
0
;
static
char
*
opt_password
=
0
,
*
current_user
=
0
,
...
...
@@ -48,7 +49,7 @@ static char *shared_memory_base_name=0;
static
uint
opt_protocol
=
0
;
static
CHARSET_INFO
*
charset_info
=
&
my_charset_latin1
;
enum
operations
{
DO_CHECK
,
DO_REPAIR
,
DO_ANALYZE
,
DO_OPTIMIZE
};
enum
operations
{
DO_CHECK
,
DO_REPAIR
,
DO_ANALYZE
,
DO_OPTIMIZE
,
DO_UPGRADE
};
static
struct
my_option
my_long_options
[]
=
{
...
...
@@ -98,6 +99,12 @@ static struct my_option my_long_options[] =
{
"fast"
,
'F'
,
"Check only tables that haven't been closed properly."
,
(
gptr
*
)
&
opt_fast
,
(
gptr
*
)
&
opt_fast
,
0
,
GET_BOOL
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"fix-db-names"
,
OPT_FIX_DB_NAMES
,
"Fix database names."
,
(
gptr
*
)
&
opt_fix_db_names
,
(
gptr
*
)
&
opt_fix_db_names
,
0
,
GET_BOOL
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"fix-table-names"
,
OPT_FIX_TABLE_NAMES
,
"Fix table names."
,
(
gptr
*
)
&
opt_fix_table_names
,
(
gptr
*
)
&
opt_fix_table_names
,
0
,
GET_BOOL
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
{
"force"
,
'f'
,
"Continue even if we get an sql-error."
,
(
gptr
*
)
&
ignore_errors
,
(
gptr
*
)
&
ignore_errors
,
0
,
GET_BOOL
,
NO_ARG
,
0
,
0
,
0
,
0
,
0
,
0
},
...
...
@@ -171,6 +178,7 @@ static int process_all_databases();
static
int
process_databases
(
char
**
db_names
);
static
int
process_selected_tables
(
char
*
db
,
char
**
table_names
,
int
tables
);
static
int
process_all_tables_in_db
(
char
*
database
);
static
int
process_one_db
(
char
*
database
);
static
int
use_db
(
char
*
database
);
static
int
handle_request_for_tables
(
char
*
tables
,
uint
length
);
static
int
dbConnect
(
char
*
host
,
char
*
user
,
char
*
passwd
);
...
...
@@ -251,6 +259,15 @@ get_one_option(int optid, const struct my_option *opt __attribute__((unused)),
case
'o'
:
what_to_do
=
DO_OPTIMIZE
;
break
;
case
OPT_FIX_DB_NAMES
:
what_to_do
=
DO_UPGRADE
;
default_charset
=
(
char
*
)
"utf8"
;
opt_databases
=
1
;
break
;
case
OPT_FIX_TABLE_NAMES
:
what_to_do
=
DO_UPGRADE
;
default_charset
=
(
char
*
)
"utf8"
;
break
;
case
'p'
:
if
(
argument
)
{
...
...
@@ -369,7 +386,7 @@ static int process_all_databases()
}
while
((
row
=
mysql_fetch_row
(
tableres
)))
{
if
(
process_
all_tables_in
_db
(
row
[
0
]))
if
(
process_
one
_db
(
row
[
0
]))
result
=
1
;
}
return
result
;
...
...
@@ -382,7 +399,7 @@ static int process_databases(char **db_names)
int
result
=
0
;
for
(
;
*
db_names
;
db_names
++
)
{
if
(
process_
all_tables_in
_db
(
*
db_names
))
if
(
process_
one
_db
(
*
db_names
))
result
=
1
;
}
return
result
;
...
...
@@ -495,6 +512,43 @@ static int process_all_tables_in_db(char *database)
}
/* process_all_tables_in_db */
static
int
fix_object_name
(
const
char
*
obj
,
const
char
*
name
)
{
char
qbuf
[
100
+
NAME_LEN
*
4
];
int
rc
=
0
;
if
(
strncmp
(
name
,
"#mysql50#"
,
9
))
return
1
;
sprintf
(
qbuf
,
"RENAME %s `%s` TO `%s`"
,
obj
,
name
,
name
+
9
);
if
(
mysql_query
(
sock
,
qbuf
))
{
fprintf
(
stderr
,
"Failed to %s
\n
"
,
qbuf
);
fprintf
(
stderr
,
"Error: %s
\n
"
,
mysql_error
(
sock
));
rc
=
1
;
}
if
(
verbose
)
printf
(
"%-50s %s
\n
"
,
name
,
rc
?
"FAILED"
:
"OK"
);
return
rc
;
}
static
int
process_one_db
(
char
*
database
)
{
if
(
what_to_do
==
DO_UPGRADE
)
{
int
rc
=
0
;
if
(
opt_fix_db_names
&&
!
strncmp
(
database
,
"#mysql50#"
,
9
))
{
rc
=
fix_object_name
(
"DATABASE"
,
database
);
database
+=
9
;
}
if
(
rc
||
!
opt_fix_table_names
)
return
rc
;
}
return
process_all_tables_in_db
(
database
);
}
static
int
use_db
(
char
*
database
)
{
if
(
mysql_get_server_version
(
sock
)
>=
50003
&&
...
...
@@ -538,6 +592,8 @@ static int handle_request_for_tables(char *tables, uint length)
case
DO_OPTIMIZE
:
op
=
"OPTIMIZE"
;
break
;
case
DO_UPGRADE
:
return
fix_object_name
(
"TABLE"
,
tables
);
}
if
(
!
(
query
=
(
char
*
)
my_malloc
((
sizeof
(
char
)
*
(
length
+
110
)),
MYF
(
MY_WME
))))
...
...
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