[Pgpool-hackers] First try at rephrasing the documentation

Tatsuo Ishii ishii at sraoss.co.jp
Sun Dec 26 01:34:59 UTC 2010


I got some answers with help from Kitagawa.

>> I will try to answer your TODO items one by one following emals...
> 
> TODO : what does this refer to, there is no 3 in the array ?
> A: It referes to "row mode".
> 
> TODO : is that true ? It seems to me the JDBC driver starts a
> transaction only on first DDL query (in read committed mode at least).
> 
> A: Really? I do not observe what you said with
> postgresql-8.4-701.jdbc4.jar.
> 
> TODO: Are DDL queries accounted for in the load balancing algorithm ?
> A: Yes.
> 
> TODO: can a table be non-distributed and non-replicated, and still be
> used in parallel mode ?
> A: Not sure. will check.

A: No. In parallel mode, a table should be either distributed or
replicated.

> TODO: should we define 'pool' in this context ? I find it a bit confusing
> A: The reason why we use 'pool' is just for a historical reason...
> 
> TODO: Should be explained in more detail. I guess it's only for the
> 'rsync' method, not PITR…
> A: You are correct.
> 
> TODO: What is the point of 'flushing the sequences' ? Don't we trust
> WAL recovery ?
> A: PostgreSQL does not log sequence value whenever it counts
> up. Instead it logs 'discretely'. So just redoing from WAL, it's
> possible that slave loses upto 32 sequences. See
> src/backend/commands/sequence.c.
> 
> TODO: contradiction in the previous sentence md5 is supported by using
> "pool_passwd".
> A: You are correct.
> 
> TODO: what happens then ? Is it rejected ?
> A: No. Inconsistent values will be inserted.
> 
> TODO: I don't really get this one. Can somebody explain ?
> A: Me neither:-) Let me check...
> 
> <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 ?
> A: I don't know neither:-) Let me check...

Consider following example:

  =# SELECT * FROM t1 JOIN t2 USING(id);
   id |  t  |   t
  ----+-----+-------
    1 | 1st | first
  (1 row)

In the rewrite process "USING" is translated into "ON". So the
effective result is as follows:

  =# SELECT * FROM t1 JOIN t2 ON t1.id = t2.id;
   id |  t  | id |   t
  ----+-----+----+-------
    1 | 1st |  1 | first
  (1 row)

Notice that column "t" is duplicated.

> TODO: This following section may be completely false. I tried to
> understand the general meaning of the original text, and look into
> pgpool's code to understand.
> A: Let me check...
> --
> Tatsuo Ishii
> SRA OSS, Inc. Japan
> English: http://www.sraoss.co.jp/index_en.php
> Japanese: http://www.sraoss.co.jp


More information about the Pgpool-hackers mailing list