mirror of
https://github.com/MariaDB/server.git
synced 2025-01-18 04:53:01 +01:00
Merge abotchkov@bk-internal.mysql.com:/home/bk/mysql-5.1-opt
into mysql.com:/home/hf/work/my51-24186
This commit is contained in:
commit
9a97420c54
3 changed files with 177 additions and 0 deletions
|
@ -1138,4 +1138,85 @@ PARTITION p_100 VALUES LESS THAN (100),
|
|||
PARTITION p_X VALUES LESS THAN MAXVALUE
|
||||
);
|
||||
drop table t1;
|
||||
CREATE TABLE t2 (
|
||||
taken datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
id int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (id,taken),
|
||||
KEY taken (taken)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t2 VALUES
|
||||
('2006-09-27 21:50:01',16421),
|
||||
('2006-10-02 21:50:01',16421),
|
||||
('2006-09-27 21:50:01',19092),
|
||||
('2006-09-28 21:50:01',19092),
|
||||
('2006-09-29 21:50:01',19092),
|
||||
('2006-09-30 21:50:01',19092),
|
||||
('2006-10-01 21:50:01',19092),
|
||||
('2006-10-02 21:50:01',19092),
|
||||
('2006-09-27 21:50:01',22589),
|
||||
('2006-09-29 21:50:01',22589);
|
||||
CREATE TABLE t1 (
|
||||
id int(8) NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t1 VALUES
|
||||
(16421),
|
||||
(19092),
|
||||
(22589);
|
||||
CREATE TABLE t4 (
|
||||
taken datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
id int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (id,taken),
|
||||
KEY taken (taken)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
PARTITION BY RANGE (to_days(taken))
|
||||
(
|
||||
PARTITION p01 VALUES LESS THAN (732920) ,
|
||||
PARTITION p02 VALUES LESS THAN (732950) ,
|
||||
PARTITION p03 VALUES LESS THAN MAXVALUE ) ;
|
||||
INSERT INTO t4 select * from t2;
|
||||
set @f_date='2006-09-28';
|
||||
set @t_date='2006-10-02';
|
||||
SELECT t1.id AS MyISAM_part
|
||||
FROM t1
|
||||
WHERE t1.id IN (
|
||||
SELECT distinct id
|
||||
FROM t4
|
||||
WHERE taken BETWEEN @f_date AND date_add(@t_date, INTERVAL 1 DAY))
|
||||
ORDER BY t1.id
|
||||
;
|
||||
MyISAM_part
|
||||
16421
|
||||
19092
|
||||
22589
|
||||
drop table t1, t2, t4;
|
||||
CREATE TABLE t1 (
|
||||
taken datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
id int(11) NOT NULL DEFAULT '0',
|
||||
status varchar(20) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (id,taken)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
PARTITION BY RANGE (to_days(taken))
|
||||
(
|
||||
PARTITION p15 VALUES LESS THAN (732950) ,
|
||||
PARTITION p16 VALUES LESS THAN MAXVALUE ) ;
|
||||
INSERT INTO t1 VALUES
|
||||
('2006-09-27 21:50:01',22589,'Open'),
|
||||
('2006-09-29 21:50:01',22589,'Verified');
|
||||
DROP TABLE IF EXISTS t2;
|
||||
Warnings:
|
||||
Note 1051 Unknown table 't2'
|
||||
CREATE TABLE t2 (
|
||||
id int(8) NOT NULL,
|
||||
severity tinyint(4) NOT NULL DEFAULT '0',
|
||||
priority tinyint(4) NOT NULL DEFAULT '0',
|
||||
status varchar(20) DEFAULT NULL,
|
||||
alien tinyint(4) NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
INSERT INTO t2 VALUES
|
||||
(22589,1,1,'Need Feedback',0);
|
||||
SELECT t2.id FROM t2 WHERE t2.id IN (SELECT id FROM t1 WHERE status = 'Verified');
|
||||
id
|
||||
22589
|
||||
drop table t1, t2;
|
||||
End of 5.1 tests
|
||||
|
|
|
@ -1370,4 +1370,97 @@ REORGANIZE PARTITION p_X INTO (
|
|||
|
||||
drop table t1;
|
||||
|
||||
#
|
||||
# Bug #24186 (nested query across partitions returns fewer records)
|
||||
#
|
||||
|
||||
CREATE TABLE t2 (
|
||||
taken datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
id int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (id,taken),
|
||||
KEY taken (taken)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
INSERT INTO t2 VALUES
|
||||
('2006-09-27 21:50:01',16421),
|
||||
('2006-10-02 21:50:01',16421),
|
||||
('2006-09-27 21:50:01',19092),
|
||||
('2006-09-28 21:50:01',19092),
|
||||
('2006-09-29 21:50:01',19092),
|
||||
('2006-09-30 21:50:01',19092),
|
||||
('2006-10-01 21:50:01',19092),
|
||||
('2006-10-02 21:50:01',19092),
|
||||
('2006-09-27 21:50:01',22589),
|
||||
('2006-09-29 21:50:01',22589);
|
||||
|
||||
CREATE TABLE t1 (
|
||||
id int(8) NOT NULL,
|
||||
PRIMARY KEY (id)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
INSERT INTO t1 VALUES
|
||||
(16421),
|
||||
(19092),
|
||||
(22589);
|
||||
|
||||
CREATE TABLE t4 (
|
||||
taken datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
id int(11) NOT NULL DEFAULT '0',
|
||||
PRIMARY KEY (id,taken),
|
||||
KEY taken (taken)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
PARTITION BY RANGE (to_days(taken))
|
||||
(
|
||||
PARTITION p01 VALUES LESS THAN (732920) ,
|
||||
PARTITION p02 VALUES LESS THAN (732950) ,
|
||||
PARTITION p03 VALUES LESS THAN MAXVALUE ) ;
|
||||
|
||||
INSERT INTO t4 select * from t2;
|
||||
|
||||
set @f_date='2006-09-28';
|
||||
set @t_date='2006-10-02';
|
||||
|
||||
SELECT t1.id AS MyISAM_part
|
||||
FROM t1
|
||||
WHERE t1.id IN (
|
||||
SELECT distinct id
|
||||
FROM t4
|
||||
WHERE taken BETWEEN @f_date AND date_add(@t_date, INTERVAL 1 DAY))
|
||||
ORDER BY t1.id
|
||||
;
|
||||
|
||||
drop table t1, t2, t4;
|
||||
|
||||
CREATE TABLE t1 (
|
||||
taken datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
|
||||
id int(11) NOT NULL DEFAULT '0',
|
||||
status varchar(20) NOT NULL DEFAULT '',
|
||||
PRIMARY KEY (id,taken)
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1
|
||||
PARTITION BY RANGE (to_days(taken))
|
||||
(
|
||||
PARTITION p15 VALUES LESS THAN (732950) ,
|
||||
PARTITION p16 VALUES LESS THAN MAXVALUE ) ;
|
||||
|
||||
|
||||
INSERT INTO t1 VALUES
|
||||
('2006-09-27 21:50:01',22589,'Open'),
|
||||
('2006-09-29 21:50:01',22589,'Verified');
|
||||
|
||||
DROP TABLE IF EXISTS t2;
|
||||
CREATE TABLE t2 (
|
||||
id int(8) NOT NULL,
|
||||
severity tinyint(4) NOT NULL DEFAULT '0',
|
||||
priority tinyint(4) NOT NULL DEFAULT '0',
|
||||
status varchar(20) DEFAULT NULL,
|
||||
alien tinyint(4) NOT NULL
|
||||
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
|
||||
|
||||
INSERT INTO t2 VALUES
|
||||
(22589,1,1,'Need Feedback',0);
|
||||
|
||||
SELECT t2.id FROM t2 WHERE t2.id IN (SELECT id FROM t1 WHERE status = 'Verified');
|
||||
|
||||
drop table t1, t2;
|
||||
|
||||
--echo End of 5.1 tests
|
||||
|
|
|
@ -4015,6 +4015,7 @@ int ha_partition::handle_ordered_index_scan(byte *buf, bool reverse_order)
|
|||
m_queue.elements= j;
|
||||
queue_fix(&m_queue);
|
||||
return_top_record(buf);
|
||||
table->status= 0;
|
||||
DBUG_PRINT("info", ("Record returned from partition %d", m_top_entry));
|
||||
DBUG_RETURN(0);
|
||||
}
|
||||
|
@ -4083,6 +4084,7 @@ int ha_partition::handle_ordered_next(byte *buf, bool is_next_same)
|
|||
DBUG_PRINT("info", ("Record returned from partition %u (2)",
|
||||
m_top_entry));
|
||||
return_top_record(buf);
|
||||
table->status= 0;
|
||||
error= 0;
|
||||
}
|
||||
}
|
||||
|
@ -4126,6 +4128,7 @@ int ha_partition::handle_ordered_prev(byte *buf)
|
|||
DBUG_PRINT("info", ("Record returned from partition %d (2)",
|
||||
m_top_entry));
|
||||
error= 0;
|
||||
table->status= 0;
|
||||
}
|
||||
}
|
||||
DBUG_RETURN(error);
|
||||
|
|
Loading…
Reference in a new issue