| From: | Hannu Krosing <hannu(at)tm(dot)ee> | 
|---|---|
| To: | David Fetter <david(at)fetter(dot)org> | 
| Cc: | PG Hackers <pgsql-hackers(at)postgresql(dot)org> | 
| Subject: | Re: WITH clause | 
| Date: | 2003-12-13 20:58:59 | 
| Message-ID: | 1071349138.2430.7.camel@fuji.krosing.net | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
David Fetter kirjutas R, 12.12.2003 kell 20:13:
> Kind people,
> 
> I'm looking to the SQL WITH clause as a way to get better regex
> support in PostgreSQL.  I've been chatting a little bit about this,
> and here's an idea for a behavior.  Implementation details TBD.
> 
> WITH res = match (x.foo, '([0-9]+)x([0-9]+)')
> SELECT *
> FROM x
> WHERE y = res[2]
> OR    y = res[3];
why not use current standard syntax
SELECT x.*
  FROM x, 
     (select match (x.foo, '([0-9]+)x([0-9]+)')
        from x innerx
       where innerx.pk = x.pk
       ) as res
HAVING y = get_match_group(res, 2)
    OR y = get_match_group(res, 3)
;
with functions match(str,regex) which returns a match object
and get_match_group which extracts matched groups from it.
---------------
Hannu
| From | Date | Subject | |
|---|---|---|---|
| Next Message | David Fetter | 2003-12-13 21:17:28 | Re: WITH clause | 
| Previous Message | Claudio Succa | 2003-12-13 17:25:22 | Re: Read-only column |