| -- |
| -- check static and global data (SD and GD) |
| -- |
| CREATE FUNCTION global_test_one() returns text |
| AS |
| 'if "global_test" not in SD: |
| SD["global_test"] = "set by global_test_one" |
| 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 "global_test" not in SD: |
| SD["global_test"] = "set by global_test_two" |
| 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 "call" in SD: |
| SD["call"] = SD["call"] + 1 |
| else: |
| SD["call"] = 1 |
| return SD["call"] |
| ' |
| LANGUAGE plpythonu; |
| SELECT static_test(); |
| static_test |
| ------------- |
| 1 |
| (1 row) |
| |
| SELECT static_test(); |
| static_test |
| ------------- |
| 2 |
| (1 row) |
| |
| SELECT global_test_one(); |
| global_test_one |
| -------------------------------------------------------- |
| SD: set by global_test_one, GD: set by global_test_one |
| (1 row) |
| |
| SELECT global_test_two(); |
| global_test_two |
| -------------------------------------------------------- |
| SD: set by global_test_two, GD: set by global_test_one |
| (1 row) |
| |