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

Наткнулся на трудноуловимую ошибку (свою), но поведение Тарантула удивило. Создаём спейс,

создаём индекс на нём (кстати, попробуйте заметить, где ошибка):

tarantool> sp = box.schema.create_space('some_space', {if_not_exists = true})
---
...

tarantool> sp:create_index('ci', {parts = {2, 'string', collation='unicode_ci'}, if_not_exists = true})
---
- unique: true
parts:
- type: string
is_nullable: false
fieldno: 2
id: 0
space_id: 529
name: ci
type: TREE
...

Заносим в спейс какие-то данные, потом выбираем их. Вроде работает:

tarantool> sp.index.ci:select({'kaboom'})
---
- - [1, 'kaboom']
...

Но не совсем так, как хотелось:

tarantool> sp.index.ci:select({'KAbOoM'})
---
- []
...

Исправляем ошибку, теперь работает:

tarantool> sp.index.ci:alter({parts={{2, 'string', collation='unicode_ci'}}})
---
...

tarantool> sp.index.ci:select({'kAbOoM'})
---
- - [1, 'kaboom']
...

Вопрос: почему create_index позволяет вызвать себя с параметром, не соответствующим формату и при этом не ругается и игнорит collation? Это бага или так специально сделано? В аналогичной ситуации space:update({1},{'=',2,'kaboom!'}) например говорит error: Illegal parameters, update operation must be an array {op,..}.

1 ответов

13 просмотров

Совметимость со старым форматом аргумента: {num, type, num, type, ...}. Но на нечисловые ключи можно было б проверить, я считаю. Достойно тикета.

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта