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 1vSCqU-0076dD-2T for pgsql-hackers@arkaria.postgresql.org; Sun, 07 Dec 2025 11:22:30 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.96) (envelope-from ) id 1vSCqS-00D5Yi-0j for pgsql-hackers@arkaria.postgresql.org; Sun, 07 Dec 2025 11:22:28 +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 1vSCqR-00D5YZ-30 for pgsql-hackers@lists.postgresql.org; Sun, 07 Dec 2025 11:22:28 +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 1vSCqP-003f3N-1b for pgsql-hackers@lists.postgresql.org; Sun, 07 Dec 2025 11:22:27 +0000 Received: by mail-vk1-xa2a.google.com with SMTP id 71dfb90a1353d-559748bcf99so2801210e0c.3 for ; Sun, 07 Dec 2025 03:22:24 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1765106543; x=1765711343; 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=dyiBpn7TKgV/BNqUKqVukl2j50K6lOTquKQm02+rnq8=; b=OMEpdcVfAxAOOm9WrK3aQjegCf/aZDmy/IkVTYp52SJ19S1YiTR0Vwi/uLVNmsU8+w 0WIAhubVLxC85snRMRnQJpCv5FjoB+P91w/dJR0FV4mHkQdNlnF79hpN5hVliyz3PYvb 3bM/FbQv0ZF93uPEFhdLmDW6dvG+sURjWDlwOnqiA+duKRqM1mbRHmmvrGssCmJMVCa7 tjzapku2onVQZeAKbxrRMZWe8rNTAGYAnvM09xG6kwlrloEY2jjUPbNhNcAucDiY+lUz 6OlNnkHUE3oH0S+efOHFfmLb/N5zoYngya3sn2rhtU4gNvObQCZxy978bVBG4U91aVpz fYyQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1765106543; x=1765711343; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=dyiBpn7TKgV/BNqUKqVukl2j50K6lOTquKQm02+rnq8=; b=jBhxibgPc9b8XoKa903PoT1AOfFTOefOUxA/Ly+NcueX6a8ngIEx5mYx1ysV1zht+4 xkgKsRHi0LBbe5L9UTJmtgg79FLeWHotkmWOChsY1k9N9iqhM7z/iW+6JqQURCXAgWe7 8PCW/j3m1EoiHGSau9tv0tz+BSW2H4Id2o3xK4gkVN3xmSviVpNpGZknguE0s+QS2zOw QacsLtjzT2Yh8rUoPN64BTt8EMKTndZ4JBu75rhr4lw0nFNr5u0NLRh2RlQ/QwbwX6Sf p3QbQ03wiKqtV+aoF5H8hRyctHS1mZ2I1jHrhsAsJK2RfJHcwusF6IBx1p04l9TY9PL4 17/w== X-Forwarded-Encrypted: i=1; AJvYcCWq7GnzTUQu3kkl/OqNXBK/hWL0Sl3FPUwokihmAv/gMXdlR51xeB0HOtpVzICmr01njZ8JrUxxtUEExzwy@lists.postgresql.org X-Gm-Message-State: AOJu0YxnQxj6SxmRc3hz3jyFN5H5tEKXs/kCRjCTLONp0jMBVGhSur3m sxQ8wN3bjF6LWcm4TITKN1FnO8grRXL/MQhrwmPOV3ZaTXaHjEqB3oHxl+P2HK9CdJpA6v6eaEv c2rnDU25cf6NmgcnKlfgjQXLTvaFsNVY= X-Gm-Gg: ASbGnct7z7slq+dXJidnWqMjezw4N9jUPsz2Fq5qNQCj9NKEYwpp0L3FDFciFSdXiJ3 UgDkGZSvUSrrF6KnmwwLYjxnWPwENHCEJ5bu12zebGFGyk4yf+zjM/2EuAFnAvIoXmn2fIsHyEp bLoe0m/3vbn2TgbOj0X92xF9FKJF/33yGNmyanTmtJsyCEap9TXZpqqQOegc5mCQgdoS5VHi0A0 W7m/QVAyL2TMwT4tpHL/RNyYGsRd3lb3YN1CwY+M4NC0ELUt8Dt5n6574rFm8sxd0xNW9ILmNzm ycuj3KOlRwS7UEy6Nb/tM2wi9qIBCz0hgu0jqU41YxJ+Vtsl2v+U6ckI0J7IIfhB55ln1VIQvff qydCkui4ba40MCQInrnMD0pbcgDNMnLuVT6XbZs7B7IIU4BcVocqyuGomYGx/Nd8f9xq3TMY/bJ DkI5yWrj1A X-Google-Smtp-Source: AGHT+IEhvZ+0B2Gx4YWH9uCKSnPR+M62XU4Lzk1Q5aHOs+TPLMFeBVaVMfrnchTg7zxpvR3CrxYz01hzmunBCPqW8qw= X-Received: by 2002:a05:6122:6e02:b0:54a:9cff:6fe7 with SMTP id 71dfb90a1353d-55e8460ca5bmr1312947e0c.4.1765106543102; Sun, 07 Dec 2025 03:22:23 -0800 (PST) MIME-Version: 1.0 References: <202510210803.3b3vfvygxtjl@alvherre.pgsql> <87530674-E6B6-4C97-A704-78C7E07CF01F@gmail.com> <3DC56A6A-9525-4C05-B45A-9A135A66BC34@justatheory.com> In-Reply-To: From: jian he Date: Sun, 7 Dec 2025 19:21:47 +0800 X-Gm-Features: AQt7F2reygfQjx-1EklKkAY6v1kp-HJygzKNxZIIrXo1T-Lj-I1YuzYs1iNNqRE Message-ID: Subject: Re: PATCH: jsonpath string methods: lower, upper, initcap, l/r/btrim, replace, split_part To: "David E. Wheeler" Cc: Chao Li , =?UTF-8?Q?=C3=81lvaro_Herrera?= , Florents Tselai , Tom Lane , Peter Eisentraut , Robert Haas , Alexander Korotkov , pgsql-hackers , Andrew Dunstan 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 hi. jsonb_path_query('"abc,def,ghi,jkl"', '$.split_part(",", 2)') "ghi" the return value should be "def" ? string . ltrim(characters) string String with the longest string containing only spaces or the characters in characters removed from th= e start of string jsonb_path_query('" hello"', '$.ltrim()') "hello" jsonb_path_query('"zzzytest"', '$.ltrim("xyz")') "test" The actual signature: characters part is optional, but we didn't use square brackets to indicate it's optional. personally I would prefer list two seperate function signature, like: string . ltrim() string string . ltrim(characters) string similarly: string . rtrim([ characters ]) =E2=86=92 string change to ``` string . rtrim() =E2=86=92 string string . rtrim(characters ) =E2=86=92 string ``` string . btrim([ characters ]) =E2=86=92 string change to ``` string . btrim() =E2=86=92 string string . btrim([ characters ]) =E2=86=92 string `` would improve the readability, I think. -- jian https://www.enterprisedb.com/