This commit is contained in:
Nikita Mikhaylov 2020-08-28 18:15:15 +03:00
parent e4fc48254a
commit 9d1cb7e22e
3 changed files with 73 additions and 1 deletions

View File

@ -352,7 +352,7 @@ void ColumnLowCardinality::updatePermutation(bool reverse, size_t limit, int nan
auto new_first = first;
for (auto j = first + 1; j < last; ++j)
{
if (compareAt(new_first, j, *this, nan_direction_hint) != 0)
if (compareAt(res[new_first], res[j], *this, nan_direction_hint) != 0)
{
if (j - new_first > 1)
new_ranges.emplace_back(new_first, j);

View File

@ -0,0 +1,31 @@
green 2020-08-21 18:46:08
green 2020-08-21 18:46:07
green 2020-08-21 18:46:06
red 2020-08-21 18:46:08
red 2020-08-21 18:46:07
red 2020-08-21 18:46:06
green 2020-08-21 18:46:08.000
green 2020-08-21 18:46:07.000
green 2020-08-21 18:46:06.000
red 2020-08-21 18:46:08.000
red 2020-08-21 18:46:07.000
red 2020-08-21 18:46:06.000
------cast to String----
green 2020-08-21 18:46:08
green 2020-08-21 18:46:07
green 2020-08-21 18:46:06
red 2020-08-21 18:46:08
red 2020-08-21 18:46:07
red 2020-08-21 18:46:06
green 2020-08-21 18:46:08.000
green 2020-08-21 18:46:07.000
green 2020-08-21 18:46:06.000
red 2020-08-21 18:46:08.000
red 2020-08-21 18:46:07.000
red 2020-08-21 18:46:06.000

View File

@ -0,0 +1,41 @@
drop table if exists order_test1;
create table order_test1
(
timestamp DateTime64(3),
color LowCardinality(String)
) engine = MergeTree() ORDER BY tuple();
insert into order_test1 values ('2020-08-21 18:46:08.000','red')('2020-08-21 18:46:08.000','green');
insert into order_test1 values ('2020-08-21 18:46:07.000','red')('2020-08-21 18:46:07.000','green');
insert into order_test1 values ('2020-08-21 18:46:06.000','red')('2020-08-21 18:46:06.000','green');
SELECT color, toDateTime(timestamp) AS second
FROM order_test1
GROUP BY color, second
ORDER BY color ASC, second DESC;
select '';
select '';
SELECT color, timestamp
FROM order_test1
GROUP BY color, timestamp
ORDER BY color ASC, timestamp DESC;
select '';
select '------cast to String----';
select '';
SELECT cast(color,'String') color, toDateTime(timestamp) AS second
FROM order_test1
GROUP BY color, second
ORDER BY color ASC, second DESC;
select '';
select '';
SELECT cast(color,'String') color, timestamp
FROM order_test1
GROUP BY color, timestamp
ORDER BY color ASC, timestamp DESC;