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.94.2) (envelope-from ) id 1t6bXS-00E9aZ-Eo for pgsql-hackers@arkaria.postgresql.org; Thu, 31 Oct 2024 20:13:02 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1t6bXQ-005iZW-Kx for pgsql-hackers@arkaria.postgresql.org; Thu, 31 Oct 2024 20:13:01 +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.94.2) (envelope-from ) id 1t6bXQ-005iZO-AN for pgsql-hackers@lists.postgresql.org; Thu, 31 Oct 2024 20:13:00 +0000 Received: from fhigh-a7-smtp.messagingengine.com ([103.168.172.158]) by makus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1t6bXN-003qIb-Sm for pgsql-hackers@postgresql.org; Thu, 31 Oct 2024 20:12:59 +0000 Received: from phl-compute-04.internal (phl-compute-04.phl.internal [10.202.2.44]) by mailfhigh.phl.internal (Postfix) with ESMTP id 93A4E1140104; Thu, 31 Oct 2024 16:12:56 -0400 (EDT) Received: from phl-frontend-01 ([10.202.2.160]) by phl-compute-04.internal (MEProxy); Thu, 31 Oct 2024 16:12:56 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=justatheory.com; h=cc:cc:content-transfer-encoding:content-type:content-type :date:date:from:from:in-reply-to:in-reply-to:message-id :mime-version:references:reply-to:subject:subject:to:to; s= 2016-12.pbsmtp; t=1730405576; x=1730491976; bh=964P6XRFNR1cx4zux puGxsFLiAriuCF3O8lFZLkrz2k=; b=n+pXbhla9YUvd8MuR+Xx3zyegcyYUHdLD A7aVG8oZgADusslYF41KLJ1FAiQz+stc0v8yOgV6izbHlP/OSKtzzSRxsod4DZyG e0gyT60NrmuWTbunAHQ/1aUjzbk9LpxXKBJ7cYIEsxtlBCai4O+ZzxikL0vl2+V6 88uqrW5njc= DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pobox.com; h=cc :cc:content-transfer-encoding:content-type:content-type:date :date:from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm2; t=1730405576; x=1730491976; bh=964P6XRFNR1cx4zuxpuGxsFLiAriuCF3O8lFZLkrz2k=; b= ZbScd+8PN3K/xZDkJbahU81o3d/5VbeEEFUKxNnQr8RQCZ7dUIMS6sd+rbYlR8mp leqngYoQCr+WlNGA5y0y/elmCtDcAyq9HaKSNRE8UCkM/8DDYCKNWvmg6VYn11/y ZhEgNvvdCpax6bEyyrTLCAaRW7Ycy0NUJXEpLNotulxDQtahvZlFPMaT4NTqeJ4r CdJ+WMo9jcA+wmun1qTp0sr/dWnuKB9ZFhLchYurHcKKBP7IRgDw7iuBNpWuN/Pg fpGsvJ0RS3uNBx5jxVSFu3rgeoe/UMqTV5dKivSbqeEsiTdDG5SzI1D4RKcrV+Qj ojnosLtBKfFVKwBJYnIyvw== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1730405576; x= 1730491976; bh=964P6XRFNR1cx4zuxpuGxsFLiAriuCF3O8lFZLkrz2k=; b=a y78CLDUYTxq25Nm+mHbFtyY1KCWekaweziUSWNfaG1PKAKkGZTy0r25Hw0/pQaxi BWiz+wh7A5VzoIfxxOv7xq1vrBmRNR9jI+Fab/lPkNH+URW7LtJ19wkx1Ma06lTz LepNaX8chKXqG/QhaB5yE8PnGdKJbkfujFR2Ea4dkGfeEmuXaa7fd2BEW3GWRgoV nsfJ9bQmwhQ+/eOOJnulqoDSuZP1sig9QIuN4wJGjEGMvcFvhhDQYUHXR1nF0CYq IE5xjcBr9/oQOmP894Ebc2TzG4HTJ+Clso6I+IgYt3Pymr9IhAHDFHVchOyNXQA0 DmAm3820hrscyEjIBZcVg== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeeftddrvdekjedgfeelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurheptggguffhjgffvefgkfhfvffosehtqhhmtdhhtdej necuhfhrohhmpedfffgrvhhiugcugfdrucghhhgvvghlvghrfdcuoegurghvihgusehjuh hsthgrthhhvghorhihrdgtohhmqeenucggtffrrghtthgvrhhnpeetveeigfdtueetudff jeetfeetudetjeeiudefgfetgeejkeelkeehudfguddvkeenucevlhhushhtvghrufhiii gvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegurghvihgusehjuhhsthgrthhhvgho rhihrdgtohhmpdhnsggprhgtphhtthhopeehpdhmohguvgepshhmthhpohhuthdprhgtph htthhopehpghhsqhhlqdhhrggtkhgvrhhssehpohhsthhgrhgvshhqlhdrohhrghdprhgt phhtthhopehgrggsrhhivghlvgdrsggrrhhtohhlihhnihesvghnthgvrhhprhhishgvug gsrdgtohhmpdhrtghpthhtohepphgvthgvrhesvghishgvnhhtrhgruhhtrdhorhhgpdhr tghpthhtohepmhihohhnseguvggsihgrnhdrohhrghdprhgtphhtthhopegrnhgurhgvsh esrghnrghrrgiivghlrdguvg X-ME-Proxy: Feedback-ID: i7c334307:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Thu, 31 Oct 2024 16:12:55 -0400 (EDT) Content-Type: text/plain; charset=utf-8 Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.200.121\)) Subject: Re: RFC: Extension Packaging & Lookup From: "David E. Wheeler" In-Reply-To: <0ADD494C-83D3-42DA-B2F6-E6E435181B3D@justatheory.com> Date: Thu, 31 Oct 2024 16:12:44 -0400 Cc: Gabriele Bartolini , Peter Eisentraut , Christoph Berg , Andres Freund Content-Transfer-Encoding: quoted-printable Message-Id: <64BBC6FF-61A1-4EC7-BDCB-192D0232283F@justatheory.com> References: <2CAD6FA7-DC25-48FC-80F2-8F203DECAE6A@justatheory.com> <0D3FE0EA-0E87-42BD-AB15-D3549BFD0F4C@justatheory.com> <0ADD494C-83D3-42DA-B2F6-E6E435181B3D@justatheory.com> To: PostgreSQL Hackers X-Mailer: Apple Mail (2.3826.200.121) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Oct 31, 2024, at 15:41, David E. Wheeler = wrote: > Other Options? > -------------- >=20 > I kind of like Option 2, as it would allow us to eventually support = non-`CREATE EXTENSION` modules as extensions, too. I imagine = distributing, say `auto_explain` in an extension directory of its own, = with a `auto_explain.control` file that identifies it as a LOAD-only = extension. Then specifying `auto_explain:auto_explain` would work as = expected. Or perhaps just `auto_explain:` could load *all* the modules = included in the auto_explain "extension". >=20 > But then maybe I'm starting to talk myself into arguing that `LOAD` = ought to be deprecated, `CREATE EXTENSION` could support non-SQL = extensions, and the `*preload*` GUCs would contain a list of extensions = rather than module files. >=20 > But I digress. Any ideas about other options to address this design = challenge? I just thought of another one: Option 3 -------- * Add a new preload GUCs for extensions: `shared_preload_extensions`, `session_preload_extensions`, etc. * Specify just extension names for these GUCs, instead of module file = names. * Leave `LOAD/*preload_libraries` unchanged. * Have it search the `extension_path` directories just as `CREATE = EXTENSION` does. Pros: * The behaviors of `LOAD/*preload_libraries` are unchanged * Provide a more future-looking interface, where we perhaps eventually deprecate `LOAD/*preload_libraries` in favor of shipping all modules as extensions. Cons: * More GUCs! * The new GUCs load *all* of the modules included in an extension, = rather than specific ones. But maybe we can borrow the `$extension:module` = syntax from Option 2 to support loading a single extension * Upgrades from Postgres 17 would still need any extension modules = loaded in `*preload_libraries` moved to the new GUCs, since the files will live in a new location I kind of like this one=E2=80=A6 D