Re: [HACKERS] RE: [PHP3] [OFF-TOPIC] POSTGRES

From: Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us>
To: djackson(at)cpsgroup(dot)com (Jackson, DeJuan)
Cc: djl(at)stftx9(dot)irngtx(dot)tel(dot)gte(dot)com, BSchaffner(at)accentonline(dot)com, rasmus(at)lerdorf(dot)on(dot)ca, bourbon(at)bourbon(dot)netvision(dot)net(dot)il, php3(at)lists(dot)php(dot)net, pgsql-hackers(at)hub(dot)org
Subject: Re: [HACKERS] RE: [PHP3] [OFF-TOPIC] POSTGRES
Date: 1999-03-15 13:48:17
Message-ID: 199903151348.IAA08765@candle.pha.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

I am just getting to this message. I have overhauled the LIKE handling
for the upcoming 6.5 beta(soon to start).

I am attaching a patch that represents my changes.

FYI, the SQL standard say LIKE '%%' is the same as LIKE '%'. To match a
literal '%', you have to do '\%'.

Let me know if you see any LIKE problems. Thanks.

> CC'd to the PostgreSQL Hackers list.
>
> I performed the same test as Brian on the cvs version of 6.4 and it
> exhibits the same behavior. could we get a fix in for the release.
> -DEJ
>
> > Hehehe...
> >
> > Try using the "*", as I posted to your early send... see if it makes
> > any
> > difference.
> Doing a like '*' will search for the character '*';
>
> > > er sorry about that last "early send" message...
> > >
> > > well, at first I though you were correct, but it turns out that
> > > postgresql
> > > is also inconsistent. Consider a table with a field username. 3
> > records:
> > >
> > > "Brian % Schaffner"
> > > "Brian T Schaffner"
> > > "%"
> > >
> > > select * from table where username='%' gets all rows (expected)
> > > select * from table where username='%%' gets the row with "%"
> > (expected)
> > > select * from table where username='%%%' gets the row with "%"
> > > (expected)
> > > select * from table where username='%%%%' gets no rows (expected)
> > > select * from table where username='% %' gets the 2 name rows
> > (expected)
> > > select * from table where username='% %%' gets the 2 name rows (NOT
> > > expected)
> > > select * from table where username='%% %' gets no rows (NOT
> > expected)
> > > select * from table where username='% % %' gets the 2 name rows
> > > (expected)
> > > select * from table where username='% %% %' gets the 2 name rows
> > (NOT
> > > expected)
> > > select * from table where username='% % % %' gets no rows (expected)
> > >
> > > so, if %% is the LIKE representation for a literal %, then why does
> > '%
> > > %%' return
> > > the 2 name rows, and '%% %' return no rows, and '% %% %' not return
> > the
> > > row with the
> > > embedded literal %?
> > >
> > > I could not get postgres to single out the row with the embedded %
> > using
> > > LIKE.
> > >
> > > why is this not getting any easier to define?
> > >
> > > -----Original Message-----
> > > From: Daniel J. Lashua [mailto:djl(at)stftx9(dot)irngtx(dot)tel(dot)gte(dot)com]
> > > Sent: Friday, September 25, 1998 10:58 AM
> > > To: Brian Schaffner
> > > Cc: 'Rasmus Lerdorf'; 'bourbon(at)bourbon(dot)netvision(dot)net(dot)il';
> > > php3(at)lists(dot)php(dot)net
> > > Subject: RE: [PHP3] ARGH!! strstr() changed?
> > >
> > >
> > > On Fri, 25 Sep 1998, Brian Schaffner wrote:
> > >
> > > > in PostgreSQL (6.3.2 on FreeBSD 2.2.6):
> > > >
> > > > select * from table where field like '%%';
> > > >
> > > > returns NO rows;
> > > >
> > > > select * from table where field like '%';
> > > >
> > > > returns ALL rows;
> > > >
> > > > -brian-
> > > >
> > >
> > >
> > > I am not in any way doubting what you say... but that doesn't seem
> > > right.
> > > They should both reuturn all rows. Maybe in Postgres %% is the way
> > to
> > > state you actually want to search for ONE "%"?
> > >
> > > Out of curiosity, if you have time, could you test that. Make a
> > table
> > > with
> > > a field and in one row of the table in the field insert "%". Then do
> > > your
> > > select * from table where somefield LIKE '%%' and see if it returns
> > the
> > > one row?
> > >
> > > Am I offbase, or does that sound like incorrect behavior to you too?
> > >
> > > Daniel
> > >
> > >
> >
> >
> > --
> > PHP 3 Mailing List http://www.php.net/
> > To unsubscribe send an empty message to php3-unsubscribe(at)lists(dot)php(dot)net
> > To subscribe to the digest list: php3-digest-subscribe(at)lists(dot)php(dot)net
> > For help: php3-help(at)lists(dot)php(dot)net Archive:
> > http://www.php.net/mailsearch.php3
> >
>
>

--
Bruce Momjian | http://www.op.net/~candle
maillist(at)candle(dot)pha(dot)pa(dot)us | (610) 853-3000
+ If your life is a hard drive, | 830 Blythe Avenue
+ Christ can be your backup. | Drexel Hill, Pennsylvania 19026

Attachment Content-Type Size
unknown_filename text/plain 2.1 KB

In response to

Browse pgsql-hackers by date

  From Date Subject
Next Message Bruce Momjian 1999-03-15 14:11:28 Re: [HACKERS] How to destroy your entire Postgres installation
Previous Message Dmitry Samersoff 1999-03-15 13:36:55 new mirror