Support Article
Declare Index decimal field precision error
SA-75866
Summary
Declare Index decimal field precision error occurs when saving an instance to an exposed decimal property.
Error Messages
ERROR: numeric field overflow
Detail: A field with precision 18, scale 9 must round to an absolute value less than 10^9. Call getNextException to see other errors in the batch.
at org.postgresql.jdbc.BatchResultHandler.handleError(BatchResultHandler.java:148) ~[postgresql-42.1.1.jar:42.1.1] at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:2190) ~[postgresql-42.1.1.jar:42.1.1]
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:472) ~[postgresql-42.1.1.jar:42.1.1]
at org.postgresql.jdbc.PgStatement.executeBatch(PgStatement.java:791) ~[postgresql-42.1.1.jar:42.1.1]
at org.postgresql.jdbc.PgPreparedStatement.executeBatch(PgPreparedStatement.java:1547) ~[postgresql-42.1.1.jar:42.1.1]
at sun.reflect.GeneratedMethodAccessor113.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_171]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_171]
at org.apache.tomcat.jdbc.pool.StatementFacade$StatementProxy.invoke(StatementFacade.java:114) ~[tomcat-jdbc.jar:?] at com.sun.proxy.$Proxy6.executeBatch(Unknown Source) ~[?:?]
at com.pega.pegarules.data.internal.store.DatabasePreparedStatementImpl.executeBatch(DatabasePreparedStatementImpl.java:472) ~[prprivate.jar:?]
Steps to Reproduce
Save the instance.
Root Cause
A defect or configuration issue in the operating environment.
By default, when a decimal property is exposed in Postgres, Pega creates the column as a numeric(18,9) field.
That is, only up to 18 (precision) digits can be present, 9 (scale) of which are to the right of the decimal and are always included. This only allows values less than one billion.
Resolution
Perform the following local-change:
Modify the column precision to numeric(18,6).
Published March 24, 2019 - Updated December 2, 2021
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.