Re: Fix SET EXPRESSION for virtual columns with whole-row dependencies
От
jian he
Тема
Re: Fix SET EXPRESSION for virtual columns with whole-row dependencies
Дата
Msg-id
CACJufxGxns84RGwn9ZtzuBMCjzEc1EHKcxx+cNPER_aY7iDySw@mail.gmail.com
Ответ на
Список
Дерево обсуждения
Fix SET EXPRESSION for virtual columns with whole-row dependencies Chao Li <li.evan.chao@gmail.com>
Re: Fix SET EXPRESSION for virtual columns with whole-row dependencies jian he <jian.universality@gmail.com>
Re: Fix SET EXPRESSION for virtual columns with whole-row dependencies Chao Li <li.evan.chao@gmail.com>
On Sat, Jun 13, 2026 at 2:02 PM Chao Li wrote: > > > On Jun 13, 2026, at 10:42, jian he wrote: > > > > On Wed, Jun 10, 2026 at 5:06 PM Chao Li wrote: > >> > >> > >> After reading the other implementation in [1], I realized that I had missed the partial-index case, so I added coverage for that. > >> > >> I am still sending an updated version of this patch because my implementation is different from the one in [1]. I would like people to compare the two approaches and decide which direction is better. > >> > > > > I tried your patch before but abandoned it due to many regression test failures. > > > > Thanks for looking. But I wonder which tests I missed? > > I ran “make check-world” locally and passed. The CI tests all passed on the CF: https://commitfest.postgresql.org/patch/6867/ > Apologies for the confusion. I meant that I actually tried the same idea earlier, but abandoned it after seeing many regression test failures. Your v2 patch passes all the regression tests because of the special handling added to the DEFAULT branch in RememberAllDependentForRebuilding. However, the point of my previous message was that I am worried this special handling below might not be bulletproof (if foundObject.classId is not TypeRelationId, then elog(ERROR) will be reached): /* * We don't expect any other sorts of objects to depend on a - * column. + * column. A whole-relation scan can find the relation's row + * type, which doesn't need rebuilding for SET EXPRESSION. */ + if (attnum == 0 && + foundObject.classId == TypeRelationId && + get_typ_typrelid(foundObject.objectId) == RelationGetRelid(rel)) + continue; +
В списке pgsql-hackers по дате отправления
От: Tatsuya Kawata
Дата: