Re: [PATCH] Fix conversion for Decimal arguments in plpython functions
От | Claudio Freire |
---|---|
Тема | Re: [PATCH] Fix conversion for Decimal arguments in plpython functions |
Дата | |
Msg-id | CAGTBQpa4OmGkAC66of1kyAaj=NOZPRz7+RrS8hniQYj=dXEqrA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: [PATCH] Fix conversion for Decimal arguments in plpython functions (Steve Singer <steve@ssinger.info>) |
Ответы |
Re: [PATCH] Fix conversion for Decimal arguments in
plpython functions
Re: [PATCH] Fix conversion for Decimal arguments in plpython functions |
Список | pgsql-hackers |
On Fri, Jun 28, 2013 at 5:14 PM, Steve Singer <steve@ssinger.info> wrote: > On 06/27/2013 05:04 AM, Szymon Guz wrote: >> >> On 27 June 2013 05:21, Steve Singer <steve@ssinger.info >> <mailto:steve@ssinger.info>> wrote: >> >> On 06/26/2013 04:47 PM, Szymon Guz wrote: >> >> >> >> >> >> >> Hi Steve, >> thanks for the changes. >> >> You're idea about common code for decimal and cdecimal is good, however >> not good enough. I like the idea of common code for decimal and cdecimal. >> But we need class name, not the value. >> >> I've changed the code from str(x) to x.__class__.__name__ so the function >> prints class name (which is Decimal for both packages), not the value. We >> need to have the class name check. The value is returned by the function and >> is a couple of lines lower in the file. >> >> patch is attached. >> > > I think the value is more important than the name, I want to the tests to > make sure that the conversion is actually converting properly. With your > method of getting the class name without the module we can have both. > > The attached patch should print the value and the class name but not the > module name. Why not forego checking of the type, and instead check the interface? plpy.info(x.as_tuple()) Should do. >>> d = decimal.Decimal((0,(3,1,4),-2)) >>> d.as_tuple() DecimalTuple(sign=0, digits=(3, 1, 4), exponent=-2) >>> d.as_tuple() == (0,(3,1,4),-2) True >>> d = decimal.Decimal("3.14") >>> d.as_tuple() DecimalTuple(sign=0, digits=(3, 1, 4), exponent=-2) >>> d.as_tuple() == (0,(3,1,4),-2) True >>>
В списке pgsql-hackers по дате отправления: