pool ...

Sergey ShishkinSergey Shishkin
1 min read

pool - открывает файл sym1 как файл базы данных в режиме чтения/записи. Если файл не существует, он создается. Текущая открытая база данных закрывается. lst — это список масштабных коэффициентов размера блока (т. е. чисел), по умолчанию (2) (для одного файла с размером блока 256 байт). Если задан lst, для каждого элемента открывается отдельный файл базы данных. Если sym2 не равен NIL, он открывается в режиме добавления как асинхронный журнал репликации. Если sym3 не равен NIL, он открывается для чтения и добавления, чтобы использоваться как синхронный журнал транзакций во время коммитов. Вызов (pool) без аргументов просто закрывает текущую базу данных.

(pool ['sym1 ['lst] ['sym2] ['sym3]]) -> T

pool2 - временное переключение на другую базу данных, указанную sym. Эта база данных должна быть многофайловой базой данных с точно такой же структурой *Dbs, как и текущая открытая. Текущая база данных не закрывается — ввод-вывод просто перенаправляется в новую. Все файлы открываются до запуска prg и закрываются после этого. Возвращается результат prg. Журнал репликации или журнал транзакций не записывается. Кроме того, в куче могут остаться кэшированные объекты текущей БД, поэтому может потребоваться явный вызов отката rollback.

(pool2 'sym . prg) -> any

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

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

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