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
55e70fd1
Commit
55e70fd1
authored
Jul 12, 2005
by
sergefp@mysql.com
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix for BUG#11821: Make Item_type_holder be able to work with MIN(field),
MAX(field).
parent
1042a275
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
20 additions
and
2 deletions
+20
-2
mysql-test/r/subselect.result
mysql-test/r/subselect.result
+6
-0
mysql-test/t/subselect.test
mysql-test/t/subselect.test
+8
-0
sql/item.cc
sql/item.cc
+6
-2
No files found.
mysql-test/r/subselect.result
View file @
55e70fd1
...
...
@@ -2721,3 +2721,9 @@ SELECT s.ip, count( e.itemid ) FROM `t1` e JOIN t2 s ON s.sessionid = e.sessioni
ip count( e.itemid )
10.10.10.1 1
drop tables t1,t2;
create table t1 (fld enum('0','1'));
insert into t1 values ('1');
select * from (select max(fld) from t1) as foo;
max(fld)
1
drop table t1;
mysql-test/t/subselect.test
View file @
55e70fd1
...
...
@@ -1746,3 +1746,11 @@ CREATE TABLE `t2` (
INSERT
INTO
`t2`
VALUES
(
1
,
1
,
1
,
'10.10.10.1'
);
SELECT
s
.
ip
,
count
(
e
.
itemid
)
FROM
`t1`
e
JOIN
t2
s
ON
s
.
sessionid
=
e
.
sessionid
WHERE
e
.
sessionid
=
(
SELECT
sessionid
FROM
t2
ORDER
BY
sessionid
DESC
LIMIT
1
)
GROUP
BY
s
.
ip
HAVING
count
(
e
.
itemid
)
>
0
LIMIT
0
,
30
;
drop
tables
t1
,
t2
;
# BUG#11821 : Select from subselect using aggregate function on an enum
# segfaults:
create
table
t1
(
fld
enum
(
'0'
,
'1'
));
insert
into
t1
values
(
'1'
);
select
*
from
(
select
max
(
fld
)
from
t1
)
as
foo
;
drop
table
t1
;
sql/item.cc
View file @
55e70fd1
...
...
@@ -3121,9 +3121,13 @@ void Item_type_holder::get_full_info(Item *item)
if
(
fld_type
==
MYSQL_TYPE_ENUM
||
fld_type
==
MYSQL_TYPE_SET
)
{
if
(
item
->
type
()
==
Item
::
SUM_FUNC_ITEM
&&
(((
Item_sum
*
)
item
)
->
sum_func
()
==
Item_sum
::
MAX_FUNC
||
((
Item_sum
*
)
item
)
->
sum_func
()
==
Item_sum
::
MIN_FUNC
))
item
=
((
Item_sum
*
)
item
)
->
args
[
0
];
/*
We can have enum/set type after merging only if we have one enum
/
set
field and number of NULL fields
We can have enum/set type after merging only if we have one enum
|
set
field
(or MIN|MAX(enum|set field))
and number of NULL fields
*/
DBUG_ASSERT
((
enum_set_typelib
&&
get_real_type
(
item
)
==
MYSQL_TYPE_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