aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBruce Momjian <bruce@momjian.us>2003-03-27 16:58:21 +0000
committerBruce Momjian <bruce@momjian.us>2003-03-27 16:58:21 +0000
commit9b59ddfb403af197c6ec8df8f8673bd9c033106d (patch)
tree413a310f73e459c4c45e674a6f433d32dfc579da
parentc75d65485d1025c6ec62044e46ac74d467f1243b (diff)
downloadpostgresql-9b59ddfb403af197c6ec8df8f8673bd9c033106d.tar.gz
postgresql-9b59ddfb403af197c6ec8df8f8673bd9c033106d.zip
It may not be obvious to you, but the plpython regression tests
include output that vary depending on the python build one is running. Basically, the order of keys in a dictionary is non-deterministic, and that part of the test fails for me regularly. I rewrote the test to work around this problem, and include a patch file with that change and the change to the expected otuput as well. Mike Meyer
-rw-r--r--src/pl/plpython/feature.expected10
-rw-r--r--src/pl/plpython/plpython_function.sql7
2 files changed, 11 insertions, 6 deletions
diff --git a/src/pl/plpython/feature.expected b/src/pl/plpython/feature.expected
index b689c1f6154..66e4e6709c2 100644
--- a/src/pl/plpython/feature.expected
+++ b/src/pl/plpython/feature.expected
@@ -54,11 +54,11 @@ select import_test_two(users) from users where fname = 'willem';
(1 row)
select argument_test_one(users, fname, lname) from users where lname = 'doe' order by 1;
- argument_test_one
--------------------------------------------------------------------------------------
- jane doe => {'fname': 'jane', 'userid': 1, 'lname': 'doe', 'username': 'j_doe'}
- john doe => {'fname': 'john', 'userid': 2, 'lname': 'doe', 'username': 'johnd'}
- willem doe => {'fname': 'willem', 'userid': 3, 'lname': 'doe', 'username': 'w_doe'}
+ argument_test_one
+-----------------------------------------------------------------------
+ jane doe => {fname: jane, lname: doe, userid: 1, username: j_doe}
+ john doe => {fname: john, lname: doe, userid: 2, username: johnd}
+ willem doe => {fname: willem, lname: doe, userid: 3, username: w_doe}
(3 rows)
select nested_call_one('pass this along');
diff --git a/src/pl/plpython/plpython_function.sql b/src/pl/plpython/plpython_function.sql
index 46ab4babd35..2769e9de36f 100644
--- a/src/pl/plpython/plpython_function.sql
+++ b/src/pl/plpython/plpython_function.sql
@@ -82,7 +82,12 @@ return "sha hash of " + plain + " is " + digest.hexdigest()'
CREATE FUNCTION argument_test_one(users, text, text) RETURNS text
AS
-'words = args[1] + " " + args[2] + " => " + str(args[0])
+'keys = args[0].keys()
+keys.sort()
+out = []
+for key in keys:
+ out.append("%s: %s" % (key, args[0][key]))
+words = args[1] + " " + args[2] + " => {" + ", ".join(out) + "}"
return words'
LANGUAGE 'plpython';