jcman regen error upgrade 3.1.1 to 3.2.3 PostgreSQL

User 2082812c83

15-01-2007 19:30:39

Hi,





I am trying to upgrade some JChem Base structure tables in a PostgreSQL 8.1 database from JChem Base version 3.1.1 to version JChem Base version 3.2.3. When I run jcman it correctly detects the tables that need to be regenerated but when I elect to proceed with regeneration I get the following exception:





C:\jchem3.2.3\bin>.\jcman


java.sql.SQLException: The table public.test_structure doesn't exist or size of fingerprint is not properly set in property table "JChemProperties".


at chemaxon.jchem.db.FingerprintHandler.getNumberOfBits(FingerprintHandler.java:47)


at chemaxon.jchem.db.UpdateHandler.initFields(UpdateHandler.java:523)


at chemaxon.jchem.db.UpdateHandler.<init>(UpdateHandler.java:448)


at chemaxon.jchem.db.Regenerator$RegenThread.run(Regenerator.java:66)


java.sql.SQLException: The table public.test_structure doesn't exist or size of fingerprint is not properly set in property table "JChemProperties".


at chemaxon.jchem.db.FingerprintHandler.getNumberOfBits(FingerprintHandler.java:47)


at chemaxon.jchem.db.UpdateHandler.initFields(UpdateHandler.java:523)


at chemaxon.jchem.db.UpdateHandler.<init>(UpdateHandler.java:448)


at chemaxon.jchem.db.Regenerator$RegenThread.run(Regenerator.java:66)


java.lang.NullPointerException


at chemaxon.jchem.db.Regenerator$RegenThread.run(Regenerator.java:93)


java.lang.NullPointerException


at chemaxon.jchem.db.Regenerator$RegenThread.run(Regenerator.java:93)





I have double checked that:





1. The user I am using to log into the database through jcman owns all of the structure tables, structure_ul tables jchemproperties table and corresponding sequences.


2. That when I manually log into the datbabase as that same user I can access the tables and sequences in question.





Any idea what is causing this exception and how I can work around it?





Thanks,





James

ChemAxon 9c0afc9aaf

15-01-2007 20:10:38

Hi,





As discussed in this forum topic





http://www.chemaxon.com/forum/viewpost8453.html#8453





JChem became schema aware from version 3.2. This means it stores and retrieves table information in the property table with schema prefix.





However the records for the tables created with 3.1.1 didn't have the schema prefix yet, so they are not found by the new JChem in the property table.





I think we should introduce a mechanism for the newer versions that adds the correct schema prefix to such records in the property table if no schema is present.





Until then you can do the same manually as a workaround, e.g. changing


"table.test_structure.fingerprint.numberOfBits"


to


"table.public.test_structure.fingerprint.numberOfBits"


and so on, for all such records.





Best regards,





Szilard

User 2082812c83

15-01-2007 20:23:27

I think we arrived at the same conclusion at about the same time as just after making the original post I decided to create a new table from scratch and what was happening (a prefix of "public" on the new tables versus no prefix for the schema on the old tables) become apparent.





So I had already made the change you suggested in your response and of course that fixed the problem.





Thanks for your help.





James