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 1u7Z4U-001ltY-GR for pgsql-hackers@arkaria.postgresql.org; Wed, 23 Apr 2025 12:19:22 +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 1u7Z4S-005zU1-9P for pgsql-hackers@arkaria.postgresql.org; Wed, 23 Apr 2025 12:19:21 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1u7Z4R-005zTt-Si for pgsql-hackers@lists.postgresql.org; Wed, 23 Apr 2025 12:19:20 +0000 Received: from mail-ua1-x92f.google.com ([2607:f8b0:4864:20::92f]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1u7Z4P-001b2w-06 for pgsql-hackers@lists.postgresql.org; Wed, 23 Apr 2025 12:19:20 +0000 Received: by mail-ua1-x92f.google.com with SMTP id a1e0cc1a2514c-86b9b1def28so5483574241.3 for ; Wed, 23 Apr 2025 05:19:17 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745410756; x=1746015556; darn=lists.postgresql.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=G8uBZSI3Tk0c3T3NPXOKbEbP+EjmL2iwB0VzHRkUcAM=; b=C2y5HQvQYyfvNSqpBunzdrc6qj3fDJg7A3kneBHxd0SF7SdYFoK6j3AndsOJqh9KFs AfYw5bdjLRfPuQ6nrRq0LtuilAddnIVoqBIDKnbD6Zrmhcw+fNNFCVYXUkqUJIzdrsEo +bMJ4tai0IssmQ203LWiQlvJ2RLPtyb5kE9cmAwyaZIFIzuNfw5ga/mU86cTHFJBVdFp wfwv52mI73bQK8erUS3kHCNiUWXe4m73mKHMVjPOB5rvYDFDE5cs/oSgJ66p2/IUMG9K 8hmdE4cFIMcny3loq6yQRC+7gKeQTni9S+ND/11Islkx2uVcsPM9RlZpoj6KsebJGeBH IPLw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745410756; x=1746015556; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=G8uBZSI3Tk0c3T3NPXOKbEbP+EjmL2iwB0VzHRkUcAM=; b=YZ2PBik3G4FcKCYzNTjtGPOeEW7tBsHp1QgUtjM795up40Q5Alyz62WeOKnTA5Uqon nk0f7YOIOyjqLEHzE806V1RQY1TZEtxfxaH7ju8fmYLryr7OyEfjwn7TAUj+H3Y+ZcB3 sxsgaUYjMlUL7LEQ3ea5W+WCCDVLnfmcOqDJlzCVmEzKQLvgO3xGpt4CAHpavqD/q/Kc 37WbAblpbHwKhjgsrcdMz4mNHFcbY1hVYMfb6135sgTBj/KldF1w7T9E2gcXB1unQKFm eHYPG9+o9GBm0FZlOXUadO6h8BK0KMjjEijqFSESUI/m5u8+LDzRNxPV7ck9Z8mHVSe9 fBaQ== X-Forwarded-Encrypted: i=1; AJvYcCUGGfNa5MI1Dd44IoUmqCShiJylHEObosusXVrjU2Y7DOSDiIJN2GjR3h0a2LiaVSJCv3v2pQoh5cZuXrSq@lists.postgresql.org X-Gm-Message-State: AOJu0Yx+EqYOJI5JP7Fep0RCDMszZejBtBfD1C3EIM5NZvnK1a6I3DkO uAtnPlJKiffyWh7Mzuri9Xuc/PLA3BhwdCd3d13FD/mmeVSI7Z1V2A9V2aT9s438qnT0Xl7X4C3 dp7M/TfYjWGQP7j5Pm6aXMUbtRNA= X-Gm-Gg: ASbGncvuZdNFgfkwddWcPrOwMkvK2kP2UxFlgwKFnyw58qr+oaUMTUcZIcuj2O9Pgcx boJoyDCuTxYcJxt6wYtRv1drhwIrqTNGpyr7fi0r/2c1I1x3yFesscK3bON6W/fPS4EjLIfs05a yczAlUqlO/phbtB8xdwfgql42WOMgee5Shnw1kuTMFjJ2VjrVNYO0TbUs= X-Google-Smtp-Source: AGHT+IHWItgd9eW8+0gim4I2PjlAhDfqrAUTIzGgdIOegW/c05U9aeAcUHeUu0eNyNuV/psoM97YqU6F/0GJuIzM+0U= X-Received: by 2002:a05:6122:6b07:b0:529:2644:676f with SMTP id 71dfb90a1353d-5292644679bmr13051470e0c.8.1745410755653; Wed, 23 Apr 2025 05:19:15 -0700 (PDT) MIME-Version: 1.0 References: In-Reply-To: From: Matheus Alcantara Date: Wed, 23 Apr 2025 09:18:48 -0300 X-Gm-Features: ATxdqUFHwouNzZxIIaFK7TND71EznAOwF7JBtAe5RCRYHz0k1NvZtzaRzqAcOmE Message-ID: Subject: Re: extension_control_path and "directory" To: Christoph Berg Cc: Peter Eisentraut , pgsql-hackers@lists.postgresql.org, "David E. Wheeler" Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On Wed, Apr 23, 2025 at 6:39=E2=80=AFAM Christoph Berg wr= ote: > > Re: Peter Eisentraut > > The new GUC extension_control_path specifies a path to look for > > extension control files. The default value is $system, which looks in > > the compiled-in location, as before. > > Is the expectation that this also works for the extension "directory"? > > semver is still failing because it's shipping its .sql files in a > separate directory: > > 2025-04-23 09:06:24.864 UTC [422345] myon@contrib_regression ERROR: coul= d not open directory "/usr/share/postgresql/18/semver": No such file or dir= ectory > 2025-04-23 09:06:24.864 UTC [422345] myon@contrib_regression STATEMENT: = CREATE EXTENSION semver; > > $ cat debian/postgresql-18-semver/usr/share/postgresql/18/extension/semve= r.control > # semver extension > comment =3D 'Semantic version data type' > default_version =3D '0.40.0' > > directory =3D 'semver' > module_pathname =3D '$libdir/semver' > relocatable =3D true > > $ ls debian/postgresql-18-semver/usr/share/postgresql/18/semver/ > semver--0.10.0--0.11.0.sql semver--0.17.0--0.20.0.sql semver--0.30.0--0= .31.0.sql semver--0.32.1--0.40.0.sql > semver--0.11.0--0.12.0.sql semver--0.20.0--0.21.0.sql semver--0.3.0--0.= 4.0.sql semver--0.40.0.sql > semver--0.12.0--0.13.0.sql semver--0.21.0--0.22.0.sql semver--0.31.0--0= .31.1.sql semver--0.5.0--0.10.0.sql > semver--0.13.0--0.15.0.sql semver--0.2.1--0.2.4.sql semver--0.31.1--0= .31.2.sql semver.sql > semver--0.15.0--0.16.0.sql semver--0.22.0--0.30.0.sql semver--0.31.2--0= .32.0.sql semver--unpackaged--0.2.1.sql > semver--0.16.0--0.17.0.sql semver--0.2.4--0.3.0.sql semver--0.32.0--0= .32.1.sql > I've tried to implement some kind of "SHAREDIR search path" as we've discussed on another thread [1] but it shows out that we need some considerable refactoring to make it work. Talking with Peter privately IIUC we concluded that we may document this limitation that using extension control path with an extension that uses a custom "directory" field on .control file will not work. I think that we may add a note section on "extension_control_path" doc on [2], what do you think? [1] https://www.postgresql.org/message-id/0F50D989-B82D-4F59-9F13-C08A46733= 22C%40justatheory.com [2] https://www.postgresql.org/docs/devel/runtime-config-client.html#GUC-EX= TENSION-CONTROL-PATH --=20 Matheus Alcantara