Re: regexp_replace failing on 9.0.4

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: regexp_replace failing on 9.0.4
Дата
Msg-id 17297.1363911917@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: regexp_replace failing on 9.0.4  (Rob Sargent <robjsargent@gmail.com>)
Ответы Re: regexp_replace failing on 9.0.4
Список pgsql-general
Rob Sargent <robjsargent@gmail.com> writes:
> For fun I decided to install 9.2 and thought I would try my luck there.
>   Here's was I saw (apologies for the wide output).

> << simple update in place>>
> update cms.segment_data
> set text = regexp_replace(text,'(^.*)ns/acres/pathology/dx/1.5(.*$)',
> E'\\1ns/acres/pathology/dx/1.6\\2')
> where id = 'c092880f-8484-4b29-b712-f3df12216701';
> UPDATE 1
> [ doesn't change the first 150 characters of the field ]

> << update in parts >>
> update cms.segment_data set text =
> regexp_replace(substring(text,1,150),
> '(^.*)ns/acres/pathology/dx/1.5(.*$)',
> E'\\1ns/acres/pathology/dx/1.6\\2') || substring(text, 151)
> where id = 'c092880f-8484-4b29-b712-f3df12216701';
> UPDATE 1
> [ does change the first 150 characters of the field ]

I'm suspicious that there is more than one match to the substring
in that field, with the extra match(es) coming beyond char 150.
The way that regexp is written, I think it would replace the last
match not the first.

            regards, tom lane


В списке pgsql-general по дате отправления:

Предыдущее
От: Jeff Janes
Дата:
Сообщение: Re: Bad plan on a huge table query
Следующее
От: Rob Sargent
Дата:
Сообщение: Re: regexp_replace failing on 9.0.4