mirror of
https://github.com/postgres/postgres.git
synced 2025-07-05 07:21:24 +03:00
151 lines
5.0 KiB
SQL
151 lines
5.0 KiB
SQL
-- 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();
|
|
|
|
-- test import and simple argument handling
|
|
--
|
|
SELECT import_test_one('sha hash of this string');
|
|
|
|
-- 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();
|
|
|
|
-- 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 parameters
|
|
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');
|