How to compare different datums within from a tuple?

From: Peter Moser <pitiz29a(at)gmail(dot)com>
To: pgsql-hackers(at)postgresql(dot)org
Subject: How to compare different datums within from a tuple?
Date: 2015-08-10 16:36:39
Message-ID: 55C8D317.5080305@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hello,
I try to write my first patch. It is too early to tell more about it,
but I am just fiddling around with some prototypes.

Can someone tell me, how I can compare two datum fields, when I do not
know the data type in advance inside an executor function?

For example, "x less than y" where x and y are of various types that
form intervals. I have found the method ExecTuplesMatch, but it is only
for equality comparison, I think. Another one is ApplySortComparator...
maybe that's the correct way to go?

Some code to make things clearer...

Datum x = heap_getattr(out->tts_tuple,
node->xpos,
out->tts_tupleDescriptor,
&isNull1);
Datum y = slot_getattr(curr, node->ypos, &isNull2);

if (compareDatumWithCorrectMethod(x,y) < 0)
{
/* do something */
}

Thx,
Peter

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Petr Jelinek 2015-08-10 16:39:41 Re: WIP: Rework access method interface
Previous Message Petr Jelinek 2015-08-10 16:31:40 Re: WIP: Rework access method interface