Size: a a a

ClickHouse не тормозит

2016 November 11

KB

Kirill B in ClickHouse не тормозит
источник

VS

Vladislav 👻 Shishkov in ClickHouse не тормозит
Ооо, спасибо, протестирую
источник

KB

Kirill B in ClickHouse не тормозит
Еще такая вот есть http://www.cubesviewer.com/studio.html
источник
2016 November 12

I

Igor in ClickHouse не тормозит
Alexey Milovidov
Задумано, чтобы хранить хэши, UUID-ы, IPv6 и т. п. Там брать длину вообще бессмысленно.
да, но ведь вероятность того, что UUID будет - осознанно - равен "00000000-0000-0000-0000-000000000000", очень мала.
такое может случиться, например, при LEFT JOIN'е, если строка с UUIDом не сматчилась из второй таблицы.
источник

I

Igor in ClickHouse не тормозит
как раз в подобных случаях было бы удобно проверять на "пустоту", хоть по факту строка и заполнена NUL-байтами
источник

AM

Alexey Milovidov in ClickHouse не тормозит
Igor
да, но ведь вероятность того, что UUID будет - осознанно - равен "00000000-0000-0000-0000-000000000000", очень мала.
такое может случиться, например, при LEFT JOIN'е, если строка с UUIDом не сматчилась из второй таблицы.
Согласен, так и есть. Но рассогласованность с функцией length беспокоит.
источник

AM

Alexey Milovidov in ClickHouse не тормозит
В качестве компромиссного варианта можно предусмотреть функцию emptyOrZero.
источник

DP

Darafei Praliaskouski in ClickHouse не тормозит
жуть какая
а потом EmptyOrZeroOrNull?
источник

AM

Alexey Milovidov in ClickHouse не тормозит
Зачем. Если будешь пользоваться NULL-ами, тебе будет специальный синтаксис IS NULL, IS NOT NULL и соответствующие функции. И конечно, это никак не связано и не должно быть связано с пустыми строками и нулями.
источник

DP

Darafei Praliaskouski in ClickHouse не тормозит
окей, а length() - это размер контейнера в байтах или семантическая длина данных?
источник

AM

Alexey Milovidov in ClickHouse не тормозит
Для строк - в байтах, для массивов - в элементах массива.
источник

DP

Darafei Praliaskouski in ClickHouse не тормозит
понятно, тогда тут подмена понятий length / octet_length aka sizeof
источник

AM

Alexey Milovidov in ClickHouse не тормозит
источник

DP

Darafei Praliaskouski in ClickHouse не тормозит
задокументировать-то можно что угодно :)
источник

AM

Alexey Milovidov in ClickHouse не тормозит
Есть смысл, почему сделано именно так.
источник

DP

Darafei Praliaskouski in ClickHouse не тормозит
смысл тоже понятен, sizeof() дёшев, итерирование по utf дорогое
источник

DP

Darafei Praliaskouski in ClickHouse не тормозит
вопрос в именовании и оглядке на другие системы
источник

DP

Darafei Praliaskouski in ClickHouse не тормозит
если определить length() как длину нулл-терминированной строки в байтах, а octet_length - как длину объекта в байтах, то length(fixedString) = 0 <=> empty(fixedString) <=> fixedString = \00000000000, например
можно подумать, как в это вписать ещё и lengthUTF8 по-человечески
источник
2016 November 13

I

Igor in ClickHouse не тормозит
Alexey Milovidov
Согласен, так и есть. Но рассогласованность с функцией length беспокоит.
имхо, length для fixed string можно учитывать так же, как работает toStringCutToZero, т.е. strip'ать все NUL-байты справа и считать оставшуюся длину. но я так, диванный аналитик.
источник

DP

Darafei Praliaskouski in ClickHouse не тормозит
я смог сформулировать, что неожиданно в этой системе для меня
тут функции - это по названиям императивные действия, а не декларативные свойства
источник