Ralf, I have been reading some forum entries on the postgreSQL side of things, and it looks like the have completely disabled 'auto-casting' of statement values in SQL statemenss, mostly related to number/date/logical conversions. I am not sure whether I would call it stricter type checking, but the main argument seems to be that they have closed some potential 'loop-holes'.
Werner Ralf Joachim wrote: > Hi Ad, > > can you also send us the script to create the 'employee' table and the > mapping for it. Could it be that 'status' column is created as varchar > but defined as numeric in mapping? Maybe this worked in older releases > of postgresql but newer do stricter type checking. > > Regards > Ralf > > > [EMAIL PROTECTED] schrieb: >> Hi Werner >> >> Here is the info I have >> >> 2008/Oct/14 16:24:39.805-> SEND TO CASTOR: <transaction >> version="2005-08"><insert/><overwrite><employee >> TIMESTAMP="1223987107093"><dataEntryEmployee>Suzanne >> Reijm</dataEntryEmployee><dateOfDataEntry>20081014</dateOfDataEntry><timeOfDataEntry>000000</timeOfDataEntry><dateOfDataModification>20081014</dateOfDataModification><timeOfDataModification>000000</timeOfDataModification><dataModificationEmployee>SAP</dataModificationEmployee><statusMask>1</statusMask><employeeCode>10</employeeCode><projects/><profiles/><currencyCode>EUR</currencyCode><costPrice>0.0</costPrice><name>Alexander >> >> Wolf</name><totalHours/><status>bs</status><accessCode/><workCentreCode>1</workCentreCode><labourRate>0.0</labourRate><languageCode>31</languageCode><emailAddress/></employee></overwrite><update/><delete/></transaction> >> 2008/Oct/14 16:24:39.808-> DatabaseBewerkingen, starting new transaction >> Oct 14, 2008 4:24:39 PM org.apache.commons.logging.impl.Jdk14Logger fatal >> SEVERE: A fatal error occurred while creating/updating >> nl.serac.dbengine.elements.Employee using SQL: UPDATE "employee" SET >> "emplname"=?,"workcncd"=?,"labrrate"=?,"currnccd"=?,"costpric"=?,"totalhrs"=?,"acccode"=?,"langcode"=?,"email"=?,"status"=?,"entrdate"=?,"entrtime"=?,"entrempl"=?,"modidate"=?,"moditime"=?,"modiempl"=?,"statmask"=? >> WHERE "employcd"=? AND "emplname"=? AND "workcncd"=? AND "labrrate"=? AND >> "currnccd"=? AND "costpric"=? AND "totalhrs"=? AND "acccode"=? AND >> "langcode"=? AND "email"=? AND "status"=? AND "entrdate"=? AND "entrtime"=? >> AND "entrempl"=? AND "modidate"=? AND "moditime"=? AND "modiempl"=? AND >> "statmask"=? >> java.sql.SQLException: ERROR: operator does not exist: character varying >> = numeric at character 408 >> >> at org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:94) >> at org.postgresql.Connection.ExecSQL(Connection.java:398) >> at org.postgresql.jdbc2.Statement.execute(Statement.java:130) >> at org.postgresql.jdbc2.Statement.executeUpdate(Statement.java:73) >> at >> org.postgresql.jdbc2.PreparedStatement.executeUpdate(PreparedStatement.java:113) >> at >> org.exolab.castor.jdo.engine.SQLStatementStore.executeStatement(SQLStatementStore.java:277) >> at org.exolab.castor.jdo.engine.SQLEngine.store(SQLEngine.java:323) >> at >> org.exolab.castor.persist.ClassMolder.store(ClassMolder.java:799) >> at org.exolab.castor.persist.LockEngine.store(LockEngine.java:792) >> at >> org.castor.persist.AbstractTransactionContext.prepareForCreate(AbstractTransactionContext.java:1247) >> at >> org.castor.persist.AbstractTransactionContext.prepare(AbstractTransactionContext.java:1211) >> at >> org.exolab.castor.jdo.engine.LocalDatabaseImpl.commit(LocalDatabaseImpl.java:169) >> at >> nl.serac.dbengine.DatabaseBewerkingen.commit(DatabaseBewerkingen.java:264) >> at >> nl.serac.dbengine.TransactionHandler.handle(TransactionHandler.java:137) >> at >> nl.serac.backoffice.hotsale.server.BackOfficeDistributionThread.BrancheServiceRun(BackOfficeDistributionThread.java:67) >> at >> nl.serac.backoffice.hotsale.server.BackOfficeDistributionThread.onMessage(BackOfficeDistributionThread.java:452) >> at nl.serac.messenger.Messenger.onMessage(Messenger.java:92) >> at nl.serac.messenger.SimpleServer.onMessage(SimpleServer.java:53) >> at nl.serac.messenger.JAXMService.onMessage(JAXMService.java:97) >> at javax.xml.messaging.JAXMServlet.doPost(Unknown Source) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) >> at >> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:366) >> at >> org.mortbay.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:677) >> at >> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:581) >> at org.mortbay.http.HttpContext.handle(HttpContext.java:1687) >> at org.mortbay.http.HttpContext.handle(HttpContext.java:1637) >> at org.mortbay.http.HttpServer.service(HttpServer.java:875) >> at org.mortbay.http.HttpConnection.service(HttpConnection.java:806) >> at >> org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:956) >> at org.mortbay.http.HttpConnection.handle(HttpConnection.java:823) >> at >> org.mortbay.http.SocketListener.handleConnection(SocketListener.java:202) >> at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:290) >> at org.mortbay.util.ThreadPool$JobRunner.run(ThreadPool.java:743) >> at java.lang.Thread.run(Thread.java:595) >> Oct 14, 2008 4:24:39 PM org.apache.commons.logging.impl.Jdk14Logger error >> SEVERE: This transaction has been aborted and rolled back: Nested error: >> org.exolab.castor.jdo.PersistenceException: Nested error: >> java.sql.SQLException: ERROR: operator does not exist: character varying >> = numeric at character 408 >> : ERROR: operator does not exist: character varying = numeric at character >> 408 >> : Nested error: java.sql.SQLException: ERROR: operator does not exist: >> character varying = numeric at character 408 >> : ERROR: operator does not exist: character varying = numeric at character >> 408 >> >> org.exolab.castor.jdo.TransactionAbortedException: Nested error: >> org.exolab.castor.jdo.PersistenceException: Nested error: >> java.sql.SQLException: ERROR: operator does not exist: character varying >> = numeric at character 408 >> : ERROR: operator does not exist: character varying = numeric at character >> 408 >> : Nested error: java.sql.SQLException: ERROR: operator does not exist: >> character varying = numeric at character 408 >> : ERROR: operator does not exist: character varying = numeric at character >> 408 >> >> at >> org.castor.persist.AbstractTransactionContext.prepare(AbstractTransactionContext.java:1224) >> at >> org.exolab.castor.jdo.engine.LocalDatabaseImpl.commit(LocalDatabaseImpl.java:169) >> at >> nl.serac.dbengine.DatabaseBewerkingen.commit(DatabaseBewerkingen.java:264) >> at >> nl.serac.dbengine.TransactionHandler.handle(TransactionHandler.java:137) >> at >> nl.serac.backoffice.hotsale.server.BackOfficeDistributionThread.BrancheServiceRun(BackOfficeDistributionThread.java:67) >> at >> nl.serac.backoffice.hotsale.server.BackOfficeDistributionThread.onMessage(BackOfficeDistributionThread.java:452) >> at nl.serac.messenger.Messenger.onMessage(Messenger.java:92) >> at nl.serac.messenger.SimpleServer.onMessage(SimpleServer.java:53) >> at nl.serac.messenger.JAXMService.onMessage(JAXMService.java:97) >> at javax.xml.messaging.JAXMServlet.doPost(Unknown Source) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:853) >> at >> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:366) >> at >> org.mortbay.jetty.servlet.ServletHandler.dispatch(ServletHandler.java:677) >> at >> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:581) >> at org.mortbay.http.HttpContext.handle(HttpContext.java:1687) >> at org.mortbay.http.HttpContext.handle(HttpContext.java:1637) >> at org.mortbay.http.HttpServer.service(HttpServer.java:875) >> at org.mortbay.http.HttpConnection.service(HttpConnection.java:806) >> at >> org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:956) >> at org.mortbay.http.HttpConnection.handle(HttpConnection.java:823) >> at >> org.mortbay.http.SocketListener.handleConnection(SocketListener.java:202) >> at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:290) >> at org.mortbay.util.ThreadPool$JobRunner.run(ThreadPool.java:743) >> at java.lang.Thread.run(Thread.java:595) >> Caused by: org.exolab.castor.jdo.PersistenceException: Nested error: >> java.sql.SQLException: ERROR: operator does not exist: character varying >> = numeric at character 408 >> : ERROR: operator does not exist: character varying = numeric at character >> 408 >> >> at >> org.exolab.castor.jdo.engine.SQLStatementStore.executeStatement(SQLStatementStore.java:333) >> at org.exolab.castor.jdo.engine.SQLEngine.store(SQLEngine.java:323) >> at >> org.exolab.castor.persist.ClassMolder.store(ClassMolder.java:799) >> at org.exolab.castor.persist.LockEngine.store(LockEngine.java:792) >> at >> org.castor.persist.AbstractTransactionContext.prepareForCreate(AbstractTransactionContext.java:1247) >> at >> org.castor.persist.AbstractTransactionContext.prepare(AbstractTransactionContext.java:1211) >> ... 24 more >> Caused by: java.sql.SQLException: ERROR: operator does not exist: >> character varying = numeric at character 408 >> >> at org.postgresql.core.QueryExecutor.execute(QueryExecutor.java:94) >> at org.postgresql.Connection.ExecSQL(Connection.java:398) >> at org.postgresql.jdbc2.Statement.execute(Statement.java:130) >> at org.postgresql.jdbc2.Statement.executeUpdate(Statement.java:73) >> at >> org.postgresql.jdbc2.PreparedStatement.executeUpdate(PreparedStatement.java:113) >> at >> org.exolab.castor.jdo.engine.SQLStatementStore.executeStatement(SQLStatementStore.java:277) >> ... 29 more >> Caused by: org.exolab.castor.jdo.PersistenceException: Nested error: >> java.sql.SQLException: ERROR: operator does not exist: character varying >> = numeric at character 408 >> : ERROR: operator does not exist: character varying = numeric at character >> 408 >> >> at >> org.exolab.castor.jdo.engine.SQLStatementStore.executeStatement(SQLStatementStore.java:333) >> >> Kind regards, >> >> Ad >> >> >> >> >> >> Werner Guttmann >> >> <[EMAIL PROTECTED] To: >> [email protected] >> >> .org> cc: >> >> Subject: Re: [castor-user] >> castor and postgres 8.3 >> 15-10-2008 08:47 >> >> Please respond to >> >> user >> >> >> >> >> >> >> >> Hi Ad, >> >> can you show us a complete SQL statement that used to work with 8.1, but >> does not work with 8.3 anymore due to autocasting being not available >> anymore ? >> >> Regards >> Werner >> >> [EMAIL PROTECTED] wrote: >>> Ls, >>> >>> We are using postgrest 8.1 and castor 1.0 , but want to upgrade postgres >> to >>> 8.3. >>> We have done some test and the following errors occur. >>> >>> Caused by: java.sql.SQLException: ERROR: operator does not exist: >>> character varying = numeric at character 408 >>> >>> This error is caused by postgres not autoCasting anymore. >>> >>> Is this a known problem with castor and has it already been solved. >>> >>> Kind regards, >>> >>> >>> Ad Kerremans >>> >>> >>> >>> >>> >>> >>> >>> >>> --------------------------------------------------------------------- >>> To unsubscribe from this list, please visit: >>> >>> http://xircles.codehaus.org/manage_email >>> >>> >> --------------------------------------------------------------------- >> To unsubscribe from this list, please visit: >> >> http://xircles.codehaus.org/manage_email >> >> >> >> >> >> >> >> --------------------------------------------------------------------- >> To unsubscribe from this list, please visit: >> >> http://xircles.codehaus.org/manage_email >> > > --------------------------------------------------------------------- > To unsubscribe from this list, please visit: > > http://xircles.codehaus.org/manage_email > > --------------------------------------------------------------------- To unsubscribe from this list, please visit: http://xircles.codehaus.org/manage_email

