Re: ERROR: FULL JOIN is only supported with merge-joinable
От | Harco de Hilster |
---|---|
Тема | Re: ERROR: FULL JOIN is only supported with merge-joinable |
Дата | |
Msg-id | 4415A056.2020203@ATConsultancy.nl обсуждение исходный текст |
Ответ на | Re: ERROR: FULL JOIN is only supported with merge-joinable join conditions (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: ERROR: FULL JOIN is only supported with merge-joinable
|
Список | pgsql-general |
Thanks for your thoughts. What is the definition of a merge-joinable condition? Even if I put ExpTime = Infinity (I saw that one coming ;-)), the same error is reported. My only option here is to add A.exptime = B.exptime (which is only true for live data if I use INFINITY), and lose the ability to query historical data. Can I create an type/operator that compares both records that is considered merge-joinable? Kind regards, Harco Tom Lane wrote: >Martijn van Oosterhout <kleptog@svana.org> writes: > > >>I think the reason it hasn't been done for general join conditions is >>because we havn't thought of an efficient algorithm. >> >> > >Right, it's keeping track of the unmatched right-hand rows that's a >problem. > > > >>However, I wonder if youre case couldn't be handled with a >>time-interval datatype such that you condition is merge-joinable on >>that type. I can't quite see it though... >> >> > >Interesting thought. The use of NULLs in this example is a pretty poor >representational choice --- the queries would get a lot simpler if you >used "exptime = INFINITY" to represent unexpired data. That doesn't get >you all the way to a mergejoinable query though :-( > > >
В списке pgsql-general по дате отправления: