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 1u7go5-0047i4-Vu for pgsql-hackers@arkaria.postgresql.org; Wed, 23 Apr 2025 20:34:58 +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 1u7go4-00AAZx-6m for pgsql-hackers@arkaria.postgresql.org; Wed, 23 Apr 2025 20:34:57 +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 1u7go3-00AAZ0-Sa for pgsql-hackers@lists.postgresql.org; Wed, 23 Apr 2025 20:34:56 +0000 Received: from mail-vk1-xa2a.google.com ([2607:f8b0:4864:20::a2a]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.96) (envelope-from ) id 1u7go1-001exZ-1t for pgsql-hackers@lists.postgresql.org; Wed, 23 Apr 2025 20:34:56 +0000 Received: by mail-vk1-xa2a.google.com with SMTP id 71dfb90a1353d-51eb1823a8eso160367e0c.3 for ; Wed, 23 Apr 2025 13:34:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1745440492; x=1746045292; darn=lists.postgresql.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=k4FRVEBwCw9GTbqfJ7eVWRxBUKTXFYAUnf57Zq2phh8=; b=gxUEja/4wremaXDiVfJL9tzmbd6g5QM1p6g2Lv3i3PHR/B219jyRnknW9QOlPMhiUc XashYblDSblt5+NbUylK91Tp9bPHfkewlfxTwzTmX9A5PTikGjnb0Fynn3rYoI6rNGql Nd9yB5+e6rU+G8xz3OscZjpb30GUGwnGlLOY0WWyGJmnYly5FpOqT+aJOhmiAbEJjzko /axC2psrqRkP5n8f3gAKrqFmZyw2erlE2kzVAc2QqHLuZXpGYnTt2wa/CPAYZdwXu+4C opeRGZ4sU13mALsKV+MN4PRwCqspcVFRswuzjhx1crZKvseldPJ16ExSs7l3zb5Krlf7 cg+g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745440492; x=1746045292; h=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=k4FRVEBwCw9GTbqfJ7eVWRxBUKTXFYAUnf57Zq2phh8=; b=kqFN6W7HLfl4rQjYXt6i1EOtd8rRVjctVVXDnssAci18pta1e9JtWma1bLAxNGD0BN KYyWQb4HA3zZYMWyZc91vO/CmyQy0AOVIzCHZBPp2S2s/6GMdVWdgJMvFhBWLJDvGz8/ RdKagXlwt15A+OcTuc0dAzY8IviTvJWbBKk4ke/OuhETtZ3kwriYoTbZjlKcfrG8GpBd CkBFxKEBG8V/6FR0R0WDveMz6hHcHepQjFYiZbIacHFxnroKeWpjZOHqigqnBNiu16d5 3+UG8FVW88plL73uy99E3eHOfOWA9BnhIhkcZmobN2iBksldyqHRO/BNlH/010E4Xjz1 Iv1g== X-Forwarded-Encrypted: i=1; AJvYcCU8G71Vw/XEuV3KJAt5XRq17MQ4IIr6L3/aDltMvhbsQPIO8wvoyJ4N0NZCYQDtHKV+K0Bl8tpfqB3KQiMn@lists.postgresql.org X-Gm-Message-State: AOJu0YwmGBNCjvDn+F19PECMndI+mMA7yJmdaLZjJjihEU4zwAXFXWXQ Iq0i0eaKoriB43/YpGW3R1LdYCLtT3rcO8lLdjcyZMtu2isdTnOZVhe/1PYNsyoI0+4o1pHb37T 6u4cI8hR33Xj4Z31nJLdFrpMxulw= X-Gm-Gg: ASbGncvIz7UAT8FKiJWYqRDrU89Wo2vf5E2GEfxR7ym9AFfoEP/llZ5RLG6WYpA4Lxy XrbDwudbMUp8uWHPbtEKcb7Af1GqyvxpQxFVKerYLmN4TH0zvqARgy+GKbL1zVmGQsiYRuIMfib dFW6WuhQfhcPOLRTGAydbZ1ZUErDtmK8gWLhVGAmVNQdZML3io7Ev5oRY= X-Google-Smtp-Source: AGHT+IGYEsdXP0L0FTAdRMOy4JpEB2nIl1sLBqkT6VIs0D9oJZ+fAXbHgp6/Ji4ZBxOBDnreWKFz74i7iVx/pI3NZRA= X-Received: by 2002:a05:6102:3348:b0:4bb:eb4a:fa03 with SMTP id ada2fe7eead31-4d38eef5a16mr529094137.23.1745440492377; Wed, 23 Apr 2025 13:34:52 -0700 (PDT) MIME-Version: 1.0 References: <3C304C9E-976C-4FB9-A883-707E0B90756A@justatheory.com> In-Reply-To: <3C304C9E-976C-4FB9-A883-707E0B90756A@justatheory.com> From: Matheus Alcantara Date: Wed, 23 Apr 2025 17:34:26 -0300 X-Gm-Features: ATxdqUFS88M0hIjbAeUCNhDUP2ZBCVE2VXh3-XIVar9JTRL147mjESBcdD9Yxb8 Message-ID: Subject: Re: extension_control_path and "directory" To: "David E. Wheeler" Cc: Christoph Berg , Peter Eisentraut , pgsql-hackers@lists.postgresql.org Content-Type: multipart/mixed; boundary="0000000000008688320633780867" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000008688320633780867 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable On Wed, Apr 23, 2025 at 10:57=E2=80=AFAM David E. Wheeler wrote: > > On Apr 23, 2025, at 09:50, Christoph Berg wrote: > > > Remembering which path the .control file was found in and from there > > open the extension "directory" doesn't sound too hard. Why does it > > have to be more complicated? > > This was my question, as well. Do you have a WIP patch to share, Matheus? > I spent some time trying to implement this and somehow I got lost in the changes I thought I would need to make to the "find_in_path" function and others it calls, but reading these messages and looking at the code again I think that the change is much simpler than I thought. Attached is a draft patch that uses the path that the .control file was found to search for the script files when the "directory" is set on the .control file. I've tested with the semver extension and it seems to work fine with this patch. Can you please check on your side to see if it's also working? I still want to make some polish on this patch and also include some more test cases using the "directory" on the .control file but I think that is stable to make some tests, make check and check-world is happy. --=20 Matheus Alcantara --0000000000008688320633780867 Content-Type: application/octet-stream; name="v1-0001-Make-directory-work-with-extension-control-path.patch" Content-Disposition: attachment; filename="v1-0001-Make-directory-work-with-extension-control-path.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_m9ue6k9l0 RnJvbSBjMDdiZmQxNTU2NTAyNTkyYzFhNjNjY2VhZmUwNTQyZjI4ZGZlMGE0IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBNYXRoZXVzIEFsY2FudGFyYSA8bXRocy5kZXZAcG0ubWU+CkRh dGU6IFdlZCwgMjMgQXByIDIwMjUgMTY6MTE6MjQgLTAzMDAKU3ViamVjdDogW1BBVENIIHYxXSBN YWtlICJkaXJlY3RvcnkiIHdvcmsgd2l0aCBleHRlbnNpb24gY29udHJvbCBwYXRoCgpQcmV2aW91 c2x5IGV4dGVuc2lvbnMgaW5zdGFsbGVkIG9uIGEgY3VzdG9tIHBhdGggdGhhdCBpcyBhdmFpbGFi bGUgdmlhCmV4dGVuc2lvbl9jb250cm9sX3BhdGggR1VDIHRoYXQgc2V0IHRoZSAiZGlyZWN0b3J5 IiBmaWVsZCBvbiAuY29udHJvbApmaWxlIHdhcyBub3QgYmVpbmcgYWJsZSB0byBDUkVBVEUuIFRo aXMgd2FzIGhhcHBlbmluZyBiZWNhdXNlIG9uCmdldF9leHRlbnNpb25fc2NyaXB0X2RpcmVjdG9y eSB3YXMgaGFyZCBjb2RlZCB0byBzZWFyY2ggZm9yIHRoZSBzY3JpcHQKZmlsZXMgb25seSBvbiB0 aGUgc2hhcmUgc3lzdGVtIGRpci4KClRoaXMgY29tbWl0IGZpeCB0aGlzIGlzc3VlIGJ5IHVzaW5n IHRoZSBjb250cm9sLT5jb250cm9sX2RpciBhcyBhIHNoYXJlCmRpciB0byByZXR1cm4gdGhlIHBh dGggb2YgdGhlIGV4dGVuc2lvbiBzY3JpcHQgZmlsZXMuCi0tLQogc3JjL2JhY2tlbmQvY29tbWFu ZHMvZXh0ZW5zaW9uLmMgICAgICAgICAgICAgIHwgNDMgKysrKysrKysrKysrKysrKystLQogLi4u L3QvMDAxX2V4dGVuc2lvbl9jb250cm9sX3BhdGgucGwgICAgICAgICAgIHwgIDYgKystCiAyIGZp bGVzIGNoYW5nZWQsIDQzIGluc2VydGlvbnMoKyksIDYgZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0 IGEvc3JjL2JhY2tlbmQvY29tbWFuZHMvZXh0ZW5zaW9uLmMgYi9zcmMvYmFja2VuZC9jb21tYW5k cy9leHRlbnNpb24uYwppbmRleCAxODBmNGFmOWJlMy4uZDY4ZWZkNTkxMTggMTAwNjQ0Ci0tLSBh L3NyYy9iYWNrZW5kL2NvbW1hbmRzL2V4dGVuc2lvbi5jCisrKyBiL3NyYy9iYWNrZW5kL2NvbW1h bmRzL2V4dGVuc2lvbi5jCkBAIC0zNzYsNiArMzc2LDE0IEBAIGdldF9leHRlbnNpb25fY29udHJv bF9kaXJlY3Rvcmllcyh2b2lkKQogCiAJCQkvKiBTdWJzdGl0dXRlIHRoZSBwYXRoIG1hY3JvIGlm IG5lZWRlZCAqLwogCQkJbWFuZ2xlZCA9IHN1YnN0aXR1dGVfcGF0aF9tYWNybyhwaWVjZSwgIiRz eXN0ZW0iLCBzeXN0ZW1fZGlyKTsKKworCQkJLyoKKwkJCSAqIEFwcGVuZCAiZXh0ZW5zaW9uIiBz dWZmaXggaW4gY2FzZSBpcyBhIGN1c3RvbSBleHRlbnNpb24gY29udHJvbAorCQkJICogcGF0aC4K KwkJCSAqLworCQkJaWYgKHN0cmNtcChwaWVjZSwgIiRzeXN0ZW0iKSAhPSAwKQorCQkJCW1hbmds ZWQgPSBwc3ByaW50ZigiJXMvZXh0ZW5zaW9uIiwgbWFuZ2xlZCk7CisKIAkJCXBmcmVlKHBpZWNl KTsKIAogCQkJLyogQ2Fub25pY2FsaXplIHRoZSBwYXRoIGJhc2VkIG9uIHRoZSBPUyBhbmQgYWRk IHRvIHRoZSBsaXN0ICovCkBAIC00MjIsNiArNDMwLDkgQEAgZmluZF9leHRlbnNpb25fY29udHJv bF9maWxlbmFtZShFeHRlbnNpb25Db250cm9sRmlsZSAqY29udHJvbCkKIAllY3AgPSBFeHRlbnNp b25fY29udHJvbF9wYXRoOwogCWlmIChzdHJsZW4oZWNwKSA9PSAwKQogCQllY3AgPSAiJHN5c3Rl bSI7CisJZWxzZSBpZiAoc3RyY21wKGVjcCwgIiRzeXN0ZW0iKSAhPSAwKQorCQllY3AgPSBwc3By aW50ZigiJXMvZXh0ZW5zaW9uIiwgZWNwKTsKKwogCXJlc3VsdCA9IGZpbmRfaW5fcGF0aChiYXNl bmFtZSwgZWNwLCAiZXh0ZW5zaW9uX2NvbnRyb2xfcGF0aCIsICIkc3lzdGVtIiwgc3lzdGVtX2Rp cik7CiAKIAlpZiAocmVzdWx0KQpAQCAtNDM5LDggKzQ1MCwxMSBAQCBmaW5kX2V4dGVuc2lvbl9j b250cm9sX2ZpbGVuYW1lKEV4dGVuc2lvbkNvbnRyb2xGaWxlICpjb250cm9sKQogc3RhdGljIGNo YXIgKgogZ2V0X2V4dGVuc2lvbl9zY3JpcHRfZGlyZWN0b3J5KEV4dGVuc2lvbkNvbnRyb2xGaWxl ICpjb250cm9sKQogewotCWNoYXIJCXNoYXJlcGF0aFtNQVhQR1BBVEhdOwogCWNoYXIJICAgKnJl c3VsdDsKKwlpbnQJCQljdHJsZGlyX2xlbjsKKwlpbnQJCQlwcmVmaXhfbGVuOworCWludAkJCWRp cl9sZW47CisJaW50CQkJc3VmZml4X2xlbiA9IHN0cmxlbigiZXh0ZW5zaW9uIik7CiAKIAkvKgog CSAqIFRoZSBkaXJlY3RvcnkgcGFyYW1ldGVyIGNhbiBiZSBvbWl0dGVkLCBhYnNvbHV0ZSwgb3Ig cmVsYXRpdmUgdG8gdGhlCkBAIC00NTIsOSArNDY2LDMwIEBAIGdldF9leHRlbnNpb25fc2NyaXB0 X2RpcmVjdG9yeShFeHRlbnNpb25Db250cm9sRmlsZSAqY29udHJvbCkKIAlpZiAoaXNfYWJzb2x1 dGVfcGF0aChjb250cm9sLT5kaXJlY3RvcnkpKQogCQlyZXR1cm4gcHN0cmR1cChjb250cm9sLT5k aXJlY3RvcnkpOwogCi0JZ2V0X3NoYXJlX3BhdGgobXlfZXhlY19wYXRoLCBzaGFyZXBhdGgpOwot CXJlc3VsdCA9IChjaGFyICopIHBhbGxvYyhNQVhQR1BBVEgpOwotCXNucHJpbnRmKHJlc3VsdCwg TUFYUEdQQVRILCAiJXMvJXMiLCBzaGFyZXBhdGgsIGNvbnRyb2wtPmRpcmVjdG9yeSk7CisJY3Ry bGRpcl9sZW4gPSBzdHJsZW4oY29udHJvbC0+Y29udHJvbF9kaXIpOworCisJLyoKKwkgKiBBc3Nl cnQgdGhhdCB0aGUgY29udHJvbC0+Y29udHJvbF9kaXIgZW5kIHdpdGggL2V4dGVuc2lvbiBzdWZm aXggc28gdGhhdAorCSAqIHdlIGNhbiByZXBsYWNlIHdpdGggdGhlIHZhbHVlIGZyb20gY29udHJv bC0+ZGlyZWN0b3J5LgorCSAqLworCUFzc2VydChjdHJsZGlyX2xlbiA+PSBzdWZmaXhfbGVuICYm CisJCSAgIHN0cmNtcChjb250cm9sLT5jb250cm9sX2RpciArIGN0cmxkaXJfbGVuIC0gc3VmZml4 X2xlbiwgImV4dGVuc2lvbiIpID09IDApOworCisJLyoKKwkgKiBBdCB0aGlzIHBvaW50IHdlIGhh dmUgdGhlIGNvbnRyb2wtPmRpcmVjdG9yeSBhbmQgY29udHJvbC0+Y29udHJvbF9kaXIKKwkgKiBm aWxsZWQuIEFzIHRoZSBleHRlbnNpb24gaXMgdXNpbmcgYSBjdXN0b20gImRpcmVjdG9yeSIgdmFs dWUgd2UgbmVlZCB0bworCSAqIHJlcGxhY2UgdGhlICIvZXh0ZW5zaW9uIiBzdWZmaXggZnJvbSAi Y29udHJvbF9kaXIiIHdpdGggdGhlIHZhbHVlIG9mCisJICogImRpcmVjdG9yeSIgc28gdGhhdCB3 ZSBjYW4gZmluZCB0aGUgY29ycmVjdCBzY3JpcHQgZmlsZXMuCisJICovCisJcHJlZml4X2xlbiA9 IGN0cmxkaXJfbGVuIC0gc3VmZml4X2xlbjsKKwlkaXJfbGVuID0gc3RybGVuKGNvbnRyb2wtPmRp cmVjdG9yeSk7CisKKwkvKiBkb24ndCBmb3JnZXQgbnVsbCB0ZXJtaW5hdG9yICovCisJcmVzdWx0 ID0gKGNoYXIgKikgcGFsbG9jKHByZWZpeF9sZW4gKyBkaXJfbGVuICsgMSk7CisKKwltZW1jcHko cmVzdWx0LCBjb250cm9sLT5jb250cm9sX2RpciwgcHJlZml4X2xlbik7CisJbWVtY3B5KHJlc3Vs dCArIHByZWZpeF9sZW4sIGNvbnRyb2wtPmRpcmVjdG9yeSwgZGlyX2xlbik7CisJcmVzdWx0W3By ZWZpeF9sZW4gKyBkaXJfbGVuXSA9ICdcMCc7CS8qIGRvbid0IGZvcmdldCBudWxsIHRlcm1pbmF0 b3IgKi8KIAogCXJldHVybiByZXN1bHQ7CiB9CmRpZmYgLS1naXQgYS9zcmMvdGVzdC9tb2R1bGVz L3Rlc3RfZXh0ZW5zaW9ucy90LzAwMV9leHRlbnNpb25fY29udHJvbF9wYXRoLnBsIGIvc3JjL3Rl c3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdC8wMDFfZXh0ZW5zaW9uX2NvbnRyb2xfcGF0aC5w bAppbmRleCBjMTg2YzE0NzBmNy4uNzYxNjAxMTEwNWYgMTAwNjQ0Ci0tLSBhL3NyYy90ZXN0L21v ZHVsZXMvdGVzdF9leHRlbnNpb25zL3QvMDAxX2V4dGVuc2lvbl9jb250cm9sX3BhdGgucGwKKysr IGIvc3JjL3Rlc3QvbW9kdWxlcy90ZXN0X2V4dGVuc2lvbnMvdC8wMDFfZXh0ZW5zaW9uX2NvbnRy b2xfcGF0aC5wbApAQCAtNSw2ICs1LDcgQEAgdXNlIHdhcm5pbmdzIEZBVEFMID0+ICdhbGwnOwog dXNlIFBvc3RncmVTUUw6OlRlc3Q6OkNsdXN0ZXI7CiB1c2UgUG9zdGdyZVNRTDo6VGVzdDo6VXRp bHM7CiB1c2UgVGVzdDo6TW9yZTsKK3VzZSBGaWxlOjpQYXRoIHF3KCBtYWtlX3BhdGggKTsKIAog bXkgJG5vZGUgPSBQb3N0Z3JlU1FMOjpUZXN0OjpDbHVzdGVyLT5uZXcoJ25vZGUnKTsKIApAQCAt MTIsOSArMTMsMTAgQEAgJG5vZGUtPmluaXQ7CiAKICMgQ3JlYXRlIGEgdGVtcG9yYXJ5IGRpcmVj dG9yeSBmb3IgdGhlIGV4dGVuc2lvbiBjb250cm9sIGZpbGUKIG15ICRleHRfZGlyID0gUG9zdGdy ZVNRTDo6VGVzdDo6VXRpbHM6OnRlbXBkaXIoKTsKK21ha2VfcGF0aCgiJGV4dF9kaXIvZXh0ZW5z aW9uIik7CiBteSAkZXh0X25hbWUgPSAidGVzdF9jdXN0b21fZXh0X3BhdGhzIjsKLW15ICRjb250 cm9sX2ZpbGUgPSAiJGV4dF9kaXIvJGV4dF9uYW1lLmNvbnRyb2wiOwotbXkgJHNxbF9maWxlID0g IiRleHRfZGlyLyRleHRfbmFtZS0tMS4wLnNxbCI7CitteSAkY29udHJvbF9maWxlID0gIiRleHRf ZGlyL2V4dGVuc2lvbi8kZXh0X25hbWUuY29udHJvbCI7CitteSAkc3FsX2ZpbGUgPSAiJGV4dF9k aXIvZXh0ZW5zaW9uLyRleHRfbmFtZS0tMS4wLnNxbCI7CiAKICMgQ3JlYXRlIC5jb250cm9sIC5z cWwgZmlsZQogb3BlbiBteSAkY2YsICc+JywgJGNvbnRyb2xfZmlsZSBvciBkaWUgIkNvdWxkIG5v dCBjcmVhdGUgY29udHJvbCBmaWxlOiAkISI7Ci0tIAoyLjM5LjUgKEFwcGxlIEdpdC0xNTQpCgo= --0000000000008688320633780867--