Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w0jPD-002A3X-1R for pgsql-committers@arkaria.postgresql.org; Thu, 12 Mar 2026 17:01:03 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w0jPB-00Fx1z-1y for pgsql-committers@arkaria.postgresql.org; Thu, 12 Mar 2026 17:01:02 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w0jPB-00Fx1r-0O for pgsql-committers@lists.postgresql.org; Thu, 12 Mar 2026 17:01:01 +0000 Received: from mahout.postgresql.org ([2001:4800:3e1:1::227]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.98.2) (envelope-from ) id 1w0jP8-00000001nYI-3vHV for pgsql-committers@lists.postgresql.org; Thu, 12 Mar 2026 17:01:00 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=postgresql.org; s=20171124; h=Date:Message-Id:Subject:To:From:MIME-Version: Content-Type:Sender:Reply-To:Cc:Content-Transfer-Encoding:Content-ID: Content-Description:In-Reply-To:References; bh=95PB7Yvp/DD5HrG2LTltH38S9H27V3QiTfpeM1qWcFw=; b=3uhOwHfULeVxVgPLVouLbdNFxk oG9CmjRBqtJ6bmbrgpA3zQmcj+qxKErZYPu88RJ1PHfeYIW5gBsRaqaYxfKSmiNEiuP1ntvl0BcYG 5rrEBFF2wkCFg90Fpfy1Yej6s+QO88EfxhLzLNuY3KnkRHlbDcz1AVsy+0CvbXFuuoe5tJiNSsEWl xGOzmeUtPnTzDV/udmwjpqdGsMaPyaimsarriCLNS2ZkG9DH3FAWpYnF9dLphSfEcX8PD1mTMVTJx VJEoaKUH/1QXgrM766CseqktZSKtNPqA7vGujnQghMj3kPIr3V6v3rexFnUiUtxiBPhZASfhddKSM sZSXHAKg==; Received: from gemulon.postgresql.org ([2001:4800:3e1:1::198]) by mahout.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.96) (envelope-from ) id 1w0jP8-004TuV-2B for pgsql-committers@lists.postgresql.org; Thu, 12 Mar 2026 17:00:58 +0000 Received: from localhost ([127.0.0.1] helo=gemulon.postgresql.org) by gemulon.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w0jP7-003dld-0s for pgsql-committers@lists.postgresql.org; Thu, 12 Mar 2026 17:00:57 +0000 Content-Type: multipart/mixed; boundary="===============4484345805510443508==" MIME-Version: 1.0 From: Robert Haas To: pgsql-committers@lists.postgresql.org Subject: pgsql: Add pg_plan_advice contrib module. X-Auto-Response-Suppress: All Auto-Submitted: auto-generated Message-Id: Date: Thu, 12 Mar 2026 17:00:57 +0000 List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --===============4484345805510443508== Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: base64 QWRkIHBnX3BsYW5fYWR2aWNlIGNvbnRyaWIgbW9kdWxlLgoKUHJvdmlkZSBhIGZhY2lsaXR5IHRo YXQgKDEpIGNhbiBiZSB1c2VkIHRvIHN0YWJpbGl6ZSBjZXJ0YWluIHBsYW4gY2hvaWNlcwpzbyB0 aGF0IHRoZSBwbGFubmVyIGNhbm5vdCByZXZlcnNlIGNvdXJzZSB3aXRob3V0IGF1dGhvcml6YXRp b24gYW5kCigyKSBjYW4gYmUgdXNlZCBieSBrbm93bGVkZ2VhYmxlIHVzZXJzIHRvIGluc2lzdCBv biBwbGFuIGNob2ljZXMgY29udHJhcnkKdG8gd2hhdCB0aGUgcGxhbm5lciBiZWxpZXZlcyBiZXN0 LiBJbiBib3RoIGNhc2VzLCB0ZXJyaWJsZSBvdXRjb21lcyBhcmUKcG9zc2libGU6IHVzZXJzIHNo b3VsZCB0aGluayB0d2ljZSBhbmQgcGVyaGFwcyB0aHJlZSB0aW1lcyBiZWZvcmUKY29uc3RyYWlu aW5nIHRoZSBwbGFubmVyJ3MgYWJpbGl0eSB0byBkbyBhcyBpdCB0aGlua3MgYmVzdDsgbmV2ZXJ0 aGVsZXNzLAp0aGVyZSBhcmUgcHJvYmxlbXMgdGhhdCBhcmUgbXVjaCBtb3JlIGVhc2lseSBzb2x2 ZWQgd2l0aCB0aGVzZSBmYWNpbGl0aWVzCnRoYW4gd2l0aG91dCB0aGVtLgoKVGhpcyBwYXRjaCB0 YWtlcyB0aGUgYXBwcm9hY2ggb2YgYW5hbHl6aW5nIGEgZmluaXNoZWQgcGxhbiB0byBwcm9kdWNl CnRleHR1YWwgb3V0cHV0LCB3aGljaCB3ZSBjYWxsICJwbGFuIGFkdmljZSIsIHRoYXQgZGVzY3Jp YmVzIGtleQpkZWNpc2lvbnMgbWFkZSBkdXJpbmcgcGxhbjsgaWYgdGhhdCBwbGFuIGFkdmljZSBp cyBwcm92aWRlZCBkdXJpbmcKZnV0dXJlIHBsYW5uaW5nIGN5Y2xlcywgaXQgd2lsbCBmb3JjZSB0 aG9zZSBrZXkgZGVjaXNpb25zIHRvIGJlIG1hZGUgaW4KdGhlIHNhbWUgd2F5LiAgTm90IGFsbCBw bGFubmVyIGRlY2lzaW9ucyBjYW4gYmUgY29udHJvbGxlZCB1c2luZyBhZHZpY2U7CmZvciBleGFt cGxlLCBkZWNpc2lvbnMgYWJvdXQgaG93IHRvIHBlcmZvcm0gYWdncmVnYXRpb24gYXJlIGN1cnJl bnRseQpvdXQgb2Ygc2NvcGUsIGFzIGlzIGNob2ljZSBvZiBzb3J0IG9yZGVyLiBQbGFuIGFkdmlj ZSBjYW4gYWxzbyBiZSBlZGl0ZWQKYnkgdGhlIHVzZXIsIG9yIGV2ZW4gd3JpdHRlbiBmcm9tIHNj cmF0Y2ggaW4gc2ltcGxlIGNhc2VzLCBtYWtpbmcgaXQKcG9zc2libGUgdG8gZ2VuZXJhdGUgb3V0 Y29tZXMgdGhhdCB0aGUgcGxhbm5lciB3b3VsZCBub3QgaGF2ZSBwcm9kdWNlZC4KUGFydGlhbCBh ZHZpY2UgY2FuIGJlIHByb3ZpZGVkIHRvIGNvbnRyb2wgc29tZSBwbGFubmVyIG91dGNvbWVzIGJ1 dCBub3QKb3RoZXJzLgoKQ3VycmVudGx5LCBwbGFuIGFkdmljZSBpcyBmb2N1c2VkIG9ubHkgb24g c3BlY2lmaWMgb3V0Y29tZXMsIHN1Y2ggYXMKdGhlIGNob2ljZSB0byB1c2UgYSBzZXF1ZW50aWFs IHNjYW4gZm9yIGEgcGFydGljdWxhciByZWxhdGlvbiwgYW5kIG5vdApvbiBlc3RpbWF0ZXMgdGhh dCBtaWdodCBjb250cmlidXRlIHRvIHRob3NlIG91dGNvbWVzLCBzdWNoIGFzIGEKcG9zc2libHkt aW5jb3JyZWN0IHNlbGVjdGl2aXR5IGVzdGltYXRlLiBXaGlsZSBpdCB3b3VsZCBiZSB1c2VmdWwg dG8KdXNlcnMgdG8gYmUgYWJsZSB0byBwcm92aWRlIHBsYW4gYWR2aWNlIHRoYXQgYWZmZWN0cyBz ZWxlY3Rpdml0eQplc3RpbWF0ZXMgb3Igb3RoZXIgYXNwZWN0cyBvZiBjb3N0aW5nLCB0aGF0IGlz IG91dCBvZiBzY29wZSBmb3IgdGhpcwpjb21taXQuCgpSZXZpZXdlZC1ieTogTHVrYXMgRml0dGwg PGx1a2FzQGZpdHRsLmNvbT4KUmV2aWV3ZWQtYnk6IEpha3ViIFdhcnRhayA8amFrdWIud2FydGFr QGVudGVycHJpc2VkYi5jb20+ClJldmlld2VkLWJ5OiBHcmVnIEJ1cmQgPGdyZWdAYnVyZC5tZT4K UmV2aWV3ZWQtYnk6IEphY29iIENoYW1waW9uIDxqYWNvYi5jaGFtcGlvbkBlbnRlcnByaXNlZGIu Y29tPgpSZXZpZXdlZC1ieTogSGFpYm8gWWFuIDx0cmlzdGFuLnlpbUBnbWFpbC5jb20+ClJldmll d2VkLWJ5OiBEaWFuIEZheSA8ZGlAbm1mYXkuY29tPgpSZXZpZXdlZC1ieTogQWpheSBQYWwgPGFq YXkucGFsLmtAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogSm9obiBOYXlsb3IgPGpvaG5jbmF5bG9y bHNAZ21haWwuY29tPgpSZXZpZXdlZC1ieTogQWxleGFuZHJhIFdhbmcgPGFsZXhhbmRyYS53YW5n Lm9zc0BnbWFpbC5jb20+CkRpc2N1c3Npb246IGh0dHA6Ly9wb3N0Z3IuZXMvbS9DQStUZ21vWi1K aDFUNlF5V29DT0RNVlFkaFRVUFlrYVpqV3p0elAxRW40PVpIb0tQendAbWFpbC5nbWFpbC5jb20K CkJyYW5jaAotLS0tLS0KbWFzdGVyCgpEZXRhaWxzCi0tLS0tLS0KaHR0cHM6Ly9naXQucG9zdGdy ZXNxbC5vcmcvcGcvY29tbWl0ZGlmZi81ODgzZmYzMGIwMmNlZWQzYzVlYWJiYTRkOWMwOWE3NzY2 ZjlhOGZjCgpNb2RpZmllZCBGaWxlcwotLS0tLS0tLS0tLS0tLQpjb250cmliL01ha2VmaWxlICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCmNvbnRyaWIvbWVzb24uYnVp bGQgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgICAxICsKY29udHJpYi9wZ19wbGFu X2FkdmljZS8uZ2l0aWdub3JlICAgICAgICAgICAgICAgICB8ICAgIDcgKwpjb250cmliL3BnX3Bs YW5fYWR2aWNlL01ha2VmaWxlICAgICAgICAgICAgICAgICAgIHwgICA0MyArCmNvbnRyaWIvcGdf cGxhbl9hZHZpY2UvUkVBRE1FICAgICAgICAgICAgICAgICAgICAgfCAgMjYwICsrKwpjb250cmli L3BnX3BsYW5fYWR2aWNlL2V4cGVjdGVkL2dhdGhlci5vdXQgICAgICAgIHwgIDM3MSArKysrCmNv bnRyaWIvcGdfcGxhbl9hZHZpY2UvZXhwZWN0ZWQvam9pbl9vcmRlci5vdXQgICAgfCAgNTAwICsr KysrCmNvbnRyaWIvcGdfcGxhbl9hZHZpY2UvZXhwZWN0ZWQvam9pbl9zdHJhdGVneS5vdXQgfCAg MzM5ICsrKysKY29udHJpYi9wZ19wbGFuX2FkdmljZS9leHBlY3RlZC9wYXJ0aXRpb253aXNlLm91 dCB8ICA0MjYgKysrKwpjb250cmliL3BnX3BsYW5fYWR2aWNlL2V4cGVjdGVkL3ByZXBhcmVkLm91 dCAgICAgIHwgICA2NyArCmNvbnRyaWIvcGdfcGxhbl9hZHZpY2UvZXhwZWN0ZWQvc2Nhbi5vdXQg ICAgICAgICAgfCAgNzU3ICsrKysrKysKY29udHJpYi9wZ19wbGFuX2FkdmljZS9leHBlY3RlZC9z ZW1pam9pbi5vdXQgICAgICB8ICAzNzcgKysrKwpjb250cmliL3BnX3BsYW5fYWR2aWNlL2V4cGVj dGVkL3N5bnRheC5vdXQgICAgICAgIHwgIDE5MiArKwpjb250cmliL3BnX3BsYW5fYWR2aWNlL21l c29uLmJ1aWxkICAgICAgICAgICAgICAgIHwgICA2NiArCmNvbnRyaWIvcGdfcGxhbl9hZHZpY2Uv cGdfcGxhbl9hZHZpY2UuYyAgICAgICAgICAgfCAgNDU2ICsrKysrCmNvbnRyaWIvcGdfcGxhbl9h ZHZpY2UvcGdfcGxhbl9hZHZpY2UuaCAgICAgICAgICAgfCAgIDQ1ICsKY29udHJpYi9wZ19wbGFu X2FkdmljZS9wZ3BhX2FzdC5jICAgICAgICAgICAgICAgICB8ICAzNTEgKysrKwpjb250cmliL3Bn X3BsYW5fYWR2aWNlL3BncGFfYXN0LmggICAgICAgICAgICAgICAgIHwgIDE4NSArKwpjb250cmli L3BnX3BsYW5fYWR2aWNlL3BncGFfaWRlbnRpZmllci5jICAgICAgICAgIHwgIDQ4MSArKysrKwpj b250cmliL3BnX3BsYW5fYWR2aWNlL3BncGFfaWRlbnRpZmllci5oICAgICAgICAgIHwgICA1MiAr CmNvbnRyaWIvcGdfcGxhbl9hZHZpY2UvcGdwYV9qb2luLmMgICAgICAgICAgICAgICAgfCAgNjM4 ICsrKysrKwpjb250cmliL3BnX3BsYW5fYWR2aWNlL3BncGFfam9pbi5oICAgICAgICAgICAgICAg IHwgIDEwNSArCmNvbnRyaWIvcGdfcGxhbl9hZHZpY2UvcGdwYV9vdXRwdXQuYyAgICAgICAgICAg ICAgfCAgNTcxICsrKysrKwpjb250cmliL3BnX3BsYW5fYWR2aWNlL3BncGFfb3V0cHV0LmggICAg ICAgICAgICAgIHwgICAyMiArCmNvbnRyaWIvcGdfcGxhbl9hZHZpY2UvcGdwYV9wYXJzZXIueSAg ICAgICAgICAgICAgfCAgMzAxICsrKwpjb250cmliL3BnX3BsYW5fYWR2aWNlL3BncGFfcGxhbm5l ci5jICAgICAgICAgICAgIHwgMjE5OCArKysrKysrKysrKysrKysrKysrKysKY29udHJpYi9wZ19w bGFuX2FkdmljZS9wZ3BhX3BsYW5uZXIuaCAgICAgICAgICAgICB8ICAgMTkgKwpjb250cmliL3Bn X3BsYW5fYWR2aWNlL3BncGFfc2Nhbi5jICAgICAgICAgICAgICAgIHwgIDI3MSArKysKY29udHJp Yi9wZ19wbGFuX2FkdmljZS9wZ3BhX3NjYW4uaCAgICAgICAgICAgICAgICB8ICAgODUgKwpjb250 cmliL3BnX3BsYW5fYWR2aWNlL3BncGFfc2Nhbm5lci5sICAgICAgICAgICAgIHwgIDI5NyArKysK Y29udHJpYi9wZ19wbGFuX2FkdmljZS9wZ3BhX3Ryb3ZlLmMgICAgICAgICAgICAgICB8ICA1MTYg KysrKysKY29udHJpYi9wZ19wbGFuX2FkdmljZS9wZ3BhX3Ryb3ZlLmggICAgICAgICAgICAgICB8 ICAxMTQgKysKY29udHJpYi9wZ19wbGFuX2FkdmljZS9wZ3BhX3dhbGtlci5jICAgICAgICAgICAg ICB8IDEwMjkgKysrKysrKysrKwpjb250cmliL3BnX3BsYW5fYWR2aWNlL3BncGFfd2Fsa2VyLmgg ICAgICAgICAgICAgIHwgIDE0MSArKwpjb250cmliL3BnX3BsYW5fYWR2aWNlL3NxbC9nYXRoZXIu c3FsICAgICAgICAgICAgIHwgICA4NiArCmNvbnRyaWIvcGdfcGxhbl9hZHZpY2Uvc3FsL2pvaW5f b3JkZXIuc3FsICAgICAgICAgfCAgMTQ1ICsrCmNvbnRyaWIvcGdfcGxhbl9hZHZpY2Uvc3FsL2pv aW5fc3RyYXRlZ3kuc3FsICAgICAgfCAgIDg0ICsKY29udHJpYi9wZ19wbGFuX2FkdmljZS9zcWwv cGFydGl0aW9ud2lzZS5zcWwgICAgICB8ICAgOTkgKwpjb250cmliL3BnX3BsYW5fYWR2aWNlL3Nx bC9wcmVwYXJlZC5zcWwgICAgICAgICAgIHwgICAzNyArCmNvbnRyaWIvcGdfcGxhbl9hZHZpY2Uv c3FsL3NjYW4uc3FsICAgICAgICAgICAgICAgfCAgMTk1ICsrCmNvbnRyaWIvcGdfcGxhbl9hZHZp Y2Uvc3FsL3NlbWlqb2luLnNxbCAgICAgICAgICAgfCAgMTE4ICsrCmNvbnRyaWIvcGdfcGxhbl9h ZHZpY2Uvc3FsL3N5bnRheC5zcWwgICAgICAgICAgICAgfCAgIDY4ICsKZG9jL3NyYy9zZ21sL2Nv bnRyaWIuc2dtbCAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgIDEgKwpkb2Mvc3JjL3NnbWwv ZmlsZWxpc3Quc2dtbCAgICAgICAgICAgICAgICAgICAgICAgIHwgICAgMSArCmRvYy9zcmMvc2dt bC9wZ3BsYW5hZHZpY2Uuc2dtbCAgICAgICAgICAgICAgICAgICAgfCAgODEzICsrKysrKysrCnNy Yy90b29scy9wZ2luZGVudC90eXBlZGVmcy5saXN0ICAgICAgICAgICAgICAgICAgfCAgIDMzICsK NDYgZmlsZXMgY2hhbmdlZCwgMTI5NjQgaW5zZXJ0aW9ucygrKQoK --===============4484345805510443508==--