Re: ALTER TABLE ... SET STORAGE does not propagate to indexes

Поиск
Список
Период
Сортировка
От Peter Eisentraut
Тема Re: ALTER TABLE ... SET STORAGE does not propagate to indexes
Дата
Msg-id e45a7385-2314-b76c-f2e2-5577f209eeea@2ndquadrant.com
обсуждение исходный текст
Ответ на Re: ALTER TABLE ... SET STORAGE does not propagate to indexes  (Kuntal Ghosh <kuntalghosh.2007@gmail.com>)
Ответы Re: ALTER TABLE ... SET STORAGE does not propagate to indexes  (Kuntal Ghosh <kuntalghosh.2007@gmail.com>)
Re: ALTER TABLE ... SET STORAGE does not propagate to indexes  (Alvaro Herrera <alvherre@2ndquadrant.com>)
Re: ALTER TABLE ... SET STORAGE does not propagate to indexes  (Adam Brusselback <adambrusselback@gmail.com>)
Список pgsql-hackers
On 2020-02-24 12:21, Kuntal Ghosh wrote:
> I've reproduced the issue on head. And, the patch seems to solve the
> problem. The patch looks good to me. But, I've a small doubt regarding
> the changes in test_decoding regression file.
> 
> diff --git a/contrib/test_decoding/sql/toast.sql
> b/contrib/test_decoding/sql/toast.sql
> ..
> -INSERT INTO toasted_several(toasted_key) VALUES(repeat('9876543210', 10000));
> -SELECT pg_column_size(toasted_key) > 2^16 FROM toasted_several;
> +INSERT INTO toasted_several(toasted_key) VALUES(repeat('9876543210', 269));
> +SELECT pg_column_size(toasted_key) > 2^11 FROM toasted_several;
> 
> This actually tests whether we can decode "old" tuples bigger than the
> max heap tuple size correctly which is around 8KB. But, the above
> changes will make the tuple size around 3KB. So, it'll not be able to
> test that particular scenario.Thoughts?

OK, this is interesting.  The details of this are somewhat unfamiliar to 
me, but it appears that due to TOAST_INDEX_HACK in indextuple.c, an 
index tuple cannot be larger than 8191 bytes when untoasted (but not 
uncompressed).

What the test case above is testing is a situation where the heap tuple 
is stored toasted uncompressed (storage external) but the index tuple is 
not (probably compressed inline).  This is exactly the situation that I 
was contending should not be possible, because it cannot be dumped or 
restored.

An alternative would be that we make this situation fully supported. 
Then we'd probably need at least ALTER INDEX ... ALTER COLUMN ... SET 
STORAGE, and some pg_dump support.

Thoughts?

-- 
Peter Eisentraut              http://www.2ndQuadrant.com/
PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services



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

Предыдущее
От: Antonin Houska
Дата:
Сообщение: RS_EPHEMERAL vs RS_TEMPORARY
Следующее
От: "imai.yoshikazu@fujitsu.com"
Дата:
Сообщение: RE: [Proposal] Add accumulated statistics for wait event