Re: tablecmds.c/MergeAttributes() cleanup

Поиск
Список
Период
Сортировка
От Robert Haas
Тема Re: tablecmds.c/MergeAttributes() cleanup
Дата
Msg-id CA+TgmoY+XfFP8kShOAxgcEaMG3pbJj188ZPoz7GtwrQA5XgDnw@mail.gmail.com
обсуждение исходный текст
Ответ на Re: tablecmds.c/MergeAttributes() cleanup  (Alvaro Herrera <alvherre@alvh.no-ip.org>)
Ответы Re: tablecmds.c/MergeAttributes() cleanup  (Tom Lane <tgl@sss.pgh.pa.us>)
Re: tablecmds.c/MergeAttributes() cleanup  (Robert Haas <robertmhaas@gmail.com>)
Список pgsql-hackers
On Fri, Jan 12, 2024 at 5:32 AM Alvaro Herrera <alvherre@alvh.no-ip.org> wrote:
> On 2024-Jan-11, Alvaro Herrera wrote:
> > If you look closely at InsertPgAttributeTuples and accompanying code, it
> > all looks a bit archaic.  They seem to be treating TupleDesc as a
> > glorified array of Form_pg_attribute elements in a convenient packaging.
> > It's probably cleaner to change these APIs so that they deal with a
> > Form_pg_attribute array, and not TupleDesc anymore.  But we can hack on
> > that some other day.
>
> In addition, it also occurs to me now that maybe it would make sense to
> change the TupleDesc implementation to use a List of Form_pg_attribute
> instead of an array, and do away with ->natts.  This would let us change
> all "for ( ... natts ...)" loops into foreach_ptr() loops ...  there are
> only five hundred of them or so --rolls eyes--.

Open-coding stuff like this can easily work out to a loss, and I
personally think we're overly dependent on List. It's not a
particularly good abstraction, IMHO, and if we do a lot of work to
start using it everywhere because a list is really an array, then what
happens when somebody decides that a list really ought to be a
skip-list, or a hash table, or some other crazy thing?

--
Robert Haas
EDB: http://www.enterprisedb.com



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

Предыдущее
От: Michael Banck
Дата:
Сообщение: [PATCH] New predefined role pg_manage_extensions
Следующее
От: Heikki Linnakangas
Дата:
Сообщение: Re: Stack overflow issue