Tarantool CE/EE Documentation portal logo
Помощь
Обновлена 15 сентября 2026 г. в 08:55

Декодирование бинарных объектов

Параметр: binary_data_decoding

Начиная с версии 3.0 в Tarantool доступен модуль varbinary для работы с бинарными объектами произвольной длины. С помощью параметра совместимости binary_data_decoding можно задать формат, в котором значения полей varbinary возвращаются для обработки в Lua: обычные строки или объекты varbinary.

Старое и новое поведение

Новое поведение: значения полей varbinary возвращаются как объекты varbinary.

tarantool> compat.binary_data_decoding = 'new'---...tarantool> varbinary.is(msgpack.decode('\xC4\x02\xFF\xFE'))---- true...

Старое поведение: значения полей varbinary возвращаются как обычные строки.

tarantool> compat.binary_data_decoding = 'old'---...tarantool> varbinary.is(msgpack.decode('\xC4\x02\xFF\xFE'))---- false...tarantool> varbinary.is(yaml.decode('!!binary //4='))---- false...

Известные проблемы совместимости

На данный момент несовместимых модулей не обнаружено.

Обнаружение проблем в кодовой базе

Методы работы со строками, такие как string.sub() или string.match(), не определены для объектов varbinary. Поэтому, если такие методы применяются к результатам декодирования бинарных данных из MsgPack или YAML, необходимо явно преобразовать их в строки с помощью метода tostring().