mirror of
https://github.com/MariaDB/server.git
synced 2026-05-01 20:55:32 +02:00
Merge remote-tracking branch 'origin/10.0' into 10.1
This commit is contained in:
commit
e07451f71f
5 changed files with 76 additions and 2 deletions
|
|
@ -2308,3 +2308,47 @@ col_int_nokey
|
|||
1
|
||||
DROP TABLE t1,t2,t3;
|
||||
SET TIMESTAMP=0;
|
||||
#
|
||||
# MDEV-15262 Wrong results for SELECT..WHERE non_indexed_datetime_column=indexed_time_column
|
||||
#
|
||||
SET TIMESTAMP=UNIX_TIMESTAMP('2012-01-31 10:14:35');
|
||||
CREATE TABLE t1 (col_time_key TIME, KEY(col_time_key));
|
||||
CREATE TABLE t2 (col_datetime_key DATETIME);
|
||||
INSERT INTO t1 VALUES ('-760:00:00'),('760:00:00');
|
||||
INSERT INTO t1 VALUES ('-770:00:00'),('770:00:00');
|
||||
INSERT INTO t2 SELECT * FROM t1;
|
||||
SELECT * FROM t2 STRAIGHT_JOIN t1 IGNORE INDEX(col_time_key) WHERE col_time_key = col_datetime_key;
|
||||
col_datetime_key col_time_key
|
||||
2011-12-30 08:00:00 -760:00:00
|
||||
2012-03-02 16:00:00 760:00:00
|
||||
2011-12-29 22:00:00 -770:00:00
|
||||
2012-03-03 02:00:00 770:00:00
|
||||
SELECT * FROM t2 STRAIGHT_JOIN t1 FORCE INDEX (col_time_key) WHERE col_time_key = col_datetime_key;
|
||||
col_datetime_key col_time_key
|
||||
2011-12-29 22:00:00 -770:00:00
|
||||
2011-12-30 08:00:00 -760:00:00
|
||||
2012-03-02 16:00:00 760:00:00
|
||||
2012-03-03 02:00:00 770:00:00
|
||||
INSERT INTO t1 VALUES ('-838:59:59'),('838:59:59');
|
||||
INSERT INTO t2 VALUES (DATE_ADD(CURRENT_DATE, INTERVAL '-838:59:59' HOUR_SECOND));
|
||||
INSERT INTO t2 VALUES (DATE_ADD(CURRENT_DATE, INTERVAL '838:59:59' HOUR_SECOND));
|
||||
INSERT INTO t2 VALUES (DATE_ADD(CURRENT_DATE, INTERVAL '-839:00:00' HOUR_SECOND));
|
||||
INSERT INTO t2 VALUES (DATE_ADD(CURRENT_DATE, INTERVAL '839:00:00' HOUR_SECOND));
|
||||
SELECT * FROM t2 STRAIGHT_JOIN t1 IGNORE INDEX(col_time_key) WHERE col_time_key = col_datetime_key;
|
||||
col_datetime_key col_time_key
|
||||
2011-12-30 08:00:00 -760:00:00
|
||||
2012-03-02 16:00:00 760:00:00
|
||||
2011-12-29 22:00:00 -770:00:00
|
||||
2012-03-03 02:00:00 770:00:00
|
||||
2011-12-27 01:00:01 -838:59:59
|
||||
2012-03-05 22:59:59 838:59:59
|
||||
SELECT * FROM t2 STRAIGHT_JOIN t1 FORCE INDEX (col_time_key) WHERE col_time_key = col_datetime_key;
|
||||
col_datetime_key col_time_key
|
||||
2011-12-29 22:00:00 -770:00:00
|
||||
2011-12-30 08:00:00 -760:00:00
|
||||
2012-03-02 16:00:00 760:00:00
|
||||
2012-03-03 02:00:00 770:00:00
|
||||
2011-12-27 01:00:01 -838:59:59
|
||||
2012-03-05 22:59:59 838:59:59
|
||||
DROP TABLE t1, t2;
|
||||
SET TIMESTAMP=DEFAULT;
|
||||
|
|
|
|||
|
|
@ -676,7 +676,7 @@
|
|||
VARIABLE_NAME INNODB_VERSION
|
||||
SESSION_VALUE NULL
|
||||
-GLOBAL_VALUE 5.6.37
|
||||
+GLOBAL_VALUE 5.6.36-83.0
|
||||
+GLOBAL_VALUE 5.6.38-83.0
|
||||
GLOBAL_VALUE_ORIGIN COMPILE-TIME
|
||||
DEFAULT_VALUE NULL
|
||||
VARIABLE_SCOPE GLOBAL
|
||||
|
|
|
|||
|
|
@ -172,6 +172,29 @@ eval $query;
|
|||
DROP TABLE t1,t2,t3;
|
||||
SET TIMESTAMP=0; # back to current time
|
||||
|
||||
|
||||
--echo #
|
||||
--echo # MDEV-15262 Wrong results for SELECT..WHERE non_indexed_datetime_column=indexed_time_column
|
||||
--echo #
|
||||
|
||||
SET TIMESTAMP=UNIX_TIMESTAMP('2012-01-31 10:14:35');
|
||||
CREATE TABLE t1 (col_time_key TIME, KEY(col_time_key));
|
||||
CREATE TABLE t2 (col_datetime_key DATETIME);
|
||||
INSERT INTO t1 VALUES ('-760:00:00'),('760:00:00');
|
||||
INSERT INTO t1 VALUES ('-770:00:00'),('770:00:00');
|
||||
INSERT INTO t2 SELECT * FROM t1;
|
||||
SELECT * FROM t2 STRAIGHT_JOIN t1 IGNORE INDEX(col_time_key) WHERE col_time_key = col_datetime_key;
|
||||
SELECT * FROM t2 STRAIGHT_JOIN t1 FORCE INDEX (col_time_key) WHERE col_time_key = col_datetime_key;
|
||||
INSERT INTO t1 VALUES ('-838:59:59'),('838:59:59');
|
||||
INSERT INTO t2 VALUES (DATE_ADD(CURRENT_DATE, INTERVAL '-838:59:59' HOUR_SECOND));
|
||||
INSERT INTO t2 VALUES (DATE_ADD(CURRENT_DATE, INTERVAL '838:59:59' HOUR_SECOND));
|
||||
INSERT INTO t2 VALUES (DATE_ADD(CURRENT_DATE, INTERVAL '-839:00:00' HOUR_SECOND));
|
||||
INSERT INTO t2 VALUES (DATE_ADD(CURRENT_DATE, INTERVAL '839:00:00' HOUR_SECOND));
|
||||
SELECT * FROM t2 STRAIGHT_JOIN t1 IGNORE INDEX(col_time_key) WHERE col_time_key = col_datetime_key;
|
||||
SELECT * FROM t2 STRAIGHT_JOIN t1 FORCE INDEX (col_time_key) WHERE col_time_key = col_datetime_key;
|
||||
DROP TABLE t1, t2;
|
||||
SET TIMESTAMP=DEFAULT;
|
||||
|
||||
#
|
||||
# End of 10.0 tests
|
||||
#
|
||||
|
|
|
|||
|
|
@ -5788,6 +5788,13 @@ static void calc_datetime_days_diff(MYSQL_TIME *ltime, long days)
|
|||
ltime->second) * 1000000LL +
|
||||
ltime->second_part);
|
||||
unpack_time(timediff, ltime);
|
||||
/*
|
||||
unpack_time() broke down hours into ltime members hour,day,month.
|
||||
Mix them back to ltime->hour using the same factors
|
||||
that pack_time()/unpack_time() use (i.e. 32 for month).
|
||||
*/
|
||||
ltime->hour+= (ltime->month * 32 + ltime->day) * 24;
|
||||
ltime->month= ltime->day= 0;
|
||||
}
|
||||
ltime->time_type= MYSQL_TIMESTAMP_TIME;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -45,7 +45,7 @@ Created 1/20/1994 Heikki Tuuri
|
|||
|
||||
#define INNODB_VERSION_MAJOR 5
|
||||
#define INNODB_VERSION_MINOR 6
|
||||
#define INNODB_VERSION_BUGFIX 36
|
||||
#define INNODB_VERSION_BUGFIX 38
|
||||
|
||||
#ifndef PERCONA_INNODB_VERSION
|
||||
#define PERCONA_INNODB_VERSION 83.0
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue