Hi!
On Fri, Jan 26, 2024 at 9:00 AM Alexander Lakhin <exclusion@gmail.com> wrote:
>
> 23.01.2024 21:09, Andrey M. Borodin wrote:
> > PFA draft fixes for both this errors. Alexander, Michael, Jian, what do you think?
> >
> > I did not touch anything in first step - fix for original bug in this thread. However, I think that comments from
JianHe worth incorporating into the fix.
> >
>
> I''m confused by a NOTICE added, as it printed now even for cases, which
> worked before, for example:
> CREATE TABLE t(f1 text);
> CREATE INDEX idx ON t(f1);
> INSERT INTO t VALUES(repeat('1234567890', 1000));
> SELECT bt_index_check('idx', true);
> NOTICE: Index contain tuples that cannot fit into index page, if toasted with current toast policy
> bt_index_check
> ----------------
>
> (1 row)
Right, the patch number 0003 looks wrong to me. It uses
heap_compute_data_size() to compute the size of the future index
tuple. But heap_compute_data_size() doesn't apply any compression on
the attributes. I suggest instead we just need to have a version of
index_form_tuple() that reports an oversized tuple in a return value
rather than throwing the error.
BTW, 0001 and 0002 look good to me. I'm going to push them if no objections.
------
Regards,
Alexander Korotkov