Skip to content

Commit 9cc51da

Browse files
authored
[cherry-pick](branch-30)fix date_floor function return wrong result (#41948) (#43588)
cherry-pick from master (#41948)
1 parent cd2d79c commit 9cc51da

File tree

3 files changed

+10
-3
lines changed

3 files changed

+10
-3
lines changed

be/src/vec/functions/function_datetime_floor_ceil.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
#include <boost/iterator/iterator_facade.hpp>
2222
#include <cstddef>
2323
#include <cstdint>
24+
#include <cstring>
2425
#include <memory>
2526
#include <type_traits>
2627
#include <utility>
@@ -293,7 +294,7 @@ struct FloorCeilImpl {
293294
PaddedPODArray<NativeType>& res, NullMap& null_map) {
294295
// time_round(datetime,const(period))
295296
if (period < 1) {
296-
null_map.resize_fill(dates.size(), true);
297+
memset(null_map.data(), 1, sizeof(UInt8) * dates.size());
297298
return;
298299
}
299300
for (int i = 0; i < dates.size(); ++i) {
@@ -337,7 +338,7 @@ struct FloorCeilImpl {
337338
NativeType origin_date, PaddedPODArray<NativeType>& res,
338339
NullMap& null_map) {
339340
if (period < 1) {
340-
null_map.resize_fill(dates.size(), true);
341+
memset(null_map.data(), 1, sizeof(UInt8) * dates.size());
341342
return;
342343
}
343344
switch (period) {
@@ -424,7 +425,7 @@ struct FloorCeilImpl {
424425
const PaddedPODArray<NativeType>& origin_dates,
425426
PaddedPODArray<NativeType>& res, NullMap& null_map) {
426427
if (period < 1) {
427-
null_map.resize_fill(dates.size(), true);
428+
memset(null_map.data(), 1, sizeof(UInt8) * dates.size());
428429
return;
429430
}
430431
for (int i = 0; i < dates.size(); ++i) {

regression-test/data/correctness_p0/test_time_round.out

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,3 +123,8 @@
123123
2020-02-02T11:45:14
124124
2020-02-02T11:45:14
125125

126+
-- !select_1 --
127+
2020-02-02T13:09:20 \N
128+
2020-02-02T13:09:20 \N
129+
2020-02-02T13:09:20 \N
130+

regression-test/suites/correctness_p0/test_time_round.groovy

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -89,4 +89,5 @@ suite("test_time_round") {
8989
qt_select "select hour_floor(dt,2,o) from dbround order by id;"
9090
qt_select "select hour_floor(dt,p,'1919-08-10 11:45:14') from dbround order by id;"
9191
qt_select "select hour_floor(dt,2,'1919-08-10 11:45:14') from dbround order by id;"
92+
qt_select_1 "select dt,hour_floor(dt,0) from dbround order by id;"
9293
}

0 commit comments

Comments
 (0)