]> git.8kb.co.uk Git - postgresql/pg_controldata/blob - pg_controldata.plperlu
Fix indentation
[postgresql/pg_controldata] / pg_controldata.plperlu
1 --
2 -- Glyn Astill 08/02/2014
3 -- Pl/perlU function/view to show settings from pg_controldata
4 --
5 -- For an extension in written in C by Joe Conway see:
6 --     https://github.com/jconway/pg_controldata
7 --
8
9 SET search_path = public;
10
11 --
12
13 DROP FUNCTION IF EXISTS pg_controldata();
14 CREATE OR REPLACE FUNCTION pg_controldata() 
15 RETURNS TABLE (name text, setting text) AS 
16 $BODY$
17     my $rv;
18     my $data_dir;
19     my $pg_controldata_bin = 'pg_controldata';
20     my @fields;
21     
22     $rv = spi_exec_query('SHOW data_directory', 1);
23     $data_dir = $rv->{rows}[0]->{data_directory};
24     
25     open(FD,"$pg_controldata_bin $data_dir | ");
26     
27     while(<FD>) {
28         @fields = split(':', $_, 2);
29         $fields[0] =~ s/^\s+|\s+$//g;
30         $fields[1] =~ s/^\s+|\s+$//g;
31         return_next { name => $fields[0], setting => $fields[1]};
32     }
33     close (FD);
34     
35     return;    
36 $BODY$
37 LANGUAGE plperlu;
38
39 --
40
41 CREATE VIEW pg_controldata AS
42 SELECT * FROM pg_controldata();
43
44 GRANT SELECT ON pg_controldata TO PUBLIC;