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
da8f78a0
Commit
da8f78a0
authored
Feb 10, 2004
by
vva@eagle.mysql.r18.ru
Browse files
Options
Browse Files
Download
Plain Diff
Merge vvagin@bk-internal.mysql.com:/home/bk/mysql-4.1
into eagle.mysql.r18.ru:/home/vva/work/BUG_2592/mysql-4.1
parents
0c6a0b9a
950b2df9
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
52 additions
and
13 deletions
+52
-13
client/mysqldump.c
client/mysqldump.c
+2
-2
mysql-test/r/mysqldump.result
mysql-test/r/mysqldump.result
+23
-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 @
da8f78a0
...
...
@@ -664,7 +664,7 @@ static char *quote_name(const char *name, char *buff, my_bool force)
while
(
*
name
)
{
if
(
*
name
==
QUOTE_CHAR
)
*
to
=
QUOTE_CHAR
;
*
to
++
=
QUOTE_CHAR
;
*
to
++=
*
name
++
;
}
to
[
0
]
=
QUOTE_CHAR
;
...
...
@@ -1662,7 +1662,7 @@ static int dump_all_tables_in_db(char *database)
if
(
opt_xml
)
fputs
(
"</database>
\n
"
,
md_result_file
);
if
(
lock_tables
)
mysql_query
(
sock
,
"UNLOCK
_
TABLES"
);
mysql_query
(
sock
,
"UNLOCK
TABLES"
);
return
0
;
}
/* dump_all_tables_in_db */
...
...
mysql-test/r/mysqldump.result
View file @
da8f78a0
...
...
@@ -179,3 +179,26 @@ UNLOCK TABLES;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
DROP TABLE t1;
create table ```a` (i int);
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT, CHARACTER_SET_CLIENT=utf8 */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE=NO_AUTO_VALUE_ON_ZERO */;
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 @
da8f78a0
...
...
@@ -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
=
mysql323
test
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 @
da8f78a0
...
...
@@ -667,13 +667,24 @@ int yylex(void *arg, void *yythd)
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 `
#ifdef USE_MB
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
)
{
int
l
;
...
...
@@ -684,13 +695,10 @@ int yylex(void *arg, void *yythd)
lex
->
ptr
+=
l
-
1
;
}
}
yylval
->
lex_str
=
get_token
(
lex
,
yyLength
());
}
else
#endif
{
uint
double_quotes
=
0
;
char
quote_char
=
c
;
while
((
c
=
yyGet
()))
{
if
(
c
==
quote_char
)
...
...
@@ -704,13 +712,13 @@ int yylex(void *arg, void *yythd)
if
(
c
==
(
uchar
)
NAMES_SEP_CHAR
)
break
;
}
if
(
double_quotes
)
yylval
->
lex_str
=
get_quoted_token
(
lex
,
yyLength
()
-
double_quotes
,
quote_char
);
else
yylval
->
lex_str
=
get_token
(
lex
,
yyLength
());
}
if
(
c
==
delim
)
if
(
double_quotes
)
yylval
->
lex_str
=
get_quoted_token
(
lex
,
yyLength
()
-
double_quotes
,
quote_char
);
else
yylval
->
lex_str
=
get_token
(
lex
,
yyLength
());
if
(
c
==
quote_char
)
yySkip
();
// Skip end `
lex
->
next_state
=
MY_LEX_START
;
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