Re: [COMMITTERS] 'pgsql/src/backend/parser gram.y'
Update of /usr/local/cvsroot/pgsql/src/backend/parser
In directory hub.org:/tmp/cvs-serv80148/parserModified Files:
gram.y
Log Message:
Repair recently-introduced error in makeIndexable for LIKE:
a non-leading % would be put into the >=/<= patterns. Also, repair
longstanding confusion about whether %% means a literal %%. The SQL92
doesn't say any such thing, and textlike() knows that, but gram.y didn't.
Houston, we have a problem. DoMatch has:
case '%':
/* %% is the same as % according to the SQL standard */
/* Advance past all %'s */
while (*p == '%')
Don't we want %% to be %?
--
Bruce Momjian | http://www.op.net/~candle
maillist@candle.pha.pa.us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026
Import Notes
Reply to msg id not found: 199906071429.KAA80171@hub.org
Bruce Momjian <maillist@candle.pha.pa.us> writes:
Repair recently-introduced error in makeIndexable for LIKE:
a non-leading % would be put into the >=/<= patterns. Also, repair
longstanding confusion about whether %% means a literal %%. The SQL92
doesn't say any such thing, and textlike() knows that, but gram.y didn't.
Houston, we have a problem. DoMatch has:
case '%':
/* %% is the same as % according to the SQL standard */
/* Advance past all %'s */
while (*p == '%')
Don't we want %% to be %?
I looked at the spec, and this piece of code is right: there is nothing
in the spec that says that %% means anything other than two string
pattern matches (which of course has the same effect as one). So I made
gram.y agree.
It could be that people like Microsoft don't follow the spec... can
anyone check this?
regards, tom lane
Import Notes
Reply to msg id not found: YourmessageofMon7Jun1999104207-0400199906071442.KAA07021@candle.pha.pa.us | Resolved by subject fallback
Bruce Momjian <maillist@candle.pha.pa.us> writes:
Repair recently-introduced error in makeIndexable for LIKE:
a non-leading % would be put into the >=/<= patterns. Also, repair
longstanding confusion about whether %% means a literal %%. The SQL92
doesn't say any such thing, and textlike() knows that, but gram.y didn't.Houston, we have a problem. DoMatch has:
case '%':
/* %% is the same as % according to the SQL standard */
/* Advance past all %'s */
while (*p == '%')Don't we want %% to be %?
I looked at the spec, and this piece of code is right: there is nothing
in the spec that says that %% means anything other than two string
pattern matches (which of course has the same effect as one). So I made
gram.y agree.It could be that people like Microsoft don't follow the spec... can
anyone check this?
DoMatch, which implements LIKE clearly thinks %% is %, and I think our
users think so too. I would not change it.
--
Bruce Momjian | http://www.op.net/~candle
maillist@candle.pha.pa.us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026
Bruce Momjian <maillist@candle.pha.pa.us> writes:
DoMatch, which implements LIKE clearly thinks %% is %,
Careful: DoMatch thinks %% is a wildcard (ie, same as %), not literal %.
It's hard to say what our users think. If you'd written %% it would
indeed match a % --- but you'd have a problem with it matching other
stuff too. This might or might not be partially masked by the range
conditions inserted by the parser. (But how long have we been doing
that?)
regards, tom lane
Import Notes
Reply to msg id not found: YourmessageofMon7Jun1999113535-0400199906071535.LAA09213@candle.pha.pa.us | Resolved by subject fallback
Bruce Momjian <maillist@candle.pha.pa.us> writes:
DoMatch, which implements LIKE clearly thinks %% is %,
Careful: DoMatch thinks %% is a wildcard (ie, same as %), not literal %.
It's hard to say what our users think. If you'd written %% it would
indeed match a % --- but you'd have a problem with it matching other
stuff too. This might or might not be partially masked by the range
conditions inserted by the parser. (But how long have we been doing
that?)
Sorry. I see now. I was confused.
--
Bruce Momjian | http://www.op.net/~candle
maillist@candle.pha.pa.us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026