<!-- doc/src/sgml/config.sgml -->

<sect1 id="runtime-misc">
  <title>Misc Configuration Parameters</title>

  <variablelist>

    <varlistentry id="guc-relcache-expire" xreflabel="relcache_expire">
      <term><varname>relcache_expire</varname> (<type>integer</type>)
        <indexterm>
          <primary><varname>relcache_expire</varname> configuration parameter</primary>
        </indexterm>
      </term>
      <listitem>

        <para>
          Specifies the relation cache expiration time in seconds.
          The relation cache is used for caching the query result of
          <productname>PostgreSQL</> system catalogs that is used by <productname>Pgpool-II
          </productname> to get various informations including the table
          structures and to check table types(e.g. To check if the referred
          table is a temporary table or not). The cache is maintained in
          the local memory space of <productname>Pgpool-II</productname>
          child process and its lifetime is same as of the child process.
          So If the table is modified using <command>ALTER TABLE</command>
          or some other means, the relcache becomes inconsistent.
          For this purpose, <varname>relcache_expire</varname> controls
          the life time of the cache.
          Default is 0, which means the cache never expires.
        </para>

        <para>
          This parameter can only be set at server start.
        </para>

      </listitem>
    </varlistentry>

    <varlistentry id="guc-relcache-size" xreflabel="relcache_size">
      <term><varname>relcache_size</varname> (<type>integer</type>)
        <indexterm>
          <primary><varname>relcache_size</varname> configuration parameter</primary>
        </indexterm>
      </term>
      <listitem>

        <para>
          Specifies the number of relcache entries.
          Default is 256.
        </para>
        <note>
          <para>
            If the below message frequently appears in the
            <productname>Pgpool-II</productname> log, you may need to
            increase the <varname>relcache_size</varname> for better performance.
            <programlisting>
"pool_search_relcache: cache replacement happened"
            </programlisting>
          </para>
        </note>
        <para>
          This parameter can only be set at server start.
        </para>

      </listitem>
    </varlistentry>

    <varlistentry id="guc-check-temp-table" xreflabel="check_temp_table">
      <term><varname>check_temp_table</varname> (<type>boolean</type>)
        <indexterm>
          <primary><varname>check_temp_table</varname> configuration parameter</primary>
        </indexterm>
      </term>
      <listitem>

        <para>
          Setting to on, enables the temporary table check in the <acronym>SELECT</acronym>
          statements. To check the temporary table <productname>Pgpool-II</productname>
          queries the system catalog of primary/master <productname>PostgreSQL</> backend, which increases
          the load on the primary/master server.
          If you are absolutely sure that your system never uses temporary tables, then
          you can safely turn off the <varname>check_temp_table</varname>.
          Default is on.
        </para>

        <para>
          This parameter can be changed by reloading the <productname>Pgpool-II</> configurations.
					You can also use <xref linkend="SQL-PGPOOL-SET"> command to alter the value of
					this parameter for a current session.
        </para>

      </listitem>
    </varlistentry>

    <varlistentry id="guc-check-unlogged-table" xreflabel="check_unlogged_table">
      <term><varname>check_unlogged_table</varname> (<type>boolean</type>)
        <indexterm>
          <primary><varname>check_unlogged_table</varname> configuration parameter</primary>
        </indexterm>
      </term>
      <listitem>

        <para>
          Setting to on, enables the unlogged table check in the <acronym>SELECT</acronym>
          statements. To check the unlogged table <productname>Pgpool-II</productname>
          queries the system catalog of primary/master <productname>PostgreSQL</> backend which increases
          the load on the primary/master server.
          If you are absolutely sure that your system never uses the unlogged tables
          (for example, you are using 9.0 or earlier version of <productname>PostgreSQL</>) then you
          can safely turn off the <varname>check_unlogged_table</varname>.
          Default is on.
        </para>

        <para>
          This parameter can be changed by reloading the <productname>Pgpool-II</> configurations.
					You can also use <xref linkend="SQL-PGPOOL-SET"> command to alter the value of
					this parameter for a current session.
        </para>

      </listitem>
    </varlistentry>

    <varlistentry id="guc-pid-file-name" xreflabel="pid_file_name">
      <term><varname>pid_file_name</varname> (<type>string</type>)
        <indexterm>
          <primary><varname>pid_file_name</varname> configuration parameter</primary>
        </indexterm>
      </term>
      <listitem>

        <para>
          Specifies the full path to a file to store the <productname>Pgpool-II
          </productname> process id.
          The pid_file_name path can be specified as relative to the
          location of pgpool.conf file or as an absolute path
          Default is <literal>"/var/run/pgpool/pgpool.pid"</literal>.
        </para>

        <para>
          This parameter can only be set at server start.
        </para>

      </listitem>
    </varlistentry>

    <varlistentry id="guc-logdir" xreflabel="logdir">
      <term><varname>logdir</varname> (<type>string</type>)
        <indexterm>
          <primary><varname>logdir</varname> configuration parameter</primary>
        </indexterm>
      </term>
      <listitem>

        <para>
          Specifies the full path to a directory to store the <literal>pool_status</literal>.
          Default is <literal>"/tmp"</literal>.
        </para>

        <para>
          This parameter can only be set at server start.
        </para>

      </listitem>
    </varlistentry>

  </variablelist>
</sect1>
