Hibernate and Postgres 8.3/8.4 - Mailing list pgsql-jdbc

From Michael Bell
Subject Hibernate and Postgres 8.3/8.4
Date
Msg-id 57606.88414.qm@web43132.mail.sp1.yahoo.com
Whole thread Raw
Responses Re: Hibernate and Postgres 8.3/8.4  (Oliver Jowett <oliver@opencloud.com>)
List pgsql-jdbc
I've found that Hibernate breaks very easily in 8.3/8.4 as the server. This is Hibernate 3.3.0 (I didn't see any diffs
in3.3.1 in the changelog) Here's a sample: 

2009-08-14 15:55:37,515 [Store_1250286937500] ERROR com.gwava.utils.ErrorHandle - reportError: StoreEmail ::
com.gwava.archive.StoreEmail.handleArchiveExceptions:426:: EXCEPTION : org.hibernate.exception.SQLGrammarException:
couldnot execute query org.hibernate.exception.SQLGrammarException: could not execute query 
    at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
    at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
    at org.hibernate.loader.Loader.doList(Loader.java:2216)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
    at org.hibernate.loader.Loader.list(Loader.java:2099)
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:378)
    at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:338)
    at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:172)
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1121)
    at org.hibernate.impl.QueryImpl.list(QueryImpl.java:79)
    at org.hibernate.impl.AbstractQueryImpl.uniqueResult(AbstractQueryImpl.java:811)
    at com.gwava.hibernate.DBEngine.getEmailFromDB(DBEngine.java:164)
    at com.gwava.hibernate.DBEngine.insertEmail(DBEngine.java:256)
    at com.gwava.engine.AbstractDBEngine.archiveDB(AbstractDBEngine.java:467)
    at com.gwava.engine.AbstractDBEngine.archive(AbstractDBEngine.java:245)
    at com.gwava.engine.AbstractDBEngine.dbStore(AbstractDBEngine.java:810)
    at com.gwava.engine.standard.RetainDBHybridEngine.archiveEmail(RetainDBHybridEngine.java:75)
    at com.gwava.archive.StoreEmail.handlePUT(StoreEmail.java:264)
    at org.apache.jsp.Server.index_jsp._jspService(Unknown Source)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at com.gwava.Filters.MainFilter.doFilter(MainFilter.java:234)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:172)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
    at org.apache.coyote.ajp.AjpAprProcessor.process(AjpAprProcessor.java:444)
    at org.apache.coyote.ajp.AjpAprProtocol$AjpConnectionHandler.process(AjpAprProtocol.java:472)
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1286)
    at java.lang.Thread.run(Thread.java:595)
Caused by: org.postgresql.util.PSQLException: ERROR: operator does not exist: smallint = character varying
  Hint: No operator matches the given name and argument type(s). You might need to add explicit type casts.
  Position: 628
    at org.postgresql.core.v3.QueryExecutorImpl.receiveErrorResponse(QueryExecutorImpl.java:2062)
    at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1795)
    at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:257)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.execute(AbstractJdbc2Statement.java:479)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeWithFlags(AbstractJdbc2Statement.java:367)
    at org.postgresql.jdbc2.AbstractJdbc2Statement.executeQuery(AbstractJdbc2Statement.java:271)
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:76)
    at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:186)
    at org.hibernate.loader.Loader.getResultSet(Loader.java:1787)
    at org.hibernate.loader.Loader.doQuery(Loader.java:674)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
    at org.hibernate.loader.Loader.doList(Loader.java:2213)
    ... 33 more

Now, googling around I figured out it was the dropping of implicit casts. Readding these fixes that, but there are
obviousreasons the PG devs dropped these. 

Question 1:  Is this a well known issue? If so, why is there no JIRA opened on Hibernate's site about it. (I'd open one
ifI get consensus that it makes sense to do so, but since my PG knowledge is weak... 
Question 2: Anything that can be done BESIDES adding these implicit casts? I looked at the Dialect, and couldn't find
anythingobvious. 

The queries in question are all "correct" in that they use query.setXXX, where XXX is a "reasonable" thing like String,
Integer,Long.....nothing fancy... 





pgsql-jdbc by date:

Previous
From: Michael Bell
Date:
Subject: Re: JDBC broken connection against Postgres 8.4
Next
From: Oliver Jowett
Date:
Subject: Re: Hibernate and Postgres 8.3/8.4