Add restrictions.
authorTatsuo Ishii <ishii at sraoss.co.jp>
Tue, 17 Aug 2010 05:33:20 +0000 (05:33 +0000)
committerTatsuo Ishii <ishii at sraoss.co.jp>
Tue, 17 Aug 2010 05:33:20 +0000 (05:33 +0000)
doc/pgpool-en.html
doc/pgpool-ja.html

index ea91a3aecea099ecdf95ce4c5b6216cfe0e94341..521102e5b756300a721769299ccf98adb1412d6b 100644 (file)
@@ -7,7 +7,7 @@
 </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">
@@ -1147,7 +1147,7 @@ It can be changed on service.
   <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
@@ -2249,13 +2249,35 @@ Stop the DB node which suppposed to have wrong data and do online recovery.
           </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
@@ -2282,6 +2304,13 @@ CREATE TABLE rel1(
   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(
index 9c955d1b946dfffaa05ed50ca8273db5cb118ae9..fa3ec35502205a798b5fad671026ebd485068b29 100644 (file)
@@ -8,7 +8,7 @@
 <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">
@@ -2728,6 +2728,27 @@ pool_hba.conf\e$B$K$D$$$F$O!"\e(B<a href="#hba">\e$B%/%i%$%"%s%HG'>Z\e(B(HBA)\e$B$N$?
 </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
@@ -2751,6 +2772,13 @@ CREATE TABLE rel1(
 )
 </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(
@@ -2812,7 +2840,7 @@ DB \e$B$N%5!<%P%(%s%3!<%G%#%s%0$r0lCW$5$;$k$h$&$K$7$F$/$@$5$$!#\e(B
 </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>
@@ -3707,6 +3735,8 @@ pgpool-II\e$B$O4pK\E*$K$O\e(Bmaster/slave mode\e$B$H$7$FF0:n$7$^$9$,!"$=$N:]$K\e(B "
 
  <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)