Thread

  1. Adding regexp_match() function

    Daniele Varrazzo <daniele.varrazzo@gmail.com> — 2010-05-31T02:09:53Z

    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
    
  2. Re: Adding regexp_match() function

    Jim Nasby <jim@nasby.net> — 2010-06-30T08:25:27Z

    This seems like it'd be useful. Anyone else have thoughts on it?
    
    On May 31, 2010, at 4:09 AM, Daniele Varrazzo wrote:
    
    > 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
    > <regexp_match.patch>
    > -- 
    > Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
    > To make changes to your subscription:
    > http://www.postgresql.org/mailpref/pgsql-hackers
    
    --
    Jim C. Nasby, Database Architect                   jim@nasby.net
    512.569.9461 (cell)                         http://jim.nasby.net
    
    
    
    
  3. Re: Adding regexp_match() function

    Robert Haas <robertmhaas@gmail.com> — 2010-07-02T15:18:08Z

    On Wed, Jun 30, 2010 at 4:25 AM, Jim Nasby <jim@nasby.net> wrote:
    > This seems like it'd be useful. Anyone else have thoughts on it?
    
    +1.
    
    -- 
    Robert Haas
    EnterpriseDB: http://www.enterprisedb.com
    The Enterprise Postgres Company