public inbox for [email protected]  
help / color / mirror / Atom feed
From: Michael Paquier <[email protected]>
To: Sutou Kouhei <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Subject: Re: Make COPY format extendable: Extract COPY TO format implementations
Date: Wed, 5 Feb 2025 14:10:15 +0900
Message-ID: <[email protected]> (raw)
In-Reply-To: <[email protected]>
References: <CAD21AoBpWFU4k-_bwrTq0AkFSAdwQqhAsSW188STmu9HxLJ0nQ@mail.gmail.com>
	<[email protected]>
	<CAD21AoA3KMddnjxY1hxth3f4f1wo8a8i2icgK6GEKqXNR_e6jA@mail.gmail.com>
	<[email protected]>

On Sat, Feb 01, 2025 at 07:12:01PM +0900, Sutou Kouhei wrote:
> For the propose, copyapi.h should not include
> copy{to,from}_internal.h. If we do it, copyto.c includes
> CopyFromState and copyfrom*.c include CopyToState.
> 
> What do you think about the following change? Note that
> extensions must include copy{to,from}_internal.h explicitly
> in addition to copyapi.h.

I was just looking at bit at this series of patch labelled with v31,
to see what is happening here.

In 0001, we have that:

+	/* format-specific routines */
+	const CopyToRoutine *routine;
[...]
-	CopySendEndOfRow(cstate);
+	cstate->routine->CopyToOneRow(cstate, slot);

Having a callback where the copy state is processed once per row is
neat in terms of design for the callbacks and what extensions can do,
and this is much better than what 2889fd23be5 has attempted (later
reverted in 1aa8324b81fa) because we don't do indirect function calls
for each attribute.  Still, I have a question here: what happens for a
COPY TO that involves one attribute, a short field size like an int2
and many rows (the more rows the more pronounced the effect, of
course)?  Could this level of indirection still be the cause of some
regressions in a case like that?  This is the worst case I can think
about, on top of my mind, and I am not seeing tests with few
attributes like this one, where we would try to make this callback as
hot as possible.  This is a performance-sensitive area.
--
Michael


Attachments:

  [application/pgp-signature] signature.asc (833B, ../[email protected]/2-signature.asc)
  download

view thread (14+ messages)  latest in thread

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: [email protected]
  Cc: [email protected], [email protected], [email protected], [email protected]
  Subject: Re: Make COPY format extendable: Extract COPY TO format implementations
  In-Reply-To: <[email protected]>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox