Re: Add numeric_trim(numeric) - Mailing list pgsql-hackers

From Pavel Stehule
Subject Re: Add numeric_trim(numeric)
Date
Msg-id CAFj8pRBLriSg0F=kV72uVx_0ab6P1TcbP4gOdGhBdFL8QeYhww@mail.gmail.com
Whole thread Raw
In response to Re: Add numeric_trim(numeric)  (Pavel Stehule <pavel.stehule@gmail.com>)
Responses Re: Add numeric_trim(numeric)
List pgsql-hackers
Hi

2015-12-26 21:44 GMT+01:00 Pavel Stehule <pavel.stehule@gmail.com>:
Hi

2015-11-19 3:58 GMT+01:00 Marko Tiikkaja <marko@joh.to>:
Hi,

Here's a patch for the second function suggested in 5643125E.1030605@joh.to.  This is my first patch trying to do anything with numerics, so please be gentle.  I'm sure it's full of stupid.

January's commit fest, feedback welcome, yada yada..

I am looking on this patch and I don't understand to formula

dscale = (ndigits - arg.weight - 1) * DEC_DIGITS;

the following rule is valid

DEC_DIGITS * ndigits >= dscale + arg.weight + 1

so dscale should be calculated like

dscale <= DEC_DIGITS * ndigits - arg.weight - 1

?

but your formula is correct and working. Can you explain it?

I understand to it now. I didn't catch the semantic of arg.weight well.

So I am sending a review of this patch.

1. There is not any objection against this feature. I am thinking so it is good idea, and this mechanism can be used more often in other routines by default. But it is different topic.

2. The implementation is simple, without any possible side effects, performance impacts, etc

3. The patch is clean, small, it does what is expected.

4. There is good enough doc and regress tests

5. The patch respects PostgreSQL formatting - original version is maybe too compact, I am sending a little bit edited code with few more empty lines.

6. All regress tests was passed

I'll mark this patch as ready for commiter

Regards

Pavel

 

Regards

Pavel




 


.m


Attachment

pgsql-hackers by date:

Previous
From: Vladimir Sitnikov
Date:
Subject: Re: [POC] FETCH limited by bytes.
Next
From: Jeff Janes
Date:
Subject: Re: Check for interrupts in bf and xdes crypt()