Data Type Mapping
- Function arguments are converted from their PostgreSQL type to a
- corresponding Python type:
+ When a PL/Python function is called, its arguments are converted from
+ their PostgreSQL data type to a corresponding Python type:
+
Otherwise,
decimal.Decimal from the standard library will be
used. cdecimal is significantly faster
- than decimal. In Python 3.3,
+ than decimal. In Python 3.3 and up,
however, cdecimal has been integrated into the
standard library under the name decimal, so there is
no longer any difference.
- Function return values are converted to the declared PostgreSQL
- return data type as follows:
+ When a PL/Python function returns, its return value is converted to the
+ function's declared PostgreSQL return data type as follows:
+
When the PostgreSQL return type is bytea, the
return value will be converted to a string (Python 2) or bytes
(Python 3) using the respective Python built-ins, with the
- result being converted bytea.
+ result being converted to bytea.
- For all other PostgreSQL return types, the returned Python
- value is converted to a string using the Python
- built-in str, and the result is passed to the
- input function of the PostgreSQL data type.
+ For all other PostgreSQL return types, the return value is converted
+ to a string using the Python built-in str, and the
+ result is passed to the input function of the PostgreSQL data type.
+ (If the Python value is a float>, it is converted using
+ the repr> built-in instead of str, to
+ avoid loss of precision.)