Index: hsqldb/makefile.mk
===================================================================
RCS file: /cvs/external/hsqldb/makefile.mk,v
retrieving revision 1.18.4.1
retrieving revision 1.21
diff -u -r1.18.4.1 -r1.21
--- hsqldb/makefile.mk	18 Jan 2008 12:52:39 -0000	1.18.4.1
+++ hsqldb/makefile.mk	14 May 2008 09:31:19 -0000	1.21
@@ -56,7 +52,7 @@
 
 TARFILE_ROOTDIR=hsqldb
 
-#CONVERTFILES=build$/build.xml
+CONVERTFILES=build$/build.xml
 
 PATCH_FILE_NAME=patches$/accumulated_patches.patch
 
Index: hsqldb/patches/accumulated_patches.patch
===================================================================
RCS file: /cvs/external/hsqldb/patches/accumulated_patches.patch,v
retrieving revision 1.1.6.2
retrieving revision 1.3
diff -u -r1.1.6.2 -r1.3
--- hsqldb/patches/accumulated_patches.patch	18 Jan 2008 12:52:49 -0000	1.1.6.2
+++ hsqldb/patches/accumulated_patches.patch	14 May 2008 09:31:32 -0000	1.3
@@ -1,5 +1,1271 @@
+*** misc/hsqldb/build/build.xml	Mon Oct 22 16:17:31 2007
+--- misc/build/hsqldb/build/build.xml	Thu Mar  6 13:46:24 2008
+***************
+*** 97,104 ****
+        <available classname="javax.net.ssl.SSLSession" property="ant.java.hasjsse"/>
+        <echo message="ant.java.hasjsse=${ant.java.hasjsse}" />
+     </target>
+  
+!    <target name="-javaversion4">
+        <available classname="java.nio.Buffer" property="ant.java.iscjava14"/>
+        <available classname="java.nio.Buffer" property="ant.java.iscjavamodern"/>
+        <available classname="com.jamonapi.MonitorFactory" property="jamon"/>
+--- 97,108 ----
+        <available classname="javax.net.ssl.SSLSession" property="ant.java.hasjsse"/>
+        <echo message="ant.java.hasjsse=${ant.java.hasjsse}" />
+     </target>
++    
++    <target name="-javaversion6">
++       <available classname="java.sql.NClob" property="ant.java.iscjava16"/>
++    </target>
+  
+!    <target name="-javaversion4" depends="-javaversion6" unless="ant.java.iscjava16">
+        <available classname="java.nio.Buffer" property="ant.java.iscjava14"/>
+        <available classname="java.nio.Buffer" property="ant.java.iscjavamodern"/>
+        <available classname="com.jamonapi.MonitorFactory" property="jamon"/>
+***************
+*** 131,137 ****
+     </target>
+  
+      <target name="codeswitcher" depends="-prepare"
+!             description="uses +-JDBC2 +-JDBC2 +-JAVA2">
+        <javac destdir="classes">
+           <src path="${src}"/>
+           <include name="org/hsqldb/util/CodeSwitcher.java"/>
+--- 135,141 ----
+     </target>
+  
+      <target name="codeswitcher" depends="-prepare"
+!             description="uses +-JDBC2 +-JDBC2 +-JAVA2 +-JDBC4">
+        <javac destdir="classes">
+           <src path="${src}"/>
+           <include name="org/hsqldb/util/CodeSwitcher.java"/>
+***************
+*** 217,223 ****
+                      ${src}/org/hsqldb/jdbc/jdbcStatement.java
+                      ${src}/org/hsqldb/lib/SimpleLog.java
+                      ${src}/org/hsqldb/rowio/RowInputTextLog.java
+!                     ${src}/org/hsqldb/HsqlDateTime.java -JAVA2 -JDBC3"/>
+         </java>
+         <available classname="java.util.Vector" property="noswing"/>
+      </target>
+--- 221,227 ----
+                      ${src}/org/hsqldb/jdbc/jdbcStatement.java
+                      ${src}/org/hsqldb/lib/SimpleLog.java
+                      ${src}/org/hsqldb/rowio/RowInputTextLog.java
+!                     ${src}/org/hsqldb/HsqlDateTime.java -JAVA2 -JDBC3 -JDBC4"/>
+         </java>
+         <available classname="java.util.Vector" property="noswing"/>
+      </target>
+***************
+*** 234,240 ****
+                      ${src}/org/hsqldb/jdbc/jdbcStatement.java
+                      ${src}/org/hsqldb/lib/SimpleLog.java
+                      ${src}/org/hsqldb/rowio/RowInputTextLog.java
+!                     ${src}/org/hsqldb/HsqlDateTime.java +JAVA2 -JDBC3"/>
+         </java>
+      </target>
+  
+--- 238,244 ----
+                      ${src}/org/hsqldb/jdbc/jdbcStatement.java
+                      ${src}/org/hsqldb/lib/SimpleLog.java
+                      ${src}/org/hsqldb/rowio/RowInputTextLog.java
+!                     ${src}/org/hsqldb/HsqlDateTime.java +JAVA2 -JDBC3 -JDBC4"/>
+         </java>
+      </target>
+  
+***************
+*** 248,260 ****
+                      ${src}/org/hsqldb/jdbc/jdbcPreparedStatement.java
+                      ${src}/org/hsqldb/jdbc/jdbcResultSet.java
+                      ${src}/org/hsqldb/jdbc/jdbcStatement.java
+                      ${src}/org/hsqldb/lib/SimpleLog.java
+                      ${src}/org/hsqldb/rowio/RowInputTextLog.java
+!                     ${src}/org/hsqldb/HsqlDateTime.java +JAVA2 +JDBC3"/>
+         </java>
+      </target>
+  
+!     <target name="store" depends="switchtojdk11,switchtojdk12,switchtojdk14"
+              description="compiles the /store folder">
+        <javac srcdir="${src}"
+               destdir="classes"
+--- 252,284 ----
+                      ${src}/org/hsqldb/jdbc/jdbcPreparedStatement.java
+                      ${src}/org/hsqldb/jdbc/jdbcResultSet.java
+                      ${src}/org/hsqldb/jdbc/jdbcStatement.java
++                     ${src}/org/hsqldb/jdbc/jdbcBlob.java
++                     ${src}/org/hsqldb/jdbc/jdbcDataSource.java
++                     ${src}/org/hsqldb/jdbc/jdbcParameterMetaData.java
++                     ${src}/org/hsqldb/jdbc/jdbcResultSetMetaData.java
+                      ${src}/org/hsqldb/lib/SimpleLog.java
+                      ${src}/org/hsqldb/rowio/RowInputTextLog.java
+!                     ${src}/org/hsqldb/HsqlDateTime.java +JAVA2 +JDBC3 -JDBC4"/>
+!        </java>
+!     </target>
+!     
+!     <target name="switchtojdk16" depends="switches"
+!             description="self explanatory" if="ant.java.iscjava16">
+!       <java classname="org.hsqldb.util.CodeSwitcher" classpath="classes" >
+!          <arg line="${src}/org/hsqldb/jdbc/jdbcBlob.java
+! 					${src}/org/hsqldb/jdbc/jdbcCallableStatement.java
+!                     ${src}/org/hsqldb/jdbc/jdbcConnection.java
+!                     ${src}/org/hsqldb/jdbc/jdbcDatabaseMetaData.java
+!                     ${src}/org/hsqldb/jdbc/jdbcDataSource.java
+!                     ${src}/org/hsqldb/jdbc/jdbcParameterMetaData.java
+!                     ${src}/org/hsqldb/jdbc/jdbcPreparedStatement.java
+!                     ${src}/org/hsqldb/jdbc/jdbcResultSet.java
+!                     ${src}/org/hsqldb/jdbc/jdbcResultSetMetaData.java
+!                     ${src}/org/hsqldb/jdbc/jdbcStatement.java +JAVA2 +JDBC3 +JDBC4"/>
+         </java>
+      </target>
+  
+!     <target name="store" depends="switchtojdk11,switchtojdk12,switchtojdk14,switchtojdk16"
+              description="compiles the /store folder">
+        <javac srcdir="${src}"
+               destdir="classes"
+Files misc/hsqldb/lib/hsqldb.jar and misc/build/hsqldb/lib/hsqldb.jar differ
+*** misc/hsqldb/src/org/hsqldb/View.java	Sun Jul 22 16:34:18 2007
+--- misc/build/hsqldb/src/org/hsqldb/View.java	Thu Mar  6 13:37:53 2008
+***************
+*** 218,226 ****
+                  continue;
+              }
+  
+!             expandedStatement.replace(pos,
+!                                       expandedStatement.indexOf("*", pos) + 1,
+!                                       colList);
+          }
+  
+          statement = expandedStatement.toString();
+--- 218,228 ----
+                  continue;
+              }
+  
+!             int foundPos = expandedStatement.indexOf("*", pos);
+!             if ( foundPos != -1 )
+!                 expandedStatement.replace(pos,
+!                                           foundPos + 1,
+!                                           colList);
+          }
+  
+          statement = expandedStatement.toString();
+*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcBlob.java	Thu Feb 16 03:25:51 2006
+--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcBlob.java	Thu Mar  6 13:37:53 2008
+***************
+*** 460,465 ****
+--- 460,478 ----
+  
+          data = newData;
+      }
++ //#ifdef JDBC4
++ /*
++     public void free() throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public InputStream getBinaryStream(long pos, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ */
++ //#endif JDBC4
+  
+  //    public static void main(String[] args) throws Exception {
+  //
+*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcCallableStatement.java	Sun Jan 29 13:58:58 2006
+--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcCallableStatement.java	Thu Mar  6 13:37:53 2008
+***************
+*** 31,39 ****
+--- 31,48 ----
+  
+  package org.hsqldb.jdbc;
+  
++ import java.io.InputStream;
++ import java.io.Reader;
+  import java.math.BigDecimal;
+  import java.sql.CallableStatement;
+  import java.sql.Date;
++ //#ifdef JDBC4
++ /*
++ import java.sql.NClob;
++ import java.sql.RowId;
++ import java.sql.SQLXML;
++ */
++ //#endif JDBC4
+  import java.sql.Time;
+  import java.sql.Timestamp;
+  import java.sql.SQLException;
+***************
+*** 3085,3090 ****
+      public java.net.URL getURL(String parameterName) throws SQLException {
+          return getURL(findParameterIndex(parameterName));
+      }
+- 
+  //#endif JDBC3
+  }
+--- 3094,3371 ----
+      public java.net.URL getURL(String parameterName) throws SQLException {
+          return getURL(findParameterIndex(parameterName));
+      }
+  //#endif JDBC3
++ //#ifdef JDBC4
++ /*
++     public void setPoolable(boolean poolable) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public boolean isPoolable() throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public <T> T unwrap(Class<T> iface) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public boolean isWrapperFor(Class<?> iface) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setRowId(int parameterIndex, RowId x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setNString(int parameterIndex, String value) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setNClob(int parameterIndex, NClob value) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setClob(int parameterIndex, Reader reader, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setBlob(int parameterIndex, InputStream inputStream, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setNClob(int parameterIndex, Reader reader, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setSQLXML(int parameterIndex, SQLXML xmlObject) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setAsciiStream(int parameterIndex, InputStream x, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setBinaryStream(int parameterIndex, InputStream x, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setCharacterStream(int parameterIndex, Reader reader, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setAsciiStream(int parameterIndex, InputStream x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setBinaryStream(int parameterIndex, InputStream x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setCharacterStream(int parameterIndex, Reader reader) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setNCharacterStream(int parameterIndex, Reader value) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setClob(int parameterIndex, Reader reader) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setBlob(int parameterIndex, InputStream inputStream) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setNClob(int parameterIndex, Reader reader) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public RowId getRowId(int parameterIndex) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public RowId getRowId(String parameterName) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setRowId(String parameterName, RowId x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setNString(String parameterName, String value) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setNCharacterStream(String parameterName, Reader value, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setNClob(String parameterName, NClob value) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setClob(String parameterName, Reader reader, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setBlob(String parameterName, InputStream inputStream, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setNClob(String parameterName, Reader reader, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public NClob getNClob(int parameterIndex) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public NClob getNClob(String parameterName) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setSQLXML(String parameterName, SQLXML xmlObject) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public SQLXML getSQLXML(int parameterIndex) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public SQLXML getSQLXML(String parameterName) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public String getNString(int parameterIndex) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public String getNString(String parameterName) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public Reader getNCharacterStream(int parameterIndex) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public Reader getNCharacterStream(String parameterName) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public Reader getCharacterStream(int parameterIndex) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public Reader getCharacterStream(String parameterName) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setBlob(String parameterName, Blob x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setClob(String parameterName, Clob x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setAsciiStream(String parameterName, InputStream x, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setBinaryStream(String parameterName, InputStream x, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setCharacterStream(String parameterName, Reader reader, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setAsciiStream(String parameterName, InputStream x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setBinaryStream(String parameterName, InputStream x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setCharacterStream(String parameterName, Reader reader) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setNCharacterStream(String parameterName, Reader value) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setClob(String parameterName, Reader reader) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setBlob(String parameterName, InputStream inputStream) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setNClob(String parameterName, Reader reader) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ */
++ //#endif JDBC4
+  }
+*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcClob.java	Thu Feb 16 03:27:44 2006
+--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcClob.java	Thu Mar  6 13:37:53 2008
+***************
+*** 31,36 ****
+--- 31,37 ----
+  
+  package org.hsqldb.jdbc;
+  
++ import java.io.Reader;
+  import java.io.StringReader;
+  import java.sql.Clob;
+  import java.sql.SQLException;
+***************
+*** 461,464 ****
+--- 462,476 ----
+              data = new String(ldata.substring(0, (int) chars));
+          }
+      }
++ //#ifdef JDBC4
++     public void free() throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public Reader getCharacterStream(long pos, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ //#endif JDBC4
+  }
+*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcConnection.java	Tue Aug 28 14:26:44 2007
+--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcConnection.java	Thu Mar  6 13:37:53 2008
+***************
+*** 31,39 ****
+--- 31,49 ----
+  
+  package org.hsqldb.jdbc;
+  
++ import java.sql.Array;
++ import java.sql.Blob;
+  import java.sql.CallableStatement;
++ import java.sql.Clob;
+  import java.sql.Connection;
+  import java.sql.DatabaseMetaData;
++ //#ifdef JDBC4
++ /*
++ import java.sql.NClob;
++ import java.sql.SQLClientInfoException;
++ import java.sql.SQLXML;
++ */
++ //#endif JDBC4
+  import java.sql.PreparedStatement;
+  import java.sql.SQLException;
+  import java.sql.SQLWarning;
+***************
+*** 44,54 ****
+--- 54,66 ----
+  
+  //#endif JDBC3
+  //#ifdef JAVA2
++ import java.sql.Struct;
+  import java.util.Map;
+  
+  //#endif JAVA2
+  import java.util.Locale;
+  
++ import java.util.Properties;
+  import org.hsqldb.DatabaseManager;
+  import org.hsqldb.DatabaseURL;
+  import org.hsqldb.HSQLClientConnection;
+***************
+*** 2704,2707 ****
+--- 2716,2787 ----
+  
+          return i;
+      }
++ //#ifdef JDBC4
++ /*
++     public Clob createClob() throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public Blob createBlob() throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public NClob createNClob() throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public SQLXML createSQLXML() throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public boolean isValid(int timeout) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setClientInfo(String name, String value) throws SQLClientInfoException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setClientInfo(Properties properties) throws SQLClientInfoException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public String getClientInfo(String name) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public Properties getClientInfo() throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public Array createArrayOf(String typeName, Object[] elements) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public Struct createStruct(String typeName, Object[] attributes) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public <T> T unwrap(Class<T> iface) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public boolean isWrapperFor(Class<?> iface) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ */
++ //#endif JDBC4
+  }
+*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcDataSource.java	Sun Oct 23 20:26:22 2005
+--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcDataSource.java	Thu Mar  6 13:37:53 2008
+***************
+*** 297,300 ****
+--- 297,313 ----
+      public void setUser(String user) {
+          this.user = user;
+      }
++ //#ifdef JDBC4
++ /*
++     public <T> T unwrap(Class<T> iface) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public boolean isWrapperFor(Class<?> iface) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ */
++ //#endif JDBC4
+  }
+*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.java	Fri Oct 13 17:36:27 2006
+--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcDatabaseMetaData.java	Thu Mar  6 13:37:53 2008
+***************
+*** 35,41 ****
+  import java.sql.DatabaseMetaData;
+  import java.sql.ResultSet;
+  import java.sql.SQLException;
+! 
+  import org.hsqldb.Column;
+  import org.hsqldb.Library;
+  import org.hsqldb.Trace;
+--- 35,45 ----
+  import java.sql.DatabaseMetaData;
+  import java.sql.ResultSet;
+  import java.sql.SQLException;
+! //#ifdef JDBC4
+! /*
+! import java.sql.RowIdLifetime;
+! */
+! //#endif JDBC4
+  import org.hsqldb.Column;
+  import org.hsqldb.Library;
+  import org.hsqldb.Trace;
+***************
+*** 5643,5646 ****
+--- 5647,5700 ----
+  
+          return schemaName;
+      }
++ //#ifdef JDBC4
++ /*
++     public RowIdLifetime getRowIdLifetime() throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public ResultSet getSchemas(String catalog, String schemaPattern) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public boolean supportsStoredFunctionsUsingCallSyntax() throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 	public boolean autoCommitFailureClosesAllResultSets() throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public ResultSet getClientInfoProperties() throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ */
++ //#endif JDBC4
++ //#ifdef JDBC4
++ /*
++     public ResultSet getFunctions(String catalog, String schemaPattern, String functionNamePattern) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public ResultSet getFunctionColumns(String catalog, String schemaPattern, String functionNamePattern, String columnNamePattern) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public <T> T unwrap(Class<T> iface) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public boolean isWrapperFor(Class<?> iface) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ */
++ //#endif JDBC4
+  }
+*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcParameterMetaData.java	Sun Oct 23 20:26:22 2005
+--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcParameterMetaData.java	Thu Mar  6 13:37:53 2008
+***************
+*** 381,384 ****
+--- 381,397 ----
+  
+          return sb.toString();
+      }
++ //#ifdef JDBC4
++ /*
++     public <T> T unwrap(Class<T> iface) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public boolean isWrapperFor(Class<?> iface) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ */
++ //#endif JDBC4
+  }
+*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcPreparedStatement.java	Sat Sep 23 01:37:27 2006
+--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcPreparedStatement.java	Thu Mar  6 13:37:53 2008
+***************
+*** 32,40 ****
+--- 32,49 ----
+  package org.hsqldb.jdbc;
+  
+  import java.io.IOException;
++ import java.io.InputStream;
++ import java.io.Reader;
+  import java.io.Serializable;
+  import java.math.BigDecimal;
+  import java.sql.Date;
++ //#ifdef JDBC4
++ /*
++ import java.sql.NClob;
++ import java.sql.RowId;
++ import java.sql.SQLXML;
++ */
++ //#endif JDBC4
+  import java.sql.PreparedStatement;
+  import java.sql.ResultSet;
+  import java.sql.ResultSetMetaData;
+***************
+*** 2279,2282 ****
+--- 2288,2404 ----
+  
+          return sb.toString();
+      }
++ //#ifdef JDBC4
++ /*
++     public void setPoolable(boolean poolable) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public boolean isPoolable() throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public <T> T unwrap(Class<T> iface) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public boolean isWrapperFor(Class<?> iface) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setRowId(int parameterIndex, RowId x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setNString(int parameterIndex, String value) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setNCharacterStream(int parameterIndex, Reader value, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setNClob(int parameterIndex, NClob value) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setClob(int parameterIndex, Reader reader, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setBlob(int parameterIndex, InputStream inputStream, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setNClob(int parameterIndex, Reader reader, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setSQLXML(int parameterIndex, SQLXML xmlObject) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setAsciiStream(int parameterIndex, InputStream x, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setBinaryStream(int parameterIndex, InputStream x, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setCharacterStream(int parameterIndex, Reader reader, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setAsciiStream(int parameterIndex, InputStream x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setBinaryStream(int parameterIndex, InputStream x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setCharacterStream(int parameterIndex, Reader reader) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setNCharacterStream(int parameterIndex, Reader value) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setClob(int parameterIndex, Reader reader) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setBlob(int parameterIndex, InputStream inputStream) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void setNClob(int parameterIndex, Reader reader) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ */
++ //#endif JDBC4
+  }
+*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcResultSet.java	Sat Sep 23 01:29:39 2006
+--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcResultSet.java	Thu Mar  6 13:37:53 2008
+***************
+*** 67,77 ****
+--- 67,86 ----
+  package org.hsqldb.jdbc;
+  
+  import java.io.ByteArrayInputStream;
++ import java.io.InputStream;
++ import java.io.Reader;
+  import java.io.StringReader;
+  import java.math.BigDecimal;
+  import java.sql.Date;
+  import java.sql.ResultSet;
+  import java.sql.ResultSetMetaData;
++ //#ifdef JDBC4
++ /*
++ import java.sql.RowId;
++ import java.sql.NClob;
++ import java.sql.SQLXML;
++ */
++ //#endif JDBC4
+  import java.sql.SQLException;
+  import java.sql.SQLWarning;
+  import java.sql.Statement;
+***************
+*** 5049,5052 ****
+--- 5058,5314 ----
+          return rResult == null ? false
+                                 : true;
+      }
++ //#ifdef JDBC4
++ /*
++     public RowId getRowId(int columnIndex) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public RowId getRowId(String columnLabel) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateRowId(int columnIndex, RowId x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateRowId(String columnLabel, RowId x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public int getHoldability() throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public boolean isClosed() throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateNString(int columnIndex, String nString) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateNString(String columnLabel, String nString) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateNClob(int columnIndex, NClob nClob) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateNClob(String columnLabel, NClob nClob) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public NClob getNClob(int columnIndex) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public NClob getNClob(String columnLabel) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public SQLXML getSQLXML(int columnIndex) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public SQLXML getSQLXML(String columnLabel) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateSQLXML(int columnIndex, SQLXML xmlObject) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateSQLXML(String columnLabel, SQLXML xmlObject) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public String getNString(int columnIndex) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public String getNString(String columnLabel) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public Reader getNCharacterStream(int columnIndex) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public Reader getNCharacterStream(String columnLabel) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateNCharacterStream(int columnIndex, Reader x, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateNCharacterStream(String columnLabel, Reader reader, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateAsciiStream(int columnIndex, InputStream x, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateBinaryStream(int columnIndex, InputStream x, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateCharacterStream(int columnIndex, Reader x, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateAsciiStream(String columnLabel, InputStream x, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateBinaryStream(String columnLabel, InputStream x, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateCharacterStream(String columnLabel, Reader reader, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateBlob(int columnIndex, InputStream inputStream, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateBlob(String columnLabel, InputStream inputStream, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateClob(int columnIndex, Reader reader, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateClob(String columnLabel, Reader reader, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateNClob(int columnIndex, Reader reader, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateNClob(String columnLabel, Reader reader, long length) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateNCharacterStream(int columnIndex, Reader x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateNCharacterStream(String columnLabel, Reader reader) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateAsciiStream(int columnIndex, InputStream x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateBinaryStream(int columnIndex, InputStream x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateCharacterStream(int columnIndex, Reader x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateAsciiStream(String columnLabel, InputStream x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateBinaryStream(String columnLabel, InputStream x) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateCharacterStream(String columnLabel, Reader reader) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateBlob(int columnIndex, InputStream inputStream) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateBlob(String columnLabel, InputStream inputStream) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateClob(int columnIndex, Reader reader) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateClob(String columnLabel, Reader reader) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateNClob(int columnIndex, Reader reader) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public void updateNClob(String columnLabel, Reader reader) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public <T> T unwrap(Class<T> iface) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public boolean isWrapperFor(Class<?> iface) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ */
++ //#endif JDBC4
+  }
+*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcResultSetMetaData.java	Sat Sep 23 01:38:15 2006
+--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcResultSetMetaData.java	Thu Mar  6 13:37:53 2008
+***************
+*** 1144,1147 ****
+--- 1144,1160 ----
+                                      String.valueOf(column));
+          }
+      }
++ //#ifdef JDBC4
++ /*
++     public <T> T unwrap(Class<T> iface) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public boolean isWrapperFor(Class<?> iface) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ */
++ //#endif JDBC4
+  }
+*** misc/hsqldb/src/org/hsqldb/jdbc/jdbcStatement.java	Sat Sep 23 01:40:01 2006
+--- misc/build/hsqldb/src/org/hsqldb/jdbc/jdbcStatement.java	Thu Mar  6 13:37:53 2008
+***************
+*** 1532,1538 ****
+      /**
+       * Retrieves whether this statement is closed.
+       */
+!     synchronized boolean isClosed() {
+          return isClosed;
+      }
+  
+--- 1532,1551 ----
+      /**
+       * Retrieves whether this statement is closed.
+       */
+! //#ifdef JDBC4
+! /*
+!     public
+! */
+! //#else
+!     synchronized 
+! //#endif JDBC4
+!             boolean isClosed() 
+! //#ifdef JDBC4
+! /*
+!             throws SQLException
+! */
+! //#endif JDBC4
+!     {
+          return isClosed;
+      }
+  
+***************
+*** 1579,1582 ****
+--- 1592,1618 ----
+              throw Util.sqlException(e);
+          }
+      }
++ //#ifdef JDBC4
++ /*
++     public void setPoolable(boolean poolable) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public boolean isPoolable() throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public <T> T unwrap(Class<T> iface) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ 
++     public boolean isWrapperFor(Class<?> iface) throws SQLException
++     {
++         throw new UnsupportedOperationException("Not supported yet.");
++     }
++ */
++ //#endif JDBC4
+  }
 *** misc/hsqldb/src/org/hsqldb/persist/DataFileCache.java	Sat Oct  6 13:09:49 2007
