In a database with utf8 encoding, this behaves reasonably: select count(*) from (select * from generate_series(1,10000000) x order by x::text collate "en-x-icu") ss;
It eats circa 25MB, not a lot worse than the libc-collation equivalent. But try it in say LATIN1, and it eats multiple gigabytes. I believe the reason is that the code paths in varstr_cmp that make use of icu_to_uchar() have forgotten to free the palloc'd output of the latter. I have not looked to see where else the users of that and the reverse function made this mistake. regards, tom lane -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers