Add more test cases for error conditions
authorPeter Eisentraut <peter@eisentraut.org>
Thu, 31 Jan 2013 16:30:16 +0000 (11:30 -0500)
committerPeter Eisentraut <peter@eisentraut.org>
Thu, 31 Jan 2013 18:25:47 +0000 (13:25 -0500)
test/expected/plproxy_errors.out
test/sql/plproxy_errors.sql

index 94b0468c3fb3a86ec03488765b815cf109522a53..49acc3ac2a217c4144087b4623eef8d0f49b722b 100644 (file)
@@ -64,3 +64,39 @@ returns record as $$
 $$ language plproxy;
 select * from test_map_err4('dat');
 ERROR:  PL/Proxy function public.test_map_err4(1): Compile error at line 5: CLUSTER statement missing
+create function test_variadic_err(first text, rest variadic text[])
+returns text as $$
+    cluster 'testcluster';
+$$ language plproxy;
+select * from test_variadic_err('dat', 'dat', 'dat');
+ERROR:  PL/Proxy does not support variadic args
+create function test_volatile_err(dat text)
+returns text
+stable
+as $$
+    cluster 'testcluster';
+$$ language plproxy;
+select * from test_volatile_err('dat');
+ERROR:  PL/Proxy functions must be volatile
+create function test_pseudo_arg_err(dat cstring)
+returns text
+as $$
+    cluster 'testcluster';
+$$ language plproxy;
+select * from test_pseudo_arg_err(textout('dat'));
+ERROR:  PL/Proxy function public.test_pseudo_arg_err(0): unsupported pseudo type: cstring (2275)
+create function test_pseudo_ret_err(dat text)
+returns cstring
+as $$
+    cluster 'testcluster';
+$$ language plproxy;
+select * from test_pseudo_ret_err('dat');
+ERROR:  PL/Proxy function public.test_pseudo_ret_err(0): unsupported pseudo type: cstring (2275)
+create function test_runonall_err(dat text)
+returns text
+as $$
+    cluster 'testcluster';
+    run on all;
+$$ language plproxy;
+select * from test_runonall_err('dat');
+ERROR:  PL/Proxy function public.test_runonall_err(1): RUN ON ALL requires set-returning function
index 09bdf81c869f71437871b37a92152254c9cc01e2..09f85a22e7a247959b9600d25f97273a24e83362 100644 (file)
@@ -57,7 +57,38 @@ returns record as $$
 $$ language plproxy;
 select * from test_map_err4('dat');
 
+create function test_variadic_err(first text, rest variadic text[])
+returns text as $$
+    cluster 'testcluster';
+$$ language plproxy;
+select * from test_variadic_err('dat', 'dat', 'dat');
 
+create function test_volatile_err(dat text)
+returns text
+stable
+as $$
+    cluster 'testcluster';
+$$ language plproxy;
+select * from test_volatile_err('dat');
 
+create function test_pseudo_arg_err(dat cstring)
+returns text
+as $$
+    cluster 'testcluster';
+$$ language plproxy;
+select * from test_pseudo_arg_err(textout('dat'));
 
+create function test_pseudo_ret_err(dat text)
+returns cstring
+as $$
+    cluster 'testcluster';
+$$ language plproxy;
+select * from test_pseudo_ret_err('dat');
 
+create function test_runonall_err(dat text)
+returns text
+as $$
+    cluster 'testcluster';
+    run on all;
+$$ language plproxy;
+select * from test_runonall_err('dat');