protected void handleException(SQLException e) throws SQLException {
   if (_conn != null) {
     _conn.handleException(e);
   } else {
     throw e;
   }
 }
 public ResultSet getPrimaryKeys(String catalog, String schema, String table) throws SQLException {
   _conn.checkOpen();
   try {
     return DelegatingResultSet.wrapResultSet(_conn, _meta.getPrimaryKeys(catalog, schema, table));
   } catch (SQLException e) {
     handleException(e);
     throw new AssertionError();
   }
 }
 public ResultSet getTypeInfo() throws SQLException {
   _conn.checkOpen();
   try {
     return DelegatingResultSet.wrapResultSet(_conn, _meta.getTypeInfo());
   } catch (SQLException e) {
     handleException(e);
     throw new AssertionError();
   }
 }
 public ResultSet getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern)
     throws SQLException {
   _conn.checkOpen();
   try {
     return DelegatingResultSet.wrapResultSet(
         _conn, _meta.getTablePrivileges(catalog, schemaPattern, tableNamePattern));
   } catch (SQLException e) {
     handleException(e);
     throw new AssertionError();
   }
 }
 public ResultSet getIndexInfo(
     String catalog, String schema, String table, boolean unique, boolean approximate)
     throws SQLException {
   _conn.checkOpen();
   try {
     return DelegatingResultSet.wrapResultSet(
         _conn, _meta.getIndexInfo(catalog, schema, table, unique, approximate));
   } catch (SQLException e) {
     handleException(e);
     throw new AssertionError();
   }
 }
 public ResultSet getBestRowIdentifier(
     String catalog, String schema, String table, int scope, boolean nullable)
     throws SQLException {
   _conn.checkOpen();
   try {
     return DelegatingResultSet.wrapResultSet(
         _conn, _meta.getBestRowIdentifier(catalog, schema, table, scope, nullable));
   } catch (SQLException e) {
     handleException(e);
     throw new AssertionError();
   }
 }
 public ResultSet getFunctionColumns(
     String catalog, String schemaPattern, String functionNamePattern, String columnNamePattern)
     throws SQLException {
   _conn.checkOpen();
   try {
     return DelegatingResultSet.wrapResultSet(
         _conn,
         _meta.getFunctionColumns(catalog, schemaPattern, functionNamePattern, columnNamePattern));
   } catch (SQLException e) {
     handleException(e);
     throw new AssertionError();
   }
 }
 public ResultSet getCrossReference(
     String parentCatalog,
     String parentSchema,
     String parentTable,
     String foreignCatalog,
     String foreignSchema,
     String foreignTable)
     throws SQLException {
   _conn.checkOpen();
   try {
     return DelegatingResultSet.wrapResultSet(
         _conn,
         _meta.getCrossReference(
             parentCatalog,
             parentSchema,
             parentTable,
             foreignCatalog,
             foreignSchema,
             foreignTable));
   } catch (SQLException e) {
     handleException(e);
     throw new AssertionError();
   }
 }