Декодирование бинарных объектов
Параметр: 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().