Coverage Report - org.apache.commons.dbcp.DelegatingDatabaseMetaData
 
Classes in this File Line Coverage Branch Coverage Complexity
DelegatingDatabaseMetaData
4%
22/449
40%
9/22
3.217
 
 1  
 /*
 2  
  * Licensed to the Apache Software Foundation (ASF) under one or more
 3  
  * contributor license agreements.  See the NOTICE file distributed with
 4  
  * this work for additional information regarding copyright ownership.
 5  
  * The ASF licenses this file to You under the Apache License, Version 2.0
 6  
  * (the "License"); you may not use this file except in compliance with
 7  
  * the License.  You may obtain a copy of the License at
 8  
  * 
 9  
  *      http://www.apache.org/licenses/LICENSE-2.0
 10  
  * 
 11  
  * Unless required by applicable law or agreed to in writing, software
 12  
  * distributed under the License is distributed on an "AS IS" BASIS,
 13  
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 14  
  * See the License for the specific language governing permissions and
 15  
  * limitations under the License.
 16  
  */
 17  
 
 18  
 package org.apache.commons.dbcp;
 19  
 
 20  
 import java.sql.Connection;
 21  
 import java.sql.DatabaseMetaData;
 22  
 import java.sql.ResultSet;
 23  
 /* JDBC_4_ANT_KEY_BEGIN */
 24  
 import java.sql.RowIdLifetime;
 25  
 /* JDBC_4_ANT_KEY_END */
 26  
 import java.sql.SQLException;
 27  
 
 28  
 /**
 29  
  * A base delegating implementation of {@link DatabaseMetaData}.
 30  
  * <p>
 31  
  * Those methods that create {@link ResultSet} objects, are wrapped to
 32  
  * create {@link DelegatingResultSet} objects and the remaining methods
 33  
  * simply call the corresponding method on the "delegate"
 34  
  * provided in my constructor.
 35  
  * <p>
 36  
  * Extends AbandonedTrace to implement DatabaseMetaData tracking and
 37  
  * logging of code which created the DatabaseMetaData. Tracking
 38  
  * the DatabaseMetaData ensures that the Connection which created it can
 39  
  * close any associated ResultSets on Connection close.
 40  
  */
 41  
 public class DelegatingDatabaseMetaData extends AbandonedTrace
 42  
         implements DatabaseMetaData {
 43  
 
 44  
     /** My delegate {@link DatabaseMetaData} */
 45  
     protected DatabaseMetaData _meta;
 46  
     
 47  
     /** The connection that created me. **/
 48  22
     protected DelegatingConnection _conn = null;
 49  
 
 50  
     public DelegatingDatabaseMetaData(DelegatingConnection c,
 51  
             DatabaseMetaData m) {
 52  22
         super(c);
 53  22
         _conn = c;
 54  22
         _meta = m;
 55  22
     }
 56  
 
 57  
     public DatabaseMetaData getDelegate() {
 58  14
         return _meta;
 59  
     }
 60  
 
 61  
     public boolean equals(Object obj) {
 62  6
         DatabaseMetaData delegate = getInnermostDelegate();
 63  6
         if (delegate == null) {
 64  0
             return false;
 65  
         }
 66  6
         if (obj instanceof DelegatingDatabaseMetaData) {
 67  4
             DelegatingDatabaseMetaData s = (DelegatingDatabaseMetaData) obj;
 68  4
             return delegate.equals(s.getInnermostDelegate());
 69  
         }
 70  
         else {
 71  2
             return delegate.equals(obj);
 72  
         }
 73  
     }
 74  
 
 75  
     public int hashCode() {
 76  4
         Object obj = getInnermostDelegate();
 77  4
         if (obj == null) {
 78  0
             return 0;
 79  
         }
 80  4
         return obj.hashCode();
 81  
     }
 82  
 
 83  
     /**
 84  
      * If my underlying {@link ResultSet} is not a
 85  
      * <tt>DelegatingResultSet</tt>, returns it,
 86  
      * otherwise recursively invokes this method on
 87  
      * my delegate.
 88  
      * <p>
 89  
      * Hence this method will return the first
 90  
      * delegate that is not a <tt>DelegatingResultSet</tt>,
 91  
      * or <tt>null</tt> when no non-<tt>DelegatingResultSet</tt>
 92  
      * delegate can be found by transversing this chain.
 93  
      * <p>
 94  
      * This method is useful when you may have nested
 95  
      * <tt>DelegatingResultSet</tt>s, and you want to make
 96  
      * sure to obtain a "genuine" {@link ResultSet}.
 97  
      */
 98  
     public DatabaseMetaData getInnermostDelegate() {
 99  14
         DatabaseMetaData m = _meta;
 100  26
         while(m != null && m instanceof DelegatingDatabaseMetaData) {
 101  12
             m = ((DelegatingDatabaseMetaData)m).getDelegate();
 102  12
             if(this == m) {
 103  0
                 return null;
 104  
             }
 105  
         }
 106  14
         return m;
 107  
     }
 108  
     
 109  
     protected void handleException(SQLException e) throws SQLException {
 110  0
         if (_conn != null) {
 111  0
             _conn.handleException(e);
 112  
         }
 113  
         else {
 114  0
             throw e;
 115  
         }
 116  0
     }
 117  
 
 118  
     public boolean allProceduresAreCallable() throws SQLException {
 119  0
         { try { return _meta.allProceduresAreCallable(); }
 120  0
           catch (SQLException e) { handleException(e); return false; } }
 121  
     }
 122  
 
 123  
     public boolean allTablesAreSelectable() throws SQLException {
 124  0
         { try { return _meta.allTablesAreSelectable(); }
 125  0
         catch (SQLException e) { handleException(e); return false; } }
 126  
     }
 127  
 
 128  
     public boolean dataDefinitionCausesTransactionCommit() throws SQLException {
 129  0
         { try { return _meta.dataDefinitionCausesTransactionCommit(); }
 130  0
         catch (SQLException e) { handleException(e); return false; } }
 131  
     }
 132  
 
 133  
     public boolean dataDefinitionIgnoredInTransactions() throws SQLException {
 134  0
         { try { return _meta.dataDefinitionIgnoredInTransactions(); }
 135  0
         catch (SQLException e) { handleException(e); return false; } }
 136  
     }
 137  
 
 138  
     public boolean deletesAreDetected(int type) throws SQLException {
 139  0
         { try { return _meta.deletesAreDetected(type); }
 140  0
         catch (SQLException e) { handleException(e); return false; } }
 141  
     }
 142  
 
 143  
     public boolean doesMaxRowSizeIncludeBlobs() throws SQLException {
 144  0
         { try { return _meta.doesMaxRowSizeIncludeBlobs(); }
 145  0
         catch (SQLException e) { handleException(e); return false; } }
 146  
     }
 147  
 
 148  
     public ResultSet getAttributes(String catalog, String schemaPattern,
 149  
             String typeNamePattern, String attributeNamePattern)
 150  
             throws SQLException {
 151  0
         _conn.checkOpen();
 152  
         try {
 153  0
             return DelegatingResultSet.wrapResultSet(_conn,_meta.getAttributes(
 154  
                     catalog, schemaPattern, typeNamePattern,
 155  
                     attributeNamePattern));
 156  
         }
 157  0
         catch (SQLException e) {
 158  0
             handleException(e);
 159  0
             throw new AssertionError();
 160  
         }
 161  
     }
 162  
 
 163  
     public ResultSet getBestRowIdentifier(String catalog, String schema,
 164  
             String table, int scope, boolean nullable) throws SQLException {
 165  0
         _conn.checkOpen();
 166  
         try {
 167  0
             return DelegatingResultSet.wrapResultSet(_conn,
 168  
                     _meta.getBestRowIdentifier(catalog, schema, table, scope,
 169  
                             nullable));
 170  
         }
 171  0
         catch (SQLException e) {
 172  0
             handleException(e);
 173  0
             throw new AssertionError();
 174  
         }
 175  
     }
 176  
 
 177  
     public String getCatalogSeparator() throws SQLException {
 178  0
         { try { return _meta.getCatalogSeparator(); }
 179  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 180  
     }
 181  
 
 182  
     public String getCatalogTerm() throws SQLException {
 183  0
         { try { return _meta.getCatalogTerm(); }
 184  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 185  
     }
 186  
 
 187  
     public ResultSet getCatalogs() throws SQLException {
 188  0
         _conn.checkOpen();
 189  
         try {
 190  0
             return DelegatingResultSet.wrapResultSet(_conn,
 191  
                     _meta.getCatalogs());
 192  
         }
 193  0
         catch (SQLException e) {
 194  0
             handleException(e);
 195  0
             throw new AssertionError();
 196  
         }
 197  
     }
 198  
 
 199  
     public ResultSet getColumnPrivileges(String catalog, String schema,
 200  
             String table, String columnNamePattern) throws SQLException {
 201  0
         _conn.checkOpen();
 202  
         try {
 203  0
             return DelegatingResultSet.wrapResultSet(_conn,
 204  
                     _meta.getColumnPrivileges(catalog, schema, table,
 205  
                             columnNamePattern));
 206  
         }
 207  0
         catch (SQLException e) {
 208  0
             handleException(e);
 209  0
             throw new AssertionError();
 210  
         }
 211  
     }
 212  
 
 213  
     public ResultSet getColumns(String catalog, String schemaPattern,
 214  
             String tableNamePattern, String columnNamePattern)
 215  
             throws SQLException {
 216  0
         _conn.checkOpen();
 217  
         try {
 218  0
             return DelegatingResultSet.wrapResultSet(_conn,
 219  
                     _meta.getColumns(catalog, schemaPattern, tableNamePattern,
 220  
                             columnNamePattern));
 221  
         }
 222  0
         catch (SQLException e) {
 223  0
             handleException(e);
 224  0
             throw new AssertionError();
 225  
         }
 226  
     }
 227  
 
 228  
     public Connection getConnection() throws SQLException {
 229  0
         return _conn;
 230  
     }
 231  
 
 232  
     public ResultSet getCrossReference(String parentCatalog,
 233  
             String parentSchema, String parentTable, String foreignCatalog,
 234  
             String foreignSchema, String foreignTable) throws SQLException {
 235  0
         _conn.checkOpen();
 236  
         try {
 237  0
             return DelegatingResultSet.wrapResultSet(_conn,
 238  
                     _meta.getCrossReference(parentCatalog, parentSchema,
 239  
                             parentTable, foreignCatalog, foreignSchema,
 240  
                             foreignTable));
 241  
         }
 242  0
         catch (SQLException e) {
 243  0
             handleException(e);
 244  0
             throw new AssertionError();
 245  
         }
 246  
     }
 247  
 
 248  
     public int getDatabaseMajorVersion() throws SQLException {
 249  0
         { try { return _meta.getDatabaseMajorVersion(); }
 250  0
         catch (SQLException e) { handleException(e); return 0; } }
 251  
     }
 252  
 
 253  
     public int getDatabaseMinorVersion() throws SQLException {
 254  0
         { try { return _meta.getDatabaseMinorVersion(); }
 255  0
         catch (SQLException e) { handleException(e); return 0; } }
 256  
     }
 257  
 
 258  
     public String getDatabaseProductName() throws SQLException {
 259  0
         { try { return _meta.getDatabaseProductName(); }
 260  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 261  
     }
 262  
 
 263  
     public String getDatabaseProductVersion() throws SQLException {
 264  0
         { try { return _meta.getDatabaseProductVersion(); }
 265  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 266  
     }
 267  
 
 268  
     public int getDefaultTransactionIsolation() throws SQLException {
 269  0
         { try { return _meta.getDefaultTransactionIsolation(); }
 270  0
         catch (SQLException e) { handleException(e); return 0; } }
 271  
     }
 272  
 
 273  0
     public int getDriverMajorVersion() {return _meta.getDriverMajorVersion();}
 274  
 
 275  0
     public int getDriverMinorVersion() {return _meta.getDriverMinorVersion();}
 276  
 
 277  
     public String getDriverName() throws SQLException {
 278  0
         { try { return _meta.getDriverName(); }
 279  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 280  
     }
 281  
 
 282  
     public String getDriverVersion() throws SQLException {
 283  0
         { try { return _meta.getDriverVersion(); }
 284  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 285  
     }
 286  
 
 287  
     public ResultSet getExportedKeys(String catalog, String schema, String table)
 288  
             throws SQLException {
 289  0
         _conn.checkOpen();
 290  
         try {
 291  0
             return DelegatingResultSet.wrapResultSet(_conn,
 292  
                     _meta.getExportedKeys(catalog, schema, table));
 293  
         }
 294  0
         catch (SQLException e) {
 295  0
             handleException(e);
 296  0
             throw new AssertionError();
 297  
         }
 298  
     }
 299  
 
 300  
     public String getExtraNameCharacters() throws SQLException {
 301  0
         { try { return _meta.getExtraNameCharacters(); }
 302  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 303  
     }
 304  
 
 305  
     public String getIdentifierQuoteString() throws SQLException {
 306  0
         { try { return _meta.getIdentifierQuoteString(); }
 307  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 308  
     }
 309  
 
 310  
     public ResultSet getImportedKeys(String catalog, String schema, String table)
 311  
             throws SQLException {
 312  0
         _conn.checkOpen();
 313  
         try {
 314  0
             return DelegatingResultSet.wrapResultSet(_conn,
 315  
                     _meta.getImportedKeys(catalog, schema, table));
 316  
         }
 317  0
         catch (SQLException e) {
 318  0
             handleException(e);
 319  0
             throw new AssertionError();
 320  
         }
 321  
     }
 322  
 
 323  
     public ResultSet getIndexInfo(String catalog, String schema, String table,
 324  
             boolean unique, boolean approximate) throws SQLException {
 325  0
         _conn.checkOpen();
 326  
         try {
 327  0
             return DelegatingResultSet.wrapResultSet(_conn,
 328  
                     _meta.getIndexInfo(catalog, schema, table, unique,
 329  
                             approximate));
 330  
         }
 331  0
         catch (SQLException e) {
 332  0
             handleException(e);
 333  0
             throw new AssertionError();
 334  
         }
 335  
     }
 336  
 
 337  
     public int getJDBCMajorVersion() throws SQLException {
 338  0
         { try { return _meta.getJDBCMajorVersion(); }
 339  0
         catch (SQLException e) { handleException(e); return 0; } }
 340  
     }
 341  
 
 342  
     public int getJDBCMinorVersion() throws SQLException {
 343  0
         { try { return _meta.getJDBCMinorVersion(); }
 344  0
         catch (SQLException e) { handleException(e); return 0; } }
 345  
     }
 346  
 
 347  
     public int getMaxBinaryLiteralLength() throws SQLException {
 348  0
         { try { return _meta.getMaxBinaryLiteralLength(); }
 349  0
         catch (SQLException e) { handleException(e); return 0; } }
 350  
     }
 351  
 
 352  
     public int getMaxCatalogNameLength() throws SQLException {
 353  0
         { try { return _meta.getMaxCatalogNameLength(); }
 354  0
         catch (SQLException e) { handleException(e); return 0; } }
 355  
     }
 356  
 
 357  
     public int getMaxCharLiteralLength() throws SQLException {
 358  0
         { try { return _meta.getMaxCharLiteralLength(); }
 359  0
         catch (SQLException e) { handleException(e); return 0; } }
 360  
     }
 361  
 
 362  
     public int getMaxColumnNameLength() throws SQLException {
 363  0
         { try { return _meta.getMaxColumnNameLength(); }
 364  0
         catch (SQLException e) { handleException(e); return 0; } }
 365  
     }
 366  
 
 367  
     public int getMaxColumnsInGroupBy() throws SQLException {
 368  0
         { try { return _meta.getMaxColumnsInGroupBy(); }
 369  0
         catch (SQLException e) { handleException(e); return 0; } }
 370  
     }
 371  
 
 372  
     public int getMaxColumnsInIndex() throws SQLException {
 373  0
         { try { return _meta.getMaxColumnsInIndex(); }
 374  0
         catch (SQLException e) { handleException(e); return 0; } }
 375  
     }
 376  
 
 377  
     public int getMaxColumnsInOrderBy() throws SQLException {
 378  0
         { try { return _meta.getMaxColumnsInOrderBy(); }
 379  0
         catch (SQLException e) { handleException(e); return 0; } }
 380  
     }
 381  
 
 382  
     public int getMaxColumnsInSelect() throws SQLException {
 383  0
         { try { return _meta.getMaxColumnsInSelect(); }
 384  0
         catch (SQLException e) { handleException(e); return 0; } }
 385  
     }
 386  
 
 387  
     public int getMaxColumnsInTable() throws SQLException {
 388  0
         { try { return _meta.getMaxColumnsInTable(); }
 389  0
         catch (SQLException e) { handleException(e); return 0; } }
 390  
     }
 391  
 
 392  
     public int getMaxConnections() throws SQLException {
 393  0
         { try { return _meta.getMaxConnections(); }
 394  0
         catch (SQLException e) { handleException(e); return 0; } }
 395  
     }
 396  
 
 397  
     public int getMaxCursorNameLength() throws SQLException {
 398  0
         { try { return _meta.getMaxCursorNameLength(); }
 399  0
         catch (SQLException e) { handleException(e); return 0; } }
 400  
     }
 401  
 
 402  
     public int getMaxIndexLength() throws SQLException {
 403  0
         { try { return _meta.getMaxIndexLength(); }
 404  0
         catch (SQLException e) { handleException(e); return 0; } }
 405  
     }
 406  
 
 407  
     public int getMaxProcedureNameLength() throws SQLException {
 408  0
         { try { return _meta.getMaxProcedureNameLength(); }
 409  0
         catch (SQLException e) { handleException(e); return 0; } }
 410  
     }
 411  
 
 412  
     public int getMaxRowSize() throws SQLException {
 413  0
         { try { return _meta.getMaxRowSize(); }
 414  0
         catch (SQLException e) { handleException(e); return 0; } }
 415  
     }
 416  
 
 417  
     public int getMaxSchemaNameLength() throws SQLException {
 418  0
         { try { return _meta.getMaxSchemaNameLength(); }
 419  0
         catch (SQLException e) { handleException(e); return 0; } }
 420  
     }
 421  
 
 422  
     public int getMaxStatementLength() throws SQLException {
 423  0
         { try { return _meta.getMaxStatementLength(); }
 424  0
         catch (SQLException e) { handleException(e); return 0; } }
 425  
     }
 426  
 
 427  
     public int getMaxStatements() throws SQLException {
 428  0
         { try { return _meta.getMaxStatements(); }
 429  0
         catch (SQLException e) { handleException(e); return 0; } }
 430  
     }
 431  
 
 432  
     public int getMaxTableNameLength() throws SQLException {
 433  0
         { try { return _meta.getMaxTableNameLength(); }
 434  0
         catch (SQLException e) { handleException(e); return 0; } }
 435  
     }
 436  
 
 437  
     public int getMaxTablesInSelect() throws SQLException {
 438  0
         { try { return _meta.getMaxTablesInSelect(); }
 439  0
         catch (SQLException e) { handleException(e); return 0; } }
 440  
     }
 441  
 
 442  
     public int getMaxUserNameLength() throws SQLException {
 443  0
         { try { return _meta.getMaxUserNameLength(); }
 444  0
         catch (SQLException e) { handleException(e); return 0; } }
 445  
     }
 446  
 
 447  
     public String getNumericFunctions() throws SQLException {
 448  0
         { try { return _meta.getNumericFunctions(); }
 449  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 450  
     }
 451  
 
 452  
     public ResultSet getPrimaryKeys(String catalog, String schema, String table)
 453  
             throws SQLException {
 454  0
         _conn.checkOpen();
 455  
         try {
 456  0
             return DelegatingResultSet.wrapResultSet(_conn,
 457  
                     _meta.getPrimaryKeys(catalog, schema, table));
 458  
         }
 459  0
         catch (SQLException e) {
 460  0
             handleException(e);
 461  0
             throw new AssertionError();
 462  
         }
 463  
     }
 464  
 
 465  
     public ResultSet getProcedureColumns(String catalog, String schemaPattern,
 466  
             String procedureNamePattern, String columnNamePattern)
 467  
             throws SQLException {
 468  0
         _conn.checkOpen();
 469  
         try {
 470  0
             return DelegatingResultSet.wrapResultSet(_conn,
 471  
                     _meta.getProcedureColumns(catalog, schemaPattern,
 472  
                             procedureNamePattern, columnNamePattern));
 473  
         }
 474  0
         catch (SQLException e) {
 475  0
             handleException(e);
 476  0
             throw new AssertionError();
 477  
         }
 478  
     }
 479  
 
 480  
     public String getProcedureTerm() throws SQLException {
 481  0
         { try { return _meta.getProcedureTerm(); }
 482  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 483  
     }
 484  
 
 485  
     public ResultSet getProcedures(String catalog, String schemaPattern,
 486  
             String procedureNamePattern) throws SQLException {
 487  0
         _conn.checkOpen();
 488  
         try {
 489  0
             return DelegatingResultSet.wrapResultSet(_conn,
 490  
                     _meta.getProcedures(catalog, schemaPattern,
 491  
                             procedureNamePattern));
 492  
         }
 493  0
         catch (SQLException e) {
 494  0
             handleException(e);
 495  0
             throw new AssertionError();
 496  
         }
 497  
     }
 498  
 
 499  
     public int getResultSetHoldability() throws SQLException {
 500  0
         { try { return _meta.getResultSetHoldability(); }
 501  0
         catch (SQLException e) { handleException(e); return 0; } }
 502  
     }
 503  
 
 504  
     public String getSQLKeywords() throws SQLException {
 505  0
         { try { return _meta.getSQLKeywords(); }
 506  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 507  
     }
 508  
 
 509  
     public int getSQLStateType() throws SQLException {
 510  0
         { try { return _meta.getSQLStateType(); }
 511  0
         catch (SQLException e) { handleException(e); return 0; } }
 512  
     }
 513  
 
 514  
     public String getSchemaTerm() throws SQLException {
 515  0
         { try { return _meta.getSchemaTerm(); }
 516  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 517  
     }
 518  
 
 519  
     public ResultSet getSchemas() throws SQLException {
 520  2
         _conn.checkOpen();
 521  
         try {
 522  2
             return DelegatingResultSet.wrapResultSet(_conn,
 523  
                     _meta.getSchemas());
 524  
         }
 525  0
         catch (SQLException e) {
 526  0
             handleException(e);
 527  0
             throw new AssertionError();
 528  
         }
 529  
     }
 530  
 
 531  
     public String getSearchStringEscape() throws SQLException {
 532  0
         { try { return _meta.getSearchStringEscape(); }
 533  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 534  
     }
 535  
 
 536  
     public String getStringFunctions() throws SQLException {
 537  0
         { try { return _meta.getStringFunctions(); }
 538  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 539  
     }
 540  
 
 541  
     public ResultSet getSuperTables(String catalog, String schemaPattern,
 542  
             String tableNamePattern) throws SQLException {
 543  0
         _conn.checkOpen();
 544  
         try {
 545  0
             return DelegatingResultSet.wrapResultSet(_conn,
 546  
                     _meta.getSuperTables(catalog, schemaPattern,
 547  
                             tableNamePattern));
 548  
         }
 549  0
         catch (SQLException e) {
 550  0
             handleException(e);
 551  0
             throw new AssertionError();
 552  
         }
 553  
     }
 554  
 
 555  
     public ResultSet getSuperTypes(String catalog, String schemaPattern,
 556  
             String typeNamePattern) throws SQLException {
 557  0
         _conn.checkOpen();
 558  
         try {
 559  0
             return DelegatingResultSet.wrapResultSet(_conn,
 560  
                     _meta.getSuperTypes(catalog, schemaPattern,
 561  
                             typeNamePattern));
 562  
         }
 563  0
         catch (SQLException e) {
 564  0
             handleException(e);
 565  0
             throw new AssertionError();
 566  
         }
 567  
     }
 568  
 
 569  
     public String getSystemFunctions() throws SQLException {
 570  0
         { try { return _meta.getSystemFunctions(); }
 571  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 572  
     }
 573  
 
 574  
     public ResultSet getTablePrivileges(String catalog, String schemaPattern,
 575  
             String tableNamePattern) throws SQLException {
 576  0
         _conn.checkOpen();
 577  
         try {
 578  0
             return DelegatingResultSet.wrapResultSet(_conn,
 579  
                     _meta.getTablePrivileges(catalog, schemaPattern,
 580  
                             tableNamePattern));
 581  
         }
 582  0
         catch (SQLException e) {
 583  0
             handleException(e);
 584  0
             throw new AssertionError();
 585  
         }
 586  
     }
 587  
 
 588  
     public ResultSet getTableTypes() throws SQLException {
 589  0
         _conn.checkOpen();
 590  
         try {
 591  0
             return DelegatingResultSet.wrapResultSet(_conn,
 592  
                     _meta.getTableTypes());
 593  
         }
 594  0
         catch (SQLException e) {
 595  0
             handleException(e);
 596  0
             throw new AssertionError();
 597  
         }
 598  
     }
 599  
 
 600  
     public ResultSet getTables(String catalog, String schemaPattern,
 601  
             String tableNamePattern, String[] types) throws SQLException {
 602  0
         _conn.checkOpen();
 603  
         try {
 604  0
             return DelegatingResultSet.wrapResultSet(_conn,
 605  
                     _meta.getTables(catalog, schemaPattern, tableNamePattern,
 606  
                             types));
 607  
         }
 608  0
         catch (SQLException e) {
 609  0
             handleException(e);
 610  0
             throw new AssertionError();
 611  
         }
 612  
     }
 613  
 
 614  
     public String getTimeDateFunctions() throws SQLException {
 615  0
         { try { return _meta.getTimeDateFunctions(); }
 616  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 617  
     }
 618  
 
 619  
     public ResultSet getTypeInfo() throws SQLException {
 620  0
         _conn.checkOpen();
 621  
         try {
 622  0
             return DelegatingResultSet.wrapResultSet(_conn,
 623  
                     _meta.getTypeInfo());
 624  
         }
 625  0
         catch (SQLException e) {
 626  0
             handleException(e);
 627  0
             throw new AssertionError();
 628  
         }
 629  
     }
 630  
 
 631  
     public ResultSet getUDTs(String catalog, String schemaPattern,
 632  
             String typeNamePattern, int[] types) throws SQLException {
 633  0
         _conn.checkOpen();
 634  
         try {
 635  0
             return DelegatingResultSet.wrapResultSet(_conn,
 636  
                     _meta.getUDTs(catalog, schemaPattern, typeNamePattern,
 637  
                             types));
 638  
         }
 639  0
         catch (SQLException e) {
 640  0
             handleException(e);
 641  0
             throw new AssertionError();
 642  
         }
 643  
     }
 644  
 
 645  
     public String getURL() throws SQLException {
 646  0
         { try { return _meta.getURL(); }
 647  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 648  
     }
 649  
 
 650  
     public String getUserName() throws SQLException {
 651  0
         { try { return _meta.getUserName(); }
 652  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 653  
     }
 654  
 
 655  
     public ResultSet getVersionColumns(String catalog, String schema,
 656  
             String table) throws SQLException {
 657  0
         _conn.checkOpen();
 658  
         try {
 659  0
             return DelegatingResultSet.wrapResultSet(_conn,
 660  
                     _meta.getVersionColumns(catalog, schema, table));
 661  
         }
 662  0
         catch (SQLException e) {
 663  0
             handleException(e);
 664  0
             throw new AssertionError();
 665  
         }
 666  
     }
 667  
 
 668  
     public boolean insertsAreDetected(int type) throws SQLException {
 669  0
         { try { return _meta.insertsAreDetected(type); }
 670  0
         catch (SQLException e) { handleException(e); return false; } }
 671  
     }
 672  
 
 673  
     public boolean isCatalogAtStart() throws SQLException {
 674  0
         { try { return _meta.isCatalogAtStart(); }
 675  0
         catch (SQLException e) { handleException(e); return false; } }
 676  
     }
 677  
 
 678  
     public boolean isReadOnly() throws SQLException {
 679  0
         { try { return _meta.isReadOnly(); }
 680  0
         catch (SQLException e) { handleException(e); return false; } }
 681  
     }
 682  
 
 683  
     public boolean locatorsUpdateCopy() throws SQLException {
 684  0
         { try { return _meta.locatorsUpdateCopy(); }
 685  0
         catch (SQLException e) { handleException(e); return false; } }
 686  
     }
 687  
 
 688  
     public boolean nullPlusNonNullIsNull() throws SQLException {
 689  0
         { try { return _meta.nullPlusNonNullIsNull(); }
 690  0
         catch (SQLException e) { handleException(e); return false; } }
 691  
     }
 692  
 
 693  
     public boolean nullsAreSortedAtEnd() throws SQLException {
 694  0
         { try { return _meta.nullsAreSortedAtEnd(); }
 695  0
         catch (SQLException e) { handleException(e); return false; } }
 696  
     }
 697  
 
 698  
     public boolean nullsAreSortedAtStart() throws SQLException {
 699  0
         { try { return _meta.nullsAreSortedAtStart(); }
 700  0
         catch (SQLException e) { handleException(e); return false; } }
 701  
     }
 702  
 
 703  
     public boolean nullsAreSortedHigh() throws SQLException {
 704  0
         { try { return _meta.nullsAreSortedHigh(); }
 705  0
         catch (SQLException e) { handleException(e); return false; } }
 706  
     }
 707  
 
 708  
     public boolean nullsAreSortedLow() throws SQLException {
 709  0
         { try { return _meta.nullsAreSortedLow(); }
 710  0
         catch (SQLException e) { handleException(e); return false; } }
 711  
     }
 712  
 
 713  
     public boolean othersDeletesAreVisible(int type) throws SQLException {
 714  0
         { try { return _meta.othersDeletesAreVisible(type); }
 715  0
         catch (SQLException e) { handleException(e); return false; } }
 716  
     }
 717  
 
 718  
     public boolean othersInsertsAreVisible(int type) throws SQLException {
 719  0
         { try { return _meta.othersInsertsAreVisible(type); }
 720  0
         catch (SQLException e) { handleException(e); return false; } }
 721  
     }
 722  
 
 723  
     public boolean othersUpdatesAreVisible(int type) throws SQLException {
 724  0
         { try { return _meta.othersUpdatesAreVisible(type); }
 725  0
         catch (SQLException e) { handleException(e); return false; } }
 726  
     }
 727  
 
 728  
     public boolean ownDeletesAreVisible(int type) throws SQLException {
 729  0
         { try { return _meta.ownDeletesAreVisible(type); }
 730  0
         catch (SQLException e) { handleException(e); return false; } }
 731  
     }
 732  
 
 733  
     public boolean ownInsertsAreVisible(int type) throws SQLException {
 734  0
         { try { return _meta.ownInsertsAreVisible(type); }
 735  0
         catch (SQLException e) { handleException(e); return false; } }
 736  
     }
 737  
 
 738  
     public boolean ownUpdatesAreVisible(int type) throws SQLException {
 739  0
         { try { return _meta.ownUpdatesAreVisible(type); }
 740  0
         catch (SQLException e) { handleException(e); return false; } }
 741  
     }
 742  
 
 743  
     public boolean storesLowerCaseIdentifiers() throws SQLException {
 744  0
         { try { return _meta.storesLowerCaseIdentifiers(); }
 745  0
         catch (SQLException e) { handleException(e); return false; } }
 746  
     }
 747  
 
 748  
     public boolean storesLowerCaseQuotedIdentifiers() throws SQLException {
 749  0
         { try { return _meta.storesLowerCaseQuotedIdentifiers(); }
 750  0
         catch (SQLException e) { handleException(e); return false; } }
 751  
     }
 752  
 
 753  
     public boolean storesMixedCaseIdentifiers() throws SQLException {
 754  0
         { try { return _meta.storesMixedCaseIdentifiers(); }
 755  0
         catch (SQLException e) { handleException(e); return false; } }
 756  
     }
 757  
 
 758  
     public boolean storesMixedCaseQuotedIdentifiers() throws SQLException {
 759  0
         { try { return _meta.storesMixedCaseQuotedIdentifiers(); }
 760  0
         catch (SQLException e) { handleException(e); return false; } }
 761  
     }
 762  
 
 763  
     public boolean storesUpperCaseIdentifiers() throws SQLException {
 764  0
         { try { return _meta.storesUpperCaseIdentifiers(); }
 765  0
         catch (SQLException e) { handleException(e); return false; } }
 766  
     }
 767  
 
 768  
     public boolean storesUpperCaseQuotedIdentifiers() throws SQLException {
 769  0
         { try { return _meta.storesUpperCaseQuotedIdentifiers(); }
 770  0
         catch (SQLException e) { handleException(e); return false; } }
 771  
     }
 772  
 
 773  
     public boolean supportsANSI92EntryLevelSQL() throws SQLException {
 774  0
         { try { return _meta.supportsANSI92EntryLevelSQL(); }
 775  0
         catch (SQLException e) { handleException(e); return false; } }
 776  
     }
 777  
 
 778  
     public boolean supportsANSI92FullSQL() throws SQLException {
 779  0
         { try { return _meta.supportsANSI92FullSQL(); }
 780  0
         catch (SQLException e) { handleException(e); return false; } }
 781  
     }
 782  
 
 783  
     public boolean supportsANSI92IntermediateSQL() throws SQLException {
 784  0
         { try { return _meta.supportsANSI92IntermediateSQL(); }
 785  0
         catch (SQLException e) { handleException(e); return false; } }
 786  
     }
 787  
 
 788  
     public boolean supportsAlterTableWithAddColumn() throws SQLException {
 789  0
         { try { return _meta.supportsAlterTableWithAddColumn(); }
 790  0
         catch (SQLException e) { handleException(e); return false; } }
 791  
     }
 792  
 
 793  
     public boolean supportsAlterTableWithDropColumn() throws SQLException {
 794  0
         { try { return _meta.supportsAlterTableWithDropColumn(); }
 795  0
         catch (SQLException e) { handleException(e); return false; } }
 796  
     }
 797  
 
 798  
     public boolean supportsBatchUpdates() throws SQLException {
 799  0
         { try { return _meta.supportsBatchUpdates(); }
 800  0
         catch (SQLException e) { handleException(e); return false; } }
 801  
     }
 802  
 
 803  
     public boolean supportsCatalogsInDataManipulation() throws SQLException {
 804  0
         { try { return _meta.supportsCatalogsInDataManipulation(); }
 805  0
         catch (SQLException e) { handleException(e); return false; } }
 806  
     }
 807  
 
 808  
     public boolean supportsCatalogsInIndexDefinitions() throws SQLException {
 809  0
         { try { return _meta.supportsCatalogsInIndexDefinitions(); }
 810  0
         catch (SQLException e) { handleException(e); return false; } }
 811  
     }
 812  
 
 813  
     public boolean supportsCatalogsInPrivilegeDefinitions() throws SQLException {
 814  0
         { try { return _meta.supportsCatalogsInPrivilegeDefinitions(); }
 815  0
         catch (SQLException e) { handleException(e); return false; } }
 816  
     }
 817  
 
 818  
     public boolean supportsCatalogsInProcedureCalls() throws SQLException {
 819  0
         { try { return _meta.supportsCatalogsInProcedureCalls(); }
 820  0
         catch (SQLException e) { handleException(e); return false; } }
 821  
     }
 822  
 
 823  
     public boolean supportsCatalogsInTableDefinitions() throws SQLException {
 824  0
         { try { return _meta.supportsCatalogsInTableDefinitions(); }
 825  0
         catch (SQLException e) { handleException(e); return false; } }
 826  
     }
 827  
 
 828  
     public boolean supportsColumnAliasing() throws SQLException {
 829  0
         { try { return _meta.supportsColumnAliasing(); }
 830  0
         catch (SQLException e) { handleException(e); return false; } }
 831  
     }
 832  
 
 833  
     public boolean supportsConvert() throws SQLException {
 834  0
         { try { return _meta.supportsConvert(); }
 835  0
         catch (SQLException e) { handleException(e); return false; } }
 836  
     }
 837  
 
 838  
     public boolean supportsConvert(int fromType, int toType)
 839  
             throws SQLException {
 840  0
         { try { return _meta.supportsConvert(fromType, toType); }
 841  0
         catch (SQLException e) { handleException(e); return false; } }
 842  
     }
 843  
 
 844  
     public boolean supportsCoreSQLGrammar() throws SQLException {
 845  0
         { try { return _meta.supportsCoreSQLGrammar(); }
 846  0
         catch (SQLException e) { handleException(e); return false; } }
 847  
     }
 848  
 
 849  
     public boolean supportsCorrelatedSubqueries() throws SQLException {
 850  0
         { try { return _meta.supportsCorrelatedSubqueries(); }
 851  0
         catch (SQLException e) { handleException(e); return false; } }
 852  
     }
 853  
 
 854  
     public boolean supportsDataDefinitionAndDataManipulationTransactions()
 855  
             throws SQLException {
 856  0
         { try { return _meta.supportsDataDefinitionAndDataManipulationTransactions(); }
 857  0
         catch (SQLException e) { handleException(e); return false; } }
 858  
     }
 859  
 
 860  
     public boolean supportsDataManipulationTransactionsOnly()
 861  
             throws SQLException {
 862  0
         { try { return _meta.supportsDataManipulationTransactionsOnly(); }
 863  0
         catch (SQLException e) { handleException(e); return false; } }
 864  
     }
 865  
 
 866  
     public boolean supportsDifferentTableCorrelationNames() throws SQLException {
 867  0
         { try { return _meta.supportsDifferentTableCorrelationNames(); }
 868  0
         catch (SQLException e) { handleException(e); return false; } }
 869  
     }
 870  
 
 871  
     public boolean supportsExpressionsInOrderBy() throws SQLException {
 872  0
         { try { return _meta.supportsExpressionsInOrderBy(); }
 873  0
         catch (SQLException e) { handleException(e); return false; } }
 874  
     }
 875  
 
 876  
     public boolean supportsExtendedSQLGrammar() throws SQLException {
 877  0
         { try { return _meta.supportsExtendedSQLGrammar(); }
 878  0
         catch (SQLException e) { handleException(e); return false; } }
 879  
     }
 880  
 
 881  
     public boolean supportsFullOuterJoins() throws SQLException {
 882  0
         { try { return _meta.supportsFullOuterJoins(); }
 883  0
         catch (SQLException e) { handleException(e); return false; } }
 884  
     }
 885  
 
 886  
     public boolean supportsGetGeneratedKeys() throws SQLException {
 887  0
         { try { return _meta.supportsGetGeneratedKeys(); }
 888  0
         catch (SQLException e) { handleException(e); return false; } }
 889  
     }
 890  
 
 891  
     public boolean supportsGroupBy() throws SQLException {
 892  0
         { try { return _meta.supportsGroupBy(); }
 893  0
         catch (SQLException e) { handleException(e); return false; } }
 894  
     }
 895  
 
 896  
     public boolean supportsGroupByBeyondSelect() throws SQLException {
 897  0
         { try { return _meta.supportsGroupByBeyondSelect(); }
 898  0
         catch (SQLException e) { handleException(e); return false; } }
 899  
     }
 900  
 
 901  
     public boolean supportsGroupByUnrelated() throws SQLException {
 902  0
         { try { return _meta.supportsGroupByUnrelated(); }
 903  0
         catch (SQLException e) { handleException(e); return false; } }
 904  
     }
 905  
 
 906  
     public boolean supportsIntegrityEnhancementFacility() throws SQLException {
 907  0
         { try { return _meta.supportsIntegrityEnhancementFacility(); }
 908  0
         catch (SQLException e) { handleException(e); return false; } }
 909  
     }
 910  
 
 911  
     public boolean supportsLikeEscapeClause() throws SQLException {
 912  0
         { try { return _meta.supportsLikeEscapeClause(); }
 913  0
         catch (SQLException e) { handleException(e); return false; } }
 914  
     }
 915  
 
 916  
     public boolean supportsLimitedOuterJoins() throws SQLException {
 917  0
         { try { return _meta.supportsLimitedOuterJoins(); }
 918  0
         catch (SQLException e) { handleException(e); return false; } }
 919  
     }
 920  
 
 921  
     public boolean supportsMinimumSQLGrammar() throws SQLException {
 922  0
         { try { return _meta.supportsMinimumSQLGrammar(); }
 923  0
         catch (SQLException e) { handleException(e); return false; } }
 924  
     }
 925  
 
 926  
     public boolean supportsMixedCaseIdentifiers() throws SQLException {
 927  0
         { try { return _meta.supportsMixedCaseIdentifiers(); }
 928  0
         catch (SQLException e) { handleException(e); return false; } }
 929  
     }
 930  
 
 931  
     public boolean supportsMixedCaseQuotedIdentifiers() throws SQLException {
 932  0
         { try { return _meta.supportsMixedCaseQuotedIdentifiers(); }
 933  0
         catch (SQLException e) { handleException(e); return false; } }
 934  
     }
 935  
 
 936  
     public boolean supportsMultipleOpenResults() throws SQLException {
 937  0
         { try { return _meta.supportsMultipleOpenResults(); }
 938  0
         catch (SQLException e) { handleException(e); return false; } }
 939  
     }
 940  
 
 941  
     public boolean supportsMultipleResultSets() throws SQLException {
 942  0
         { try { return _meta.supportsMultipleResultSets(); }
 943  0
         catch (SQLException e) { handleException(e); return false; } }
 944  
     }
 945  
 
 946  
     public boolean supportsMultipleTransactions() throws SQLException {
 947  0
         { try { return _meta.supportsMultipleTransactions(); }
 948  0
         catch (SQLException e) { handleException(e); return false; } }
 949  
     }
 950  
 
 951  
     public boolean supportsNamedParameters() throws SQLException {
 952  0
         { try { return _meta.supportsNamedParameters(); }
 953  0
         catch (SQLException e) { handleException(e); return false; } }
 954  
     }
 955  
 
 956  
     public boolean supportsNonNullableColumns() throws SQLException {
 957  0
         { try { return _meta.supportsNonNullableColumns(); }
 958  0
         catch (SQLException e) { handleException(e); return false; } }
 959  
     }
 960  
 
 961  
     public boolean supportsOpenCursorsAcrossCommit() throws SQLException {
 962  0
         { try { return _meta.supportsOpenCursorsAcrossCommit(); }
 963  0
         catch (SQLException e) { handleException(e); return false; } }
 964  
     }
 965  
 
 966  
     public boolean supportsOpenCursorsAcrossRollback() throws SQLException {
 967  0
         { try { return _meta.supportsOpenCursorsAcrossRollback(); }
 968  0
         catch (SQLException e) { handleException(e); return false; } }
 969  
     }
 970  
 
 971  
     public boolean supportsOpenStatementsAcrossCommit() throws SQLException {
 972  0
         { try { return _meta.supportsOpenStatementsAcrossCommit(); }
 973  0
         catch (SQLException e) { handleException(e); return false; } }
 974  
     }
 975  
 
 976  
     public boolean supportsOpenStatementsAcrossRollback() throws SQLException {
 977  0
         { try { return _meta.supportsOpenStatementsAcrossRollback(); }
 978  0
         catch (SQLException e) { handleException(e); return false; } }
 979  
     }
 980  
 
 981  
     public boolean supportsOrderByUnrelated() throws SQLException {
 982  0
         { try { return _meta.supportsOrderByUnrelated(); }
 983  0
         catch (SQLException e) { handleException(e); return false; } }
 984  
     }
 985  
 
 986  
     public boolean supportsOuterJoins() throws SQLException {
 987  0
         { try { return _meta.supportsOuterJoins(); }
 988  0
         catch (SQLException e) { handleException(e); return false; } }
 989  
     }
 990  
 
 991  
     public boolean supportsPositionedDelete() throws SQLException {
 992  0
         { try { return _meta.supportsPositionedDelete(); }
 993  0
         catch (SQLException e) { handleException(e); return false; } }
 994  
     }
 995  
 
 996  
     public boolean supportsPositionedUpdate() throws SQLException {
 997  0
         { try { return _meta.supportsPositionedUpdate(); }
 998  0
         catch (SQLException e) { handleException(e); return false; } }
 999  
     }
 1000  
 
 1001  
     public boolean supportsResultSetConcurrency(int type, int concurrency)
 1002  
             throws SQLException {
 1003  0
         { try { return _meta.supportsResultSetConcurrency(type, concurrency); }
 1004  0
         catch (SQLException e) { handleException(e); return false; } }
 1005  
     }
 1006  
 
 1007  
     public boolean supportsResultSetHoldability(int holdability)
 1008  
             throws SQLException {
 1009  0
         { try { return _meta.supportsResultSetHoldability(holdability); }
 1010  0
         catch (SQLException e) { handleException(e); return false; } }
 1011  
     }
 1012  
 
 1013  
     public boolean supportsResultSetType(int type) throws SQLException {
 1014  0
         { try { return _meta.supportsResultSetType(type); }
 1015  0
         catch (SQLException e) { handleException(e); return false; } }
 1016  
     }
 1017  
 
 1018  
     public boolean supportsSavepoints() throws SQLException {
 1019  0
         { try { return _meta.supportsSavepoints(); }
 1020  0
         catch (SQLException e) { handleException(e); return false; } }
 1021  
     }
 1022  
 
 1023  
     public boolean supportsSchemasInDataManipulation() throws SQLException {
 1024  0
         { try { return _meta.supportsSchemasInDataManipulation(); }
 1025  0
         catch (SQLException e) { handleException(e); return false; } }
 1026  
     }
 1027  
 
 1028  
     public boolean supportsSchemasInIndexDefinitions() throws SQLException {
 1029  0
         { try { return _meta.supportsSchemasInIndexDefinitions(); }
 1030  0
         catch (SQLException e) { handleException(e); return false; } }
 1031  
     }
 1032  
 
 1033  
     public boolean supportsSchemasInPrivilegeDefinitions() throws SQLException {
 1034  0
         { try { return _meta.supportsSchemasInPrivilegeDefinitions(); }
 1035  0
         catch (SQLException e) { handleException(e); return false; } }
 1036  
     }
 1037  
 
 1038  
     public boolean supportsSchemasInProcedureCalls() throws SQLException {
 1039  0
         { try { return _meta.supportsSchemasInProcedureCalls(); }
 1040  0
         catch (SQLException e) { handleException(e); return false; } }
 1041  
     }
 1042  
 
 1043  
     public boolean supportsSchemasInTableDefinitions() throws SQLException {
 1044  0
         { try { return _meta.supportsSchemasInTableDefinitions(); }
 1045  0
         catch (SQLException e) { handleException(e); return false; } }
 1046  
     }
 1047  
 
 1048  
     public boolean supportsSelectForUpdate() throws SQLException {
 1049  0
         { try { return _meta.supportsSelectForUpdate(); }
 1050  0
         catch (SQLException e) { handleException(e); return false; } }
 1051  
     }
 1052  
 
 1053  
     public boolean supportsStatementPooling() throws SQLException {
 1054  0
         { try { return _meta.supportsStatementPooling(); }
 1055  0
         catch (SQLException e) { handleException(e); return false; } }
 1056  
     }
 1057  
 
 1058  
     public boolean supportsStoredProcedures() throws SQLException {
 1059  0
         { try { return _meta.supportsStoredProcedures(); }
 1060  0
         catch (SQLException e) { handleException(e); return false; } }
 1061  
     }
 1062  
 
 1063  
     public boolean supportsSubqueriesInComparisons() throws SQLException {
 1064  0
         { try { return _meta.supportsSubqueriesInComparisons(); }
 1065  0
         catch (SQLException e) { handleException(e); return false; } }
 1066  
     }
 1067  
 
 1068  
     public boolean supportsSubqueriesInExists() throws SQLException {
 1069  0
         { try { return _meta.supportsSubqueriesInExists(); }
 1070  0
         catch (SQLException e) { handleException(e); return false; } }
 1071  
     }
 1072  
 
 1073  
     public boolean supportsSubqueriesInIns() throws SQLException {
 1074  0
         { try { return _meta.supportsSubqueriesInIns(); }
 1075  0
         catch (SQLException e) { handleException(e); return false; } }
 1076  
     }
 1077  
 
 1078  
     public boolean supportsSubqueriesInQuantifieds() throws SQLException {
 1079  0
         { try { return _meta.supportsSubqueriesInQuantifieds(); }
 1080  0
         catch (SQLException e) { handleException(e); return false; } }
 1081  
     }
 1082  
 
 1083  
     public boolean supportsTableCorrelationNames() throws SQLException {
 1084  0
         { try { return _meta.supportsTableCorrelationNames(); }
 1085  0
         catch (SQLException e) { handleException(e); return false; } }
 1086  
     }
 1087  
 
 1088  
     public boolean supportsTransactionIsolationLevel(int level)
 1089  
             throws SQLException {
 1090  0
         { try { return _meta.supportsTransactionIsolationLevel(level); }
 1091  0
         catch (SQLException e) { handleException(e); return false; } }
 1092  
     }
 1093  
 
 1094  
     public boolean supportsTransactions() throws SQLException {
 1095  0
         { try { return _meta.supportsTransactions(); }
 1096  0
         catch (SQLException e) { handleException(e); return false; } }
 1097  
     }
 1098  
 
 1099  
     public boolean supportsUnion() throws SQLException {
 1100  0
         { try { return _meta.supportsUnion(); }
 1101  0
         catch (SQLException e) { handleException(e); return false; } }
 1102  
     }
 1103  
 
 1104  
     public boolean supportsUnionAll() throws SQLException {
 1105  0
         { try { return _meta.supportsUnionAll(); }
 1106  0
         catch (SQLException e) { handleException(e); return false; } }
 1107  
     }
 1108  
 
 1109  
     public boolean updatesAreDetected(int type) throws SQLException {
 1110  0
         { try { return _meta.updatesAreDetected(type); }
 1111  0
         catch (SQLException e) { handleException(e); return false; } }
 1112  
     }
 1113  
 
 1114  
     public boolean usesLocalFilePerTable() throws SQLException {
 1115  0
         { try { return _meta.usesLocalFilePerTable(); }
 1116  0
         catch (SQLException e) { handleException(e); return false; } }
 1117  
     }
 1118  
 
 1119  
     public boolean usesLocalFiles() throws SQLException {
 1120  0
         { try { return _meta.usesLocalFiles(); }
 1121  0
         catch (SQLException e) { handleException(e); return false; } }
 1122  
     }
 1123  
 
 1124  
     /* JDBC_4_ANT_KEY_BEGIN */
 1125  
 
 1126  
     public boolean isWrapperFor(Class<?> iface) throws SQLException {
 1127  0
         return iface.isAssignableFrom(getClass()) || _meta.isWrapperFor(iface);
 1128  
     }
 1129  
 
 1130  
     public <T> T unwrap(Class<T> iface) throws SQLException {
 1131  0
         if (iface.isAssignableFrom(getClass())) {
 1132  0
             return iface.cast(this);
 1133  0
         } else if (iface.isAssignableFrom(_meta.getClass())) {
 1134  0
             return iface.cast(_meta);
 1135  
         } else {
 1136  0
             return _meta.unwrap(iface);
 1137  
         }
 1138  
     }
 1139  
     
 1140  
     public RowIdLifetime getRowIdLifetime() throws SQLException {
 1141  0
         { try { return _meta.getRowIdLifetime(); }
 1142  0
         catch (SQLException e) { handleException(e); throw new AssertionError(); } }
 1143  
     }
 1144  
 
 1145  
     public ResultSet getSchemas(String catalog, String schemaPattern)
 1146  
     throws SQLException {
 1147  0
         _conn.checkOpen();
 1148  
         try {
 1149  0
             return DelegatingResultSet.wrapResultSet(_conn,
 1150  
                     _meta.getSchemas(catalog, schemaPattern));
 1151  
         }
 1152  0
         catch (SQLException e) {
 1153  0
             handleException(e);
 1154  0
             throw new AssertionError();
 1155  
         }
 1156  
     }
 1157  
 
 1158  
     public boolean autoCommitFailureClosesAllResultSets() throws SQLException {
 1159  0
         { try { return _meta.autoCommitFailureClosesAllResultSets(); }
 1160  0
         catch (SQLException e) { handleException(e); return false; } }
 1161  
     }
 1162  
 
 1163  
     public boolean supportsStoredFunctionsUsingCallSyntax() throws SQLException {
 1164  0
         { try { return _meta.supportsStoredFunctionsUsingCallSyntax(); }
 1165  0
         catch (SQLException e) { handleException(e); return false; } }
 1166  
     }
 1167  
 
 1168  
     public ResultSet getClientInfoProperties() throws SQLException {
 1169  0
         _conn.checkOpen();
 1170  
         try {
 1171  0
             return DelegatingResultSet.wrapResultSet(_conn,
 1172  
                     _meta.getClientInfoProperties());
 1173  
         }
 1174  0
         catch (SQLException e) {
 1175  0
             handleException(e);
 1176  0
             throw new AssertionError();
 1177  
         }
 1178  
     }
 1179  
 
 1180  
     public ResultSet getFunctions(String catalog, String schemaPattern,
 1181  
             String functionNamePattern) throws SQLException {
 1182  0
         _conn.checkOpen();
 1183  
         try {
 1184  0
             return DelegatingResultSet.wrapResultSet(_conn,
 1185  
                     _meta.getFunctions(catalog, schemaPattern,
 1186  
                             functionNamePattern));
 1187  
         }
 1188  0
         catch (SQLException e) {
 1189  0
             handleException(e);
 1190  0
             throw new AssertionError();
 1191  
         }
 1192  
     }
 1193  
 
 1194  
     public ResultSet getFunctionColumns(String catalog, String schemaPattern,
 1195  
             String functionNamePattern, String columnNamePattern)
 1196  
             throws SQLException {
 1197  0
         _conn.checkOpen();
 1198  
         try {
 1199  0
             return DelegatingResultSet.wrapResultSet(_conn,
 1200  
                     _meta.getFunctionColumns(catalog, schemaPattern,
 1201  
                             functionNamePattern, columnNamePattern));
 1202  
         }
 1203  0
         catch (SQLException e) {
 1204  0
             handleException(e);
 1205  0
             throw new AssertionError();
 1206  
         }
 1207  
     }
 1208  
 
 1209  
     /* JDBC_4_ANT_KEY_END */
 1210  
 
 1211  
 }