Make PL/Python tests more compatible with Python 3

This changes a bunch of incidentially used constructs in the PL/Python
regression tests to equivalent constructs in cases where Python 3 no longer
supports the old syntax.  Support for older Python versions is unchanged.
This commit is contained in:
Peter Eisentraut 2009-08-24 20:25:25 +00:00
parent 8bed238c87
commit 5dff93638c
15 changed files with 60 additions and 48 deletions

View File

@ -45,7 +45,7 @@ CONTEXT: PL/Python function "exception_index_invalid_nested"
*/
CREATE FUNCTION invalid_type_uncaught(a text) RETURNS text
AS
'if not SD.has_key("plan"):
'if "plan" not in SD:
q = "SELECT fname FROM users WHERE lname = $1"
SD["plan"] = plpy.prepare(q, [ "test" ])
rv = plpy.execute(SD["plan"], [ a ])
@ -64,7 +64,7 @@ CONTEXT: PL/Python function "invalid_type_uncaught"
*/
CREATE FUNCTION invalid_type_caught(a text) RETURNS text
AS
'if not SD.has_key("plan"):
'if "plan" not in SD:
q = "SELECT fname FROM users WHERE lname = $1"
try:
SD["plan"] = plpy.prepare(q, [ "test" ])
@ -87,7 +87,7 @@ CONTEXT: PL/Python function "invalid_type_caught"
*/
CREATE FUNCTION invalid_type_reraised(a text) RETURNS text
AS
'if not SD.has_key("plan"):
'if "plan" not in SD:
q = "SELECT fname FROM users WHERE lname = $1"
try:
SD["plan"] = plpy.prepare(q, [ "test" ])
@ -108,7 +108,7 @@ CONTEXT: PL/Python function "invalid_type_reraised"
*/
CREATE FUNCTION valid_type(a text) RETURNS text
AS
'if not SD.has_key("plan"):
'if "plan" not in SD:
SD["plan"] = plpy.prepare("SELECT fname FROM users WHERE lname = $1", [ "text" ])
rv = plpy.execute(SD["plan"], [ a ])
if len(rv):

View File

@ -45,7 +45,7 @@ CONTEXT: PL/Python function "exception_index_invalid_nested"
*/
CREATE FUNCTION invalid_type_uncaught(a text) RETURNS text
AS
'if not SD.has_key("plan"):
'if "plan" not in SD:
q = "SELECT fname FROM users WHERE lname = $1"
SD["plan"] = plpy.prepare(q, [ "test" ])
rv = plpy.execute(SD["plan"], [ a ])
@ -64,7 +64,7 @@ CONTEXT: PL/Python function "invalid_type_uncaught"
*/
CREATE FUNCTION invalid_type_caught(a text) RETURNS text
AS
'if not SD.has_key("plan"):
'if "plan" not in SD:
q = "SELECT fname FROM users WHERE lname = $1"
try:
SD["plan"] = plpy.prepare(q, [ "test" ])
@ -87,7 +87,7 @@ CONTEXT: PL/Python function "invalid_type_caught"
*/
CREATE FUNCTION invalid_type_reraised(a text) RETURNS text
AS
'if not SD.has_key("plan"):
'if "plan" not in SD:
q = "SELECT fname FROM users WHERE lname = $1"
try:
SD["plan"] = plpy.prepare(q, [ "test" ])
@ -108,7 +108,7 @@ CONTEXT: PL/Python function "invalid_type_reraised"
*/
CREATE FUNCTION valid_type(a text) RETURNS text
AS
'if not SD.has_key("plan"):
'if "plan" not in SD:
SD["plan"] = plpy.prepare("SELECT fname FROM users WHERE lname = $1", [ "text" ])
rv = plpy.execute(SD["plan"], [ a ])
if len(rv):

View File

@ -3,23 +3,23 @@
--
CREATE FUNCTION global_test_one() returns text
AS
'if not SD.has_key("global_test"):
'if "global_test" not in SD:
SD["global_test"] = "set by global_test_one"
if not GD.has_key("global_test"):
if "global_test" not in GD:
GD["global_test"] = "set by global_test_one"
return "SD: " + SD["global_test"] + ", GD: " + GD["global_test"]'
LANGUAGE plpythonu;
CREATE FUNCTION global_test_two() returns text
AS
'if not SD.has_key("global_test"):
'if "global_test" not in SD:
SD["global_test"] = "set by global_test_two"
if not GD.has_key("global_test"):
if "global_test" not in GD:
GD["global_test"] = "set by global_test_two"
return "SD: " + SD["global_test"] + ", GD: " + GD["global_test"]'
LANGUAGE plpythonu;
CREATE FUNCTION static_test() returns int4
AS
'if SD.has_key("call"):
'if "call" in SD:
SD["call"] = SD["call"] + 1
else:
SD["call"] = 1

