Thread: Re: Simplify the logic a bit (src/bin/scripts/reindexdb.c)
On 2025-Feb-14, Ranier Vilela wrote: > Attached is the prototype version v1. > What do you think? I think this is still a bit confused. The new function's comment says "prepare the list of tables to ..." but what it really receives is a list of _indexes_ (as evidenced by the fact that they're compared to pg_index.indexrelid). So on input the user_list is an index list, and on output it has been changed into a list of tables, and the list of indexes is the function's return value? That seems quite weird. I propose to change the API of this new function thus: static void get_parallel_tabidx_list(PGconn *conn, SimpleStringList *index_list, SimpleStringList *table_list, bool echo); where index_list is inout and the table_list is just an output argument. I would also remove the 'type' argument, because I don't see a need to keep it. -- Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/ "After a quick R of TFM, all I can say is HOLY CR** THAT IS COOL! PostgreSQL was amazing when I first started using it at 7.2, and I'm continually astounded by learning new features and techniques made available by the continuing work of the development team." Berend Tober, http://archives.postgresql.org/pgsql-hackers/2007-08/msg01009.php
Hi Álvaro.
Em qui., 27 de fev. de 2025 às 16:50, Álvaro Herrera <alvherre@alvh.no-ip.org> escreveu:
On 2025-Feb-14, Ranier Vilela wrote:
> Attached is the prototype version v1.
> What do you think?
I think this is still a bit confused. The new function's comment says
"prepare the list of tables to ..." but what it really receives is a
list of _indexes_ (as evidenced by the fact that they're compared to
pg_index.indexrelid). So on input the user_list is an index list, and
on output it has been changed into a list of tables, and the list of
indexes is the function's return value? That seems quite weird.
Yeah, I think that is confusing.
I
propose to change the API of this new function thus:
static void
get_parallel_tabidx_list(PGconn *conn,
SimpleStringList *index_list,
SimpleStringList *table_list,
bool echo);
where index_list is inout and the table_list is just an output argument.
Ok.
I would also remove the 'type' argument, because I don't see a need to
keep it.
Ok.
Thanks for your guidance.
v2 attached, please comment if you have any further objections.
best regards,
Ranier Vilela