| From: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us> |
|---|---|
| To: | Fujii Masao <masao(dot)fujii(at)gmail(dot)com> |
| Cc: | PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
| Subject: | Re: bug of pg_trgm? |
| Date: | 2012-08-08 18:05:41 |
| Message-ID: | 15843.1344449141@sss.pgh.pa.us |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
... btw, I think there is another problem here, which is that
generate_wildcard_trgm will restart get_wildcard_part at the
same place that the second loop exits, which means it would
do the wrong thing if what it returns is a pointer to the
second char of an escape pair. Consider for instance
foo\\%bar
The first call of get_wildcard_part will correctly extract "foo",
but then return a pointer to the second backslash. So the second
call will think that the % is escaped, which it is not, leading to
a wrong decision about whether to pad "bar".
Probably a minimal fix for this could be made by backing up "endword"
one byte before returning it if in_escape is true when the second
loop exits. That would not scale up to preserving the state of
in_wildcard_meta, but since the second loop never advances past a
meta char, that's okay for the moment.
regards, tom lane
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Andrew Dunstan | 2012-08-08 19:05:06 | Re: Git diff patch in context diff format |
| Previous Message | Fujii Masao | 2012-08-08 17:31:22 | Re: avoid unnecessary failure to open restored WAL files |