Re: [HACKERS] Re: type coersion (was OR clause status)
| От | Thomas G. Lockhart |
|---|---|
| Тема | Re: [HACKERS] Re: type coersion (was OR clause status) |
| Дата | |
| Msg-id | 35CFD855.A86AA9C4@alumni.caltech.edu обсуждение исходный текст |
| Ответ на | Re: [HACKERS] Re: type coersion (was OR clause status) (Bruce Momjian <maillist@candle.pha.pa.us>) |
| Ответы |
Re: [HACKERS] Re: type coersion (was OR clause status)
|
| Список | pgsql-hackers |
> I think I have found part of the cause. We have duplicate type
> conversion functions, and the parser is choosing the one that is not
> in the access method tables.
I don't think so for this case; I got stuck on this for awhile too. It
seems that "oidint4" is an actual data type, so has an "oidint4eq"
comparison function. The parser/planner/optimizer is finding the correct
functions, which are "oideqint4" and "int4eqoid".
Don't know what "oidint4" actually does or how it's used. Confusing...
- Tom
---------------------------------------------------------------------------
>
> test=> select * from pg_operator where oid = 1137;
>
oprname|oprowner|oprprec|oprkind|oprisleft|oprcanhash|oprleft|oprright|oprresult|oprcom|oprnegate|oprlsortop|oprrsortop|oprcode
> |oprrest|oprjoin
>
-------+--------+-------+-------+---------+----------+-------+--------+---------+------+---------+----------+----------+---------+-------+---------
> = | 139| 0|b |t |t | 26| 23|
> 16| 1136| 0| 0| 0|oideqint4|eqsel
> |eqjoinsel (1 row)
>
> test=> select * from pg_operator where oid = 932;
>
oprname|oprowner|oprprec|oprkind|oprisleft|oprcanhash|oprleft|oprright|oprresult|oprcom|oprnegate|oprlsortop|oprrsortop|oprcode
> |oprrest |oprjoin
>
-------+--------+-------+-------+---------+----------+-------+--------+---------+------+---------+----------+----------+---------+--------+------------
> = | 139| 0|b |t |f | 910| 910|
> 16| 932| 935| 0| 0|oidint4eq|intltsel|intltjoinsel (1 row)
В списке pgsql-hackers по дате отправления: