Обсуждение: Overloading '<' operator
Hi all, I was trying to overload '<' operator for (varchar,varchar). But in the function which handles the comparision I want to use the previous '<' operator.. but it is going into a recursion. My simplified code looks like : create or replace function orastringcmp (varchar, varchar) returns boolean as 'declare firstarg alias for $1; secondarg alias for $2; begin return firstarg < secondarg; end; 'language 'plpgsql'; create operator < ( procedure = orastringcmp, leftarg = varchar, rightarg = varchar ); Can any one tell how to use the previous version of ooperator while overloading one. Are there any material online which gives the detailed description of operator overloading? ( i could not find much information apart from CREATE OPERATOR documentation ) Thanks, Abhiman
Am Dienstag, 31. August 2004 15:18 schrieb Suresh Tri: > Can any one tell how to use the previous version of ooperator while > overloading one. Don't call the previous operator, call the function underlying the previous operator. -- Peter Eisentraut http://developer.postgresql.org/~petere/
Peter Eisentraut <peter_e@gmx.net> writes: > Am Dienstag, 31. August 2004 15:18 schrieb Suresh Tri: >> Can any one tell how to use the previous version of ooperator while >> overloading one. > Don't call the previous operator, call the function underlying the previous > operator. Or put them in different schemas and use a schema-qualified operator reference (x operator(foo.<) y). But if you actually *replace* the previous definition of the operator, there's no way you can expect to still be able to use it. regards, tom lane
I used the internal function text_pattern_lt and it is working fine! Thanks for helping. cheers Suresh