--
-- 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 plpython3u;
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 plpython3u;
CREATE FUNCTION static_test() returns int4
    AS
'if "call" in SD:
	SD["call"] = SD["call"] + 1
else:
	SD["call"] = 1
return SD["call"]
'
    LANGUAGE plpython3u;
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)

