mirror of
https://github.com/MariaDB/server.git
synced 2026-04-20 07:15:33 +02:00
Merge with 5.1-microseconds
A lot of small fixes and new test cases. client/mysqlbinlog.cc: Cast removed client/mysqltest.cc: Added missing DBUG_RETURN include/my_pthread.h: set_timespec_time_nsec() now only takes one argument mysql-test/t/date_formats.test: Remove --disable_ps_protocl as now also ps supports microseconds mysys/my_uuid.c: Changed to use my_interval_timer() instead of my_getsystime() mysys/waiting_threads.c: Changed to use my_hrtime() sql/field.h: Added bool special_const_compare() for fields that may convert values before compare (like year) sql/field_conv.cc: Added test to get optimal copying of identical temporal values. sql/item.cc: Return that item_int is equal if it's positive, even if unsigned flag is different. Fixed Item_cache_str::save_in_field() to have identical null check as other similar functions Added proper NULL check to Item_cache_int::save_in_field() sql/item_cmpfunc.cc: Don't call convert_constant_item() if there is nothing that is worth converting. Simplified test when years should be converted sql/item_sum.cc: Mark cache values in Item_sum_hybrid as not constants to ensure they are not replaced by other cache values in compare_datetime() sql/item_timefunc.cc: Changed sec_to_time() to take a my_decimal argument to ensure we don't loose any sub seconds. Added Item_temporal_func::get_time() (This simplifies some things) sql/mysql_priv.h: Added Lazy_string_decimal() sql/mysqld.cc: Added my_decimal constants max_seconds_for_time_type, time_second_part_factor sql/table.cc: Changed expr_arena to be of type CONVENTIONAL_EXECUTION to ensure that we don't loose any items that are created by fix_fields() sql/tztime.cc: TIME_to_gmt_sec() now sets *in_dst_time_gap in case of errors This is needed to be able to detect if timestamp is 0 storage/maria/lockman.c: Changed from my_getsystime() to set_timespec_time_nsec() storage/maria/ma_loghandler.c: Changed from my_getsystime() to my_hrtime() storage/maria/ma_recovery.c: Changed from my_getsystime() to mmicrosecond_interval_timer() storage/maria/unittest/trnman-t.c: Changed from my_getsystime() to mmicrosecond_interval_timer() storage/xtradb/handler/ha_innodb.cc: Added support for new time,datetime and timestamp unittest/mysys/thr_template.c: my_getsystime() -> my_interval_timer() unittest/mysys/waiting_threads-t.c: my_getsystime() -> my_interval_timer()
This commit is contained in:
commit
f197991f41
246 changed files with 11747 additions and 9889 deletions
|
|
@ -2115,8 +2115,8 @@ INSERT INTO t2 VALUES (1,3,10,'2002-06-01 08:00:00',35),(1,3,1010,'2002-06-01 12
|
|||
SELECT a.gvid, (SUM(CASE b.sampletid WHEN 140 THEN b.samplevalue ELSE 0 END)) as the_success,(SUM(CASE b.sampletid WHEN 141 THEN b.samplevalue ELSE 0 END)) as the_fail,(SUM(CASE b.sampletid WHEN 142 THEN b.samplevalue ELSE 0 END)) as the_size,(SUM(CASE b.sampletid WHEN 143 THEN b.samplevalue ELSE 0 END)) as the_time FROM t1 a, t2 b WHERE a.hmid = b.hmid AND a.volid = b.volid AND b.sampletime >= 'wrong-date-value' AND b.sampletime < 'wrong-date-value' AND b.sampletid IN (140, 141, 142, 143) GROUP BY a.gvid;
|
||||
gvid the_success the_fail the_size the_time
|
||||
Warnings:
|
||||
Warning 1292 Incorrect datetime value: 'wrong-date-value' for column 'sampletime' at row 1
|
||||
Warning 1292 Incorrect datetime value: 'wrong-date-value' for column 'sampletime' at row 1
|
||||
Warning 1292 Incorrect datetime value: 'wrong-date-value' for column 'sampletime' at row 0
|
||||
Warning 1292 Incorrect datetime value: 'wrong-date-value' for column 'sampletime' at row 0
|
||||
SELECT a.gvid, (SUM(CASE b.sampletid WHEN 140 THEN b.samplevalue ELSE 0 END)) as the_success,(SUM(CASE b.sampletid WHEN 141 THEN b.samplevalue ELSE 0 END)) as the_fail,(SUM(CASE b.sampletid WHEN 142 THEN b.samplevalue ELSE 0 END)) as the_size,(SUM(CASE b.sampletid WHEN 143 THEN b.samplevalue ELSE 0 END)) as the_time FROM t1 a, t2 b WHERE a.hmid = b.hmid AND a.volid = b.volid AND b.sampletime >= NULL AND b.sampletime < NULL AND b.sampletid IN (140, 141, 142, 143) GROUP BY a.gvid;
|
||||
gvid the_success the_fail the_size the_time
|
||||
DROP TABLE t1,t2;
|
||||
|
|
@ -4092,16 +4092,21 @@ str_to_date('2007-10-09','%Y-%m-%d') between '2007/10/01 00:00:00 GMT'
|
|||
and '2007/10/20 00:00:00 GMT'
|
||||
1
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect datetime value: '2007/10/01 00:00:00 GMT'
|
||||
Warning 1292 Truncated incorrect datetime value: '2007/10/20 00:00:00 GMT'
|
||||
Warning 1292 Truncated incorrect date value: '2007/10/01 00:00:00 GMT'
|
||||
Warning 1292 Truncated incorrect date value: '2007/10/20 00:00:00 GMT'
|
||||
select str_to_date('2007-10-09','%Y-%m-%d') > '2007/10/01 00:00:00 GMT-6';
|
||||
str_to_date('2007-10-09','%Y-%m-%d') > '2007/10/01 00:00:00 GMT-6'
|
||||
1
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect date value: '2007/10/01 00:00:00 GMT-6'
|
||||
select str_to_date('2007-10-09','%Y-%m-%d') <= '2007/10/20 00:00:00 GMT-6';
|
||||
str_to_date('2007-10-09','%Y-%m-%d') <= '2007/10/20 00:00:00 GMT-6'
|
||||
1
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect date value: '2007/10/20 00:00:00 GMT-6'
|
||||
select str_to_date('2007-10-09','%Y-%m-%d') <= '2007/10/2000:00:00 GMT-6';
|
||||
str_to_date('2007-10-09','%Y-%m-%d') <= '2007/10/2000:00:00 GMT-6'
|
||||
1
|
||||
0
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect date value: '2007/10/2000:00:00 GMT-6'
|
||||
select str_to_date('2007-10-01','%Y-%m-%d') = '2007-10-1 00:00:00 GMT-6';
|
||||
|
|
@ -4167,33 +4172,24 @@ str_to_date('2007-10-00','%Y-%m-%d') between '2007/09/01 00:00:00'
|
|||
set SQL_MODE=TRADITIONAL;
|
||||
select str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34';
|
||||
str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34'
|
||||
0
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect datetime value: '2007-10-00 12:34'
|
||||
1
|
||||
select str_to_date('2007-10-01 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34';
|
||||
str_to_date('2007-10-01 12:34','%Y-%m-%d %H:%i') = '2007-10-00 12:34'
|
||||
0
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect datetime value: '2007-10-00 12:34'
|
||||
select str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-01 12:34';
|
||||
str_to_date('2007-10-00 12:34','%Y-%m-%d %H:%i') = '2007-10-01 12:34'
|
||||
0
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect datetime value: '2007-10-00 12:34:00'
|
||||
select str_to_date('2007-10-00','%Y-%m-%d') between '2007/09/01'
|
||||
and '2007/10/20';
|
||||
str_to_date('2007-10-00','%Y-%m-%d') between '2007/09/01'
|
||||
and '2007/10/20'
|
||||
0
|
||||
Warnings:
|
||||
Warning 1292 Incorrect datetime value: '2007-10-00' for column '2007/09/01' at row 1
|
||||
Warning 1292 Incorrect datetime value: '2007-10-00' for column '2007/10/20' at row 1
|
||||
1
|
||||
set SQL_MODE=DEFAULT;
|
||||
select str_to_date('2007-10-00','%Y-%m-%d') between '' and '2007/10/20';
|
||||
str_to_date('2007-10-00','%Y-%m-%d') between '' and '2007/10/20'
|
||||
1
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect datetime value: ''
|
||||
Warning 1292 Truncated incorrect date value: ''
|
||||
select str_to_date('','%Y-%m-%d') between '2007/10/01' and '2007/10/20';
|
||||
str_to_date('','%Y-%m-%d') between '2007/10/01' and '2007/10/20'
|
||||
0
|
||||
|
|
@ -4220,18 +4216,27 @@ Warnings:
|
|||
Warning 1292 Truncated incorrect date value: '1'
|
||||
select str_to_date('','%Y-%m-%d') = '';
|
||||
str_to_date('','%Y-%m-%d') = ''
|
||||
0
|
||||
1
|
||||
Warnings:
|
||||
Warning 1292 Truncated incorrect date value: ''
|
||||
select str_to_date('1000-01-01','%Y-%m-%d') between '0000-00-00' and NULL;
|
||||
str_to_date('1000-01-01','%Y-%m-%d') between '0000-00-00' and NULL
|
||||
select str_to_date('2000-01-01','%Y-%m-%d') between '1000-01-01' and '2001-01-01';
|
||||
str_to_date('2000-01-01','%Y-%m-%d') between '1000-01-01' and '2001-01-01'
|
||||
1
|
||||
select str_to_date('2000-01-01','%Y-%m-%d') between '1000-01-01' and NULL;
|
||||
str_to_date('2000-01-01','%Y-%m-%d') between '1000-01-01' and NULL
|
||||
NULL
|
||||
select str_to_date('2000-01-01','%Y-%m-%d') between NULL and '2001-01-01';
|
||||
str_to_date('2000-01-01','%Y-%m-%d') between NULL and '2001-01-01'
|
||||
NULL
|
||||
select str_to_date('2000-01-01','%Y-%m-%d') between '2001-01-01' and NULL;
|
||||
str_to_date('2000-01-01','%Y-%m-%d') between '2001-01-01' and NULL
|
||||
0
|
||||
select str_to_date('1000-01-01','%Y-%m-%d') between NULL and '2000-00-00';
|
||||
str_to_date('1000-01-01','%Y-%m-%d') between NULL and '2000-00-00'
|
||||
0
|
||||
select str_to_date('1000-01-01','%Y-%m-%d') between NULL and NULL;
|
||||
str_to_date('1000-01-01','%Y-%m-%d') between NULL and NULL
|
||||
select str_to_date('2000-01-01','%Y-%m-%d') between NULL and '1000-01-01';
|
||||
str_to_date('2000-01-01','%Y-%m-%d') between NULL and '1000-01-01'
|
||||
0
|
||||
select str_to_date('2000-01-01','%Y-%m-%d') between NULL and NULL;
|
||||
str_to_date('2000-01-01','%Y-%m-%d') between NULL and NULL
|
||||
NULL
|
||||
CREATE TABLE t1 (c11 INT UNSIGNED NOT NULL AUTO_INCREMENT PRIMARY KEY);
|
||||
CREATE TABLE t2 (c21 INT UNSIGNED NOT NULL,
|
||||
c22 INT DEFAULT NULL,
|
||||
|
|
@ -4606,8 +4611,8 @@ a
|
|||
4
|
||||
5
|
||||
DROP TABLE t1;
|
||||
CREATE TABLE A (date_key date);
|
||||
CREATE TABLE C (
|
||||
CREATE TABLE t1 (date_key date);
|
||||
CREATE TABLE t2 (
|
||||
pk int,
|
||||
int_nokey int,
|
||||
int_key int,
|
||||
|
|
@ -4615,29 +4620,27 @@ date_key date NOT NULL,
|
|||
date_nokey date,
|
||||
varchar_key varchar(1)
|
||||
);
|
||||
INSERT INTO C VALUES
|
||||
INSERT INTO t2 VALUES
|
||||
(1,1,1,'0000-00-00',NULL,NULL),
|
||||
(1,1,1,'0000-00-00',NULL,NULL);
|
||||
SELECT 1 FROM C WHERE pk > ANY (SELECT 1 FROM C);
|
||||
SELECT 1 FROM t2 WHERE pk > ANY (SELECT 1 FROM t2);
|
||||
1
|
||||
SELECT COUNT(DISTINCT 1) FROM C
|
||||
WHERE date_key = (SELECT 1 FROM A WHERE C.date_key IS NULL) GROUP BY pk;
|
||||
SELECT COUNT(DISTINCT 1) FROM t2
|
||||
WHERE date_key = (SELECT 1 FROM t1 WHERE t2.date_key IS NULL) GROUP BY pk;
|
||||
COUNT(DISTINCT 1)
|
||||
SELECT date_nokey FROM C
|
||||
WHERE int_key IN (SELECT 1 FROM A)
|
||||
SELECT date_nokey FROM t2
|
||||
WHERE int_key IN (SELECT 1 FROM t1)
|
||||
HAVING date_nokey = '10:41:7'
|
||||
ORDER BY date_key;
|
||||
date_nokey
|
||||
Warnings:
|
||||
Warning 1292 Incorrect date value: '10:41:7' for column 'date_nokey' at row 1
|
||||
DROP TABLE A,C;
|
||||
DROP TABLE t1,t2;
|
||||
CREATE TABLE t1 (a INT NOT NULL, b INT);
|
||||
INSERT INTO t1 VALUES (1, 1);
|
||||
EXPLAIN EXTENDED SELECT * FROM t1 WHERE (a=a AND a=a) OR b > 2;
|
||||
id select_type table type possible_keys key key_len ref rows filtered Extra
|
||||
1 SIMPLE t1 system NULL NULL NULL NULL 1 100.00
|
||||
Warnings:
|
||||
Note 1003 select '1' AS `a`,'1' AS `b` from `test`.`t1` where 1
|
||||
Note 1003 select 1 AS `a`,1 AS `b` from `test`.`t1` where 1
|
||||
SELECT * FROM t1 WHERE (a=a AND a=a) OR b > 2;
|
||||
a b
|
||||
1 1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue