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 1w8ehV-000kab-2U for pgsql-hackers@arkaria.postgresql.org; Fri, 03 Apr 2026 13:36:42 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1w8ehT-00BlMM-2U for pgsql-hackers@arkaria.postgresql.org; Fri, 03 Apr 2026 13:36:40 +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 1w8ehT-00BlME-0s for pgsql-hackers@lists.postgresql.org; Fri, 03 Apr 2026 13:36:39 +0000 Received: from mail-qk1-x743.google.com ([2607:f8b0:4864:20::743]) by magus.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.98.2) (envelope-from ) id 1w8ehQ-00000000Nf4-1BKu for pgsql-hackers@lists.postgresql.org; Fri, 03 Apr 2026 13:36:38 +0000 Received: by mail-qk1-x743.google.com with SMTP id af79cd13be357-8d1b746f522so218977185a.0 for ; Fri, 03 Apr 2026 06:36:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=dunslane-net.20251104.gappssmtp.com; s=20251104; t=1775223394; x=1775828194; darn=lists.postgresql.org; h=in-reply-to:autocrypt:content-language:references:cc:to:from :subject:user-agent:mime-version:date:message-id:from:to:cc:subject :date:message-id:reply-to; bh=9bvPPEQKqVreVc134BXqFe4eZx7kxjFPDqi57ysc/IA=; b=ykxn/DK+r0KeuHDiYxlE5QR0GOJiDC1kzqRGvXPSWTxLJgM4Viwhql52U1nRkRqrcS 8rO4sY+I/uaSrlhAl0vz4cwfJFaqTqxMK4XmkumVn/WVd48YA6ZxueVUP/s8niAvO/t+ 9RPcDbcfAKzYykOWTDj7QD5zljBpzuS2R4qgARqxw0WO09CTdy6TcpZBDsuZwCSsX9qP 7Gl8mxX5x1HzyC5rjj36Ixr4yxLakaxYxvmdt32DzGqRrGRI+6+Q9mt6yR9IrOCaIgYQ tAOkzY4ezbdYENguiG6P51Vw+9wJl8swwgH9pAp3WHAfP42/FO6R5y9L2r3vQ9oNHQfW cI3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1775223394; x=1775828194; h=in-reply-to:autocrypt:content-language:references:cc:to:from :subject:user-agent:mime-version:date:message-id:x-gm-gg :x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=9bvPPEQKqVreVc134BXqFe4eZx7kxjFPDqi57ysc/IA=; b=MgTWg/36x7pjUeY9vLiBo81k1lJuW8aT3EdfBRFNhe5lM5ZZdES/FjIBxM5LaFAwRT GITFi0ToF4dwM0LjKapVEYkQfpJG0h4O4y4PqZnfCWMrbzJH4jRIMDAFLg7R/kSU1y8v l1pH29bTt1Ylh4poiZcbWh1yBot6DCxNfhCWcIGtBycaXBFlEAW6m/AvjPfrVoMt2kNX uhZrOHIjWO8z0pm3j1cJr94R/PuGeAzqg6LM1JCSIk7XbuA70FA8cgoheLdcuONK01Gf Yu8bzuev1k6Z5VHn0+zV0d5ofy+wnhaAvPhM5reRyCP+rWIB71XtI1taYLTqOxBPjsul wJeA== X-Forwarded-Encrypted: i=1; AJvYcCUBpVH1ayuMAXMRNHJUCK4PcP4xY3uxzX7sFFzdBC9id5sYNB7uLf8nMF7C1mbmPH7AshrgKcHH7noJ+o1S@lists.postgresql.org X-Gm-Message-State: AOJu0YyXDvQkUEsnU2ZGVrJIJK9ZCJPwKn2ZjokRGt79rwZwbc/vvuFh U2EPI1KQScl1xHwt6DDUdyizYT7NvA+vzGQbDnQpgMCNo68E68M2jlgP4Wswaq25T0k= X-Gm-Gg: AeBDietKasGt9PLXwebBPw7DnbSbPQVZa8YN2vK+KbytUWAjHQGtlHYFgCzAVHyPYPE n+j7lUJ6Ps2vLfAZitkGLPuqlh22FYOzt7BpEAFGG6Gx6L/E3QQZ8eRSjlGMxnfMUupHejRGCH+ 1Gj5Ps2aQWbUWQmS6TduijdG8wEFMWfK9H8h2gyUK9W3ku9WTQSEuVtVycr/DUZVoJKqfRvVnIU j48D71cp+cQfM66KgH8Xd+caesyOSAASHu4UGoIxPI2DmIgo3OF0rO3/FqiNOP8DE0ZHw+XcAf8 0+jFOSmYI5lI8B/wWkBALK039vBq8rRlu/VnSmIrqI2nWlb/cABzFG6AFJNP6js9e5eYcL74da7 ImVcj6HuR/yuEkalaZKkJ3U7SAm+C1D/XRelLtTvl2QLkRVpEHstEsJxGYi1dTJSD1+io1aZPxI gCWgQRnxAr6LBM1xJ9uoIjkfgHxoAvtQ== X-Received: by 2002:a05:6214:4e85:b0:89f:c2eb:7fdd with SMTP id 6a1803df08f44-8a705583b76mr44986246d6.53.1775223393936; Fri, 03 Apr 2026 06:36:33 -0700 (PDT) Received: from ?IPV6:2605:a601:a6b0:500::1cb? ([2605:a601:a6b0:500::1cb]) by smtp.googlemail.com with ESMTPSA id 6a1803df08f44-8a593333516sm46099696d6.6.2026.04.03.06.36.32 (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Fri, 03 Apr 2026 06:36:33 -0700 (PDT) Content-Type: multipart/alternative; boundary="------------f7G9rYeWjrZjX0hgwtpAa4Mw" Message-ID: Date: Fri, 3 Apr 2026 09:36:31 -0400 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: PATCH: jsonpath string methods: lower, upper, initcap, l/r/btrim, replace, split_part From: Andrew Dunstan To: Marcos Pegoraro Cc: "David E. Wheeler" , Florents Tselai , pgsql-hackers , Chao Li , =?UTF-8?Q?=C3=81lvaro_Herrera?= , Tom Lane , Peter Eisentraut , Robert Haas , Alexander Korotkov , jian he References: <202510210803.3b3vfvygxtjl@alvherre.pgsql> <931F201B-FF38-486E-BDEE-DF9692A01E1D@justatheory.com> <1eb15091-660d-477b-acda-b61d00bc9ffb@dunslane.net> <278cb771-6008-44e5-8eaa-9d4acdb56c79@dunslane.net> <9E9B3C10-7535-4704-A04A-DF5D32C43DBE@justatheory.com> <34758556-D3D0-42C3-9A1B-CBF64336ADBC@justatheory.com> <88a392fd-d732-45a7-bcfc-291258849fbe@dunslane.net> <40bd5c82-639d-41cd-ad85-9cd2dffd0680@dunslane.net> Content-Language: en-US Autocrypt: addr=andrew@dunslane.net; keydata= xsBNBE7KWFkBCAClridxur2AIc7eW2AR7izbfp3EnNefie2HbLF0izW5Ik5UjX2HBXBx4syI gY6b0ugohXrr274+baoAlvSbq6cAoQuEVrk5IZFzt20b1Xkx65FwGSEj526yiKLocqkJceSq Xr9xcA5SGY+FZv441chh5SU92v4q6z+6LPpoHOh97ptAVXZYNTtU0LevyvD5lja0TzbvJm6C eFXitJfnm1pLEr0DGJCR/iUOl/N62Kh4855zZC7NHIjQHPOvV5Stz/l5ilDhvGVk+xkXFPys SjZoUr1rXhYLpiyi5sR0X9FHXT0KnGuz1F5ERO7ZTLSSQ6fJwPj6gOk9K+vvoKvoeql5ABEB AAHNJEFuZHJldyBEdW5zdGFuIDxhbmRyZXdAZHVuc2xhbmUubmV0PsLAlwQTAQgAQQIbAwIX gAIZAQULCQgHAwUVCgkICwUWAgMBAAIeBRYhBOQ+WEYd/Hy/RGkVpZn6f8tZ/DuBBQJoGNGd BQkdEO8nAAoJEJn6f8tZ/DuBq74H/jkTR4Zi3stbw+xC7v2u3QozssK7MYPL2AsVfh7OealS h182fiWXpfvmmAB7WUHbhk9GC2RAOnHI/2d2jgKaMLAHsGYOT0YopTVIwRY43fCw/mK67yxc wmDcX+zyKfLaivNbf5A7QPLNwda98bEAMSJ8Sn652Uc6cA8t3uKGsVzbRBQOoYzjgvBCfSrE 9ql3PDNg0l4BfAqabd2f70ZUm9VAMEPrgv/v2xI7M2XiL4g5BVmqLCOwxLM8RMCotCuoweUr VO43DeBCIDwLxotMJKvGWDjBzQYlU1NPUAtNcz/gN9ITUe1VUGjyvGj4u1lxBOcQQUw7l1+T 5moZ4iZxXzvOwE0ETspYWQEIANGc4zQULOxhbqO2dyD51YhqCNRmm9oKWaqf+wmW4tpDe/VV cxAnNizd4LWCHfzpb5cHAtGkOPePMfzWVf6nvdF7d3eglbtf59+zG7O7llV0xSSoFiieQBsr GvqDInXYX/4mRRXMtyhM353/tixC9RWLs1oofyYmCPPXXY7h9R7en3B8BoVrRFcdzlIY/NFN hFGW/9dkEiGjgna2Rk6e15kln4ZvFBWUg23p93w/pqXcxY6+k/8TEk+C4R+M6w7o2PLGOjdZ +kPiUcw5H85zf/yZJwQXzisXaNduwWB6Vads9YC9dj6kPR1c4VGRqAaYL++LAEOqrlvm2Tvq QqZRtnEAEQEAAcLAfAQYAQgAJgIbDBYhBOQ+WEYd/Hy/RGkVpZn6f8tZ/DuBBQJoGNI2BQkd EODdAAoJEJn6f8tZ/DuBfw0IAKTsfD40teP/pp+bsLLMSxPXUYrrprTj7WFB5v61p6dkpSr/ qXmMlyahdxQFaPmfVgVirB1Vk/kHiWNnnGjfUV9nB2Zg9LI0Xb9/ts3LsUiRWXzG3tkMY6XL vsVOxW4XFRND9l2q+WW93aZ1DZl+fqWfYgMvsusFRhmGFOKTRfKPta2Pkv+AhA24N4+PrR5p bU4k2MO8PAGiK8eaYKGFG1bHKuAvoDoF7WXJ3FHxuWqLnKEt4dfOLm5pAe3zq1Lt6q8azT9i QWGpSAK5vQUWQHBHpiDjdPeqKZ6HiAXIIKfSmb+jrvXBqoP+D6/K7rUjG2aXiRtTIAXms9sm VRu7cmw= In-Reply-To: <40bd5c82-639d-41cd-ad85-9cd2dffd0680@dunslane.net> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk This is a multi-part message in MIME format. --------------f7G9rYeWjrZjX0hgwtpAa4Mw Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 2026-04-03 Fr 7:51 AM, Andrew Dunstan wrote: > > > On 2026-04-02 Th 5:10 PM, Marcos Pegoraro wrote: >> Em qui., 2 de abr. de 2026 às 16:22, Andrew Dunstan >> escreveu: >> >> Committed. >> >> There is a typo here. >> jsonb_path_query('"xyxtrimyyx"', '$.btrim("xyz")') >> should be >> jsonb_path_query('"xyztrimxyz"', '$.btrim("xyz")') >> >> > > Good catch, will fix. > > > On second thoughts, I don't think this is a typo. btrim() removes leading and trailing sequences of any characters in the argument string.: andrew@~=# select jsonb_path_query('"xyxtrimyyx"', '$.btrim("xyz")');  jsonb_path_query ------------------  "trim" (1 row) cheers andrew -- Andrew Dunstan EDB:https://www.enterprisedb.com --------------f7G9rYeWjrZjX0hgwtpAa4Mw Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: 8bit


On 2026-04-03 Fr 7:51 AM, Andrew Dunstan wrote:


On 2026-04-02 Th 5:10 PM, Marcos Pegoraro wrote:
Em qui., 2 de abr. de 2026 às 16:22, Andrew Dunstan <andrew@dunslane.net> escreveu:

Committed.

There is a typo here. 
<literal>jsonb_path_query('"xyxtrimyyx"', '$.btrim("xyz")')</literal> 
should be 
<literal>jsonb_path_query('"xyztrimxyz"', '$.btrim("xyz")')</literal> 



Good catch, will fix.




On second thoughts, I don't think this is a typo. btrim() removes leading and trailing sequences of any characters in the argument string.:


andrew@~=# select jsonb_path_query('"xyxtrimyyx"', '$.btrim("xyz")');
 jsonb_path_query
------------------
 "trim"
(1 row)


cheers


andrew

--
Andrew Dunstan
EDB: https://www.enterprisedb.com
--------------f7G9rYeWjrZjX0hgwtpAa4Mw--