1
0
mirror of https://github.com/mariadb-corporation/mariadb-columnstore-engine.git synced 2025-07-29 08:21:15 +03:00

MCOL-4749 mcs247_from_unixtime_funtion fails if local time zone is not GMT

This commit is contained in:
Alexander Barkov
2021-06-03 12:56:19 +04:00
committed by mariadb-RomanNavrotskiy
parent 107e417715
commit a04ea450cd
3 changed files with 127 additions and 0 deletions

View File

@ -0,0 +1,49 @@
DROP DATABASE IF EXISTS mcs247_db2;
CREATE DATABASE mcs247_db2;
USE mcs247_db2;
CREATE TABLE t1
(
t1_INT INT,
t1_DECIMAL DECIMAL(12,5),
t1_TEXT TEXT,
t1_DATE DATE,
t1_TIME TIME
)ENGINE=Columnstore;
INSERT INTO t1 VALUES(103, 1234.5699, repeat('o', 5), '1997-12-12', '22:12:02');
INSERT INTO t1 VALUES(-7299, 111.99, repeat('p', 5), '2001-1-1', '23:59:59');
INSERT INTO t1 VALUES(9913, 98765.4321, repeat('q', 5), '09-12-11', '01:08:59');
SELECT FROM_UNIXTIME(0) FROM t1 LIMIT 1;
FROM_UNIXTIME(0)
EXPECTED_DATETIME_0
SELECT FROM_UNIXTIME(-1) FROM t1 LIMIT 1;
FROM_UNIXTIME(-1)
NULL
SELECT FROM_UNIXTIME(1) FROM t1 LIMIT 1;
FROM_UNIXTIME(1)
EXPECTED_DATETIME_1
SELECT FROM_UNIXTIME(1547432997) FROM t1 LIMIT 1;
FROM_UNIXTIME(1547432997)
EXPECTED_DATETIME_1547432997
SELECT FROM_UNIXTIME('1547432997') FROM t1 LIMIT 1;
FROM_UNIXTIME('1547432997')
EXPECTED_DATETIME_1547432997.000000
SELECT FROM_UNIXTIME(1547432997)+0 FROM t1 LIMIT 1;
FROM_UNIXTIME(1547432997)+0
EXPECTED_DATETIME_1547432997_NUM
SELECT FROM_UNIXTIME(1547432997, '%Y %D %M %h:%i:%s %x') FROM t1 LIMIT 1;
FROM_UNIXTIME(1547432997, '%Y %D %M %h:%i:%s %x')
EXPECTED_DATETIME_1547432997_NUM_FMT0
SELECT FROM_UNIXTIME(2047430881)-8101 FROM t1 LIMIT 1;
FROM_UNIXTIME(2047430881)-8101
EXPECTED_DATETIME_1547432997_MINUS_8101
SELECT t1_INT, FROM_UNIXTIME(t1_INT) FROM t1 ORDER BY 1;
t1_INT FROM_UNIXTIME(t1_INT)
-7299 NULL
103 EXPECTED_DATETIME_103
9913 EXPECTED_DATETIME_9913
SELECT t1_DECIMAL, FROM_UNIXTIME(t1_DECIMAL) FROM t1 ORDER BY 1;
t1_DECIMAL FROM_UNIXTIME(t1_DECIMAL)
111.99000 EXPECTED_DATETIME_111.99000
1234.56990 EXPECTED_DATETIME_1234.56990
98765.43210 EXPECTED_DATETIME_98765.43210
DROP DATABASE mcs247_db2;

View File

@ -4,6 +4,12 @@
#
-- source ../include/have_columnstore.inc
if (!`SELECT from_unixtime(3600*24)='1970-01-02 00:00:00'`)
{
skip Require GMT time zone;
}
--disable_warnings
DROP DATABASE IF EXISTS mcs247_db;
--enable_warnings

View File

