From: | Bruce Momjian <maillist(at)candle(dot)pha(dot)pa(dot)us> |
---|---|
To: | zalman(at)netcom(dot)com (Zalman Stern) |
Cc: | herouth(at)oumail(dot)openu(dot)ac(dot)il, pgsql-sql(at)postgreSQL(dot)org |
Subject: | Re: [SQL] How match percent sign in SELECT using LIKE? |
Date: | 1999-03-16 22:26:09 |
Message-ID: | 199903162226.RAA20904@candle.pha.pa.us |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-sql |
> One useful and probably not too hard thing to do is to allow ESCAPE '\' on
> the end of the LIKE clause. Any character other than '\' will be an error.
> This allows Postgres users to write compliant SQL code that can be used
> with other databases.
This is an excellent idea, I will implement it.
>
> Another approach is to "rewrite" the match string at parse time. If it is a
> known constant, you can do the whole job there. Otherwise, you'd insert an
> extra node in the parse tree which does the rewrite just before calling hte
> "~~" operator. (I am assuming the match string can be a general expression
> and that you can add a function of two arguments which rewrites the first
> argument using the second argument as the escape character. This is of
> course not the utmost of micro efficiency, but I doubt it would matter
> much.)
>
> But I don't have in depth knowledge of the Postgres SQL parser and
> evaluator so I may be way off base.
That is also an excellent idea. Just convert their escape to \ inside
the parser. Of course, they still have to use \\ to get a \, as in any
string. Great idea.
--
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
From | Date | Subject | |
---|---|---|---|
Next Message | Zalman Stern | 1999-03-16 22:55:33 | Re: [SQL] How match percent sign in SELECT using LIKE? |
Previous Message | Zalman Stern | 1999-03-16 20:51:41 | Re: [SQL] How match percent sign in SELECT using LIKE? |