test statement_timeout
authorMarko Kreen <markokr@gmail.com>
Tue, 30 Oct 2007 11:24:11 +0000 (11:24 +0000)
committerMarko Kreen <markokr@gmail.com>
Tue, 30 Oct 2007 11:24:11 +0000 (11:24 +0000)
expected/plproxy_test.out
sql/plproxy_init.sql
sql/plproxy_test.sql

index d269fd652fbf4259e92509232d9f88f4bd7cffd7..4cc9f770f060d0ba0c4bcddaa5a2c4568b6450a3 100644 (file)
@@ -243,3 +243,47 @@ select * from test_connect1();
  test_part
 (1 row)
 
+-- test timeout
+create or replace function
+plproxy.get_cluster_config(cluster_name text, out key text, out val text)
+returns setof record as $$
+begin
+    key := 'statement_timeout';
+    val := 10; -- ms
+    return next;
+    return;
+end; $$ language plpgsql;
+create or replace function plproxy.get_cluster_version(cluster_name text)
+returns integer as $$
+begin
+    if cluster_name = 'testcluster' then
+        return 6;
+    end if;
+    raise exception 'no such cluster: %', cluster_name;
+end; $$ language plpgsql;
+create function test_timeout()
+returns text as $$
+    cluster 'testcluster';
+    run on 0;
+    select 'asd' from pg_sleep(3);
+$$ language plproxy;
+select * from test_timeout();
+ERROR:  PL/Proxy function public.test_timeout(0): remote error: ERROR:  canceling statement due to statement timeout
+
+create or replace function
+plproxy.get_cluster_config(cluster_name text, out key text, out val text)
+returns setof record as $$
+begin
+    key := 'statement_timeout';
+    val := 0;
+    return next;
+    return;
+end; $$ language plpgsql;
+create or replace function plproxy.get_cluster_version(cluster_name text)
+returns integer as $$
+begin
+    if cluster_name = 'testcluster' then
+        return 7;
+    end if;
+    raise exception 'no such cluster: %', cluster_name;
+end; $$ language plpgsql;
index a287ef82adfab84f03a162221ef7ef73de7b27bd..19d444f0b15cd87f9a98e3506d7c45adced21b5e 100644 (file)
@@ -30,7 +30,7 @@ plproxy.get_cluster_config(cluster_name text, out key text, out val text)
 returns setof record as $$
 begin
     key := 'statement_timeout';
-    val := 60;
+    val := 0;
     return next;
     return;
 end; $$ language plpgsql;
index ece9c992c2c72a0efa6ca5fec9e60d74b9d474e6..0a10d685fa0b197ab82a3cac7b7bfd4849f96528 100644 (file)
@@ -143,5 +143,51 @@ create function test_connect1() returns text
 as $$ connect 'dbname=test_part'; select current_database(); $$ language plproxy;
 select * from test_connect1();
 
+-- test timeout
+create or replace function
+plproxy.get_cluster_config(cluster_name text, out key text, out val text)
+returns setof record as $$
+begin
+    key := 'statement_timeout';
+    val := 10; -- ms
+    return next;
+    return;
+end; $$ language plpgsql;
+
+create or replace function plproxy.get_cluster_version(cluster_name text)
+returns integer as $$
+begin
+    if cluster_name = 'testcluster' then
+        return 6;
+    end if;
+    raise exception 'no such cluster: %', cluster_name;
+end; $$ language plpgsql;
+
+create function test_timeout()
+returns text as $$
+    cluster 'testcluster';
+    run on 0;
+    select 'asd' from pg_sleep(3);
+$$ language plproxy;
+select * from test_timeout();
+
+create or replace function
+plproxy.get_cluster_config(cluster_name text, out key text, out val text)
+returns setof record as $$
+begin
+    key := 'statement_timeout';
+    val := 0;
+    return next;
+    return;
+end; $$ language plpgsql;
+
+create or replace function plproxy.get_cluster_version(cluster_name text)
+returns integer as $$
+begin
+    if cluster_name = 'testcluster' then
+        return 7;
+    end if;
+    raise exception 'no such cluster: %', cluster_name;
+end; $$ language plpgsql;