Adding regexp_match() function
От | Daniele Varrazzo |
---|---|
Тема | Adding regexp_match() function |
Дата | |
Msg-id | AANLkTil2Bc0g0l7glfEahqKJSDh0-m4IKfUkq44J2iaB@mail.gmail.com обсуждение исходный текст |
Ответы |
Re: Adding regexp_match() function
|
Список | pgsql-hackers |
Hello, I'd like to contribute a "regexp_match()" function as discussed in bug #5469 [1] The aim is to overcome the limitation outlined in the thread above <http://archives.postgresql.org/pgsql-bugs/2010-05/msg00227.php>. PostgreSQL currently offers the function regexp_matches(), a SRF (which, unless invoked with the 'g' flag, returns at most one result). An user interested in the "nonglob" behaviour, i.e. expecting at most 1 match group, has to adopt special care to avoid records to be dropped from the target list in case no match is found. Being this a rather common use case, I'd like to provide a function with a less astonishing behaviour, i.e. returning a text[] instead of a set of text[] and returning NULL in case no match is found (the 'g' flag wouldn't be supported). The proposed name is regexp_match(), to underline the semantics very similar to regexp_matches() but returning a single value as result. While the symmetry between the names is a pro, an excessive similarity may result confusing, so I wouldn't be surprised if a better name is found. The implementation of the function is very simple, given the infrastructure already available for the other regexp-related functions. I've actually already implemented it (mostly to check how easy or hard it would have been: I had never written a C procedure for PG before): a preliminary patch is attached. If the idea is accepted I will submit a complete patch including documentation and tests. Best regards, -- Daniele
Вложения
В списке pgsql-hackers по дате отправления: