Postgresql – Failed to populate indices of table table_name

postgresql

I need to design my PostgreSQL database and I use SQL Power Architect to do it.

But after I import it to SQL Power Architect and drag the table to workspace, I got error message : Failed to populate indices of table <table_name>, I explore the error, and got Caused by : org.postgresql.util.PSQLException: ERROR: column i.indproc does not exist.

Actually I never use column i.indproc in my database, and this error appear when I drag each tables to workspace (for the first time, after I delete the table from workspace and drag it again, the error not appear)

Here the message

java.lang.RuntimeException: ca.sqlpower.sqlobject.SQLObjectException:
Failed to populate indices of table login at
ca.sqlpower.sqlobject.SQLObject$1.run(SQLObject.java:193) at
java.awt.event.InvocationEvent.dispatch(Unknown Source) at
java.awt.EventQueue.dispatchEventImpl(Unknown Source) at
java.awt.EventQueue.access$500(Unknown Source) at
java.awt.EventQueue$3.run(Unknown Source) at
java.awt.EventQueue$3.run(Unknown Source) at
java.security.AccessController.doPrivileged(Native Method) at
java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown
Source) at java.awt.EventQueue.dispatchEvent(Unknown Source) at
java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown
Source) at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source) at
java.awt.EventDispatchThread.run(Unknown Source) Caused by:
ca.sqlpower.sqlobject.SQLObjectException: Failed to populate indices
of table login at
ca.sqlpower.sqlobject.SQLTable.populateIndices(SQLTable.java:550) at
ca.sqlpower.sqlobject.SQLTable.populateColumns(SQLTable.java:369) at
ca.sqlpower.sqlobject.SQLTable.populateImpl(SQLTable.java:1335) at
ca.sqlpower.sqlobject.SQLObject.populate(SQLObject.java:186) at
ca.sqlpower.sqlobject.SQLTable.getChildren(SQLTable.java:1963) at
ca.sqlpower.sqlobject.SQLObject.getChildren(SQLObject.java:285) at
ca.sqlpower.architect.swingui.PlayPen$AddObjectsTask.ensurePopulated(PlayPen.java:1599)
at
ca.sqlpower.architect.swingui.PlayPen$AddObjectsTask.doStuff(PlayPen.java:1574)
at ca.sqlpower.swingui.SPSwingWorker.run(SPSwingWorker.java:104) at
java.lang.Thread.run(Unknown Source) Caused by:
org.postgresql.util.PSQLException: ERROR: column i.indproc does not
exist at
org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:1548)
at
org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1316)
at
org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:191)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:452)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:337)
at
org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:236) at
org.postgresql.jdbc2.AbstractJdbc2DatabaseMetaData.getIndexInfo(AbstractJdbc2DatabaseMetaData.java:3735)
at
ca.sqlpower.sql.jdbcwrapper.DatabaseMetaDataDecorator.getIndexInfo(DatabaseMetaDataDecorator.java:426)
at
ca.sqlpower.sql.jdbcwrapper.PostgresDatabaseMetaDataDecorator.getIndexInfo(PostgresDatabaseMetaDataDecorator.java:173)
at
ca.sqlpower.sqlobject.SQLIndex.fetchIndicesForTableAndUpdatePK(SQLIndex.java:827)
at ca.sqlpower.sqlobject.SQLTable.populateIndices(SQLTable.java:538)
… 9 more

Please help me to solve this problem

Best Answer

This very likely is caused by Postgres version support. If you are trying to connect to a Postgres 10 server SQL Power Architect does not support this version. My solution, which is far from perfect, is to run a small older Postgres in my development desktop for ERD purposes. From what I can gather, version 10 support is either unlikely and/or problematic at best.