ANY/SOME/ALL with noncommutable operators
I can do
'abc' LIKE ANY (ARRAY['a%','b%'])
but not
ANY (ARRAY['abc', 'def']) LIKE '%a'
This seems to be a failing in the SQL standard. You can work around this by
creating your own operators, but maybe there should be a general solution, as
there are a lot of noncommutable operators and this example doesn't seem all
that unuseful in practice.
Comments?
On Thu, Jun 19, 2008 at 11:31:02AM +0200, Peter Eisentraut wrote:
I can do
'abc' LIKE ANY (ARRAY['a%','b%'])
but not
ANY (ARRAY['abc', 'def']) LIKE '%a'
This seems to be a failing in the SQL standard. You can work around
this by creating your own operators, but maybe there should be a
general solution, as there are a lot of noncommutable operators and
this example doesn't seem all that unuseful in practice.Comments?
It's been proposed several times before, at least once by Yours Truly,
without objections. I seem to recall it's a SMOP.
Cheers,
David.
--
David Fetter <david@fetter.org> http://fetter.org/
Phone: +1 415 235 3778 AIM: dfetter666 Yahoo!: dfetter
Skype: davidfetter XMPP: david.fetter@gmail.com
Remember to vote!
Consider donating to Postgres: http://www.postgresql.org/about/donate
Peter Eisentraut <peter_e@gmx.net> writes:
I can do
'abc' LIKE ANY (ARRAY['a%','b%'])
but not
ANY (ARRAY['abc', 'def']) LIKE '%a'
This seems to be a failing in the SQL standard. You can work around this by
creating your own operators, but maybe there should be a general solution, as
there are a lot of noncommutable operators and this example doesn't seem all
that unuseful in practice.
Comments?
Making the commutator operator where you need it *is* a general solution.
I think there's a syntactic-ambiguity reason why the spec is like that...
regards, tom lane
Am Donnerstag, 19. Juni 2008 schrieb Tom Lane:
Making the commutator operator where you need it *is* a general solution.
True. Let me rephrase. The problem is that when dealing with operator names
such as ~~ and &&, coming up with commutator operator names will make a mess
of readability.
I think there's a syntactic-ambiguity reason why the spec is like that...
OK, that might need to be analyzed.