SPI_keepplan
SPI_keepplan — сохранить подготовленный оператор
Синтаксис
int SPI_keepplan(SPIPlanPtr plan
)
Описание
SPI_keepplan
закрепляет переданный оператор (подготовленный функцией SPI_prepare
), чтобы он не был ликвидирован функцией SPI_finish
или диспетчером транзакций. Это даёт возможность повторно использовать подготовленные операторы при последующих вызовах вашей функции на C в текущем сеансе.
Аргументы
SPIPlanPtr
plan
подготовленный оператор, который нужно сохранить
Возвращаемое значение
0 в случае успеха; SPI_ERROR_ARGUMENT
, если plan
неверный или NULL
Примечания
Переданный оператор перемещается в постоянное хранилище путём смены указателя (копировать данные не требуется). Если позже вы захотите удалить его, выполните для него SPI_freeplan
.
12.11. Limitations
The current limitations of Postgres Pro's text search features are:
The length of each lexeme must be less than 2K bytes
The length of a
tsvector
(lexemes + positions) must be less than 1 megabyteThe number of lexemes must be less than 264
Position values in
tsvector
must be greater than 0 and no more than 16,383The match distance in a
<
(FOLLOWED BY)N
>tsquery
operator cannot be more than 16,384No more than 256 positions per lexeme
The number of nodes (lexemes + operators) in a
tsquery
must be less than 32,768
For comparison, the PostgreSQL 8.1 documentation contained 10,441 unique words, a total of 335,420 words, and the most frequent word “postgresql” was mentioned 6,127 times in 655 documents.
Another example — the PostgreSQL mailing list archives contained 910,989 unique words with 57,491,343 lexemes in 461,020 messages.