[PATCH] Add missing type conversion functions for PL/Python

Поиск
Список
Период
Сортировка
От Haozhou Wang
Тема [PATCH] Add missing type conversion functions for PL/Python
Дата
Msg-id CAL_NLpKXMwv2ewZbtvUzujZxMgUq++6TgNTFRnY4+Tcsx7+1GQ@mail.gmail.com
обсуждение исходный текст
Ответы Re: [PATCH] Add missing type conversion functions for PL/Python  (Anthony Bykov <a.bykov@postgrespro.ru>)
Список pgsql-hackers
Hi All,

PL/Python already has different type conversion functions to
convert PostgreSQL datum to Python object. However, the conversion
functions from Python object to PostgreSQL datum only has Boolean,
Bytea and String functions. 

In this patch, we add rest of Integer and Float related datatype conversion functions
and can increase the performance of data conversion greatly especially
when returning a large array.

We did a quick test about the performance of returning array in PL/Python:

The following UDF is used for test:

```
CREATE OR REPLACE FUNCTION pyoutfloat8(num int) RETURNS float8[] AS $$ return [x/3.0 for x in range(num)] 
$$ LANGUAGE plpythonu;
```

The test command is 

```
select count(pyoutfloat8(n));
```

The count is used for avoid large output, where n is the number of element in returned array, and the size is from 1.5k to15m. 

Size of Array      1.5k           |            15k         |           150k        |           1.5m        |         15m       |

Origin                 2.324ms     |     19.834ms      |     194.991ms    |     1927.28ms    |   19982.1ms  |  

With this patch   1.168ms      |      3.052ms       |      21.888ms     |     213.39ms      |    2138.5ms   |

All test for both PG and PL/Python are passed.

Thanks very much.


--
Regards,
Haozhou
Вложения

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

Предыдущее
От: Amit Kapila
Дата:
Сообщение: Re: Wait for parallel workers to attach
Следующее
От: Kyotaro HORIGUCHI
Дата:
Сообщение: Re: [HACKERS] [PATCH] Improve geometric types