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
fb419c42
Commit
fb419c42
authored
Nov 21, 2006
by
bar@mysql.com/bar.intranet.mysql.r18.ru
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
BUG#13926: --order-by-primary fails if PKEY contains quote character.
Backporting from 5.0
parent
a363599a
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
90 additions
and
5 deletions
+90
-5
client/mysqldump.c
client/mysqldump.c
+13
-5
mysql-test/r/mysqldump.result
mysql-test/r/mysqldump.result
+62
-0
mysql-test/t/mysqldump.test
mysql-test/t/mysqldump.test
+15
-0
No files found.
client/mysqldump.c
View file @
fb419c42
...
...
@@ -2589,6 +2589,8 @@ static char *primary_key_fields(const char *table_name)
char
show_keys_buff
[
15
+
64
*
2
+
3
];
uint
result_length
=
0
;
char
*
result
=
0
;
char
buff
[
NAME_LEN
*
2
+
3
];
char
*
quoted_field
;
my_snprintf
(
show_keys_buff
,
sizeof
(
show_keys_buff
),
"SHOW KEYS FROM %s"
,
table_name
);
...
...
@@ -2612,8 +2614,10 @@ static char *primary_key_fields(const char *table_name)
{
/* Key is unique */
do
result_length
+=
strlen
(
row
[
4
])
+
1
;
/* + 1 for ',' or \0 */
while
((
row
=
mysql_fetch_row
(
res
))
&&
atoi
(
row
[
3
])
>
1
);
{
quoted_field
=
quote_name
(
row
[
4
],
buff
,
0
);
result_length
+=
strlen
(
quoted_field
)
+
1
;
/* + 1 for ',' or \0 */
}
while
((
row
=
mysql_fetch_row
(
res
))
&&
atoi
(
row
[
3
])
>
1
);
}
/* Build the ORDER BY clause result */
...
...
@@ -2627,9 +2631,13 @@ static char *primary_key_fields(const char *table_name)
}
mysql_data_seek
(
res
,
0
);
row
=
mysql_fetch_row
(
res
);
end
=
strmov
(
result
,
row
[
4
]);
while
((
row
=
mysql_fetch_row
(
res
))
&&
atoi
(
row
[
3
])
>
1
)
end
=
strxmov
(
end
,
","
,
row
[
4
],
NullS
);
quoted_field
=
quote_name
(
row
[
4
],
buff
,
0
);
end
=
strmov
(
result
,
quoted_field
);
while
((
row
=
mysql_fetch_row
(
res
))
&&
atoi
(
row
[
3
])
>
1
)
{
quoted_field
=
quote_name
(
row
[
4
],
buff
,
0
);
end
=
strxmov
(
end
,
","
,
quoted_field
,
NullS
);
}
}
cleanup:
...
...
mysql-test/r/mysqldump.result
View file @
fb419c42
...
...
@@ -1584,4 +1584,66 @@ CREATE TABLE `t1` (
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
drop table t1;
CREATE TABLE `t1` (
`a b` INT,
`c"d` INT,
`e``f` INT,
PRIMARY KEY (`a b`, `c"d`, `e``f`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
insert into t1 values (0815, 4711, 2006);
/*!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,ANSI' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS "t1";
CREATE TABLE "t1" (
"a b" int(11) NOT NULL default '0',
"c""d" int(11) NOT NULL default '0',
"e`f" int(11) NOT NULL default '0',
PRIMARY KEY ("a b","c""d","e`f")
);
LOCK TABLES "t1" WRITE;
/*!40000 ALTER TABLE "t1" DISABLE KEYS */;
INSERT INTO "t1" VALUES (815,4711,2006);
/*!40000 ALTER TABLE "t1" ENABLE KEYS */;
UNLOCK TABLES;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES 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' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
DROP TABLE IF EXISTS `t1`;
CREATE TABLE `t1` (
`a b` int(11) NOT NULL default '0',
`c"d` int(11) NOT NULL default '0',
`e``f` int(11) NOT NULL default '0',
PRIMARY KEY (`a b`,`c"d`,`e``f`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
LOCK TABLES `t1` WRITE;
/*!40000 ALTER TABLE `t1` DISABLE KEYS */;
INSERT INTO `t1` VALUES (815,4711,2006);
/*!40000 ALTER TABLE `t1` ENABLE KEYS */;
UNLOCK TABLES;
/*!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 */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
DROP TABLE `t1`;
End of 4.1 tests
mysql-test/t/mysqldump.test
View file @
fb419c42
...
...
@@ -702,4 +702,19 @@ create table t1 (a int);
--
exec
$MYSQL_DUMP
--
skip
-
comments
--
force
test
t1
--
where
=
'xx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
2
>&
1
drop
table
t1
;
#
# BUG#13926: --order-by-primary fails if PKEY contains quote character
#
CREATE
TABLE
`t1`
(
`a b`
INT
,
`c"d`
INT
,
`e``f`
INT
,
PRIMARY
KEY
(
`a b`
,
`c"d`
,
`e``f`
)
)
ENGINE
=
MyISAM
DEFAULT
CHARSET
=
latin1
;
insert
into
t1
values
(
0815
,
4711
,
2006
);
--
exec
$MYSQL_DUMP
--
skip
-
comments
--
compatible
=
ansi
--
order
-
by
-
primary
test
t1
--
exec
$MYSQL_DUMP
--
skip
-
comments
--
order
-
by
-
primary
test
t1
DROP
TABLE
`t1`
;
--
echo
End
of
4.1
tests
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