[Pljava-dev] Possible bug, when updating BigDecimal from trigger/function

Kris Jurka books at ejurka.com
Tue Jun 10 03:47:51 UTC 2008


Petr Michálek wrote:
> 
> When PL/Java trigger/function is updating BigDecimal, scale of new 
> BigDecimal value is not checked. Because of this, is possible store in 
> database numeric value with greater precision than is in column definition.
> 
> Please can anybody confirm this behavior and is possible to fix this.
> 

I haven't tested it myself, but it certainly looks like something that 
would happen when updating TriggerData.  Under the hood we're using 
SPI_modifytuple which is apparently too low level for pg to do the 
precision/scale checks and it expects us to perform them before calling 
this method.  For pljava, the conversion to backend type is going 
through a generic type conversion routine which doesn't have access to 
typmod information.  It seems like we'd have to modify the whole 
coerceObject interface to support passing around typmod.  I'm not sure 
how hard that would be to do.

Kris Jurka


More information about the Pljava-dev mailing list