View File

@ -17,11 +17,9 @@ CREATE FUNCTION import_succeed() returns text
import cmath
import errno
import math
import md5
import operator
import random
import re
import sha
import string
import time
except Exception, ex:
@ -31,14 +29,22 @@ return "succeeded, as expected"'
LANGUAGE plpythonu;
CREATE FUNCTION import_test_one(p text) RETURNS text
AS
'import sha
'try:
import hashlib
digest = hashlib.sha1(p.encode("ascii"))
except ImportError:
import sha
digest = sha.new(p)
return digest.hexdigest()'
LANGUAGE plpythonu;
CREATE FUNCTION import_test_two(u users) RETURNS text
AS
'import sha
plain = u["fname"] + u["lname"]
'plain = u["fname"] + u["lname"]
try:
import hashlib
digest = hashlib.sha1(plain.encode("ascii"))
except ImportError:
import sha
digest = sha.new(plain);
return "sha hash of " + plain + " is " + digest.hexdigest()'
LANGUAGE plpythonu;

View File

@ -13,7 +13,7 @@ return [ content ]*count
$$ LANGUAGE plpythonu;
CREATE FUNCTION test_setof_as_tuple(count integer, content text) RETURNS SETOF text AS $$
t = ()
for i in xrange(count):
for i in range(count):
t += ( content, )
return t
$$ LANGUAGE plpythonu;

View File

@ -19,7 +19,7 @@ CREATE FUNCTION nested_call_three(a text) RETURNS text
-- some spi stuff
CREATE FUNCTION spi_prepared_plan_test_one(a text) RETURNS text
AS
'if not SD.has_key("myplan"):
'if "myplan" not in SD:
q = "SELECT count(*) FROM users WHERE lname = $1"
SD["myplan"] = plpy.prepare(q, [ "text" ])
try:
@ -32,7 +32,7 @@ return None
LANGUAGE plpythonu;
CREATE FUNCTION spi_prepared_plan_test_nested(a text) RETURNS text
AS
'if not SD.has_key("myplan"):
'if "myplan" not in SD:
q = "SELECT spi_prepared_plan_test_one(''%s'') as count" % a
SD["myplan"] = plpy.prepare(q)
try:

View File

@ -10,7 +10,7 @@ select stupid();
-- test multiple arguments
CREATE FUNCTION argument_test_one(u users, a1 text, a2 text) RETURNS text
AS
'keys = u.keys()
'keys = list(u.keys())
keys.sort()
out = []
for key in keys:

View File

@ -69,10 +69,10 @@ CREATE TABLE trigger_test
(i int, v text );
CREATE FUNCTION trigger_data() returns trigger language plpythonu as $$
if TD.has_key('relid'):
if 'relid' in TD:
TD['relid'] = "bogus:12345"
skeys = TD.keys()
skeys = list(TD.keys())
skeys.sort()
for key in skeys:
val = TD[key]

View File

@ -37,7 +37,7 @@ SELECT exception_index_invalid_nested();
*/
CREATE FUNCTION invalid_type_uncaught(a text) RETURNS text
AS
'if not SD.has_key("plan"):
'if "plan" not in SD:
q = "SELECT fname FROM users WHERE lname = $1"
SD["plan"] = plpy.prepare(q, [ "test" ])
rv = plpy.execute(SD["plan"], [ a ])
@ -55,7 +55,7 @@ SELECT invalid_type_uncaught('rick');
*/
CREATE FUNCTION invalid_type_caught(a text) RETURNS text
AS
'if not SD.has_key("plan"):
'if "plan" not in SD:
q = "SELECT fname FROM users WHERE lname = $1"
try:
SD["plan"] = plpy.prepare(q, [ "test" ])
@ -77,7 +77,7 @@ SELECT invalid_type_caught('rick');
*/
CREATE FUNCTION invalid_type_reraised(a text) RETURNS text
AS
'if not SD.has_key("plan"):
'if "plan" not in SD:
q = "SELECT fname FROM users WHERE lname = $1"
try:
SD["plan"] = plpy.prepare(q, [ "test" ])
@ -97,7 +97,7 @@ SELECT invalid_type_reraised('rick');
*/
CREATE FUNCTION valid_type(a text) RETURNS text
AS
'if not SD.has_key("plan"):
'if "plan" not in SD:
SD["plan"] = plpy.prepare("SELECT fname FROM users WHERE lname = $1", [ "text" ])
rv = plpy.execute(SD["plan"], [ a ])
if len(rv):

