Tuple count used while costing MergeAppend and that for an append rel

Поиск
Список
Период
Сортировка
От Ashutosh Bapat
Тема Tuple count used while costing MergeAppend and that for an append rel
Дата
Msg-id CAFjFpRek+cLCnTo24youuGtsq4zRphEB8EUUPjDxZjnL4n4HYQ@mail.gmail.com
обсуждение исходный текст
Ответы Re: Tuple count used while costing MergeAppend and that for an append rel
Список pgsql-hackers
Hi,
In create_merge_append_path() we have following code
1331
1332     /* Now we can compute total costs of the MergeAppend */
1333     cost_merge_append(&pathnode->path, root,
1334                       pathkeys, list_length(subpaths),
1335                       input_startup_cost, input_total_cost,
1336                       rel->tuples);
1337

The last arguemnt to cost_merge_append() is described as
'tuples' is the number of tuples in all the streams

For an append relation, set_append_rel_size() sets rel->tuples to the
sum of rows output by each child i.e. sum of rel->rows from each
child.
1091         rel->rows = parent_rows;
1092         rel->reltarget->width = rint(parent_size / parent_rows);
1093         for (i = 0; i < nattrs; i++)
1094             rel->attr_widths[i] = rint(parent_attrsizes[i] / parent_rows);
1095
1096         /*
1097          * Set "raw tuples" count equal to "rows" for the appendrel; needed
1098          * because some places assume rel->tuples is valid for any baserel.
1099          */
1100         rel->tuples = parent_rows;

AFAIU, There's difference in the tuples and rows members of
RelOptInfo. While tuples gives the estimate of number of tuples per
pg_class, rows gives the number of rows output by that relation. From
that perspective rel->tuples should be set of the sum of
child_rel->tuples from each of the children. If we do that the last
argument to cost_merge_append() should change from rel->tuples to
rel->rows.

Does that make sense? Attached patch makes those changes.

--
Best Wishes,
Ashutosh Bapat
EnterpriseDB Corporation
The Postgres Database Company

Вложения

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

Предыдущее
От: Amit Kapila
Дата:
Сообщение: Re: Hash Indexes
Следующее
От: Robert Haas
Дата:
Сообщение: Re: Performance degradation in Bitmapscan (commit 75ae538bc3168bf44475240d4e0487ee2f3bb376)