On Mon, Jul 27, 2009 at 12:42 PM, Pavel Stehule<pavel.steh...@gmail.com> wrote: > 2009/7/25 Merlin Moncure <mmonc...@gmail.com>: >> On Fri, Jul 24, 2009 at 11:40 PM, Pavel Stehule<pavel.steh...@gmail.com> >> wrote: >>> Hello >>> >>> I have one idea, that should simplify string to char array >>> transformation. The base is idea: between every char is empty string, >>> so empty string is regular separator for string_to_array function. >>> This behave is inversion of array_to_string function behave: >>> >>> postgres=# select array_to_string(array['a','b','c'],''); >>> array_to_string >>> ----------------- >>> abc >>> (1 row) >>> >>> postgres=# select string_to_array('abc',''); >>> string_to_array >>> ----------------- >>> {a,b,c} >>> (1 row) >> >> postgres=# select regexp_split_to_array('abc', ''); >> regexp_split_to_array >> ----------------------- >> {a,b,c} >> (1 row) >> >> :-) >> > > I tested implementation and it's about 30% faster than using regexp. > > I could to thing, 30% is significant reason for implementation.
yes, I noticed that too. I was thinking though that if anything should be done, it should be to go the other way: simple cases of regexp_split_to_array should use the simpler algorithm in 'string_to_array'...just not the '' case, since they produce different results. I don't think the chars_to_array function is the way to go. One thing that might work though is to overload the string_to_array function (or use default parameter) to control the empty string case with an bool, or an option or something. merlin -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers