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.
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.