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
4d8ec62d
Commit
4d8ec62d
authored
Sep 14, 2007
by
unknown
Browse files
Options
Browse Files
Download
Plain Diff
Merge gkodinov@bk-internal.mysql.com:/home/bk/mysql-5.0-opt
into magare.gmz:/home/kgeorge/mysql/autopush/B31001-5.0-opt
parents
2ab4e3d1
ad496be0
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
127 additions
and
1 deletion
+127
-1
mysql-test/r/innodb_mysql.result
mysql-test/r/innodb_mysql.result
+97
-0
mysql-test/t/innodb_mysql.test
mysql-test/t/innodb_mysql.test
+23
-0
sql/sql_select.cc
sql/sql_select.cc
+7
-1
No files found.
mysql-test/r/innodb_mysql.result
View file @
4d8ec62d
...
...
@@ -1114,4 +1114,101 @@ c b
3 1
3 2
DROP TABLE t1;
CREATE TABLE t1 (a INT, b INT, PRIMARY KEY (a), INDEX b (b)) ENGINE=InnoDB;
INSERT INTO t1(a,b) VALUES (1,1), (2,2), (3,2);
EXPLAIN SELECT * FROM t1 WHERE b=2 ORDER BY a ASC;
id 1
select_type SIMPLE
table t1
type ref
possible_keys b
key b
key_len 5
ref const
rows 1
Extra Using where; Using index
SELECT * FROM t1 WHERE b=2 ORDER BY a ASC;
a b
2 2
3 2
EXPLAIN SELECT * FROM t1 WHERE b=2 ORDER BY a DESC;
id 1
select_type SIMPLE
table t1
type ref
possible_keys b
key b
key_len 5
ref const
rows 1
Extra Using where; Using index
SELECT * FROM t1 WHERE b=2 ORDER BY a DESC;
a b
3 2
2 2
EXPLAIN SELECT * FROM t1 ORDER BY b ASC, a ASC;
id 1
select_type SIMPLE
table t1
type index
possible_keys NULL
key b
key_len 5
ref NULL
rows 3
Extra Using index
SELECT * FROM t1 ORDER BY b ASC, a ASC;
a b
1 1
2 2
3 2
EXPLAIN SELECT * FROM t1 ORDER BY b DESC, a DESC;
id 1
select_type SIMPLE
table t1
type index
possible_keys NULL
key b
key_len 5
ref NULL
rows 3
Extra Using index
SELECT * FROM t1 ORDER BY b DESC, a DESC;
a b
3 2
2 2
1 1
EXPLAIN SELECT * FROM t1 ORDER BY b ASC, a DESC;
id 1
select_type SIMPLE
table t1
type index
possible_keys NULL
key b
key_len 5
ref NULL
rows 3
Extra Using index; Using filesort
SELECT * FROM t1 ORDER BY b ASC, a DESC;
a b
1 1
3 2
2 2
EXPLAIN SELECT * FROM t1 ORDER BY b DESC, a ASC;
id 1
select_type SIMPLE
table t1
type index
possible_keys NULL
key b
key_len 5
ref NULL
rows 3
Extra Using index; Using filesort
SELECT * FROM t1 ORDER BY b DESC, a ASC;
a b
2 2
3 2
1 1
DROP TABLE t1;
End of 5.0 tests
mysql-test/t/innodb_mysql.test
View file @
4d8ec62d
...
...
@@ -937,4 +937,27 @@ SELECT c,b FROM t1 GROUP BY c,b;
DROP
TABLE
t1
;
#
# Bug #31001: ORDER BY DESC in InnoDB not working
#
CREATE
TABLE
t1
(
a
INT
,
b
INT
,
PRIMARY
KEY
(
a
),
INDEX
b
(
b
))
ENGINE
=
InnoDB
;
INSERT
INTO
t1
(
a
,
b
)
VALUES
(
1
,
1
),
(
2
,
2
),
(
3
,
2
);
#The two queries below should produce different results, but they don't.
query_vertical
EXPLAIN
SELECT
*
FROM
t1
WHERE
b
=
2
ORDER
BY
a
ASC
;
SELECT
*
FROM
t1
WHERE
b
=
2
ORDER
BY
a
ASC
;
query_vertical
EXPLAIN
SELECT
*
FROM
t1
WHERE
b
=
2
ORDER
BY
a
DESC
;
SELECT
*
FROM
t1
WHERE
b
=
2
ORDER
BY
a
DESC
;
query_vertical
EXPLAIN
SELECT
*
FROM
t1
ORDER
BY
b
ASC
,
a
ASC
;
SELECT
*
FROM
t1
ORDER
BY
b
ASC
,
a
ASC
;
query_vertical
EXPLAIN
SELECT
*
FROM
t1
ORDER
BY
b
DESC
,
a
DESC
;
SELECT
*
FROM
t1
ORDER
BY
b
DESC
,
a
DESC
;
query_vertical
EXPLAIN
SELECT
*
FROM
t1
ORDER
BY
b
ASC
,
a
DESC
;
SELECT
*
FROM
t1
ORDER
BY
b
ASC
,
a
DESC
;
query_vertical
EXPLAIN
SELECT
*
FROM
t1
ORDER
BY
b
DESC
,
a
ASC
;
SELECT
*
FROM
t1
ORDER
BY
b
DESC
,
a
ASC
;
DROP
TABLE
t1
;
--
echo
End
of
5.0
tests
sql/sql_select.cc
View file @
4d8ec62d
...
...
@@ -12063,6 +12063,12 @@ static int test_if_order_by_key(ORDER *order, TABLE *table, uint idx,
for
(;
const_key_parts
&
1
;
const_key_parts
>>=
1
)
key_part
++
;
/*
The primary and secondary key parts were all const (i.e. there's
one row). The sorting doesn't matter.
*/
if
(
key_part
==
key_part_end
&&
reverse
==
0
)
DBUG_RETURN
(
1
);
}
else
DBUG_RETURN
(
0
);
...
...
@@ -12480,7 +12486,7 @@ test_if_skip_sort_order(JOIN_TAB *tab,ORDER *order,ha_rows select_limit,
}
DBUG_RETURN
(
1
);
}
if
(
tab
->
ref
.
key_parts
<
used_key_parts
)
if
(
tab
->
ref
.
key_parts
<
=
used_key_parts
)
{
/*
SELECT * FROM t1 WHERE a=1 ORDER BY a DESC,b DESC
...
...
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