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
fd032644
Commit
fd032644
authored
Feb 10, 2004
by
vva@eagle.mysql.r18.ru
Browse files
Options
Browse Files
Download
Plain Diff
Merge
parents
8ec790ec
33147e24
Changes
4
Show whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
47 additions
and
13 deletions
+47
-13
client/mysqldump.c
client/mysqldump.c
+2
-2
mysql-test/r/mysqldump.result
mysql-test/r/mysqldump.result
+18
-0
mysql-test/t/mysqldump.test
mysql-test/t/mysqldump.test
+8
-0
sql/sql_lex.cc
sql/sql_lex.cc
+19
-11
No files found.
client/mysqldump.c
View file @
fd032644
...
@@ -664,7 +664,7 @@ static char *quote_name(const char *name, char *buff, my_bool force)
...
@@ -664,7 +664,7 @@ static char *quote_name(const char *name, char *buff, my_bool force)
while
(
*
name
)
while
(
*
name
)
{
{
if
(
*
name
==
QUOTE_CHAR
)
if
(
*
name
==
QUOTE_CHAR
)
*
to
=
QUOTE_CHAR
;
*
to
++
=
QUOTE_CHAR
;
*
to
++=
*
name
++
;
*
to
++=
*
name
++
;
}
}
to
[
0
]
=
QUOTE_CHAR
;
to
[
0
]
=
QUOTE_CHAR
;
...
@@ -1662,7 +1662,7 @@ static int dump_all_tables_in_db(char *database)
...
@@ -1662,7 +1662,7 @@ static int dump_all_tables_in_db(char *database)
if
(
opt_xml
)
if
(
opt_xml
)
fputs
(
"</database>
\n
"
,
md_result_file
);
fputs
(
"</database>
\n
"
,
md_result_file
);
if
(
lock_tables
)
if
(
lock_tables
)
mysql_query
(
sock
,
"UNLOCK
_
TABLES"
);
mysql_query
(
sock
,
"UNLOCK
TABLES"
);
return
0
;
return
0
;
}
/* dump_all_tables_in_db */
}
/* dump_all_tables_in_db */
...
...
mysql-test/r/mysqldump.result
View file @
fd032644
...
@@ -179,3 +179,21 @@ UNLOCK TABLES;
...
@@ -179,3 +179,21 @@ UNLOCK TABLES;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
DROP TABLE t1;
DROP TABLE t1;
create table ```a` (i int);
DROP TABLE IF EXISTS ```a`;
CREATE TABLE ``a` (
`i` int(11) default NULL
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
/*!40000 ALTER TABLE ```a` DISABLE KEYS */;
LOCK TABLES ```a` WRITE;
UNLOCK TABLES;
/*!40000 ALTER TABLE ```a` ENABLE KEYS */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
drop table ```a`;
mysql-test/t/mysqldump.test
View file @
fd032644
...
@@ -63,3 +63,11 @@ INSERT INTO t1 VALUES (1), (2);
...
@@ -63,3 +63,11 @@ INSERT INTO t1 VALUES (1), (2);
--
exec
$MYSQL_DUMP
--
skip
-
comments
--
compatible
=
mysql40
test
t1
--
exec
$MYSQL_DUMP
--
skip
-
comments
--
compatible
=
mysql40
test
t1
--
exec
$MYSQL_DUMP
--
skip
-
comments
--
compatible
=
mysql323
test
t1
--
exec
$MYSQL_DUMP
--
skip
-
comments
--
compatible
=
mysql323
test
t1
DROP
TABLE
t1
;
DROP
TABLE
t1
;
#
# Bug #2592 'mysqldum doesn't quote "tricky" names correctly'
#
create
table
```a`
(
i
int
);
--
exec
$MYSQL_DUMP
--
skip
-
comments
test
drop
table
```a`
;
sql/sql_lex.cc
View file @
fd032644
...
@@ -667,13 +667,24 @@ int yylex(void *arg, void *yythd)
...
@@ -667,13 +667,24 @@ int yylex(void *arg, void *yythd)
case
MY_LEX_USER_VARIABLE_DELIMITER
:
case
MY_LEX_USER_VARIABLE_DELIMITER
:
{
{
char
delim
=
c
;
// Used char
uint
double_quotes
=
0
;
char
quote_char
=
c
;
// Used char
lex
->
tok_start
=
lex
->
ptr
;
// Skip first `
lex
->
tok_start
=
lex
->
ptr
;
// Skip first `
#ifdef USE_MB
#ifdef USE_MB
if
(
use_mb
(
cs
))
if
(
use_mb
(
cs
))
{
{
while
((
c
=
yyGet
())
&&
c
!=
delim
&&
c
!=
(
uchar
)
NAMES_SEP_CHAR
)
while
((
c
=
yyGet
()))
{
if
(
c
==
quote_char
)
{
{
if
(
yyPeek
()
!=
quote_char
)
break
;
c
=
yyGet
();
double_quotes
++
;
continue
;
}
if
(
c
==
(
uchar
)
NAMES_SEP_CHAR
)
break
;
if
(
my_mbcharlen
(
cs
,
c
)
>
1
)
if
(
my_mbcharlen
(
cs
,
c
)
>
1
)
{
{
int
l
;
int
l
;
...
@@ -684,13 +695,10 @@ int yylex(void *arg, void *yythd)
...
@@ -684,13 +695,10 @@ int yylex(void *arg, void *yythd)
lex
->
ptr
+=
l
-
1
;
lex
->
ptr
+=
l
-
1
;
}
}
}
}
yylval
->
lex_str
=
get_token
(
lex
,
yyLength
());
}
}
else
else
#endif
#endif
{
{
uint
double_quotes
=
0
;
char
quote_char
=
c
;
while
((
c
=
yyGet
()))
while
((
c
=
yyGet
()))
{
{
if
(
c
==
quote_char
)
if
(
c
==
quote_char
)
...
@@ -704,13 +712,13 @@ int yylex(void *arg, void *yythd)
...
@@ -704,13 +712,13 @@ int yylex(void *arg, void *yythd)
if
(
c
==
(
uchar
)
NAMES_SEP_CHAR
)
if
(
c
==
(
uchar
)
NAMES_SEP_CHAR
)
break
;
break
;
}
}
}
if
(
double_quotes
)
if
(
double_quotes
)
yylval
->
lex_str
=
get_quoted_token
(
lex
,
yyLength
()
-
double_quotes
,
yylval
->
lex_str
=
get_quoted_token
(
lex
,
yyLength
()
-
double_quotes
,
quote_char
);
quote_char
);
else
else
yylval
->
lex_str
=
get_token
(
lex
,
yyLength
());
yylval
->
lex_str
=
get_token
(
lex
,
yyLength
());
}
if
(
c
==
quote_char
)
if
(
c
==
delim
)
yySkip
();
// Skip end `
yySkip
();
// Skip end `
lex
->
next_state
=
MY_LEX_START
;
lex
->
next_state
=
MY_LEX_START
;
return
(
IDENT_QUOTED
);
return
(
IDENT_QUOTED
);
...
...
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