| -- import python modules |
| CREATE FUNCTION import_fail() returns text |
| AS |
| 'try: |
| import foosocket |
| except ImportError: |
| return "failed as expected" |
| return "succeeded, that wasn''t supposed to happen"' |
| LANGUAGE plpythonu; |
| CREATE FUNCTION import_succeed() returns text |
| AS |
| 'try: |
| import array |
| import bisect |
| import calendar |
| import cmath |
| import errno |
| import math |
| import operator |
| import random |
| import re |
| import string |
| import time |
| except Exception as ex: |
| plpy.notice("import failed -- %s" % str(ex)) |
| return "failed, that wasn''t supposed to happen" |
| return "succeeded, as expected"' |
| LANGUAGE plpythonu; |
| CREATE FUNCTION import_test_one(p text) RETURNS text |
| AS |
| '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 |
| '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; |
| -- import python modules |
| -- |
| SELECT import_fail(); |
| import_fail |
| -------------------- |
| failed as expected |
| (1 row) |
| |
| SELECT import_succeed(); |
| import_succeed |
| ------------------------ |
| succeeded, as expected |
| (1 row) |
| |
| -- test import and simple argument handling |
| -- |
| SELECT import_test_one('sha hash of this string'); |
| import_test_one |
| ------------------------------------------ |
| a04e23cb9b1a09cd1051a04a7c571aae0f90346c |
| (1 row) |
| |
| -- test import and tuple argument handling |
| -- |
| select import_test_two(users) from users where fname = 'willem'; |
| import_test_two |
| ------------------------------------------------------------------- |
| sha hash of willemdoe is 3cde6b574953b0ca937b4d76ebc40d534d910759 |
| (1 row) |
| |