From 77eedd1756cda9000b2a9f9cd1cc8d05cd1ad9d9 Mon Sep 17 00:00:00 2001 From: Leonid Fedorov <79837786+mariadb-LeonidFedorov@users.noreply.github.com> Date: Fri, 2 Jun 2023 18:06:58 +0300 Subject: [PATCH] MCOL-5503: Fix broken quarter (#2855) * Fix broken quarter function --- mysql-test/columnstore/basic/r/mcs236_extract_function.result | 2 +- utils/funcexp/func_extract.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mysql-test/columnstore/basic/r/mcs236_extract_function.result b/mysql-test/columnstore/basic/r/mcs236_extract_function.result index 309f24d55..f8f8fe75b 100644 --- a/mysql-test/columnstore/basic/r/mcs236_extract_function.result +++ b/mysql-test/columnstore/basic/r/mcs236_extract_function.result @@ -173,7 +173,7 @@ t1_dt EXTRACT(QUARTER FROM t1_dt) NULL NULL 1561-12-31 12:34:56 4 2017-02-01 12:12:12 1 -2020-11-11 12:12:12 3 +2020-11-11 12:12:12 4 SELECT t1_dt, EXTRACT(YEAR FROM t1_dt) FROM t1 ORDER BY 1; t1_dt EXTRACT(YEAR FROM t1_dt) NULL NULL diff --git a/utils/funcexp/func_extract.cpp b/utils/funcexp/func_extract.cpp index 8c92e2520..14cb62051 100644 --- a/utils/funcexp/func_extract.cpp +++ b/utils/funcexp/func_extract.cpp @@ -75,7 +75,7 @@ long long dateGet(uint64_t time, IntervalColumn::interval_type unit, bool dateTy case IntervalColumn::INTERVAL_MICROSECOND: return msec; - case IntervalColumn::INTERVAL_QUARTER: return month / 4 + 1; + case IntervalColumn::INTERVAL_QUARTER: return (month - 1) / 3 + 1; case IntervalColumn::INTERVAL_WEEK: return helpers::calc_mysql_week(year, month, day, 0);