plpython SPI cursors

Поиск
Список
Период
Сортировка
От Jan Urbański
Тема plpython SPI cursors
Дата
Msg-id 4E9A1738.6090108@wulczer.org
обсуждение исходный текст
Ответы Re: plpython SPI cursors
Список pgsql-hackers
Hi,

attached is a patch implementing the usage of SPI cursors in PL/Python.
Currently when trying to process a large table in PL/Python you have
slurp it all into memory (that's what plpy.execute does).

This patch allows reading the result set in smaller chunks, using a SPI
cursor behind the scenes.

Example usage:

cursor = plpy.cursor("select a, b from hugetable")
for row in cursor:
    plpy.info("a is %s and b is %s" % (row['a'], row['b']))

The patch itself is simple, but there's a lot of boilerplate dedicated
to opening a subtransaction and handling prepared plans. I'd like to do
some refactoring of they way PL/Python uses SPI to reduce the amount of
boilerplate needed, but that'll come as a separate patch (just before
the patch to split plpython.c in smaller chunks).

This feature has been sponsored by Nomao.

Cheers,
Jan

PS: I already added it to the November CF.

J

Вложения

В списке pgsql-hackers по дате отправления:

Предыдущее
От: Jeff Janes
Дата:
Сообщение: Re: COUNT(*) and index-only scans
Следующее
От: Chris Redekop
Дата:
Сообщение: Re: Hot Backup with rsync fails at pg_clog if under load