View File

@ -4,18 +4,18 @@
CREATE FUNCTION global_test_one() returns text
AS
'if not SD.has_key("global_test"):
'if "global_test" not in SD:
SD["global_test"] = "set by global_test_one"
if not GD.has_key("global_test"):
if "global_test" not in GD:
GD["global_test"] = "set by global_test_one"
return "SD: " + SD["global_test"] + ", GD: " + GD["global_test"]'
LANGUAGE plpythonu;
CREATE FUNCTION global_test_two() returns text
AS
'if not SD.has_key("global_test"):
'if "global_test" not in SD:
SD["global_test"] = "set by global_test_two"
if not GD.has_key("global_test"):
if "global_test" not in GD:
GD["global_test"] = "set by global_test_two"
return "SD: " + SD["global_test"] + ", GD: " + GD["global_test"]'
LANGUAGE plpythonu;
@ -23,7 +23,7 @@ return "SD: " + SD["global_test"] + ", GD: " + GD["global_test"]'
CREATE FUNCTION static_test() returns int4
AS
'if SD.has_key("call"):
'if "call" in SD:
SD["call"] = SD["call"] + 1
else:
SD["call"] = 1

View File

@ -20,11 +20,9 @@ CREATE FUNCTION import_succeed() returns text
import cmath
import errno
import math
import md5
import operator
import random
import re
import sha
import string
import time
except Exception, ex:
@ -35,15 +33,23 @@ return "succeeded, as expected"'
CREATE FUNCTION import_test_one(p text) RETURNS text
AS
'import sha
'try:
import hashlib
digest = hashlib.sha1(p.encode("ascii"))
except ImportError:
import sha
digest = sha.new(p)
return digest.hexdigest()'
LANGUAGE plpythonu;
CREATE FUNCTION import_test_two(u users) RETURNS text
AS
'import sha
plain = u["fname"] + u["lname"]
'plain = u["fname"] + u["lname"]
try:
import hashlib
digest = hashlib.sha1(plain.encode("ascii"))
except ImportError:
import sha
digest = sha.new(plain);
return "sha hash of " + plain + " is " + digest.hexdigest()'
LANGUAGE plpythonu;

View File

@ -15,7 +15,7 @@ $$ LANGUAGE plpythonu;
CREATE FUNCTION test_setof_as_tuple(count integer, content text) RETURNS SETOF text AS $$
t = ()
for i in xrange(count):
for i in range(count):
t += ( content, )
return t
$$ LANGUAGE plpythonu;

View File

@ -25,7 +25,7 @@ CREATE FUNCTION nested_call_three(a text) RETURNS text
CREATE FUNCTION spi_prepared_plan_test_one(a text) RETURNS text
AS
'if not SD.has_key("myplan"):
'if "myplan" not in SD:
q = "SELECT count(*) FROM users WHERE lname = $1"
SD["myplan"] = plpy.prepare(q, [ "text" ])
try:
@ -39,7 +39,7 @@ return None
CREATE FUNCTION spi_prepared_plan_test_nested(a text) RETURNS text
AS
'if not SD.has_key("myplan"):
'if "myplan" not in SD:
q = "SELECT spi_prepared_plan_test_one(''%s'') as count" % a
SD["myplan"] = plpy.prepare(q)
try:

View File

@ -9,7 +9,7 @@ select stupid();
-- test multiple arguments
CREATE FUNCTION argument_test_one(u users, a1 text, a2 text) RETURNS text
AS
'keys = u.keys()
'keys = list(u.keys())
keys.sort()
out = []
for key in keys:

View File

@ -69,10 +69,10 @@ CREATE TABLE trigger_test
CREATE FUNCTION trigger_data() returns trigger language plpythonu as $$
if TD.has_key('relid'):
if 'relid' in TD:
TD['relid'] = "bogus:12345"
skeys = TD.keys()
skeys = list(TD.keys())
skeys.sort()
for key in skeys:
val = TD[key]