Re: Introduce new multi insert Table AM and improve performance of various SQL commands with it for Heap AM
От | Bharath Rupireddy |
---|---|
Тема | Re: Introduce new multi insert Table AM and improve performance of various SQL commands with it for Heap AM |
Дата | |
Msg-id | CALj2ACUBwVu_1LOWF07Acv+dWx5NO7uTqAPMNwqi5WpJRw69_Q@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: Introduce new multi insert Table AM and improve performance of various SQL commands with it for Heap AM (Jeff Davis <pgsql@j-davis.com>) |
Ответы |
Re: Introduce new multi insert Table AM and improve performance of various SQL commands with it for Heap AM
|
Список | pgsql-hackers |
On Wed, Aug 28, 2024 at 3:14 AM Jeff Davis <pgsql@j-davis.com> wrote: > > On Mon, 2024-08-26 at 14:18 -0700, Jeff Davis wrote: > > 0001 implementation issues: > > > > * We need default implementations for AMs that don't implement the > > new > > APIs, so that the AM will still function even if it only defines the > > single-tuple APIs. If we need to make use of the AM's multi_insert > > method (I'm not sure we do), then the default methods would need to > > handle that as well. (I thought a previous version had these default > > implementations -- is there a reason they were removed?) > > On second thought, it would be easier to just have the caller check > whether the AM supports the multi-insert path; and if not, fall back to > the single-tuple path. The single-tuple path is needed anyway for cases > like before-row triggers. Up until v21, the default implementation existed, see https://www.postgresql.org/message-id/CALj2ACX90L5Mb5Vv%3DjsvhOdZ8BVsfpZf-CdCGhtm2N%2BbGUCSjg%40mail.gmail.com. I then removed it in v22 to keep the code simple. IMO, every caller branching out in the code like if (rel->rd_tableam-> tuple_modify_buffer_insert != NULL) then multi insert; else single insert; doesn't look good. IMO, the default implementation approach keeps things simple which eventually can be removed in *near* future. Thoughts? One change in the default implementation I would do from that of v21 is to assign the default AMs in GetTableAmRoutine() itself to avoid if .. else if .. else in the table_modify_XXX(). -- Bharath Rupireddy PostgreSQL Contributors Team RDS Open Source Databases Amazon Web Services: https://aws.amazon.com
В списке pgsql-hackers по дате отправления: