Re: PartitionKeyData->partattrs, refactor some 0 to InvalidAttrNumber

Поиск
Список
Период
Сортировка
От jian he
Тема Re: PartitionKeyData->partattrs, refactor some 0 to InvalidAttrNumber
Дата
Msg-id CACJufxHSSt8F9=0g9UpX=SWcURz889F5qqeQJmseaN5Hj9X+Jg@mail.gmail.com
обсуждение исходный текст
Ответ на Re: PartitionKeyData->partattrs, refactor some 0 to InvalidAttrNumber  (Bertrand Drouvot <bertranddrouvot.pg@gmail.com>)
Список pgsql-hackers
On Sat, Nov 15, 2025 at 12:59 AM Bertrand Drouvot
<bertranddrouvot.pg@gmail.com> wrote:
>
> Hi,
>
> On Fri, Nov 14, 2025 at 11:47:35PM +0800, jian he wrote:
> > hi.
> >
> > if PartitionKeyData->partattrs is 0, then it means that partition key is
> > expression, else it's column reference.
> >
> > we can change from
> > if (key->partattrs[i] == 0)
> > to
>
> yes, I think that makes sense to not compare an AttrNumber type to 0, but...
>
> > if (key->partattrs[i] == InvalidAttrNumber)
>
> I think that we should make use of AttributeNumberIsValid() instead. Same
> spirit as we've done in a2b02293bc6.
>
hi.

AttributeNumberIsValid makes more sense.
Attached changes on pg_partitioned_table, pg_index are based on
AttributeNumberIsValid.


> FWIW, I'm looking at the Oid/OidIsValid() cases currently (writing a coccinelle
> script).
>
> I can look at the AttrNumber/AttributeNumberIsValid() cases after (that should be
> as easy as changing Oid to AttrNumber and OidIsValid() to AttributeNumberIsValid()
> in the coccinelle script), unless you want to take care of the AttrNumber case?
>

Currently, I am only interested in pg_partitioned_table.partattrs,
pg_index.indkey.


--
jian
https://www.enterprisedb.com/

Вложения

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