blob ...

Sergey ShishkinSergey Shishkin
1 min read

“Picolisp не хранит Blob-ы в файлах базы данных, а в отдельных файлах, на которые есть ссылки в базе данных. Обычно это намного эффективнее, чем втискивать такие Blob-ы в размер блока базы данных. К таким файлам можно легко (и обычно эффективно) получить доступ, но они не кэшируются в кэше приложения/базы данных. Это может быть преимуществом или недостатком в зависимости от варианта использования. Blob-ы используются для хранения файлов, которые не сильно обрабатываются приложением, а просто импортируются (или генерируются) и экспортируются пользователю. В таких случаях этот механизм хранения Blob-ов явно является преимуществом. В других сценариях такие Blob-ы могут быть таблицами битов, используемыми в приложении, которые должны кэшироваться. Хотя в PicoLisp такие таблицы битов могут храниться как +Number, нет необходимости использовать +Blob для этого.”

https://picolisp.com/wiki/?pilvsorm

*Blob - глобальная переменная, содержащая путь к каталогу BLOB-объектов базы данных.

+Blob - класс для отношений BLOB-объектов, подкласс +relation. Объекты этого класса поддерживают BLOB-объекты как заглушки в объектах базы данных, указывающие на фактические файлы для произвольных (часто двоичных) данных. Сами файлы находятся ниже пути, указанного переменной *Blob.

blob - возвращает имя файла BLOB-объекта для var в obj

: (show (db 'nr '+Item 1))
{B1} (+Item)
   jpg
   pr 29900
   inv 100
   sup {C1}
   nm "Main Part"
   nr 1
-> {B1}
: (blob '{B1} 'jpg)
-> "blob/app/3/-/1.jpg"

blob! - сохраняет содержимое файла в BLOB-объекте.

https://picolisp.tiddlyhost.com/#blob

0
Subscribe to my newsletter

Read articles from Sergey Shishkin directly inside your inbox. Subscribe to the newsletter, and don't miss out.

Written by

Sergey Shishkin
Sergey Shishkin

Всегда чему-то учусь!