Commit 20d2727b authored by unknown's avatar unknown

Merge jbruehe@bk-internal.mysql.com:/home/bk/mysql-4.1

into mysql.com:/M41/mysql-4.1

parents c580293e bc0eef3e
...@@ -375,10 +375,7 @@ int __void__; ...@@ -375,10 +375,7 @@ int __void__;
#endif #endif
/* Define some useful general macros */ /* Define some useful general macros */
#if defined(__cplusplus) && defined(__GNUC__) #if !defined(max)
#define max(a, b) ((a) >? (b))
#define min(a, b) ((a) <? (b))
#elif !defined(max)
#define max(a, b) ((a) > (b) ? (a) : (b)) #define max(a, b) ((a) > (b) ? (a) : (b))
#define min(a, b) ((a) < (b) ? (a) : (b)) #define min(a, b) ((a) < (b) ? (a) : (b))
#endif #endif
......
...@@ -358,20 +358,6 @@ Database ...@@ -358,20 +358,6 @@ Database
mysql mysql
test test
use test; use test;
CREATE TABLE sys.SYSTAB_0 (a int);
ERROR 42S01: Table 'SYSTAB_0' already exists
select * from sys.SYSTAB_0;
ERROR HY000: Failed to open 'SYSTAB_0', error while unpacking from engine
CREATE TABLE IF NOT EXISTS sys.SYSTAB_0 (a int);
show warnings;
Level Code Message
select * from sys.SYSTAB_0;
ERROR HY000: Failed to open 'SYSTAB_0', error while unpacking from engine
drop table sys.SYSTAB_0;
ERROR 42S02: Unknown table 'SYSTAB_0'
drop table IF EXISTS sys.SYSTAB_0;
Warnings:
Note 1051 Unknown table 'SYSTAB_0'
CREATE TABLE t9 ( CREATE TABLE t9 (
a int NOT NULL PRIMARY KEY, a int NOT NULL PRIMARY KEY,
b int b int
......
...@@ -2721,3 +2721,9 @@ SELECT s.ip, count( e.itemid ) FROM `t1` e JOIN t2 s ON s.sessionid = e.sessioni ...@@ -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 ) ip count( e.itemid )
10.10.10.1 1 10.10.10.1 1
drop tables t1,t2; 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;
...@@ -460,19 +460,20 @@ use test; ...@@ -460,19 +460,20 @@ use test;
# a table with tha same name as a table that can't be # a table with tha same name as a table that can't be
# discovered( for example a table created via NDBAPI) # discovered( for example a table created via NDBAPI)
--error 1050 # Test disabled since it doesn't work on case insensitive systems
CREATE TABLE sys.SYSTAB_0 (a int); #--error 1050
--error 1105 #CREATE TABLE sys.SYSTAB_0 (a int);
select * from sys.SYSTAB_0; #--error 1105
#select * from sys.SYSTAB_0;
CREATE TABLE IF NOT EXISTS sys.SYSTAB_0 (a int);
show warnings; #CREATE TABLE IF NOT EXISTS sys.SYSTAB_0 (a int);
--error 1105 #show warnings;
select * from sys.SYSTAB_0; #--error 1105
#select * from sys.SYSTAB_0;
--error 1051
drop table sys.SYSTAB_0; #--error 1051
drop table IF EXISTS sys.SYSTAB_0; #drop table sys.SYSTAB_0;
#drop table IF EXISTS sys.SYSTAB_0;
###################################################### ######################################################
# Note! This should always be the last step in this # Note! This should always be the last step in this
......
...@@ -1746,3 +1746,11 @@ CREATE TABLE `t2` ( ...@@ -1746,3 +1746,11 @@ CREATE TABLE `t2` (
INSERT INTO `t2` VALUES (1, 1, 1, '10.10.10.1'); 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; 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; 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;
...@@ -3121,9 +3121,13 @@ void Item_type_holder::get_full_info(Item *item) ...@@ -3121,9 +3121,13 @@ void Item_type_holder::get_full_info(Item *item)
if (fld_type == MYSQL_TYPE_ENUM || if (fld_type == MYSQL_TYPE_ENUM ||
fld_type == MYSQL_TYPE_SET) 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 We can have enum/set type after merging only if we have one enum|set
field and number of NULL fields field (or MIN|MAX(enum|set field)) and number of NULL fields
*/ */
DBUG_ASSERT((enum_set_typelib && DBUG_ASSERT((enum_set_typelib &&
get_real_type(item) == MYSQL_TYPE_NULL) || get_real_type(item) == MYSQL_TYPE_NULL) ||
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment