Anonymous | Login
Project:
RSS
  
News | My View | View Issues | Roadmap | Summary

View Revisions: Issue #54768 Back to Issue ]
Summary 0054768: compilation error: [java] org.postgresql.util.PSQLException: Bad value for type int : 2173831272
Revision 2024-02-27 09:47 by shuehner
Steps To Reproduce Preparation
- create enough database objects (roughly 2,147,483,647)
  - It should be enough to create+drop objects just to drive up oid usage
  - There is be NO need to keep all all those objects at once
  - oid are global per database so type of objects created should not matter

- drop function next_day (to force its recreation)
- run update.database to recreate that function
- check that "SELECT proname, oid, proconfig FROM pg_proc where proname = 'next_day' returns number high enough
Reproducer:
- Run update.database
- Step reading model will read functions and trip over the high value

Note:
- next_day function is just example function to trigger this issue
- Should work for any function being read during 'Reading functions...' step
  I.e. everything not in excludeFilter.xml
Revision 2024-02-27 09:47 by shuehner
Description Executing update.database command, error is happening when the postgresql OID assigned to functions is higher than max int value (2,147,483,647).

To check what is the OID assigned for each function:
SELECT proname, oid, proconfig FROM pg_proc order by oid desc;


The OID is read in update.database command using getInt function. For this reason, when this value is higher than max INT value, the below error is raised:

[java] org.postgresql.util.PSQLException: Bad value for type int : 2173831272
     [java] at org.postgresql.jdbc.PgResultSet.toInt(PgResultSet.java:2834) ~[postgresql-42.2.2.jre7.jar:42.2.2.jre7]
     [java] at org.postgresql.jdbc.PgResultSet.getInt(PgResultSet.java:2067) ~[postgresql-42.2.2.jre7.jar:42.2.2.jre7]
     [java] at org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:225) ~[commons-dbcp-1.4.jar:1.4]
     [java] at org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:225) ~[commons-dbcp-1.4.jar:1.4]
     [java] at org.apache.ddlutils.platform.postgresql.PostgreSqlModelLoader$1.fillRow(PostgreSqlModelLoader.java:432) ~[dbsourcemanager.jar:?]
     [java] at org.apache.ddlutils.platform.ModelLoaderBase.fillList(ModelLoaderBase.java:871) ~[dbsourcemanager.jar:?]
     [java] at org.apache.ddlutils.platform.postgresql.PostgreSqlModelLoader.readFunction(PostgreSqlModelLoader.java:429) ~[dbsourcemanager.jar:?]
     [java] at org.apache.ddlutils.platform.ModelLoaderBase$28.getRow(ModelLoaderBase.java:661) ~[dbsourcemanager.jar:?]
     [java] at org.apache.ddlutils.platform.ModelLoaderBase.readList(ModelLoaderBase.java:816) ~[dbsourcemanager.jar:?]
     [java] at org.apache.ddlutils.platform.ModelLoaderBase.readFunctions(ModelLoaderBase.java:657) ~[dbsourcemanager.jar:?]
     [java] at org.apache.ddlutils.platform.ModelLoaderBase.readDatabase(ModelLoaderBase.java:216) ~[dbsourcemanager.jar:?]
     [java] at org.apache.ddlutils.platform.postgresql.PostgreSqlModelLoader.readDatabase(PostgreSqlModelLoader.java:90) ~[dbsourcemanager.jar:?]
Revision 2024-02-27 08:33 by shuehner
Steps To Reproduce .create more than 2,147,483,647 database functions (create and delete...)
. compile
Revision 2024-02-27 08:33 by shuehner
Description Executing update.database command, error is happening when the postgresql OID assigned to functions is higher than max int value (2,147,483,647).

To check what is the OID assigned for each function:
SELECT proname, oid, proconfig FROM pg_proc order by oid desc;


The OID is read in update.database command using getInt function. For this reason, when this value is higher than max INT value, the below error is raised:

[java] org.postgresql.util.PSQLException: Bad value for type int : 2173831272
     [java] at org.postgresql.jdbc.PgResultSet.toInt(PgResultSet.java:2834) ~[postgresql-42.2.2.jre7.jar:42.2.2.jre7]
     [java] at org.postgresql.jdbc.PgResultSet.getInt(PgResultSet.java:2067) ~[postgresql-42.2.2.jre7.jar:42.2.2.jre7]
     [java] at org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:225) ~[commons-dbcp-1.4.jar:1.4]
     [java] at org.apache.commons.dbcp.DelegatingResultSet.getInt(DelegatingResultSet.java:225) ~[commons-dbcp-1.4.jar:1.4]
     [java] at org.apache.ddlutils.platform.postgresql.PostgreSqlModelLoader$1.fillRow(PostgreSqlModelLoader.java:432) ~[dbsourcemanager.jar:?]
     [java] at org.apache.ddlutils.platform.ModelLoaderBase.fillList(ModelLoaderBase.java:871) ~[dbsourcemanager.jar:?]
     [java] at org.apache.ddlutils.platform.postgresql.PostgreSqlModelLoader.readFunction(PostgreSqlModelLoader.java:429) ~[dbsourcemanager.jar:?]


Copyright © 2000 - 2009 MantisBT Group
Powered by Mantis Bugtracker