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 1wDijX-003HEt-1U for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Apr 2026 12:55:43 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1wDijW-009opn-05 for pgsql-hackers@arkaria.postgresql.org; Fri, 17 Apr 2026 12:55:42 +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.96) (envelope-from ) id 1wDijV-009opf-2N for pgsql-hackers@lists.postgresql.org; Fri, 17 Apr 2026 12:55:41 +0000 Received: from mail-pj1-x102c.google.com ([2607:f8b0:4864:20::102c]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1wDijT-00000001eoS-1smQ for pgsql-hackers@lists.postgresql.org; Fri, 17 Apr 2026 12:55:41 +0000 Received: by mail-pj1-x102c.google.com with SMTP id 98e67ed59e1d1-358d80f60ccso327008a91.3 for ; Fri, 17 Apr 2026 05:55:39 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1776430537; cv=none; d=google.com; s=arc-20240605; b=hpkUAXL+BAohdIzN+LnS85G81pbiUmUGlwtovd7VdTHdJ1NuGJrycV+DFfeHmAa+Nb wMr5BwOR2dpcoq4gl/FFeNWEEwE9C2UdtBMSagtPw+lWBEmab3RvVOapRIldJmbiL15P H0WN+xFONDYBtuKB9oHyYZuIdZCrQJH3psbuk+332juDG9ls3q21+SxSWrFJ82Q4C2Qf 2Ps0bqk7d91z7ROeIL9PyDothQZG7ag6CXq2wED905Pfy9NnnQVnrwjQEM5bsLx3NUQ+ RmiCVHXKjyI5tcWzOdvZaBy5RPwvoE1Sq+Yf7QIudR6rPBzPTc4PFkYt1q1dfq9d6d6o SYDg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20240605; h=to:subject:message-id:date:from:mime-version:dkim-signature; bh=cEjUzMnfMXbwEpZMHry4G4I7HIgLSk1Ux1+z4aCMeAk=; fh=dxJXJbLzq9Nah1LUdsj4QTuQ3JoDScd0wp1YHY64NXM=; b=XE6iCn9Z2Qw0pqMRKqm9TnWRtWkx3DAxZ7GXL2oqD3zGvvgGjTCU+B9J/SdxIyscLO 2Uc8a3EnAu4qshB0NprYonf1V/ZMmJb/imvVmH0CbPi3b/VhC7z6tgW9cGGE7y+7SHpy ZjV8kbmGjkgJuwJnFk8dT9h0mUoEe0iOppMPzsl62VkHXIl4i0fyu1HOSwBcZLeNTYTK tpZkLTAGuAoJnQee9koQ7nFPmeDmXuThhxwRFyW4cx44bxWePPooVzgW0NTwDCJIYpRV Q0LsZ7Af2d15I7HzTDxZDr+AF62tNkcbtc7pwg3IR6y2hsZlvzJ+PxWKC/Tl6Z6AIxko 3Pvg==; darn=lists.postgresql.org ARC-Authentication-Results: i=1; mx.google.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20251104; t=1776430537; x=1777035337; darn=lists.postgresql.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=cEjUzMnfMXbwEpZMHry4G4I7HIgLSk1Ux1+z4aCMeAk=; b=jL/OEUi935npkrUb3Dz6Xy7uhp83RdQ1QxgOKNOOQ7BKi47P9X8SpZbw496YMC3cmm 1Tkp7L0WB1n3qejfRwSwpKsb9luFhnobSVFONlmnyzjGj/YDCbgREndRSCavMCh1K/He WxXvCaTPkW5zt9n/Dxb9T6vLxrVw8/WFtC2a62PIG0iopWhczZtci+M3YJEZS8DEJuTi vNDZdMMPU2cWdmiqmecX4P9H0Gjc/Vkhcu7J7MmTcZQFaOTSeA+FTyfmdgLd2BB3Y3xV cdsQuDMYp9wzS+SO++HsahlZ5khMsZs3vJKy41G1gQFUcfwkqQJfw0cf44TVQxmqxpLC sLSw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776430537; x=1777035337; h=to:subject:message-id:date:from:mime-version:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=cEjUzMnfMXbwEpZMHry4G4I7HIgLSk1Ux1+z4aCMeAk=; b=AjLHrPMjsJAhvk6v9GQ4mUU/2Y7kUQUT3jea1LwbZSuXBEcaZr7maND91ps7H36YBI gdOyiIcEGiu5l3UA6HaZl0LO9hiUkbW1ebbvMwZqEQ+XEWWnq6EDZ9u0b/y30xVGKzZ2 y2TG1Ol0Fs/hfaAMTbtFcfVzl5mWRWqOHCHnmLAfTxO9L+MJ07B48JzWPN7xkyfHHJHW cUXh8gsiyibsRlhfi3MdBZ9PBFIpW95v3Na99evXSO1SVjf2I9FhlfMO1nyFoRJU5s9k 1T61nJxWIn0pa/rwXo9Vc4NhkGcm9SNBt6ayXqcWMtC8Grpbgp3lzUfeepEWqbpTdAOg o7yA== X-Gm-Message-State: AOJu0YyxJfcdRQUq4ZqNcQVJv6Ae5w+5wJsRWWvcGV9nZHIacXnkRefh 8TRlBkYM1cbgx9kNVTYC83bl/ybo+xsn+yUjh9ReCmKT9H0esikjZhPpppSWPm6f9eB2iTObb+Y 8q5wo6skihU/2XSi0Qxx/BalngPypATxf2A== X-Gm-Gg: AeBDievdLERJYOIfioOC/TaMG5EWfqEU50Tf7KyJqv+/5E+gsQaXFmXh4LOqLgjskx6 EDCaSvTDVsbDqlawQZh7q7nWumOyK3kKTPz2L6sLLjAn6kQgx944FWIg0kEDaWNVdpxS9FbUYhs hPxBKv86NTD2+WnZ2MRp1Kw+r5++AS9PLM5wflQDionwj5qAkk7a8GzgFw0TVMeD+i50fTU24is 6VdCHpBitm8eE8Sxl2cbUigV8AggRq4HfDZSRGQ4T4T6RpxS9WGjCi+fevDaxlPT3TLrjZRONlm l3QBMcYFP8pbIc1v5Es= X-Received: by 2002:a17:90b:3b92:b0:35f:c22d:bddc with SMTP id 98e67ed59e1d1-36140228e21mr3137387a91.0.1776430536840; Fri, 17 Apr 2026 05:55:36 -0700 (PDT) MIME-Version: 1.0 From: Amul Sul Date: Fri, 17 Apr 2026 18:24:58 +0530 X-Gm-Features: AQROBzAfk4t0d_7cy_XrddevacLFV-f-OtsT3MdQGX3VtvlInS-s3G50hHE4jbs Message-ID: Subject: Cleanup: Use modern macro for text-to-CString conversion in plsample.c To: PostgreSQL Hackers Content-Type: multipart/mixed; boundary="0000000000001debe4064fa77721" List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk --0000000000001debe4064fa77721 Content-Type: text/plain; charset="UTF-8" Hi, I noticed that plsample.c uses an outdated method to convert text data to a C string. This old method calls the textout function manually, which adds unnecessary overhead. The attached patch replaces this with the TextDatumGetCString() macro. This macro is more efficient and automatically handles "detoasting" (decompressing/fetching) the data. Since plsample serves as a template for developers writing new extensions, it should follow current best practices. This patch updates the code in both the function and trigger handlers. -- Regards, Amul Sul EDB: http://www.enterprisedb.com --0000000000001debe4064fa77721 Content-Type: application/x-patch; name="0001-plsample-Use-TextDatumGetCString-for-text-to-CString.patch" Content-Disposition: attachment; filename="0001-plsample-Use-TextDatumGetCString-for-text-to-CString.patch" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_mo2wof0k0 RnJvbSAzMjkwYzk0ZDY4MzljMWUwZTI1ZjJiNmY1NTI5MWI5ZDBkMjY2MzI3IE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBBbXVsIFN1bCA8c3VsYW11bEBnbWFpbC5jb20+CkRhdGU6IEZy aSwgMTcgQXByIDIwMjYgMTg6MTI6NDEgKzA1MzAKU3ViamVjdDogW1BBVENIXSBwbHNhbXBsZTog VXNlIFRleHREYXR1bUdldENTdHJpbmcoKSBmb3IgdGV4dC10by1DU3RyaW5nCiBjb252ZXJzaW9u LgoKUmVwbGFjZSB0aGUgb3V0ZGF0ZWQgRGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2Fs bDEodGV4dG91dCwgLi4uKSkKcGF0dGVybiB3aXRoIFRleHREYXR1bUdldENTdHJpbmcoKS4gVGhl IG1hY3JvIGlzIHRoZSBtb2Rlcm4sIG1vcmUKZWZmaWNpZW50IHdheSB0byBjb252ZXJ0IGEgdGV4 dCBEYXR1bSB0byBhIEMgc3RyaW5nIGFzIGl0IGF2b2lkcwp1bm5lY2Vzc2FyeSBmdW5jdGlvbiBj YWxsIG1hY2hpbmVyeSBhbmQgaGFuZGxlcyBkZXRvYXN0aW5nIGludGVybmFsbHkuCgpTaW5jZSBw bHNhbXBsZSBzZXJ2ZXMgYXMgcmVmZXJlbmNlIGNvZGUgZm9yIGV4dGVuc2lvbiBhdXRob3JzLCBp dApzaG91bGQgZm9sbG93IGN1cnJlbnQgaWRpb21hdGljIHByYWN0aWNlcy4KLS0tCiBzcmMvdGVz dC9tb2R1bGVzL3Bsc2FtcGxlL3Bsc2FtcGxlLmMgfCA1ICsrKy0tCiAxIGZpbGUgY2hhbmdlZCwg MyBpbnNlcnRpb25zKCspLCAyIGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBhL3NyYy90ZXN0L21v ZHVsZXMvcGxzYW1wbGUvcGxzYW1wbGUuYyBiL3NyYy90ZXN0L21vZHVsZXMvcGxzYW1wbGUvcGxz YW1wbGUuYwppbmRleCAyOTI0OGJkNzBlYi4uZjI5NGY1Y2E0YWQgMTAwNjQ0Ci0tLSBhL3NyYy90 ZXN0L21vZHVsZXMvcGxzYW1wbGUvcGxzYW1wbGUuYworKysgYi9zcmMvdGVzdC9tb2R1bGVzL3Bs c2FtcGxlL3Bsc2FtcGxlLmMKQEAgLTIxLDYgKzIxLDcgQEAKICNpbmNsdWRlICJjb21tYW5kcy90 cmlnZ2VyLmgiCiAjaW5jbHVkZSAiZXhlY3V0b3Ivc3BpLmgiCiAjaW5jbHVkZSAiZnVuY2FwaS5o IgorI2luY2x1ZGUgInV0aWxzL2J1aWx0aW5zLmgiCiAjaW5jbHVkZSAidXRpbHMvZm1ncnByb3Rv cy5oIgogI2luY2x1ZGUgInV0aWxzL2xzeXNjYWNoZS5oIgogI2luY2x1ZGUgInV0aWxzL3N5c2Nh Y2hlLmgiCkBAIC0xMjgsNyArMTI5LDcgQEAgcGxzYW1wbGVfZnVuY19oYW5kbGVyKFBHX0ZVTkNU SU9OX0FSR1MpCiAJaWYgKGlzbnVsbCkKIAkJZWxvZyhFUlJPUiwgImNvdWxkIG5vdCBmaW5kIHNv dXJjZSB0ZXh0IG9mIGZ1bmN0aW9uIFwiJXNcIiIsCiAJCQkgcHJvbmFtZSk7Ci0Jc291cmNlID0g RGF0dW1HZXRDU3RyaW5nKERpcmVjdEZ1bmN0aW9uQ2FsbDEodGV4dG91dCwgcmV0KSk7CisJc291 cmNlID0gVGV4dERhdHVtR2V0Q1N0cmluZyhyZXQpOwogCWVyZXBvcnQoTk9USUNFLAogCQkJKGVy cm1zZygic291cmNlIHRleHQgb2YgZnVuY3Rpb24gXCIlc1wiOiAlcyIsCiAJCQkJCXByb25hbWUs IHNvdXJjZSkpKTsKQEAgLTI0NCw3ICsyNDUsNyBAQCBwbHNhbXBsZV90cmlnZ2VyX2hhbmRsZXIo UEdfRlVOQ1RJT05fQVJHUykKIAlpZiAoaXNudWxsKQogCQllbG9nKEVSUk9SLCAiY291bGQgbm90 IGZpbmQgc291cmNlIHRleHQgb2YgZnVuY3Rpb24gXCIlc1wiIiwKIAkJCSBwcm9uYW1lKTsKLQlz b3VyY2UgPSBEYXR1bUdldENTdHJpbmcoRGlyZWN0RnVuY3Rpb25DYWxsMSh0ZXh0b3V0LCByZXQp KTsKKwlzb3VyY2UgPSBUZXh0RGF0dW1HZXRDU3RyaW5nKHJldCk7CiAJZXJlcG9ydChOT1RJQ0Us CiAJCQkoZXJybXNnKCJzb3VyY2UgdGV4dCBvZiBmdW5jdGlvbiBcIiVzXCI6ICVzIiwKIAkJCQkJ cHJvbmFtZSwgc291cmNlKSkpOwotLSAKMi40Ny4xCgo= --0000000000001debe4064fa77721--