Thread
-
BUG #17407: trim trims more than expected
PG Bug reporting form <noreply@postgresql.org> — 2022-02-16T10:13:19Z
The following bug has been logged on the website: Bug reference: 17407 Logged by: trim combined with substring from pattern for gives inconsistent output Email address: unmesh.joshi126@gmail.com PostgreSQL version: 12.4 Operating system: Linux 5.15.4-051504-generic Description: Expected output demo=# select trim ('nextval(''' from substring('nextval(''database_table_id_seq''::regclass)' from '%#"%_id_seq#"%' for '#' )); btrim ----------------------- database_table_id_seq (1 row) Unexpected output demo=# select trim ('nextval(''' from substring('nextval(''auth_table_id_seq''::regclass)' from '%#"%_id_seq#"%' for '#' )); btrim ------------------ uth_table_id_seq (1 row) -
Re:BUG #17407: trim trims more than expected
Sergei Kornilov <sk@zsrv.org> — 2022-02-16T11:03:41Z
Hello But why don't you expect such a result? The letter a was definitely mentioned in the list of characters to trim. select trim('nextval' from 'auth_table_id_seq'); btrim ------------------ uth_table_id_seq Is expected result. Probably you need some other string manipulation function. regards, Sergei -
Re: BUG #17407: trim trims more than expected
Alvaro Herrera <alvherre@alvh.no-ip.org> — 2022-02-16T15:12:38Z
On 2022-Feb-16, PG Bug reporting form wrote: > Unexpected output > > demo=# select trim ('nextval(''' from > substring('nextval(''auth_table_id_seq''::regclass)' from '%#"%_id_seq#"%' > for '#' )); > btrim > ------------------ > uth_table_id_seq Not a bug. trim() receives a *set* of characters to remove, not a *substring* to remove, so the 'a' in 'auth' is matched to the 'a' in 'nextval(' and gets removed. You can probably achieve what you want by combining substring() with position() and char_length(), or by using a regular expression in regexp_replace(). -- Álvaro Herrera PostgreSQL Developer — https://www.EnterpriseDB.com/ "La conclusión que podemos sacar de esos estudios es que no podemos sacar ninguna conclusión de ellos" (Tanenbaum)