Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q8tdF-00063C-Py for pgsql-hackers@arkaria.postgresql.org; Tue, 13 Jun 2023 02:19:42 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1q8tcF-0007NI-OP for pgsql-hackers@arkaria.postgresql.org; Tue, 13 Jun 2023 02:18:39 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1q8tcF-0007N9-6v for pgsql-hackers@lists.postgresql.org; Tue, 13 Jun 2023 02:18:39 +0000 Received: from mx05.melco.co.jp ([192.218.140.145]) by makus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1q8tcB-001tLR-V7 for pgsql-hackers@postgresql.org; Tue, 13 Jun 2023 02:18:37 +0000 Received: from mr05.melco.co.jp (mr05 [133.141.98.165]) by mx05.melco.co.jp (Postfix) with ESMTP id 4QgC084wDXzMw4R4; Tue, 13 Jun 2023 11:18:32 +0900 (JST) Received: from mr05.melco.co.jp (unknown [127.0.0.1]) by mr05.imss (Postfix) with ESMTP id 4QgC084W6RzMw1Sq; Tue, 13 Jun 2023 11:18:32 +0900 (JST) Received: from mf03_second.melco.co.jp (unknown [192.168.20.183]) by mr05.melco.co.jp (Postfix) with ESMTP id 4QgC083XqYzMryJb; Tue, 13 Jun 2023 11:18:32 +0900 (JST) Received: from mf03.melco.co.jp (unknown [133.141.98.183]) by mf03_second.melco.co.jp (Postfix) with ESMTP id 4QgC083V2xz5hXh; Tue, 13 Jun 2023 11:18:32 +0900 (JST) Received: from JPN01-TYC-obe.outbound.protection.outlook.com (unknown [104.47.23.169]) by mf03.melco.co.jp (Postfix) with ESMTP id 4QgC083MjxzMstcq; Tue, 13 Jun 2023 11:18:32 +0900 (JST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=KzvTbcv/hcJEZX3ZM6ml2PxWgQY5pThOpmm2BLK8eTbMUlTuna0lO5OFvmJV8RlDXFoBKjYq80IrOIC6IcEvf2WEbpfWB9cA4BH8lUOdN4UZ5ftxqj+K5lkIpBvQ4MyDR2CM00bJXfuJkm3IFnbO6eBHE9YHaT+xXp4lKrLwFdA6AiCjDFqBgM6vprZkJbes5sMmf01Tn41K8GwpY8eDZ/GhRuQ/5tNBWXI6WfMrv938YNc1YgDgow80HdBRd/xaQ3JaJjUrFultNon5JgKazCwzyFvkV0uDPzN9UfJx95MtmTQg+mfJrS0riChUA4UJjZKSyNAzSiZu4Glaa8F+2Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=qoEJyHbbSw3kgvKXE4pJcFU0PjXtXfaOBgxI7Ila2ps=; b=CZ/ZebsrpMXiVnrlOU4UL/7DkvOH8Fo7u5bsIMwQB744LzZueoQxKyyFINwMLNpMEdarTlLvz1aaKQN/nsuHFGYypD7JqihyBf+xELNrO794w7Pjg+RanIDvlNXogzGo8zTJcMYwebAJS4Sc58dj/XNp6wX6A0J/3SMUoANDyrOb5OG1tbp6S76cxSSf+/L3BZ68axOJDq9Bbqo383/Ivbw6MJqxJM99MRJKy6Z7OyR+DK1y6h0MF3f4F02UWr7gUw9wzV6bSZlxZ3wbT/vk8+BrMXckK4zEdqYgdliDciGjgyGN8g6S6HeQ+39LFCMLtuXhgPBQX7dM1Mrngl5X3Q== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=df.mitsubishielectric.co.jp; dmarc=pass action=none header.from=df.mitsubishielectric.co.jp; dkim=pass header.d=df.mitsubishielectric.co.jp; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=mitsubishielectricgroup.onmicrosoft.com; s=selector2-mitsubishielectricgroup-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=qoEJyHbbSw3kgvKXE4pJcFU0PjXtXfaOBgxI7Ila2ps=; b=dhCvQL4dNWQyHVDeAImfx49o+b/+ZRLN6ykAIRahFFOprTstW7EHeCS2Pz6n/8fENZITi3/kz3fRc6WMVb20y/Fj8JrsUJRk6Fkul27BJjWVTX4z4tq96CXC6fxWqDAnFADyWwqc94or5E3iax7Rk8RC9UI30KuxhCWavimwkS4= Received: from OS3PR01MB6660.jpnprd01.prod.outlook.com (2603:1096:604:10e::8) by TYWPR01MB8268.jpnprd01.prod.outlook.com (2603:1096:400:163::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6477.29; Tue, 13 Jun 2023 02:18:31 +0000 Received: from OS3PR01MB6660.jpnprd01.prod.outlook.com ([fe80::c149:aae4:b818:2c9e]) by OS3PR01MB6660.jpnprd01.prod.outlook.com ([fe80::c149:aae4:b818:2c9e%4]) with mapi id 15.20.6477.028; Tue, 13 Jun 2023 02:18:31 +0000 From: "Fujii.Yuki@df.MitsubishiElectric.co.jp" To: Bruce Momjian CC: Alexander Pyhalov , PostgreSQL-development , Andres Freund , Tom Lane , Tomas Vondra , Julien Rouhaud , Daniel Gustafsson , Ilya Gladyshev , "Fujii.Yuki@df.MitsubishiElectric.co.jp" Subject: RE: Partial aggregates pushdown Thread-Topic: Partial aggregates pushdown Thread-Index: AQHYPYasTfJpCf0a4028YJm7JfY5bazLVbIAgAA/QgCAzsLGAICupJqAgAOhGYCAC47OQIAAf6sAgAAdMNCAAEyGgIAAtjrAgAD/KACABTrjIIAEWzOAgAyCOHCApWPpgIAAT1AggArXpoCAAFPI0IABO+iAgAMFFICABR/vAIAACpQAgABDk4CAAU/RgIBJ2XYAgAgC/oCAAC5WgIAGnISAgAQxEbCAAFHVgIAA0HSA Date: Tue, 13 Jun 2023 02:18:15 +0000 Deferred-Delivery: Tue, 13 Jun 2023 02:18:13 +0000 Message-ID: References: <8ffedecae0d21a3cd93805baf1dcc0de@postgrespro.ru> In-Reply-To: Accept-Language: ja-JP, en-US Content-Language: ja-JP X-MS-Has-Attach: X-MS-TNEF-Correlator: x-melpop: 1 authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=df.MitsubishiElectric.co.jp; x-ms-publictraffictype: Email x-ms-traffictypediagnostic: OS3PR01MB6660:EE_|TYWPR01MB8268:EE_ x-ms-office365-filtering-correlation-id: 1fe45844-06a3-421c-ac06-08db6bb47b4f x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: oJmkuyjkYiznDmcDihtPW0CLpJEyhqjiljiV8MFbh9FEqeLPSZBxLae3cIYTSVRbXg/UiBImGq7JhF4fTnFC+SgTNfxnEu/AsIK1Q/xSwX4esDdyfdBXdpAiHAJHd2E4BDULXSwHDMc+1zpVIPN40fsAkIlPZpKYCKLV9nJBtVEfU3HDAcBXiGiExvYFTfT11cFcsRkk8+kkae9KS4HiJWL06gsx9RZNa6eOsKdMcFtwukOG2do6iAQAnBSLV+Tu9m6yd2a8/reBS3SHtkNXp8jEood1gmaUiXMphZ20TJJj/M6xHEdEnpJAHd2FTtrbLtR/SBtyAhHZmRmzgbokJaZZ9UhjIIfKEPZSaW51JEItstjWtSVu+exLhgSYNauXo8JgSRsS8XhOHjkCC4vlw6sF32eXkQ+c6xhbVKWxnmx54NsJrW+nLPYvR4C+9vhDlx39OSPBZ/KvGaZTE9icigzjp5p6sNgN9Fd01rmQbLJfM3GkA4xP406Mh5jOys9+KWjPATSxZuLOXl+0pfNUgeJut/VEgmvh0bAHAKnMeYxHnZtMWk8/+suZCYUhY2b9u32SWR+p/NXkzCgAUTiUVQMf3F/ZbWnzTx2ASdZlyluWiEBQ7gIIjbMJVd0cLu58zq5bj+bFEpBxz3oZaj9DYQ== x-forefront-antispam-report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:OS3PR01MB6660.jpnprd01.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230028)(4636009)(396003)(39860400002)(346002)(376002)(136003)(366004)(451199021)(38070700005)(33656002)(86362001)(66556008)(66446008)(6916009)(4326008)(478600001)(54906003)(76116006)(66476007)(66946007)(64756008)(6666004)(316002)(107886003)(71200400001)(7696005)(55016003)(8936002)(5660300002)(2906002)(7116003)(8676002)(52536014)(41300700001)(38100700002)(122000001)(9686003)(6506007)(26005)(186003)(3480700007)(83380400001)(95630200002);DIR:OUT;SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?iso-2022-jp?B?K0k3SHIzZVB6VGN5aUlxYWlYcFBCMWFzMnk2SzRMdWpJSmRSaHVYYktD?= =?iso-2022-jp?B?a1JlcjRBZU42azhmMFhRY09NUWRDZG5iSUxmWEZ4L2plS3hIeHdaVEZB?= =?iso-2022-jp?B?WGRaL0lUMGZ5SDZmNklLdDhRV0J4V0ROMUlZTVJyTTFTZ204WEM0QmNk?= =?iso-2022-jp?B?ZFg1ZGVHOEZSVC81c3ZEcVF1Q0c3OCtMdUVseW1QbCtQQlBibW9MMGo5?= =?iso-2022-jp?B?SzBSMmJBN0JYeDJ4am8xOUtqZlI0MkhHZXJDd3BUSzFRakZPSkhzbDNL?= =?iso-2022-jp?B?bkhLUm1DSXpvY3NMVE5ndFZwaHNZcndOdGdIM2pMOWhUaHZxV1YzTytT?= =?iso-2022-jp?B?ZXh2dzBkeGRoSFpNeFpmOERqcmJlcGt3UmdkWlNMZXRTakNUcFU5RzN1?= =?iso-2022-jp?B?aHN6MDc0UjJOeTUvaW1QeTNnT2tmUkVoWG53TVRCcXgwY3NZdlp0NWNF?= =?iso-2022-jp?B?QTBNMXEwOVVwaitZaFlCanMvajRoVE0zVnZaT3Q2UmhkSVVYSnpHdm10?= =?iso-2022-jp?B?SDd6d2VxSHlXS1ZPNmdqK25mRGIvcFVqK3p0NFlzWmZUdTdmVXd4aEpi?= =?iso-2022-jp?B?aTRZRWI4WjZUb0NJbldWZWxmNE5DQ0FwQUZEQWJSMUM2MDlReHgyYU9i?= =?iso-2022-jp?B?MWZyWUx2SVNwODNydnAvcWpsTGpDTWI1TTVYN0M5SEsxUklMaEFabmFY?= =?iso-2022-jp?B?bUtmYnJSYk45Wkl0RDZ6Z1lha2t6SVdpU3dlSDhGLzVsekFucUlYZG9p?= =?iso-2022-jp?B?bjVHdGN5WlVJUjJNeEptOFE2czN5aUt0a3VuTnlIT3FDYmg1aXdNb1ND?= =?iso-2022-jp?B?aXJWaWZNRmpWQm04cDJZZTZxV2F2NGp6cUdjeHM2M3F4SnV1ZlVoTGFT?= =?iso-2022-jp?B?MyttM2h1SWR0TVlkNXlvN3dBV3l2alVOOG5SeUNmcWtCRzNiQXNEV2h2?= =?iso-2022-jp?B?bktLTkRzVm5meXRhVmZOYkdMRlAvV0JRTCtUVVdSMytWYVJWZ0xONzVu?= =?iso-2022-jp?B?TktDeWgxSHpmSjNuMTdFS3JXQlo1K2NTSldkSHVseFlDc2t0eVhRYkp5?= =?iso-2022-jp?B?aG4vUU1pZWdkaUFzdHhxVlY2MHFUT29wODkrNytWNWNaekdoWW8zbzly?= =?iso-2022-jp?B?Sm9tNm5lM3YxU0xTNDJyMjFLNnhHWlFmY0dnK2V1Y2hqUHcyNXNUVmZl?= =?iso-2022-jp?B?NXdvTVZiR2xiV2F6U2dDZ3RmcnBNY3Yzc2R6ZU9NNkd5NW16SURJdEh1?= =?iso-2022-jp?B?dkJMUFlpYVdkVFJoaS8rdDVlMkdqN0VWSEFyZGlVa1dxM3liMjBubExn?= =?iso-2022-jp?B?ZGt5R1Z1bDhka3ViTGMrOGF3ZDNMb2t1Z0Zha1NyenE0M3FkU25HUGs4?= =?iso-2022-jp?B?S3NNNjJQUXU5WlMwOXlrQktBN2s1T3NuQzc0SGJOMlU4OHRqemlRNjR5?= =?iso-2022-jp?B?ZXE5ZWoxMXByek02UnBSV2pSMVZwaXdLZGp6SFYzUmhoNDNRUTlnUVMy?= =?iso-2022-jp?B?VUUrd0R2bTdnb2xMOENTMGVURis3bkVCd1hHUGNVZGhhd1p4OThoa01N?= =?iso-2022-jp?B?N1NBSDRxVUhZcUR6Z2VlcG1PR1VpUXU0aWFxRndsbEZ3VXZzYmVmZ25C?= =?iso-2022-jp?B?VG1Bb2w2R3hxZksyVC91T3FNVkdGTlFkNFU5cGVPRzQzYWx4N1BCaFIw?= =?iso-2022-jp?B?U25QZ1dlakd0Q2lMbzlZUXhoZkZPNE9kc1k2QWNqaitESE90Z1RMcDdx?= =?iso-2022-jp?B?Y2lzRVFTRU5FUG14WGp4V0ZnbitZeUwwd2F2ak5TL2lqUll1cDlJMDQ5?= =?iso-2022-jp?B?UC9qaFMwN3BKRDFDUWpKb2xZWGYxdElmRWdZbUpqYmhxMFloVkRsbUdZ?= =?iso-2022-jp?B?MWFkOW9ZdHRPY0FwSEplMUxVWlIvdnI4ZEtFOW0yUUhNVUFkTGhHbnVR?= =?iso-2022-jp?B?TDVWWmROeDl5RmpBenltUkkrZHhySE5FVW1rV3JhR0ozbkE4Y0R1c0Ro?= =?iso-2022-jp?B?b3pnQ21sQW9JRUkzdmZXQW0wM3VBTXY2ckJKWkg1b3NTMVIwVUNkRVJl?= =?iso-2022-jp?B?RVUzZit6c0lPVlVWVTg2SzNCQVk3TVN5bVN3a0g5ajJYMElPcVpDTkVj?= =?iso-2022-jp?B?QWFWK3oxNlVxZGhsQWVYbDNoSng5N3pDWEpOWjJNMXFkUWhqdVF4K3pQ?= =?iso-2022-jp?B?bXFyTGw2bXZlVU1CcTVFUHhELzFTVERBTTFsUEZYUXdxR2ZzblBhdU1O?= =?iso-2022-jp?B?bVQ4cEE5eGNYUGFuS083dGIxeWVTSVFhL3RxQ0k0aEVIR1VVWk5SRFA5?= =?iso-2022-jp?B?dFhVeQ==?= Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-OriginatorOrg: df.MitsubishiElectric.co.jp X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: OS3PR01MB6660.jpnprd01.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1fe45844-06a3-421c-ac06-08db6bb47b4f X-MS-Exchange-CrossTenant-originalarrivaltime: 13 Jun 2023 02:18:30.9864 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: c5a75b62-4bff-4c96-a720-6621ce9978e5 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: TmmfH9cju7UxglYaprU5C5UzfXfryTt66PWI2PmoaAFyGYMFrkYvKMYl9NQncKx4BTaBcN3I1q/3TJC/oiwkVA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: TYWPR01MB8268 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk Hi Mr.Momjian. Thank you for advises. > From: Bruce Momjian > Sent: Monday, June 12, 2023 10:38 PM > > I understand what the problem is. I will put a mechanism maintaining co= mpatibility into the patch. > > I believe there are three approaches. > > Approach 1-1 is preferable because it does not require additional optio= ns for postgres_fdw. > > I will revise the patch according to Approach 1-1, unless otherwise com= mented. > > > > Approach1: > > I ensure that postgres_fdw retrieves the version of each remote server > > and does not partial aggregate pushd down if the server version is less= than 17. > > There are two approaches to obtaining remote server versions. > > Approach1-1: postgres_fdw connects a remote server and use PQserverVers= ion(). > > Approach1-2: Adding a postgres_fdw option about a remote server version= (like "server_version"). > > > > Approach2: > > Adding a postgres_fdw option for partial aggregate pushdown is enable > > or not (like enable_partial_aggregate_pushdown). >=20 > These are good questions. Adding a postgres_fdw option called enable_par= tial_aggregate_pushdown helps make the > purpose of the option clear, but remote_version can be used for future br= eakage as well. >=20 > I think remote_version is the best idea, and in the documention for the o= ption, let's explcitly say it is useful to disable > partial aggreates pushdown on pre-PG 17 servers. If we need to use the o= ption for other cases, we can just update the > documentation. When the option is blank, the default, everything is push= ed down. >=20 > I see remote_version a logical addition to match our "extensions" option = that controls what extension functions can be > pushed down. Thank you for your perspective. So, of the approaches I have presented, you think that approach 1-2 is preferable and that the option name remote_server is preferable? Indeed, the option of a remote version may have other uses. However, this information can be obtained by connecting to a remote server,= =20 I'm concerned that some people may find this option redundant. Is the problem with approach 1-1 because the user cannot decide whether to = include the compatibility check in the decision to do partial aggregate pus= hdown or not? # If Approach 1-1 is taken, the problem is that this feature cannot be used= for all buit-in aggregate functions # when the remote server is older than PG17. If so, Approache1-3 below seem more desirable. Would it be possible for us to hear your thoughts? Approache1-3=1B$B!'=1B(BWe add a postgres_fdw option about a compatibility = check for partial aggregate pushdown (like "enable_aggpartialfunc_compatibility_check"). This option is false, t= he default. When this option is true, postgres_fdw obtains the remote server version by= connecting the remote server and using PQserverVersion().=20 And if the remote server version is older than PG17, then the partial aggre= gate pushdown feature is enable for all buit-in aggregate functions. Otherwise the partial aggregate pushdown feature is disable for all buit-in= aggregate functions. Sincerely yours, Yuuki Fujii -- Yuuki Fujii Information Technology R&D Center Mitsubishi Electric Corporation