On Mon, Jul 10, 2023 at 07:35:27AM +0000, fujii.y...@df.mitsubishielectric.co.jp wrote: > > > I will add a postgres_fdw option "check_partial_aggregate_support". > > > This option is false, default. > > > Only if this option is true, postgres_fdw connect to the remote server > > > and get the version of the remote server. > > > And if the version of the remote server is less than PG17, then partial > > > aggregate push down to the remote server is > > disable. > > > > Great! > I have modified the program except for the point "if the version of the > remote server is less than PG17". > Instead, we have addressed the following. > "If check_partial_aggregate_support is true and the remote server version is > older than the local server > version, postgres_fdw does not assume that the partial aggregate function is > on the remote server unless > the partial aggregate function and the aggregate function match." > The reason for this is to maintain compatibility with any aggregate function > that does not support partial > aggregate in one version of V1 (V1 is PG17 or higher), even if the next > version supports partial aggregate. > For example, string_agg does not support partial aggregation in PG15, but it > will support partial aggregation > in PG16.
Just to clarify, I think you are saying: If check_partial_aggregate_support is true and the remote server version is older than the local server version, postgres_fdw checks if the partial aggregate function exists on the remote server during planning and only uses it if it does. I tried to phrase it in a positive way, and mentioned the plan time distinction. Also, I am sorry I was away for most of July and am just getting to this. -- Bruce Momjian <br...@momjian.us> https://momjian.us EDB https://enterprisedb.com Only you can decide what is important to you.