</head>
<!-- hhmts start -->
-Last modified: Thu Aug 12 10:02:46 JST 2010
+Last modified: Tue Aug 17 14:23:15 JST 2010
<!-- hhmts end -->
<body bgcolor="#ffffff">
<p>
You need to reload pgpool.conf if you change client_idle_limit_in_recovery.</p>
-<dt>lobj_lock_table
+<dt><a name="lobj_lock_table"></a>lobj_lock_table
<dd>
<p>
Specify table name used for large object replication control. If
</ul>
</p>
-<h2>Large object</h2>
+<h2>Large objects</h2>
<p>
-pgpool-II 2.3.2 or later supports large object replication. For this, you need to
-enable lobj_lock_table directive in pgpool.conf. Proper large object
+pgpool-II 2.3.2 or later supports large object replication if backend is PostgreSQL 8.1 or later.
+For this, you need to
+enable <a href="#lobj_lock_table">lobj_lock_table</a> directive in pgpool.conf. Large object
replication using backend function lo_import is not supported, however.
</p>
+<h2>Temporary tables in master/slave mode</h2>
+<p>
+Creating/inserting/updating/deleting temporary tables are always executed on master(primary).
+With pgpool-II 3.0 or later, SELECT to it is executed on master as well.
+However if the temporary table name is used as a literal in SELECT, there's no way to detect it, and the SELECT will be load balanced.
+That will cause "not found the table" or finding another table having same name.
+To avoid the problem, use /*NO LOAD BALANCE*/ SQL comment.
+</p>
+<p>
+<pre>
+Sample SELECT which causes a problem:
+SELECT 't1'::regclass::oid;
+</pre>
+</p>
+<p>
+psql's \d command uses literal table names.
+pgpool-II 3.0 or later checks if the SELECT includes access to system catalogs and
+such queries are always sent to master.
+Thus we avoid the problem.
+</p>
+
<h2>Functions, etc. In Replication Mode</h2>
<p>There is no guarantee that the data, which returns different values
d1 date DEFAULT CURRENT_DATE
)
</pre>
+<p>
+Please note that if the column type is not a temporal one, rewriting is
+not performed. Such example:
+<pre>
+foo bigint default (date_part('epoch'::text,('now'::text)::timestamp(3) with time zone) * (1000)::double precision)
+</pre>
+</p>
<li>Suppose we have following table:
<pre>
CREATE TABLE rel1(
<body>
<!-- hhmts start -->
-Last modified: Thu Aug 12 08:25:49 JST 2010
+Last modified: Tue Aug 17 14:20:50 JST 2010
<!-- hhmts end -->
<body bgcolor="#ffffff">
</ul>
</p>
+<h2>\e$B0l;~%F!<%V%k$N07$$\e(B</h2>
+<p>
+\e$B@)8BBP>]\e(B:\e$B%^%9%?!<%9%l!<%V%b!<%I\e(B
+</p>
+
+<p>
+\e$B0l;~%F!<%V%k$N:n@.!"99?7$O>o$K%^%9%?\e(B(primary)\e$B$G9T$J$o$l$^$9!#\e(B
+\e$B0l;~%F!<%V%k$N8!:w$b!"\e(Bpgpool-II 3.0\e$B0J9_$G$O!"%^%9%?$G9T$J$o$l$^$9!#\e(B
+\e$B$?$@$7!"J8;zNs$H$7$F0l;~%F!<%V%kL>$r\e(BSELECT\e$B$NCf$G;H$C$F$$$k>l9g$O0l;~%F!<%V%k$+$I$&$+$N3NG'$N$7$h$&$,$J$$$N$G!"Ii2YJ,;6$5$l$F$7$^$$!"$=$N0l;~%F!<%V%k$,8+$D$+$i$J$$$+!"$b$7$/$OF1$8L>A0$NJL$N%F!<%V%k$r8!:w$7$F$7$^$&$3$H$K$J$j$^$9!#\e(B
+\e$B$=$N$h$&$JLd$$9g$o$;$OHr$1$k$+!"\e(B/*NO LOADB ALNCE*/\e$B$N%3%a%s%H$rA^F~$7$F$/$@$5$$!#\e(B
+</p>
+<p>
+<pre>
+SELECT 't1'::regclass::oid;
+</pre>
+</p>
+<p>
+\e$B$A$J$_$K!"\e(Bpsql\e$B$N\e(B\d\e$B%3%^%s%I$N$h$&$K!"%7%9%F%`%+%?%m%0$rLd$$9g$o$;$kCf$GJ8;zNs$H$7$F$N%F!<%V%kL>$r;H$C$F$$$k>l9g$O!"\e(Bpgpool-II 3.0\e$B0J9_$G$O%^%9%?$G8!:w$,9T$J$o$l$k$N$G!"LdBj$K$J$j$^$;$s!#\e(B
+\e$B$J$<$J$i!"%7%9%F%`%+%?%m%0$X$N8!:w$O>o$K%^%9%?$G9T$J$o$l$k$+$i$G$9!#\e(B
+</p>
+
<h2>\e$B%l%W%j%1!<%7%g%s%b!<%I$GCm0U$,I,MW$J4X?t$J$I\e(B</h2>
<p>
pgpool-II\e$B$G$OF1$8Ld$$9g$o$;$rAw$C$F$b0[$J$k7k\e(B
)
</pre>
\e$B$N$h$&$J$b$N$b8=:_$N%?%$%`%9%?%s%W$H$7$F=q$-49$($r9T$$$^$9!#\e(B
+\e$B$J$*!"Ns$NDj5A$,!"\e(B
+<pre>
+foo bigint default (date_part('epoch'::text,('now'::text)::timestamp(3) with time zone) * (1000)::double precision)
+</pre>
+\e$B$N$h$&$K!"%G!<%?7?$,F|IU!";~9o0J30$K$J$C$F$$$k>l9g$O=q$-49$($O9T$J$$$^$;\e(B
+\e$B$s!#\e(B
+
<li>INSERT ... SELECT\e$B$G$O!"Ns$N\e(BDEFAULT\e$B$KBP$9$k=q$-49$($r9T$$$^$;$s!#Nc$($P!"\e(B
<pre>
CREATE TABLE rel1(
</p>
<p>
\e$B$J$*!"\e(Bpsql \e$B$r;H$C$F\e(B pgpool \e$B$K@\B3$7$?>l9g$O!"\e(Bpsql \e$BFbIt$G%^%k%A%9%F!<%H\e(B
-\e$B%a%s%H$rJ,2r$7!"\e(B1 \e$B$D$:$DAw?.$7$^$9!#\e(B
+\e$B%a%s%H$rJ,2r$7!"\e(B1 \e$B$D$:$DAw?.$9$k$N$G!"<B:]$K$OLdBj$K$J$j$^$;$s!#\e(B
</p>
<h3>\e$B3HD%Ld$$9g$o$;%W%m%H%3%k\e(B</h3>
<li>\e$B4X?t8F$S=P$7$rH<$&\e(BSELECT\e$B$r@)8f$9$k@_Dj9`L\\e(Bwhite_function_list\e$B$H\e(Bback_function_list\e$B$,DI2C$5$l$^$7$?\e(B(Tatsuo)
+ <li>\e$B%^%9%?!<%9%l!<%V%b!<%I$K$*$$$F!"%7%9%F%`%+%?%m%0$r8!:w$9$k\e(BSELECT\e$B$O!"@09g@-$rJ]$D$?$a$K>o$K%^%9%?!<\e(B(primary)\e$B$G<B9T$5$l$k$h$&$K$J$j$^$7$?\e(B(Tatsuo)
+
<li>\e$B%^%9%?!<%9%l!<%V%b!<%I$K$*$$$F!"0l;~%F!<%V%k$r8!:w$9$k\e(BSELECT\e$B$O!"@09g@-$rJ]$D$?$a$K>o$K%^%9%?!<\e(B(primary)\e$B$G<B9T$5$l$k$h$&$K$J$j$^$7$?\e(B(Tatsuo)
<li>\e$B%^%9%?%9%l!<%V%b!<%I$G!"L@<(E*$J%H%i%s%6%/%7%g%sFb$G<B9T$5$l$J$$99?7%/%(%j$K$*$$$F!"<+F0E*$K%H%i%s%6%/%7%g%s$r3+;O$9$k$3$H$r;_$a$^$7$?!#$3$l$OITI,MW$G$7$?!#$3$l$K$h$C$F!"%Q%U%)!<%^%s%9$,8~>e$7$F$$$^$9\e(B(Tatsuo)