@ -0,0 +1,72 @@
#
# Test FROM_UNIXTIME function in the machine time zone independent way.
#
-- source ../include/have_columnstore.inc
#
# Get reference values from MariaDB
#
let $dt_ts0=`SELECT FROM_UNIXTIME(0)`;
let $dt_ts1=`SELECT FROM_UNIXTIME(1)`;
let $dt_ts103=`SELECT FROM_UNIXTIME(103)`;
let $dt_ts111=`SELECT FROM_UNIXTIME(111)`;
let $dt_ts1234=`SELECT FROM_UNIXTIME(1234)`;
let $dt_ts9913=`SELECT FROM_UNIXTIME(9913)`;
let $dt_ts98765=`SELECT FROM_UNIXTIME(98765)`;
let $dt_ts1547432997=`SELECT FROM_UNIXTIME(1547432997)`;
let $dt_ts1547432997_num=`SELECT FROM_UNIXTIME(1547432997)+0`;
let $dt_ts1547432997_fmt0=`SELECT FROM_UNIXTIME(1547432997, '%Y %D %M %h:%i:%s %x')`;
let $dt_ts1547432997_minus_8101=`SELECT FROM_UNIXTIME(2047430881)-8101`;
--disable_warnings
DROP DATABASE IF EXISTS mcs247_db2;
--enable_warnings
CREATE DATABASE mcs247_db2;
USE mcs247_db2;
CREATE TABLE t1
(
t1_INT INT,
t1_DECIMAL DECIMAL(12,5),
t1_TEXT TEXT,
t1_DATE DATE,
t1_TIME TIME
)ENGINE=Columnstore;
INSERT INTO t1 VALUES(103, 1234.5699, repeat('o', 5), '1997-12-12', '22:12:02');
INSERT INTO t1 VALUES(-7299, 111.99, repeat('p', 5), '2001-1-1', '23:59:59');
INSERT INTO t1 VALUES(9913, 98765.4321, repeat('q', 5), '09-12-11', '01:08:59');
--replace_result $dt_ts0 EXPECTED_DATETIME_0
SELECT FROM_UNIXTIME(0) FROM t1 LIMIT 1;
SELECT FROM_UNIXTIME(-1) FROM t1 LIMIT 1;
--replace_result $dt_ts1 EXPECTED_DATETIME_1
SELECT FROM_UNIXTIME(1) FROM t1 LIMIT 1;
--replace_result $dt_ts1547432997 EXPECTED_DATETIME_1547432997
SELECT FROM_UNIXTIME(1547432997) FROM t1 LIMIT 1;
--replace_result $dt_ts1547432997 EXPECTED_DATETIME_1547432997
SELECT FROM_UNIXTIME('1547432997') FROM t1 LIMIT 1;
--replace_result $dt_ts1547432997_num EXPECTED_DATETIME_1547432997_NUM
SELECT FROM_UNIXTIME(1547432997)+0 FROM t1 LIMIT 1;
--replace_result $dt_ts1547432997_fmt0 EXPECTED_DATETIME_1547432997_NUM_FMT0
SELECT FROM_UNIXTIME(1547432997, '%Y %D %M %h:%i:%s %x') FROM t1 LIMIT 1;
--replace_result $dt_ts1547432997_minus_8101 EXPECTED_DATETIME_1547432997_MINUS_8101
SELECT FROM_UNIXTIME(2047430881)-8101 FROM t1 LIMIT 1;
--replace_result $dt_ts103 EXPECTED_DATETIME_103 $dt_ts9913 EXPECTED_DATETIME_9913
SELECT t1_INT, FROM_UNIXTIME(t1_INT) FROM t1 ORDER BY 1;
--replace_result $dt_ts111 EXPECTED_DATETIME_111 $dt_ts1234 EXPECTED_DATETIME_1234 $dt_ts98765 EXPECTED_DATETIME_98765
SELECT t1_DECIMAL, FROM_UNIXTIME(t1_DECIMAL) FROM t1 ORDER BY 1;
# Clean UP
DROP DATABASE mcs247_db2;