On 6/30/2006 11:55 AM, Tom Lane wrote:

Jan Wieck <[EMAIL PROTECTED]> writes:
On 6/30/2006 11:17 AM, Marko Kreen wrote:
If the xxid-s come from different DB-s, then there can still be problems.

How so? They are allways part of a multi-key index having the originating node ID first.

Really?

create table @[EMAIL PROTECTED] (
        log_origin                      int4,
        log_xid                         @[EMAIL PROTECTED],
        log_tableid                     int4,
        log_actionseq           int8,
        log_cmdtype                     char,
        log_cmddata                     text
);
create index sl_log_1_idx1 on @[EMAIL PROTECTED]
        (log_origin, log_xid @[EMAIL PROTECTED], log_actionseq);

create index sl_log_1_idx2 on @[EMAIL PROTECTED]
        (log_xid @[EMAIL PROTECTED]);

You're right ... forgot about that one. And yes, there can be transactions originating from multiple origins (masters) in the same log. The thing is, the index is only there because in a single origin situation (most installations are), the log_origin is allways the same. The optimizer therefore sometimes didn't think using an index at all would be good.

However, transactions from different origins are NEVER selected together and it wouldn't make sense to compare their xid's anyway. So the index might return index tuples for rows from another origin, but the following qualifications against the log_origin in the heap tuple will filter them out.


Jan

--
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== [EMAIL PROTECTED] #

---------------------------(end of broadcast)---------------------------
TIP 5: don't forget to increase your free space map settings

Reply via email to