Обсуждение: Regex bug
Kind people, Here's a symptom as reported by John Hansen aka applejack: SELECT 'r'||'\000\125'||'hello' ~ '^.hello' AS "OMG"; OMG ----- t (1 row) I have produced this behavior in 7.4.3 and CVS tip. This should be false, shouldn't it? Cheers, D -- David Fetter david@fetter.org http://fetter.org/ phone: +1 510 893 6100 mobile: +1 415 235 3778 Remember to vote!
David Fetter <david@fetter.org> writes:
> Here's a symptom as reported by John Hansen aka applejack:
> SELECT 'r'||'\000\125'||'hello' ~ '^.hello' AS "OMG";
This is not a regex bug: it has to do with the fact that we don't
support embedded nulls in text values. This may enlighten you
a bit as to what's happening:
regression=# select length ('\000\125');
length
--------
0
(1 row)
regards, tom lane
David Fetter <david@fetter.org> writes:
> On Fri, Aug 06, 2004 at 01:32:32PM -0400, Tom Lane wrote:
>> regression=# select length ('\000\125');
>> length
>> --------
>> 0
>> (1 row)
> Ah, right. John was testing his unicode patch, so there must be some
> magick underneath that distinguishes characters from bytes :)
> Cheers,
> D (feeling a little sheepish. again.)
It occurs to me that a case could be made for having text_in throw an
error if it sees '\000'. I cannot really see that there's any benefit
to the current behavior of (effectively) silently truncating the string.
Comments?
regards, tom lane
On Fri, Aug 06, 2004 at 01:32:32PM -0400, Tom Lane wrote:
> David Fetter <david@fetter.org> writes:
> > Here's a symptom as reported by John Hansen aka applejack:
>
> > SELECT 'r'||'\000\125'||'hello' ~ '^.hello' AS "OMG";
>
> This is not a regex bug: it has to do with the fact that we don't
> support embedded nulls in text values. This may enlighten you
> a bit as to what's happening:
>
> regression=# select length ('\000\125');
> length
> --------
> 0
> (1 row)
Ah, right. John was testing his unicode patch, so there must be some
magick underneath that distinguishes characters from bytes :)
Cheers,
D (feeling a little sheepish. again.)
--
David Fetter david@fetter.org http://fetter.org/
phone: +1 510 893 6100 mobile: +1 415 235 3778
Remember to vote!