summaryrefslogtreecommitdiffstats
path: root/doc/src/sgml/adminpack.sgml
diff options
context:
space:
mode:
Diffstat (limited to 'doc/src/sgml/adminpack.sgml')
-rw-r--r--doc/src/sgml/adminpack.sgml159
1 files changed, 159 insertions, 0 deletions
diff --git a/doc/src/sgml/adminpack.sgml b/doc/src/sgml/adminpack.sgml
new file mode 100644
index 0000000..1150b7f
--- /dev/null
+++ b/doc/src/sgml/adminpack.sgml
@@ -0,0 +1,159 @@
+<!-- doc/src/sgml/adminpack.sgml -->
+
+<sect1 id="adminpack" xreflabel="adminpack">
+ <title>adminpack</title>
+
+ <indexterm zone="adminpack">
+ <primary>adminpack</primary>
+ </indexterm>
+
+ <para>
+ <filename>adminpack</filename> provides a number of support functions which
+ <application>pgAdmin</application> and other administration and management tools can
+ use to provide additional functionality, such as remote management
+ of server log files.
+ Use of all these functions is only allowed to the superuser by default but may be
+ allowed to other users by using the <command>GRANT</command> command.
+ </para>
+
+ <para>
+ The functions shown in <xref linkend="functions-adminpack-table"/> provide
+ write access to files on the machine hosting the server. (See also the
+ functions in <xref linkend="functions-admin-genfile-table"/>, which
+ provide read-only access.)
+ Only files within the database cluster directory can be accessed, unless the
+ user is a superuser or given privileges of one of the
+ <literal>pg_read_server_files</literal> or
+ <literal>pg_write_server_files</literal> roles, as appropriate for the
+ function, but either a relative or absolute path is allowable.
+ </para>
+
+ <table id="functions-adminpack-table">
+ <title><filename>adminpack</filename> Functions</title>
+ <tgroup cols="1">
+ <thead>
+ <row>
+ <entry role="func_table_entry"><para role="func_signature">
+ Function
+ </para>
+ <para>
+ Description
+ </para></entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry role="func_table_entry"><para role="func_signature">
+ <function>pg_catalog.pg_file_write</function> ( <parameter>filename</parameter> <type>text</type>, <parameter>data</parameter> <type>text</type>, <parameter>append</parameter> <type>boolean</type> )
+ <returnvalue>bigint</returnvalue>
+ </para>
+ <para>
+ Writes, or appends to, a text file.
+ </para></entry>
+ </row>
+
+ <row>
+ <entry role="func_table_entry"><para role="func_signature">
+ <function>pg_catalog.pg_file_sync</function> ( <parameter>filename</parameter> <type>text</type> )
+ <returnvalue>void</returnvalue>
+ </para>
+ <para>
+ Flushes a file or directory to disk.
+ </para></entry>
+ </row>
+
+ <row>
+ <entry role="func_table_entry"><para role="func_signature">
+ <function>pg_catalog.pg_file_rename</function> ( <parameter>oldname</parameter> <type>text</type>, <parameter>newname</parameter> <type>text</type> <optional>, <parameter>archivename</parameter> <type>text</type> </optional> )
+ <returnvalue>boolean</returnvalue>
+ </para>
+ <para>
+ Renames a file.
+ </para></entry>
+ </row>
+
+ <row>
+ <entry role="func_table_entry"><para role="func_signature">
+ <function>pg_catalog.pg_file_unlink</function> ( <parameter>filename</parameter> <type>text</type> )
+ <returnvalue>boolean</returnvalue>
+ </para>
+ <para>
+ Removes a file.
+ </para></entry>
+ </row>
+
+ <row>
+ <entry role="func_table_entry"><para role="func_signature">
+ <function>pg_catalog.pg_logdir_ls</function> ()
+ <returnvalue>setof record</returnvalue>
+ </para>
+ <para>
+ Lists the log files in the <varname>log_directory</varname> directory.
+ </para></entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <indexterm>
+ <primary>pg_file_write</primary>
+ </indexterm>
+ <para>
+ <function>pg_file_write</function> writes the specified <parameter>data</parameter> into
+ the file named by <parameter>filename</parameter>. If <parameter>append</parameter> is
+ false, the file must not already exist. If <parameter>append</parameter> is true,
+ the file can already exist, and will be appended to if so.
+ Returns the number of bytes written.
+ </para>
+
+ <indexterm>
+ <primary>pg_file_sync</primary>
+ </indexterm>
+ <para>
+ <function>pg_file_sync</function> fsyncs the specified file or directory
+ named by <parameter>filename</parameter>. An error is thrown
+ on failure (e.g., the specified file is not present). Note that
+ <xref linkend="guc-data-sync-retry"/> has no effect on this function,
+ and therefore a PANIC-level error will not be raised even on failure to
+ flush database files.
+ </para>
+
+ <indexterm>
+ <primary>pg_file_rename</primary>
+ </indexterm>
+ <para>
+ <function>pg_file_rename</function> renames a file. If <parameter>archivename</parameter>
+ is omitted or NULL, it simply renames <parameter>oldname</parameter>
+ to <parameter>newname</parameter> (which must not already exist).
+ If <parameter>archivename</parameter> is provided, it first
+ renames <parameter>newname</parameter> to <parameter>archivename</parameter> (which must
+ not already exist), and then renames <parameter>oldname</parameter>
+ to <parameter>newname</parameter>. In event of failure of the second rename step,
+ it will try to rename <parameter>archivename</parameter> back
+ to <parameter>newname</parameter> before reporting the error.
+ Returns true on success, false if the source file(s) are not present or
+ not writable; other cases throw errors.
+ </para>
+
+ <indexterm>
+ <primary>pg_file_unlink</primary>
+ </indexterm>
+ <para>
+ <function>pg_file_unlink</function> removes the specified file.
+ Returns true on success, false if the specified file is not present
+ or the <function>unlink()</function> call fails; other cases throw errors.
+ </para>
+
+ <indexterm>
+ <primary>pg_logdir_ls</primary>
+ </indexterm>
+ <para>
+ <function>pg_logdir_ls</function> returns the start timestamps and path
+ names of all the log files in the <xref linkend="guc-log-directory"/>
+ directory. The <xref linkend="guc-log-filename"/> parameter must have its
+ default setting (<literal>postgresql-%Y-%m-%d_%H%M%S.log</literal>) to use this
+ function.
+ </para>
+
+</sect1>