184 похожих чатов

Помогите, пожалуйста. Обновляю КХ с 19.17 на 20.8 Были таблицы CREATE TABLE

source
(
a Int32,
b Int32,
c Nullable(Int32)
)
ENGINE = MergeTree
ORDER BY a

и

CREATE TABLE destination
(
a UInt64,
st AggregateFunction(argMax, Int32, Int32)
)
ENGINE = AggregatingMergeTree
ORDER BY a

и МВ от первой ко второй


CREATE MATERIALIZED VIEW mv TO destination AS
SELECT
a,
argMaxState(c, b) AS st
FROM source
GROUP BY a


На 19.17 вставка в source работала, но на 20.8 перестала:

Conversion from AggregateFunction(argMax, Nullable(Int32), Int32) to AggregateFunction(argMax, Int32, Int32) is not supported: while converting source column st to destination column st: while pushing to view default.mv.


чтобы поправить это попробовал заменить mv на следующую

CREATE MATERIALIZED VIEW mv TO destination AS
SELECT
a,
argMaxState(coalesce(c, 0), b) AS st
FROM source
GROUP BY a


Теперь если сделать такую вставку в source:

insert into source values (1,1,1), (1,2,null)


то в destination логично попадают следующая строка:

SELECT
a,
argMaxMerge(st)
FROM destination
GROUP BY a


┌─a─┬─argMaxMerge(st)─┐
│ 1 │ 0 │
└───┴─────────────────┘



Однако старая схема в 19.17 дала бы результат

┌─a─┬─argMaxMerge(st)─┐
│ 1 │ 1 │
└───┴─────────────────┘


Я нисколько не утверждаю, что поведение в какой-то из версий является багом, просто я что-то не придумал как мне написать Materialized View , чтобы точно сохранить поведение старой схемы в 19.17 ?

2 ответов

17 просмотров

>argMaxState(c, a) AS st >argMaxState(coalesce(c, 0), b) AS st а почему a на b поменялось?

Andrei-K Автор вопроса
【D】【J】
>argMaxState(c, a) AS st >argMaxState(coalesce(c,...

Должно было быть изначально b. Прошу прощения, исправил

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта