Re: Skipping logical replication transactions on subscriber side

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Skipping logical replication transactions on subscriber side
Дата
Msg-id 3357515.1655908760@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: Skipping logical replication transactions on subscriber side  (Robert Haas <robertmhaas@gmail.com>)
Ответы Re: Skipping logical replication transactions on subscriber side  (Robert Haas <robertmhaas@gmail.com>)
Re: Skipping logical replication transactions on subscriber side  (Noah Misch <noah@leadboat.com>)
Список pgsql-hackers
[ sorry for not having tracked this thread more closely ... ]

Robert Haas <robertmhaas@gmail.com> writes:
> Regarding (1), it is my opinion that the only real value of typalign
> is for system catalogs, and specifically that it lets you put the
> fields in an order that is aesthetically pleasing rather than worrying
> about alignment considerations. After all, if we just ordered the
> fields by descending alignment requirement, we could get rid of
> typalign altogether (at least, if we didn't care about backward
> compatibility). User tables would get smaller because we'd get rid of
> alignment padding, and I don't think we'd see much impact on
> performance because, for user tables, we copy the values into a datum
> array before doing anything interesting with them. So (1) seems to me
> to be conceding that typalign is unfit for the only purpose it has.

That's a fundamental misreading of the situation.  typalign is essential
on alignment-picky architectures, else you will get a SIGBUS fault
when trying to fetch a multibyte value (whether it's just going to get
stored into a Datum array is not very relevant here).

It appears that what we've got on AIX is that typalign 'd' overstates the
actual alignment requirement for 'double', which is safe from the SIGBUS
angle.  However, it is a problem for our usage with system catalogs,
where our C struct declarations may not line up with the way that a
tuple is constructed by the tuple assembly routines.

I concur that Noah's description of #2 is not an accurate statement
of the rules we'd have to impose to be sure that the C structs line up
with the actual tuple layouts.  I don't think we want rules exactly,
what we need is mechanical verification that the field orderings in
use are safe.  The last time I looked at this thread, what was being
discussed was (a) re-ordering pg_subscription's columns and (b)
adding some kind of regression test to verify that all catalogs meet
the expectation of 'd'-aligned fields not needing alignment padding
that an AIX compiler might choose not to insert.  That still seems
like the most plausible answer to me.  I don't especially want to
invent an additional typalign code that we could only test on legacy
platforms.

            regards, tom lane



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Robert Haas
Дата:
Сообщение: Re: [BUG] Panic due to incorrect missingContrecPtr after promotion
Следующее
От: Tom Lane
Дата:
Сообщение: Re: SYSTEM_USER reserved word implementation