Re: How to compare different datums within from a tuple?
От | Peter Moser |
---|---|
Тема | Re: How to compare different datums within from a tuple? |
Дата | |
Msg-id | 55CB0D8E.4010606@gmail.com обсуждение исходный текст |
Ответ на | Re: How to compare different datums within from a tuple? (Anastasia Lubennikova <lubennikovaav@gmail.com>) |
Список | pgsql-hackers |
Am 11.08.2015 um 13:41 schrieb Anastasia Lubennikova: > 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? > > > In a nutshell, there is no way to compare Datums. > Datum is an abstact data type. It's the backend internal representation > of a single value of any SQL data type. > The code using Datum has to know which type it is, since the Datum > itself doesn't contain that information. > > 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 > > > -- > Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org > <mailto:pgsql-hackers@postgresql.org>) > To make changes to your subscription: > http://www.postgresql.org/mailpref/pgsql-hackers > > > Maybe you can use DatumGetXXX function to extract value. For example, > DatumGetInt32. > <http://doxygen.postgresql.org/postgres_8h.html#aacbc8a3ac6d52d85feaf0b7ac1b1160c> > -- > Best regards, > Lubennikova Anastasia I did this with another column, that has always the result of row_number() as content, which I think will be fine when I use DatumGetInt32. Thanks, Peter
В списке pgsql-hackers по дате отправления: