Skip site navigation (1) Skip section navigation (2)

Re: CallableStatement.setTimestamp bug

From: Mark Lewis <mark(dot)lewis(at)mir3(dot)com>
To: Dave Cramer <pg(at)fastcrypt(dot)com>
Cc: Reuben Pasquini <pasquinir(at)bellsouth(dot)net>, pgsql-jdbc(at)postgresql(dot)org
Subject: Re: CallableStatement.setTimestamp bug
Date: 2006-11-15 16:27:26
Message-ID: 1163608046.8021.6.camel@archimedes (view raw or flat)
Thread:
Lists: pgsql-jdbc
I know that the driver is sending unknown as the timestamp type on
purpose, but I thought that the back-end was smart enough to associate
an unknown-type function parameter with the correct signature.  I
haven't tested that, but it seems like it should work.

But it is known not to work if there is another function with the same
name and number of parameters, because the back-end has no means of
determining which of the functions should be called.

-- Mark

On Wed, 2006-11-15 at 11:08 -0500, Dave Cramer wrote:
> Mark,
> 
> It is a known "feature/bug". The driver is doing this on purpose.
> 
> see my previous email
> 
> Dave
> On 15-Nov-06, at 9:47 AM, Mark Lewis wrote:
> 
> > You don't happen to have another function called donothing which  
> > takes a
> > single parameter of a different type, do you?
> >
> > -- Mark
> >
> > On Tue, 2006-11-14 at 22:05 -0600, Reuben Pasquini wrote:
> >> Hello!
> >>
> >> It appears that CallableStatement.setTimestamp()
> >> does not work correctly with the latest 8.1 jdbc driver -
> >> I've listed a test case below -
> >> sorry if this bug is already known.
> >> Let me know if you have any questions.
> >> Thanks for all the great work.
> >>
> >> Reuben
> >>
> >> --------------------
> >>
> >> p-nut:/tmp pasquini$ javac Frick.java
> >>
> >> p-nut:/tmp pasquini$ java -cp postgresql-8.1-407.jdbc3.jar:. Frick
> >> Nov 14, 2006 9:59:54 PM Frick main
> >> INFO: Caught: org.postgresql.util.PSQLException: ERROR: function
> >> donothing("unknown") does not exist
> >>
> >>
> >> p-nut:/tmp pasquini$ cat Frick.java
> >> import java.util.*;
> >> import java.util.logging.Logger;
> >> import java.util.logging.Level;
> >> import java.lang.reflect.*;
> >> import java.sql.*;
> >>
> >> /* .............
> >> CREATE OR REPLACE FUNCTION doNothing ( TIMESTAMP )
> >>    RETURNS INTEGER AS $FUNC$
> >>          BEGIN
> >>              RETURN 0;
> >>          END; $FUNC$
> >> LANGUAGE plpgsql;
> >> */
> >>
> >> /**
> >> * Test postgres JDBC setTimestamp functionality against doNothing()
> >> */
> >> public class Frick {
> >>
> >>      public static void main ( String[] v_argv ) {
> >>          Logger log_generic = Logger.getLogger ( "littleware" );
> >>
> >>          try {
> >>              Class.forName ( "org.postgresql.Driver" );
> >>              Connection sql_conn = DriverManager.getConnection
> >> ( "jdbc:postgresql:littleware://localhost:5432", "littleware_user",
> >> "" );
> >>              CallableStatement sql_call = sql_conn.prepareCall ( "{ ?
> >> = call doNothing ( ? ) }" );
> >>              java.util.Date  t_now = new java.util.Date ();
> >>              sql_call.registerOutParameter ( 1, Types.INTEGER );
> >>              sql_call.setTimestamp ( 2, new Timestamp ( t_now.getTime
> >> () ) );
> >>              sql_call.execute ();
> >>          } catch ( Exception e ) {
> >>              log_generic.log ( Level.INFO, "Caught: " + e );
> >>          }
> >>      }
> >> }
> >>
> >>
> >> ---------------------------(end of  
> >> broadcast)---------------------------
> >> TIP 6: explain analyze is your friend
> >
> > ---------------------------(end of  
> > broadcast)---------------------------
> > TIP 5: don't forget to increase your free space map settings
> >
> 

In response to

Responses

pgsql-jdbc by date

Next:From: Reuben PasquiniDate: 2006-11-15 16:51:15
Subject: Re: CallableStatement.setTimestamp bug
Previous:From: Dave CramerDate: 2006-11-15 16:08:49
Subject: Re: CallableStatement.setTimestamp bug

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group