summaryrefslogtreecommitdiff
path: root/src/pl/plpython/sql/plpython_trigger.sql
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2009-09-12 22:13:12 +0000
committerPeter Eisentraut <peter_e@gmx.net>2009-09-12 22:13:12 +0000
commit4ab6ebf3f4dc8182556dc23c49ee59e602a78f1c (patch)
tree90ef67eaf8d83d4ff9a25ee73c7c3885557df3de /src/pl/plpython/sql/plpython_trigger.sql
parent9bb342811bf6a93a574a648c5848feedbaaef8f2 (diff)
Add Unicode support in PL/Python
PL/Python now accepts Unicode objects where it previously only accepted string objects (for example, as return value). Unicode objects are converted to the PostgreSQL server encoding as necessary. This change is also necessary for future Python 3 support, which treats all strings as Unicode objects. Since this removes the error conditions that the plpython_unicode test file tested for, the alternative result files are no longer necessary.
Diffstat (limited to 'src/pl/plpython/sql/plpython_trigger.sql')
-rw-r--r--src/pl/plpython/sql/plpython_trigger.sql33
1 files changed, 33 insertions, 0 deletions
diff --git a/src/pl/plpython/sql/plpython_trigger.sql b/src/pl/plpython/sql/plpython_trigger.sql
index 385fa93bda4..d6f441f827f 100644
--- a/src/pl/plpython/sql/plpython_trigger.sql
+++ b/src/pl/plpython/sql/plpython_trigger.sql
@@ -159,6 +159,22 @@ UPDATE trigger_test SET v = 'null' WHERE i = 0;
DROP TRIGGER stupid_trigger3 ON trigger_test;
+-- Unicode variant
+
+CREATE FUNCTION stupid3u() RETURNS trigger
+AS $$
+ return u"foo"
+$$ LANGUAGE plpythonu;
+
+CREATE TRIGGER stupid_trigger3
+BEFORE UPDATE ON trigger_test
+FOR EACH ROW EXECUTE PROCEDURE stupid3u();
+
+UPDATE trigger_test SET v = 'null' WHERE i = 0;
+
+DROP TRIGGER stupid_trigger3 ON trigger_test;
+
+
-- deleting the TD dictionary
CREATE FUNCTION stupid4() RETURNS trigger
@@ -227,6 +243,23 @@ UPDATE trigger_test SET v = 'null' WHERE i = 0;
DROP TRIGGER stupid_trigger7 ON trigger_test;
+-- Unicode variant
+
+CREATE FUNCTION stupid7u() RETURNS trigger
+AS $$
+ TD["new"] = {u'a': 'foo', u'b': 'bar'}
+ return "MODIFY"
+$$ LANGUAGE plpythonu;
+
+CREATE TRIGGER stupid_trigger7
+BEFORE UPDATE ON trigger_test
+FOR EACH ROW EXECUTE PROCEDURE stupid7u();
+
+UPDATE trigger_test SET v = 'null' WHERE i = 0;
+
+DROP TRIGGER stupid_trigger7 ON trigger_test;
+
+
-- calling a trigger function directly
SELECT stupid7();