Add test cases to enable/disable certain modules using the new logging
authorPavan Deolasee <[email protected]>
Wed, 9 Mar 2016 11:32:50 +0000 (17:02 +0530)
committerPavan Deolasee <[email protected]>
Wed, 9 Mar 2016 11:32:50 +0000 (17:02 +0530)
infrastructure

They are not added to either serial or parallel schedules and just serve as
examples right now

src/test/regress/expected/disable_msgmod.out [new file with mode: 0644]
src/test/regress/expected/enable_msgmod.out [new file with mode: 0644]
src/test/regress/sql/disable_msgmod.sql [new file with mode: 0644]
src/test/regress/sql/enable_msgmod.sql [new file with mode: 0644]

diff --git a/src/test/regress/expected/disable_msgmod.out b/src/test/regress/expected/disable_msgmod.out
new file mode 100644 (file)
index 0000000..68826b6
--- /dev/null
@@ -0,0 +1,12 @@
+      
+SELECT r.nodename, r.status
+       FROM execute_on_all_nodes('SELECT pg_msgmodule_disable_all()')
+AS r(nodename text, status bool);
+  nodename  | status 
+------------+--------
+ coord1     | t
+ coord2     | t
+ datanode_1 | t
+ datanode_2 | t
+(4 rows)
+
diff --git a/src/test/regress/expected/enable_msgmod.out b/src/test/regress/expected/enable_msgmod.out
new file mode 100644 (file)
index 0000000..560932b
--- /dev/null
@@ -0,0 +1,74 @@
+create or replace function execute_on_all_nodes(query varchar)
+returns setof record language plpgsql as $D$
+declare
+       node_sql        varchar;
+       nodename        varchar;
+       nodenames_query varchar;
+       res                     record;
+begin
+       nodenames_query := 'SELECT node_name FROM pgxc_node';
+       for nodename in execute nodenames_query loop
+               node_sql = 'EXECUTE DIRECT ON (' || nodename || ') $$ ' || 'SELECT ''' ||
+nodename || '''::text AS nodename, subquery.* FROM (' || query || ') subquery $$';
+--             raise notice '%', node_sql;
+               FOR res IN EXECUTE node_sql LOOP
+                       RETURN NEXT res;
+               END LOOP;
+       end loop;
+end;
+$D$;
+SELECT r.nodename, r.status
+       FROM execute_on_all_nodes('SELECT pg_msgmodule_set(121, -1, -1, ''LOG'')')
+AS r(nodename text, status bool);
+  nodename  | status 
+------------+--------
+ coord1     | t
+ coord2     | t
+ datanode_1 | t
+ datanode_2 | t
+(4 rows)
+
+SELECT r.nodename, r.status
+       FROM execute_on_all_nodes('SELECT pg_msgmodule_set(97, -1, -1, ''LOG'')')
+AS r(nodename text, status bool);
+  nodename  | status 
+------------+--------
+ coord1     | t
+ coord2     | t
+ datanode_1 | t
+ datanode_2 | t
+(4 rows)
+
+SELECT r.nodename, r.status
+       FROM execute_on_all_nodes('SELECT pg_msgmodule_set(98, -1, -1, ''LOG'')')
+AS r(nodename text, status bool);
+  nodename  | status 
+------------+--------
+ coord1     | t
+ coord2     | t
+ datanode_1 | t
+ datanode_2 | t
+(4 rows)
+
+SELECT r.nodename, r.status
+       FROM execute_on_all_nodes('SELECT pg_msgmodule_set(99, -1, -1, ''LOG'')')
+AS r(nodename text, status bool);
+  nodename  | status 
+------------+--------
+ coord1     | t
+ coord2     | t
+ datanode_1 | t
+ datanode_2 | t
+(4 rows)
+
+SELECT r.nodename, r.status
+       FROM execute_on_all_nodes('SELECT pg_msgmodule_enable_all(true)')
+AS r(nodename text, status bool);
+  nodename  | status 
+------------+--------
+ coord1     | t
+ coord2     | t
+ datanode_1 | t
+ datanode_2 | t
+(4 rows)
+
diff --git a/src/test/regress/sql/disable_msgmod.sql b/src/test/regress/sql/disable_msgmod.sql
new file mode 100644 (file)
index 0000000..bdca341
--- /dev/null
@@ -0,0 +1,4 @@
+      
+SELECT r.nodename, r.status
+       FROM execute_on_all_nodes('SELECT pg_msgmodule_disable_all()')
+AS r(nodename text, status bool);
diff --git a/src/test/regress/sql/enable_msgmod.sql b/src/test/regress/sql/enable_msgmod.sql
new file mode 100644 (file)
index 0000000..09497dd
--- /dev/null
@@ -0,0 +1,41 @@
+
+create or replace function execute_on_all_nodes(query varchar)
+returns setof record language plpgsql as $D$
+declare
+       node_sql        varchar;
+       nodename        varchar;
+       nodenames_query varchar;
+       res                     record;
+begin
+       nodenames_query := 'SELECT node_name FROM pgxc_node';
+       for nodename in execute nodenames_query loop
+               node_sql = 'EXECUTE DIRECT ON (' || nodename || ') $$ ' || 'SELECT ''' ||
+nodename || '''::text AS nodename, subquery.* FROM (' || query || ') subquery $$';
+--             raise notice '%', node_sql;
+               FOR res IN EXECUTE node_sql LOOP
+                       RETURN NEXT res;
+               END LOOP;
+       end loop;
+end;
+$D$;
+
+SELECT r.nodename, r.status
+       FROM execute_on_all_nodes('SELECT pg_msgmodule_set(121, -1, -1, ''LOG'')')
+AS r(nodename text, status bool);
+
+SELECT r.nodename, r.status
+       FROM execute_on_all_nodes('SELECT pg_msgmodule_set(97, -1, -1, ''LOG'')')
+AS r(nodename text, status bool);
+
+SELECT r.nodename, r.status
+       FROM execute_on_all_nodes('SELECT pg_msgmodule_set(98, -1, -1, ''LOG'')')
+AS r(nodename text, status bool);
+
+SELECT r.nodename, r.status
+       FROM execute_on_all_nodes('SELECT pg_msgmodule_set(99, -1, -1, ''LOG'')')
+AS r(nodename text, status bool);
+
+SELECT r.nodename, r.status
+       FROM execute_on_all_nodes('SELECT pg_msgmodule_enable_all(true)')
+AS r(nodename text, status bool);
+