---- misc/build/hsqldb/src/org/hsqldb/persist/DataFileCache.java	Tue Dec  4 10:16:41 2007
+--- misc/build/hsqldb/src/org/hsqldb/persist/DataFileCache.java	Thu Mar  6 13:37:53 2008
 ***************
 *** 244,255 ****
               } else {
@@ -30,28 +1296,22 @@
               }
   
               initBuffers();
-*** misc/hsqldb/src/org/hsqldb/View.java	2007-07-22 16:34:18.000000000 +0200
---- misc/build/hsqldb/src/org/hsqldb/View.java	2008-01-08 07:57:29.375000000 +0100
+*** misc/hsqldb/src/org/hsqldb/util/CodeSwitcher.java	Mon Jul 17 00:29:35 2006
+--- misc/build/hsqldb/src/org/hsqldb/util/CodeSwitcher.java	Thu Mar  6 13:37:53 2008
 ***************
-*** 218,226 ****
-                  continue;
-              }
-  
-!             expandedStatement.replace(pos,
-!                                       expandedStatement.indexOf("*", pos) + 1,
-!                                       colList);
-          }
+*** 341,347 ****
+                          }
+                      } else if (line.startsWith("//#endif")) {
+                          if (state == 0) {
+!                             printError("'#endif' without '#ifdef'");
   
-          statement = expandedStatement.toString();
---- 218,228 ----
-                  continue;
-              }
-  
-!             int foundPos = expandedStatement.indexOf("*", pos);
-!             if ( foundPos != -1 )
-!                 expandedStatement.replace(pos,
-!                                           foundPos + 1,
-!                                           colList);
-          }
+                              return false;
+                          }
+--- 341,347 ----
+                          }
+                      } else if (line.startsWith("//#endif")) {
+                          if (state == 0) {
+!                             printError("'#endif' without '#ifdef' LineNo: " + i);
   
-          statement = expandedStatement.toString();
+                              return false;
+                          }
Index: hsqldb/patches/index.txt
===================================================================
RCS file: /cvs/external/hsqldb/patches/index.txt,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- hsqldb/patches/index.txt	21 Nov 2007 17:13:43 -0000	1.6
+++ hsqldb/patches/index.txt	14 May 2008 09:31:45 -0000	1.7
@@ -10,6 +10,7 @@
 Issue
 -----
   http://www.openoffice.org/issues/show_bug.cgi?id=?????
+  http://www.openoffice.org/issues/show_bug.cgi?id=85087
   <summary>
 
 
