Patch to implement Connection.nativeSQL - Mailing list pgsql-jdbc

From Xavier Poinsard
Subject Patch to implement Connection.nativeSQL
Date
Msg-id 41F515BC.8020901@free.fr
Whole thread Raw
Responses Re: Patch to implement Connection.nativeSQL
List pgsql-jdbc
Thanks to Kris remark, here is a tiny patch implementing
Connection.nativeSQL
Index: jdbc2/AbstractJdbc2Connection.java
===================================================================
RCS file: /usr/local/cvsroot/pgjdbc/pgjdbc/org/postgresql/jdbc2/AbstractJdbc2Connection.java,v
retrieving revision 1.25
diff -u -r1.25 AbstractJdbc2Connection.java
--- jdbc2/AbstractJdbc2Connection.java    14 Jan 2005 01:20:19 -0000    1.25
+++ jdbc2/AbstractJdbc2Connection.java    24 Jan 2005 15:27:36 -0000
@@ -502,7 +502,9 @@
      */
     public String nativeSQL(String sql) throws SQLException
     {
-        return sql;
+        StringBuffer buf = new StringBuffer(sql.length());
+        AbstractJdbc2Statement.parseSql(sql,0,buf,false);
+        return buf.toString();
     }

     /*
Index: jdbc2/AbstractJdbc2Statement.java
===================================================================
RCS file: /usr/local/cvsroot/pgjdbc/pgjdbc/org/postgresql/jdbc2/AbstractJdbc2Statement.java,v
retrieving revision 1.64
diff -u -r1.64 AbstractJdbc2Statement.java
--- jdbc2/AbstractJdbc2Statement.java    18 Jan 2005 21:33:17 -0000    1.64
+++ jdbc2/AbstractJdbc2Statement.java    24 Jan 2005 15:27:42 -0000
@@ -718,7 +718,7 @@
      * @param stopOnComma should we stop after hitting the first comma in sql text?
      * @return the position we stopped processing at
      */
-    private int parseSql(String p_sql,int i,StringBuffer newsql, boolean stopOnComma)throws SQLException{
+    protected static int parseSql(String p_sql,int i,StringBuffer newsql, boolean stopOnComma)throws SQLException{
         short state = IN_SQLCODE;
         int len = p_sql.length();
         int nestedParenthesis=0;
@@ -848,7 +848,7 @@
      * @param args the arguments for this functin
      * @return the right postgreSql sql
      */
-    protected String escapeFunction(String functionName, String args) throws SQLException{
+    protected static String escapeFunction(String functionName, String args) throws SQLException{
         // parse function arguments
         int len = args.length();
         int i=0;
Index: test/jdbc2/ConnectionTest.java
===================================================================
RCS file: /usr/local/cvsroot/pgjdbc/pgjdbc/org/postgresql/test/jdbc2/ConnectionTest.java,v
retrieving revision 1.19
diff -u -r1.19 ConnectionTest.java
--- test/jdbc2/ConnectionTest.java    11 Jan 2005 08:25:48 -0000    1.19
+++ test/jdbc2/ConnectionTest.java    24 Jan 2005 15:27:44 -0000
@@ -100,9 +100,11 @@
     /*
      * Test nativeSQL
      */
-    public void testNativeSQL()
+    public void testNativeSQL() throws SQLException
     {
-        // For now do nothing as it returns itself
+        // test a simple escape
+        Connection con = TestUtil.openDB();
+        assertEquals("DATE  '2005-01-24'",con.nativeSQL("{d '2005-01-24'}"));
     }

     /*

pgsql-jdbc by date:

Previous
From: Daniele Bufarini
Date:
Subject: Re: [S] Re: Problems with non scrollable cursors
Next
From: Vadim Nasardinov
Date:
Subject: Re: context classloader