Re: CallableStatement.setTimestamp bug

From: Dave Cramer <pg(at)fastcrypt(dot)com>
To: Mark Lewis <mark(dot)lewis(at)mir3(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:08:49
Message-ID: 4CD3B5C0-63AC-404B-8F35-9A506180E1FA@fastcrypt.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-jdbc

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

Browse pgsql-jdbc by date

  From Date Subject
Next Message Mark Lewis 2006-11-15 16:27:26 Re: CallableStatement.setTimestamp bug
Previous Message Mark Lewis 2006-11-15 14:47:01 Re: CallableStatement.setTimestamp bug