Andrew Sullivan ajs
Wed Dec 13 09:31:41 PST 2006
On Wed, Dec 13, 2006 at 06:06:34PM +0100, hubert depesz lubaczewski wrote:
> i also dont mean any harm or insult to anybody here - if you find the topic
> offensive, please just skip it. i'm asking out of pure curiosite - why it
> works, and what (how) might break.

And what I keep saying is that it's _already broken_.  I'm not taking
it personally (people who know me can probably confirm that there are
very few things I take personally).

So the reason this _happens_ to work sometimes is that the memory
area that the additional data in the altered table is getting written
into happens not to have anything in it.  So you get the data that
went into your altered table.

What _used_ to happen is that, if the bit of memory that would
correspond to that data had some other Postgres-shaped data in it,
you'd get that instead.  This was a simple memory-bounds problem. 
I'm not looking at the code right now, but I think what happens now
is that the trigger bails out if it discovers that it can't write its
data safely (so the bound of the memory allocated is not enough for
the data you have).  Since your additional data might fit in the size
the trigger has allocated, you might get lucky.  But if your row gets
wider, it'll stop working then.

What Jan _refused_ to do was check to see, every time, that the
trigger had an accurate picture of what it was replicating, precisely
because that would be slow and it would be the result of operators
abusing the system.

If you really want to understand this, you need to look at the
trigger code.  

> their software behaves in a deterministic way. which means - either: what i
> do is right, or i just haven't stumbled on particular sequence of actions
> which would break the thing. if so - i would like to know the sequence -

The second thing.  It is, as I said, deterministic, but a function of
a large number of variables.

A

-- 
Andrew Sullivan  | ajs at crankycanuck.ca
A certain description of men are for getting out of debt, yet are
against all taxes for raising money to pay it off.
		--Alexander Hamilton



More information about the Slony1-general mailing list