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
|
Список | 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 по дате отправления: