mirror of
https://github.com/postgres/postgres.git
synced 2025-07-02 09:02:37 +03:00
Prevent the injection of invalidly encoded strings by PL/Python into PostgreSQL
with a few strategically placed pg_verifymbstr calls.
This commit is contained in:
@ -1,4 +1,4 @@
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/plpython.sgml,v 1.45 2010/03/13 20:55:05 petere Exp $ -->
|
||||
<!-- $PostgreSQL: pgsql/doc/src/sgml/plpython.sgml,v 1.46 2010/03/18 19:43:03 petere Exp $ -->
|
||||
|
||||
<chapter id="plpython">
|
||||
<title>PL/Python - Python Procedural Language</title>
|
||||
@ -340,6 +340,17 @@ $$ LANGUAGE plpythonu;
|
||||
builtin <literal>str</literal>, and the result is passed to the
|
||||
input function of the PostgreSQL data type.
|
||||
</para>
|
||||
|
||||
<para>
|
||||
Strings in Python 2 are required to be in the PostgreSQL server
|
||||
encoding when they are passed to PostgreSQL. Strings that are
|
||||
not valid in the current server encoding will raise an error,
|
||||
but not all encoding mismatches can be detected, so garbage
|
||||
data can still result when this is not done correctly. Unicode
|
||||
strings are converted to the correct encoding automatically, so
|
||||
it can be safer and more convenient to use those. In Python 3,
|
||||
all strings are Unicode strings.
|
||||
</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
Reference in New Issue
Block a user