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
948ae47b
Commit
948ae47b
authored
May 09, 2005
by
ramil@mysql.com
Browse files
Options
Browse Files
Download
Plain Diff
Merge rkalimullin@bk-internal.mysql.com:/home/bk/mysql-5.0
into mysql.com:/home/ram/work/5.0
parents
86364684
1092c4d8
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
24 additions
and
1 deletion
+24
-1
mysql-test/r/group_min_max.result
mysql-test/r/group_min_max.result
+7
-0
mysql-test/t/group_min_max.test
mysql-test/t/group_min_max.test
+11
-0
sql/opt_range.cc
sql/opt_range.cc
+6
-1
No files found.
mysql-test/r/group_min_max.result
View file @
948ae47b
...
...
@@ -1961,3 +1961,10 @@ a varchar(30), b varchar(30), primary key(a), key(b)
select distinct a from t1;
a
drop table t1;
create table t1(a int, key(a)) engine=innodb;
insert into t1 values(1);
select a, count(a) from t1 group by a with rollup;
a count(a)
1 1
NULL 1
drop table t1;
mysql-test/t/group_min_max.test
View file @
948ae47b
...
...
@@ -610,3 +610,14 @@ create table t1 (
--
enable_warnings
select
distinct
a
from
t1
;
drop
table
t1
;
#
# Bug #9798: group by with rollup
#
--
disable_warnings
create
table
t1
(
a
int
,
key
(
a
))
engine
=
innodb
;
--
enable_warnings
insert
into
t1
values
(
1
);
select
a
,
count
(
a
)
from
t1
group
by
a
with
rollup
;
drop
table
t1
;
sql/opt_range.cc
View file @
948ae47b
...
...
@@ -6670,6 +6670,8 @@ cost_group_min_max(TABLE* table, KEY *index_info, uint used_key_parts,
- NGA = QA - (GA union C) = {NG_1, ..., NG_m} - the ones not in
GROUP BY and not referenced by MIN/MAX functions.
with the following properties specified below.
B3. If Q has a GROUP BY WITH ROLLUP clause the access method is not
applicable.
SA1. There is at most one attribute in SA referenced by any number of
MIN and/or MAX functions which, which if present, is denoted as C.
...
...
@@ -6754,6 +6756,8 @@ cost_group_min_max(TABLE* table, KEY *index_info, uint used_key_parts,
other field as in: "select min(a) from t1 group by a" ?
- We assume that the general correctness of the GROUP-BY query was checked
before this point. Is this correct, or do we have to check it completely?
- Lift the limitation in condition (B3), that is, make this access method
applicable to ROLLUP queries.
RETURN
If mem_root != NULL
...
...
@@ -6793,7 +6797,8 @@ get_best_group_min_max(PARAM *param, SEL_TREE *tree)
DBUG_RETURN
(
NULL
);
/* This is not a select statement. */
if
((
join
->
tables
!=
1
)
||
/* The query must reference one table. */
((
!
join
->
group_list
)
&&
/* Neither GROUP BY nor a DISTINCT query. */
(
!
join
->
select_distinct
)))
(
!
join
->
select_distinct
))
||
(
thd
->
lex
->
select_lex
.
olap
==
ROLLUP_TYPE
))
/* Check (B3) for ROLLUP */
DBUG_RETURN
(
NULL
);
if
(
table
->
s
->
keys
==
0
)
/* There are no indexes to use. */
DBUG_RETURN
(
NULL
);
...
...
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