Re: extend pgbench expressions with functions

Поиск
Список
Период
Сортировка
От Fabien COELHO
Тема Re: extend pgbench expressions with functions
Дата
Msg-id alpine.DEB.2.10.1509182019100.27223@sto
обсуждение исходный текст
Ответ на Re: extend pgbench expressions with functions  (Robert Haas <robertmhaas@gmail.com>)
Ответы Re: extend pgbench expressions with functions  (Kyotaro HORIGUCHI <horiguchi.kyotaro@lab.ntt.co.jp>)
Список pgsql-hackers
> -1.  double is an inexact type, whereas integer is an exact type.

Sure. I already argue on that very line.

> The typical way to handle this sort of thing is to define a struct
> whose first member is a type field and whose second field is a union
> of all the types you need to care about.

Yep.

> Then that gets passed around everywhere.  This patch should be designed 
> in such a way that if we eventually end up with functions that have 10 
> different return types instead of 2 different return types, we don't 
> need to add 8 more parameters to any functions.  Instead, those still 
> return PgBench_Value (or whatever we call it) which is the 
> aforementioned struct, but there are more options for what that can 
> contain.

I just put the double type as a proof of concept, but for pgbench only 
integers really matters.

What you suggest would work, but it would also result in ugly and lengthy 
code, as I argued in another mail, because you have to decide for 
overloaded operators and functions which actual typed operator must be 
called, and then perform the necessary type conversions depending on the 
actual type of the operands. The implicit descendent typing used in the 
patch hides this, and is more than enough for pgbench, IMO.

If this is a blocker, I would rather remove the support for doubles than 
write verbose and inelegant code.

-- 
Fabien.



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Jesper Pedersen
Дата:
Сообщение: Re: Reducing ClogControlLock contention
Следующее
От: Robert Haas
Дата:
Сообщение: Re: Parallel Seq Scan