summaryrefslogtreecommitdiff
path: root/src/pl/plpython/sql/plpython_test.sql
diff options
context:
space:
mode:
authorPeter Eisentraut <peter_e@gmx.net>2009-08-12 16:37:26 +0000
committerPeter Eisentraut <peter_e@gmx.net>2009-08-12 16:37:26 +0000
commit9d9848668fd868a4e51f3a3f22c2807ff0e46582 (patch)
tree22b0152fb889ca42d3e4c6ce888d2024b8b8c98b /src/pl/plpython/sql/plpython_test.sql
parentef7574eb014b66d99a5e68cc254e7a2282e69a00 (diff)
Split the plpython regression test into test cases arranged by topic, instead
of the previous monolithic setup-create-run sequence, that was apparently inherited from a previous test infrastructure, but makes working with the tests and adding new ones weird.
Diffstat (limited to 'src/pl/plpython/sql/plpython_test.sql')
-rw-r--r--src/pl/plpython/sql/plpython_test.sql158
1 files changed, 14 insertions, 144 deletions
diff --git a/src/pl/plpython/sql/plpython_test.sql b/src/pl/plpython/sql/plpython_test.sql
index 633d940e5d4..38e236f1463 100644
--- a/src/pl/plpython/sql/plpython_test.sql
+++ b/src/pl/plpython/sql/plpython_test.sql
@@ -1,151 +1,21 @@
-- first some tests of basic functionality
---
--- better succeed
---
-select stupid();
-
--- check static and global data
---
-SELECT static_test();
-SELECT static_test();
-SELECT global_test_one();
-SELECT global_test_two();
--- import python modules
---
-SELECT import_fail();
-SELECT import_succeed();
+-- really stupid function just to get the module loaded
+CREATE FUNCTION stupid() RETURNS text AS 'return "zarkon"' LANGUAGE plpythonu;
--- test import and simple argument handling
---
-SELECT import_test_one('sha hash of this string');
+select stupid();
--- test import and tuple argument handling
---
-select import_test_two(users) from users where fname = 'willem';
-- test multiple arguments
---
-select argument_test_one(users, fname, lname) from users where lname = 'doe' order by 1;
-
-
--- spi and nested calls
---
-select nested_call_one('pass this along');
-select spi_prepared_plan_test_one('doe');
-select spi_prepared_plan_test_one('smith');
-select spi_prepared_plan_test_nested('smith');
-
--- quick peek at the table
---
-SELECT * FROM users;
-
--- should fail
---
-UPDATE users SET fname = 'william' WHERE fname = 'willem';
-
--- should modify william to willem and create username
---
-INSERT INTO users (fname, lname) VALUES ('william', 'smith');
-INSERT INTO users (fname, lname, username) VALUES ('charles', 'darwin', 'beagle');
-
-SELECT * FROM users;
-
-
-SELECT join_sequences(sequences) FROM sequences;
-SELECT join_sequences(sequences) FROM sequences
- WHERE join_sequences(sequences) ~* '^A';
-SELECT join_sequences(sequences) FROM sequences
- WHERE join_sequences(sequences) ~* '^B';
-
--- error in trigger
---
-
---
--- Check Universal Newline Support
---
-
-SELECT newline_lf();
-SELECT newline_cr();
-SELECT newline_crlf();
+CREATE FUNCTION argument_test_one(u users, a1 text, a2 text) RETURNS text
+ AS
+'keys = u.keys()
+keys.sort()
+out = []
+for key in keys:
+ out.append("%s: %s" % (key, u[key]))
+words = a1 + " " + a2 + " => {" + ", ".join(out) + "}"
+return words'
+ LANGUAGE plpythonu;
--- Tests for functions returning void
-SELECT test_void_func1(), test_void_func1() IS NULL AS "is null";
-SELECT test_void_func2(); -- should fail
-SELECT test_return_none(), test_return_none() IS NULL AS "is null";
-
--- Test for functions with named and nameless parameters
-SELECT test_param_names0(2,7);
-SELECT test_param_names1(1,'text');
-SELECT test_param_names2(users) from users;
-SELECT test_param_names3(1);
-
--- Test set returning functions
-SELECT test_setof_as_list(0, 'list');
-SELECT test_setof_as_list(1, 'list');
-SELECT test_setof_as_list(2, 'list');
-SELECT test_setof_as_list(2, null);
-
-SELECT test_setof_as_tuple(0, 'tuple');
-SELECT test_setof_as_tuple(1, 'tuple');
-SELECT test_setof_as_tuple(2, 'tuple');
-SELECT test_setof_as_tuple(2, null);
-
-SELECT test_setof_as_iterator(0, 'list');
-SELECT test_setof_as_iterator(1, 'list');
-SELECT test_setof_as_iterator(2, 'list');
-SELECT test_setof_as_iterator(2, null);
-
--- Test tuple returning functions
-SELECT * FROM test_table_record_as('dict', null, null, false);
-SELECT * FROM test_table_record_as('dict', 'one', null, false);
-SELECT * FROM test_table_record_as('dict', null, 2, false);
-SELECT * FROM test_table_record_as('dict', 'three', 3, false);
-SELECT * FROM test_table_record_as('dict', null, null, true);
-
-SELECT * FROM test_table_record_as('tuple', null, null, false);
-SELECT * FROM test_table_record_as('tuple', 'one', null, false);
-SELECT * FROM test_table_record_as('tuple', null, 2, false);
-SELECT * FROM test_table_record_as('tuple', 'three', 3, false);
-SELECT * FROM test_table_record_as('tuple', null, null, true);
-
-SELECT * FROM test_table_record_as('list', null, null, false);
-SELECT * FROM test_table_record_as('list', 'one', null, false);
-SELECT * FROM test_table_record_as('list', null, 2, false);
-SELECT * FROM test_table_record_as('list', 'three', 3, false);
-SELECT * FROM test_table_record_as('list', null, null, true);
-
-SELECT * FROM test_table_record_as('obj', null, null, false);
-SELECT * FROM test_table_record_as('obj', 'one', null, false);
-SELECT * FROM test_table_record_as('obj', null, 2, false);
-SELECT * FROM test_table_record_as('obj', 'three', 3, false);
-SELECT * FROM test_table_record_as('obj', null, null, true);
-
-SELECT * FROM test_type_record_as('dict', null, null, false);
-SELECT * FROM test_type_record_as('dict', 'one', null, false);
-SELECT * FROM test_type_record_as('dict', null, 2, false);
-SELECT * FROM test_type_record_as('dict', 'three', 3, false);
-SELECT * FROM test_type_record_as('dict', null, null, true);
-
-SELECT * FROM test_type_record_as('tuple', null, null, false);
-SELECT * FROM test_type_record_as('tuple', 'one', null, false);
-SELECT * FROM test_type_record_as('tuple', null, 2, false);
-SELECT * FROM test_type_record_as('tuple', 'three', 3, false);
-SELECT * FROM test_type_record_as('tuple', null, null, true);
-
-SELECT * FROM test_type_record_as('list', null, null, false);
-SELECT * FROM test_type_record_as('list', 'one', null, false);
-SELECT * FROM test_type_record_as('list', null, 2, false);
-SELECT * FROM test_type_record_as('list', 'three', 3, false);
-SELECT * FROM test_type_record_as('list', null, null, true);
-
-SELECT * FROM test_type_record_as('obj', null, null, false);
-SELECT * FROM test_type_record_as('obj', 'one', null, false);
-SELECT * FROM test_type_record_as('obj', null, 2, false);
-SELECT * FROM test_type_record_as('obj', 'three', 3, false);
-SELECT * FROM test_type_record_as('obj', null, null, true);
-
-SELECT * FROM test_in_out_params('test_in');
--- this doesn't work yet :-(
-SELECT * FROM test_in_out_params_multi('test_in');
-SELECT * FROM test_inout_params('test_in');
+select argument_test_one(users, fname, lname) from users where lname = 'doe' order by 1;