> I proofreaded Marc's rewrite. It's mostly really good, but there are a
> few mistakes. Patch attached fixes them. The whole new file is also
> attached (with Marc's patch and mine).
> 
> So I think all is need is to put the last bit of informations Tatsuo
> gave you, to have a complete file.
> 
> Thanks for your work.
Here is another patch (version 3) to be applied on top of this one.

There are 3 items left (missing answers):


In the replication mode or master/slave mode, trust, clear text
      password, and pam methods are supported.
           clear text password is not supported. TODO: contradiction in the 
previous sentence




<code>JOIN</code>s like above will be executed on each backend, and
then merged with the results returned by each backend. Views and Rules
that join across the nodes cannot be created.
However, to JOIN tables that access data only in the same node, a VIEW can be 
made.
This VIEW is registered in the pgpool_catalog.dist_def table. A col_name and
a dist_def_func will have to be registered too. These are used when an insert 
is
performed on the view.
</p> TODO: I don't really get this one



The column names and types are needed when a query is analyzed in parallel 
mode.
Therefore, when an expression or a function is used in the TARGETLIST of
a subquery, the alias and type (through a cast) are needed. Please note that
if no cast is provided in an expression or a function, the text type will be
chosen as a default. For count(), bigint type is assumed, and for sum(),
numeric. For min()/max(), if the argument is a date type, returned datatype is 
date,
else, it is assumed numeric. avg() is processed as sum/count.
TODO : which one ? numeric or bigint ?

*** pgpool-en.html.orig	2011-01-04 11:05:05.971496809 +0100
--- pgpool-en.html	2011-01-04 11:20:31.770829382 +0100
***************
*** 1744,1754 ****
  
  <h4><p>Registering a Replication Rule</p></h4>
  <p>
! Tables that are not distributed can be replicated. Once a query joins a
  distributed table with another table, pgpool gets the replication information
! from the pgpool_catalog.replicate_def table.
  </p>
- TODO: can a table be non-distributed and non-replicated ?
  
  <pre>
  CREATE TABLE pgpool_catalog.replicate_def(
--- 1744,1754 ----
  
  <h4><p>Registering a Replication Rule</p></h4>
  <p>
! Tables that are not distributed have to be replicated. When a query joins a
  distributed table with another table, pgpool gets the replication information
! from the pgpool_catalog.replicate_def table. A table has to be either replicated
! or distributed.
  </p>
  
  <pre>
  CREATE TABLE pgpool_catalog.replicate_def(
***************
*** 2331,2337 ****
  </p>
  
  <p>
! TODO: What is the point of 'flushing the sequences' ? Don't we trust WAL recovery ?
  
  The loop in the script forces PostgreSQL to emit current value of all sequences
  in all databases in the master node to the transaction log so that it is 
--- 2331,2338 ----
  </p>
  
  <p>
! This flushing of sequences is only useful in replication mode: in this case, sequences have to have the
! same starting point on all nodes. It's not useful in master-slave mode. 
  
  The loop in the script forces PostgreSQL to emit current value of all sequences
  in all databases in the master node to the transaction log so that it is 
***************
*** 2818,2825 ****
  <h3>USING CLAUSE (for parallel mode)</h3>
  
  <p>The USING CLAUSE is converted to an ON CLAUSE by the query rewrite process.
! Therefore, when "*" is used at target list, the row of the same column name appears.</p>
! TODO: What does it mean ?
  
  <h3>Multi-byte Characters (for all modes)</h3>
  
--- 2819,2849 ----
  <h3>USING CLAUSE (for parallel mode)</h3>
  
  <p>The USING CLAUSE is converted to an ON CLAUSE by the query rewrite process.
! Therefore, when "*" is used at target list, the joined column(s) appear twice.</p>
! <p>
! Here is an example:
! </p>
! <p><pre>
!   =# SELECT * FROM t1 JOIN t2 USING(id);
!    id |  t  |   t
!   ----+-----+-------
!     1 | 1st | first
!   (1 row)
! </pre></p>
! <p>
! In the rewrite process "USING" is translated into "ON". So the
! effective result is as follows:
! </p><p><pre>
!   =# SELECT * FROM t1 JOIN t2 ON t1.id = t2.id;
!    id |  t  | id |   t
!   ----+-----+----+-------
!     1 | 1st |  1 | first
!   (1 row)
! </pre>
! </p>
! <p>
! Notice that column "t" is duplicated.
! </p>
  
  <h3>Multi-byte Characters (for all modes)</h3>
  
***************
*** 3207,3214 ****
  </pre>
  </p>
  
- TODO: This section may be completely false. I tried to understand the general
- meaning of the original text, and look into pgpool's code to understand.
  <h1>Inside information<a name="internal"></a></h1>
  <p>
  pgpool-II version 2.0.x brings extensive modifications, compared with the version 1.x 
--- 3231,3236 ----
_______________________________________________
Pgpool-hackers mailing list
[email protected]
http://pgfoundry.org/mailman/listinfo/pgpool-hackers

Reply via email to