Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

org.objectweb.cjdbc.controller.backend.DatabaseBackendMetaData Class Reference

List of all members.

Public Member Functions

 DatabaseBackendMetaData (AbstractConnectionManager connectionManager, Trace logger, int dynamicPrecision, boolean gatherSystemTables, String schemaName)
MetadataContainer retrieveDatabaseMetadata () throws SQLException
void createDatabaseSchemaDynamically () throws SQLException
DatabaseSchema getDatabaseSchema () throws SQLException

Detailed Description

A DatabaseBackendMetaData is used to retrieve the database schema of a real database backend that will have to be bound to a virtual C-JDBC database.

Author:
Julie Marguerite

Emmanuel Cecchet

Nicolas Modrzyk

Mathieu Peltier

Jean-Bernard van Zuylen

Version:
1.0

Definition at line 55 of file DatabaseBackendMetaData.java.


Constructor & Destructor Documentation

org.objectweb.cjdbc.controller.backend.DatabaseBackendMetaData.DatabaseBackendMetaData AbstractConnectionManager  connectionManager,
Trace  logger,
int  dynamicPrecision,
boolean  gatherSystemTables,
String  schemaName
 

Creates a new DatabaseBackendMetaData instance. This class takes care of initializing the connection manager if needed but the driver must have been previously loaded else the connection manager's initialization will fail.

Parameters:
connectionManager the connection manager to gather the schema from
logger the logger (usually the backend logger) to use
dynamicPrecision the precision with which we gather a schema directly from the backend
gatherSystemTables true if system tables must be gathered
schemaName schema name to use to retrieve information

Definition at line 91 of file DatabaseBackendMetaData.java.

00094   {
00095     this.connectionManager = connectionManager;
00096     this.dynamicPrecision = dynamicPrecision;
00097     this.logger = logger;
00098     this.gatherSystemTables = gatherSystemTables;
00099     this.schemaName = schemaName;
00100   }


Member Function Documentation

void org.objectweb.cjdbc.controller.backend.DatabaseBackendMetaData.createDatabaseSchemaDynamically  )  throws SQLException
 

Gets the list of tables of a database and add them to the database schema. The caller must ensure that the parameters are not null.

Exceptions:
SQLException if an error occurs

Definition at line 849 of file DatabaseBackendMetaData.java.

00850   {
00851     if (dynamicPrecision == DatabaseBackendSchemaConstants.DynamicPrecisionStatic)
00852       return;
00853     Connection connection = null;
00854     boolean wasInitialized = connectionManager.isInitialized();
00855 
00856     try
00857     {
00858       if (!wasInitialized)
00859         connectionManager.initializeConnections();
00860 
00861       connection = connectionManager.getConnection();
00862       if (connection == null)
00863       {
00864         String msg = Translate.get("backend.meta.connection.failed");
00865         logger.error(msg);
00866         throw new SQLException(msg);
00867       }
00868 
00869       databaseSchema = new DatabaseSQLMetaData(logger, connection,
00870           dynamicPrecision, gatherSystemTables, schemaName)
00871           .createDatabaseSchema();
00872 
00873     }
00874     catch (Exception e)
00875     {
00876       if (e instanceof RuntimeException)
00877         logger.error(Translate.get("backend.meta.runtime.error"), e);
00878       throw new SQLException(Translate.get("backend.meta.failed.get.info", e));
00879     }
00880     finally
00881     {
00882       if (connection != null)
00883         connectionManager.releaseConnection(connection);
00884 
00885       if (!wasInitialized)
00886         connectionManager.finalizeConnections();
00887 
00888     }
00889   }

DatabaseSchema org.objectweb.cjdbc.controller.backend.DatabaseBackendMetaData.getDatabaseSchema  )  throws SQLException
 

Returns the database schema. Returns null If an error has occured during the schema generation.

If the schema has not been previously computed, createDatabaseSchemaDynamically()is called.

Returns:
a DatabaseSchema value
Exceptions:
SQLException if a problem occurs when creating the database schema
See also:
createDatabaseSchemaDynamically

Definition at line 903 of file DatabaseBackendMetaData.java.

Referenced by org.objectweb.cjdbc.controller.backend.DatabaseBackend.checkDatabaseSchema().

00904   {
00905     if (databaseSchema == null)
00906       createDatabaseSchemaDynamically();
00907     return databaseSchema;
00908   }

MetadataContainer org.objectweb.cjdbc.controller.backend.DatabaseBackendMetaData.retrieveDatabaseMetadata  )  throws SQLException
 

Retrieve metadata from a connection on this backend. Note that some values are overriden with C-JDBC specific features (add-ons or limitations).

Returns:
a metadata container including all metadata values
Exceptions:
SQLException if an error occurs

Definition at line 182 of file DatabaseBackendMetaData.java.

Referenced by org.objectweb.cjdbc.controller.backend.DatabaseBackend.getDatabaseStaticMetadata().

00183   {
00184     if (metadataContainer != null)
00185       return metadataContainer;
00186 
00187     // Retrieve metadata
00188     Connection connection = null;
00189     boolean wasInitialized = connectionManager.isInitialized();
00190 
00191     DatabaseMetaData metaData;
00192     try
00193     {
00194       if (!wasInitialized)
00195         connectionManager.initializeConnections();
00196 
00197       connection = connectionManager.getConnection();
00198       if (connection == null)
00199       {
00200         String msg = Translate.get("backend.meta.connection.failed");
00201         logger.error(msg);
00202         throw new SQLException(msg);
00203       }
00204 
00205       metaData = connection.getMetaData();
00206       metadataContainer = new MetadataContainer(connection.getMetaData()
00207           .getURL());
00208     }
00209     catch (Exception e)
00210     {
00211       if (e instanceof RuntimeException)
00212         logger.error(Translate.get("backend.meta.runtime.error"), e);
00213       throw new SQLException(Translate.get("backend.meta.failed.get.info", e));
00214     }
00215     finally
00216     {
00217       if (connection != null)
00218         connectionManager.releaseConnection(connection);
00219 
00220       if (!wasInitialized)
00221         connectionManager.finalizeConnections();
00222     }
00223 
00224     // TODO: Move this to a separate command
00225     // Boolean.valueOf(metaData.supportsConvert(int,int)
00226 
00227     // Metadata in alphabetical order
00228     insertMetadataInContainer(metaData,
00229         MetadataDescription.ALL_PROCEDURES_ARE_CALLABLE, null, null);
00230     insertMetadataInContainer(metaData,
00231         MetadataDescription.ALL_TABLES_ARE_SELECTABLE, null, null);
00232     insertMetadataInContainer(metaData,
00233         MetadataDescription.DATA_DEFINITION_CAUSES_TRANSACTION_COMMIT, null,
00234         null);
00235     insertMetadataInContainer(metaData,
00236         MetadataDescription.DATA_DEFINITION_IGNORED_IN_TRANSACTIONS, null, null);
00237     insertMetadataInContainer(metaData,
00238         MetadataDescription.DELETES_ARE_DETECTED, new Class[]{Integer.TYPE},
00239         new Object[]{new Integer(ResultSet.TYPE_FORWARD_ONLY)});
00240     insertMetadataInContainer(metaData,
00241         MetadataDescription.DELETES_ARE_DETECTED, new Class[]{Integer.TYPE},
00242         new Object[]{new Integer(ResultSet.TYPE_SCROLL_INSENSITIVE)});
00243     insertMetadataInContainer(metaData,
00244         MetadataDescription.DELETES_ARE_DETECTED, new Class[]{Integer.TYPE},
00245         new Object[]{new Integer(ResultSet.TYPE_SCROLL_SENSITIVE)});
00246     insertMetadataInContainer(metaData,
00247         MetadataDescription.DOES_MAX_ROW_SIZE_INCLUDE_BLOBS, null, null);
00248     insertMetadataInContainer(metaData,
00249         MetadataDescription.GET_DEFAULT_TRANSACTION_ISOLATION, null, null);
00250     insertMetadataInContainer(metaData,
00251         MetadataDescription.GET_DATABASE_MAJOR_VERSION, null, null);
00252     insertMetadataInContainer(metaData,
00253         MetadataDescription.GET_DATABASE_MINOR_VERSION, null, null);
00254     insertMetadataInContainer(metaData,
00255         MetadataDescription.GET_DRIVER_MAJOR_VERSION, null, null);
00256     insertMetadataInContainer(metaData,
00257         MetadataDescription.GET_DRIVER_MINOR_VERSION, null, null);
00258     insertMetadataInContainer(metaData,
00259         MetadataDescription.GET_JDBC_MAJOR_VERSION, null, null);
00260     insertMetadataInContainer(metaData,
00261         MetadataDescription.GET_JDBC_MINOR_VERSION, null, null);
00262     insertMetadataInContainer(metaData,
00263         MetadataDescription.GET_MAX_BINARY_LITERAL_LENGTH, null, null);
00264     insertMetadataInContainer(metaData,
00265         MetadataDescription.GET_RESULTSET_HOLDABILITY, null, null);
00266     insertMetadataInContainer(metaData, MetadataDescription.GET_SQL_STATE_TYPE,
00267         null, null);
00268     insertMetadataInContainer(metaData,
00269         MetadataDescription.GET_MAX_CATALOG_NAME_LENGTH, null, null);
00270     insertMetadataInContainer(metaData,
00271         MetadataDescription.GET_MAX_CHAR_LITERAL_LENGTH, null, null);
00272     insertMetadataInContainer(metaData,
00273         MetadataDescription.GET_MAX_COLUMN_NAME_LENGTH, null, null);
00274     insertMetadataInContainer(metaData,
00275         MetadataDescription.GET_MAX_COLUMNS_IN_GROUP_BY, null, null);
00276     insertMetadataInContainer(metaData,
00277         MetadataDescription.GET_MAX_COLUMNS_IN_INDEX, null, null);
00278     insertMetadataInContainer(metaData,
00279         MetadataDescription.GET_MAX_COLUMNS_IN_ORDER_BY, null, null);
00280     insertMetadataInContainer(metaData,
00281         MetadataDescription.GET_MAX_COLUMNS_IN_SELECT, null, null);
00282     insertMetadataInContainer(metaData,
00283         MetadataDescription.GET_MAX_COLUMNS_IN_TABLE, null, null);
00284     insertMetadataInContainer(metaData,
00285         MetadataDescription.GET_MAX_CONNECTIONS, null, null);
00286     insertMetadataInContainer(metaData,
00287         MetadataDescription.GET_MAX_CURSOR_NAME_LENGTH, null, null);
00288     insertMetadataInContainer(metaData,
00289         MetadataDescription.GET_MAX_INDEX_LENGTH, null, null);
00290     insertMetadataInContainer(metaData,
00291         MetadataDescription.GET_MAX_PROCEDURE_NAME_LENGTH, null, null);
00292     insertMetadataInContainer(metaData, MetadataDescription.GET_MAX_ROW_SIZE,
00293         null, null);
00294     insertMetadataInContainer(metaData,
00295         MetadataDescription.GET_MAX_SCHEMA_NAME_LENGTH, null, null);
00296     insertMetadataInContainer(metaData,
00297         MetadataDescription.GET_MAX_STATEMENT_LENGTH, null, null);
00298     insertMetadataInContainer(metaData, MetadataDescription.GET_MAX_STATEMENTS,
00299         null, null);
00300     insertMetadataInContainer(metaData,
00301         MetadataDescription.GET_MAX_TABLE_NAME_LENGTH, null, null);
00302     insertMetadataInContainer(metaData,
00303         MetadataDescription.GET_MAX_TABLES_IN_SELECT, null, null);
00304     insertMetadataInContainer(metaData,
00305         MetadataDescription.GET_MAX_USER_NAME_LENGTH, null, null);
00306     // strings
00307     insertMetadataInContainer(metaData,
00308         MetadataDescription.GET_CATALOG_SEPARATOR, null, null);
00309     insertMetadataInContainer(metaData, MetadataDescription.GET_CATALOG_TERM,
00310         null, null);
00311     insertMetadataInContainer(metaData,
00312         MetadataDescription.GET_DATABASE_PRODUCT_NAME, null, null);
00313     insertMetadataInContainer(metaData, MetadataDescription.GET_DRIVER_NAME,
00314         null, null);
00315     insertMetadataInContainer(metaData, MetadataDescription.GET_DRIVER_VERSION,
00316         null, null);
00317     insertMetadataInContainer(metaData,
00318         MetadataDescription.GET_EXTRA_NAME_CHARACTERS, null, null);
00319     insertMetadataInContainer(metaData,
00320         MetadataDescription.GET_IDENTIFIER_QUOTE_STRING, null, null);
00321     insertMetadataInContainer(metaData,
00322         MetadataDescription.GET_NUMERIC_FUNCTIONS, null, null);
00323     insertMetadataInContainer(metaData, MetadataDescription.GET_PROCEDURE_TERM,
00324         null, null);
00325     insertMetadataInContainer(metaData, MetadataDescription.GET_SCHEMA_TERM,
00326         null, null);
00327     insertMetadataInContainer(metaData,
00328         MetadataDescription.GET_SEARCH_STRING_ESCAPE, null, null);
00329     insertMetadataInContainer(metaData, MetadataDescription.GET_SQL_KEYWORDS,
00330         null, null);
00331     insertMetadataInContainer(metaData,
00332         MetadataDescription.GET_STRING_FUNCTIONS, null, null);
00333     insertMetadataInContainer(metaData,
00334         MetadataDescription.GET_SYSTEM_FUNCTIONS, null, null);
00335     insertMetadataInContainer(metaData,
00336         MetadataDescription.GET_TIME_DATE_FUNCTIONS, null, null);
00337     insertMetadataInContainer(metaData,
00338         MetadataDescription.INSERTS_ARE_DETECTED, new Class[]{Integer.TYPE},
00339         new Object[]{new Integer(ResultSet.TYPE_FORWARD_ONLY)});
00340     insertMetadataInContainer(metaData,
00341         MetadataDescription.INSERTS_ARE_DETECTED, new Class[]{Integer.TYPE},
00342         new Object[]{new Integer(ResultSet.TYPE_SCROLL_INSENSITIVE)});
00343     insertMetadataInContainer(metaData,
00344         MetadataDescription.INSERTS_ARE_DETECTED, new Class[]{Integer.TYPE},
00345         new Object[]{new Integer(ResultSet.TYPE_SCROLL_SENSITIVE)});
00346     insertMetadataInContainer(metaData,
00347         MetadataDescription.LOCATORS_UPDATE_COPY, null, null);
00348     insertMetadataInContainer(metaData,
00349         MetadataDescription.NULL_PLUS_NON_NULL_IS_NULL, null, null);
00350     insertMetadataInContainer(metaData,
00351         MetadataDescription.NULLS_ARE_SORTED_AT_END, null, null);
00352     insertMetadataInContainer(metaData,
00353         MetadataDescription.NULLS_ARE_SORTED_AT_START, null, null);
00354     insertMetadataInContainer(metaData,
00355         MetadataDescription.NULLS_ARE_SORTED_HIGH, null, null);
00356     insertMetadataInContainer(metaData,
00357         MetadataDescription.NULLS_ARE_SORTED_LOW, null, null);
00358     insertMetadataInContainer(metaData,
00359         MetadataDescription.OTHERS_DELETES_ARE_VISIBLE,
00360         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00361             ResultSet.TYPE_FORWARD_ONLY)});
00362     insertMetadataInContainer(metaData,
00363         MetadataDescription.OTHERS_DELETES_ARE_VISIBLE,
00364         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00365             ResultSet.TYPE_SCROLL_INSENSITIVE)});
00366     insertMetadataInContainer(metaData,
00367         MetadataDescription.OTHERS_DELETES_ARE_VISIBLE,
00368         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00369             ResultSet.TYPE_SCROLL_SENSITIVE)});
00370     insertMetadataInContainer(metaData,
00371         MetadataDescription.OTHERS_INSERTS_ARE_VISIBLE,
00372         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00373             ResultSet.TYPE_FORWARD_ONLY)});
00374     insertMetadataInContainer(metaData,
00375         MetadataDescription.OTHERS_INSERTS_ARE_VISIBLE,
00376         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00377             ResultSet.TYPE_SCROLL_INSENSITIVE)});
00378     insertMetadataInContainer(metaData,
00379         MetadataDescription.OTHERS_INSERTS_ARE_VISIBLE,
00380         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00381             ResultSet.TYPE_SCROLL_SENSITIVE)});
00382     insertMetadataInContainer(metaData,
00383         MetadataDescription.OTHERS_UPDATES_ARE_VISIBLE,
00384         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00385             ResultSet.TYPE_FORWARD_ONLY)});
00386     insertMetadataInContainer(metaData,
00387         MetadataDescription.OTHERS_UPDATES_ARE_VISIBLE,
00388         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00389             ResultSet.TYPE_SCROLL_INSENSITIVE)});
00390     insertMetadataInContainer(metaData,
00391         MetadataDescription.OTHERS_UPDATES_ARE_VISIBLE,
00392         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00393             ResultSet.TYPE_SCROLL_SENSITIVE)});
00394     insertMetadataInContainer(metaData,
00395         MetadataDescription.OWN_DELETES_ARE_VISIBLE, new Class[]{Integer.TYPE},
00396         new Object[]{new Integer(ResultSet.TYPE_FORWARD_ONLY)});
00397     insertMetadataInContainer(metaData,
00398         MetadataDescription.OWN_DELETES_ARE_VISIBLE, new Class[]{Integer.TYPE},
00399         new Object[]{new Integer(ResultSet.TYPE_SCROLL_INSENSITIVE)});
00400     insertMetadataInContainer(metaData,
00401         MetadataDescription.OWN_DELETES_ARE_VISIBLE, new Class[]{Integer.TYPE},
00402         new Object[]{new Integer(ResultSet.TYPE_SCROLL_SENSITIVE)});
00403     insertMetadataInContainer(metaData,
00404         MetadataDescription.OWN_INSERTS_ARE_VISIBLE, new Class[]{Integer.TYPE},
00405         new Object[]{new Integer(ResultSet.TYPE_FORWARD_ONLY)});
00406     insertMetadataInContainer(metaData,
00407         MetadataDescription.OWN_INSERTS_ARE_VISIBLE, new Class[]{Integer.TYPE},
00408         new Object[]{new Integer(ResultSet.TYPE_SCROLL_INSENSITIVE)});
00409     insertMetadataInContainer(metaData,
00410         MetadataDescription.OWN_INSERTS_ARE_VISIBLE, new Class[]{Integer.TYPE},
00411         new Object[]{new Integer(ResultSet.TYPE_SCROLL_SENSITIVE)});
00412     insertMetadataInContainer(metaData,
00413         MetadataDescription.OWN_UPDATES_ARE_VISIBLE, new Class[]{Integer.TYPE},
00414         new Object[]{new Integer(ResultSet.TYPE_FORWARD_ONLY)});
00415     insertMetadataInContainer(metaData,
00416         MetadataDescription.OWN_UPDATES_ARE_VISIBLE, new Class[]{Integer.TYPE},
00417         new Object[]{new Integer(ResultSet.TYPE_SCROLL_INSENSITIVE)});
00418     insertMetadataInContainer(metaData,
00419         MetadataDescription.OWN_UPDATES_ARE_VISIBLE, new Class[]{Integer.TYPE},
00420         new Object[]{new Integer(ResultSet.TYPE_SCROLL_SENSITIVE)});
00421     insertMetadataInContainer(metaData,
00422         MetadataDescription.STORES_LOWER_CASE_IDENTIFIERS, null, null);
00423     insertMetadataInContainer(metaData,
00424         MetadataDescription.STORES_LOWER_CASE_QUOTED_IDENTIFIERS, null, null);
00425     insertMetadataInContainer(metaData,
00426         MetadataDescription.STORES_MIXED_CASE_IDENTIFIERS, null, null);
00427     insertMetadataInContainer(metaData,
00428         MetadataDescription.STORES_MIXED_CASE_QUOTED_IDENTIFIERS, null, null);
00429     insertMetadataInContainer(metaData,
00430         MetadataDescription.STORES_UPPER_CASE_IDENTIFIERS, null, null);
00431     insertMetadataInContainer(metaData,
00432         MetadataDescription.STORES_UPPER_CASE_QUOTED_IDENTIFIERS, null, null);
00433     insertMetadataInContainer(metaData,
00434         MetadataDescription.SUPPORTS_ALTER_TABLE_WITH_ADD_COLUMN, null, null);
00435     insertMetadataInContainer(metaData,
00436         MetadataDescription.SUPPORTS_ALTER_TABLE_WITH_DROP_COLUMN, null, null);
00437     insertMetadataInContainer(metaData,
00438         MetadataDescription.SUPPORTS_ANSI92_ENTRY_LEVEL_SQL, null, null);
00439     insertMetadataInContainer(metaData,
00440         MetadataDescription.SUPPORTS_ANSI92_FULL_SQL, null, null);
00441     insertMetadataInContainer(metaData,
00442         MetadataDescription.SUPPORTS_ANSI92_INTERMEDIATE_SQL, null, null);
00443     insertMetadataInContainer(metaData,
00444         MetadataDescription.SUPPORTS_BATCH_UPDATES, null, null);
00445     insertMetadataInContainer(metaData,
00446         MetadataDescription.SUPPORTS_CATALOGS_IN_DATA_MANIPULATION, null, null);
00447     insertMetadataInContainer(metaData,
00448         MetadataDescription.SUPPORTS_CATALOGS_IN_INDEX_DEFINITIONS, null, null);
00449     insertMetadataInContainer(metaData,
00450         MetadataDescription.SUPPORTS_CATALOGS_IN_PRIVILEGE_DEFINITIONS, null,
00451         null);
00452     insertMetadataInContainer(metaData,
00453         MetadataDescription.SUPPORTS_CATALOGS_IN_PROCEDURE_CALLS, null, null);
00454     insertMetadataInContainer(metaData,
00455         MetadataDescription.SUPPORTS_CATALOGS_IN_TABLE_DEFINITIONS, null, null);
00456     insertMetadataInContainer(metaData,
00457         MetadataDescription.SUPPORTS_COLUMN_ALIASING, null, null);
00458     insertMetadataInContainer(metaData, MetadataDescription.SUPPORTS_CONVERT,
00459         null, null);
00460     insertMetadataInContainer(metaData,
00461         MetadataDescription.SUPPORTS_CORE_SQL_GRAMMAR, null, null);
00462     insertMetadataInContainer(metaData,
00463         MetadataDescription.SUPPORTS_CORRELATED_SUBQUERIES, null, null);
00464     insertMetadataInContainer(
00465         metaData,
00466         MetadataDescription.SUPPORTS_DATA_DEFINITION_AND_DATA_MANIPULATION_TRANSACTIONS,
00467         null, null);
00468     insertMetadataInContainer(metaData,
00469         MetadataDescription.SUPPORTS_DATA_MANIPULATION_TRANSACTIONS_ONLY, null,
00470         null);
00471     insertMetadataInContainer(metaData,
00472         MetadataDescription.SUPPORTS_DIFFERENT_TABLE_CORRELATION_NAMES, null,
00473         null);
00474     insertMetadataInContainer(metaData,
00475         MetadataDescription.SUPPORTS_EXPRESSIONS_IN_ORDER_BY, null, null);
00476     insertMetadataInContainer(metaData,
00477         MetadataDescription.SUPPORTS_EXTENDED_SQL_GRAMMAR, null, null);
00478     insertMetadataInContainer(metaData,
00479         MetadataDescription.SUPPORTS_FULL_OUTER_JOINS, null, null);
00480     insertMetadataInContainer(metaData,
00481         MetadataDescription.SUPPORTS_GET_GENERATED_KEYS, null, null);
00482     insertMetadataInContainer(metaData, MetadataDescription.SUPPORTS_GROUP_BY,
00483         null, null);
00484     insertMetadataInContainer(metaData,
00485         MetadataDescription.SUPPORTS_GROUP_BY_BEYOND_SELECT, null, null);
00486     insertMetadataInContainer(metaData,
00487         MetadataDescription.SUPPORTS_GROUP_BY_UNRELATED, null, null);
00488     insertMetadataInContainer(metaData,
00489         MetadataDescription.SUPPORTS_INTEGRITY_ENHANCEMENT_FACILITY, null, null);
00490     insertMetadataInContainer(metaData,
00491         MetadataDescription.SUPPORTS_LIKE_ESCAPE_CLAUSE, null, null);
00492     insertMetadataInContainer(metaData,
00493         MetadataDescription.SUPPORTS_LIMITED_OUTER_JOINS, null, null);
00494     insertMetadataInContainer(metaData,
00495         MetadataDescription.SUPPORTS_MINIMUM_SQL_GRAMMAR, null, null);
00496     insertMetadataInContainer(metaData,
00497         MetadataDescription.SUPPORTS_MIXED_CASE_IDENTIFIERS, null, null);
00498     insertMetadataInContainer(metaData,
00499         MetadataDescription.SUPPORTS_MIXED_CASE_QUOTED_IDENTIFIERS, null, null);
00500     insertMetadataInContainer(metaData,
00501         MetadataDescription.SUPPORTS_MULTIPLE_OPEN_RESULTS, null, null);
00502     insertMetadataInContainer(metaData,
00503         MetadataDescription.SUPPORTS_MULTIPLE_RESULTSETS, null, null);
00504     insertMetadataInContainer(metaData,
00505         MetadataDescription.SUPPORTS_MULTIPLE_TRANSACTIONS, null, null);
00506     insertMetadataInContainer(metaData,
00507         MetadataDescription.SUPPORTS_NAMED_PARAMETERS, null, null);
00508     insertMetadataInContainer(metaData,
00509         MetadataDescription.SUPPORTS_NON_NULLABLE_COLUMNS, null, null);
00510     insertMetadataInContainer(metaData,
00511         MetadataDescription.SUPPORTS_OPEN_CURSORS_ACROSS_COMMIT, null, null);
00512     insertMetadataInContainer(metaData,
00513         MetadataDescription.SUPPORTS_OPEN_CURSORS_ACROSS_ROLLBACK, null, null);
00514     insertMetadataInContainer(metaData,
00515         MetadataDescription.SUPPORTS_OPEN_STATEMENTS_ACROSS_COMMIT, null, null);
00516     insertMetadataInContainer(metaData,
00517         MetadataDescription.SUPPORTS_OPEN_STATEMENTS_ACROSS_ROLLBACK, null,
00518         null);
00519     insertMetadataInContainer(metaData,
00520         MetadataDescription.SUPPORTS_ORDER_BY_UNRELATED, null, null);
00521     insertMetadataInContainer(metaData,
00522         MetadataDescription.SUPPORTS_OUTER_JOINS, null, null);
00523     insertMetadataInContainer(metaData,
00524         MetadataDescription.SUPPORTS_POSITIONED_DELETE, null, null);
00525     insertMetadataInContainer(metaData,
00526         MetadataDescription.SUPPORTS_POSITIONED_UPDATE, null, null);
00527     insertMetadataInContainer(metaData,
00528         MetadataDescription.SUPPORTS_RESULT_SET_CONCURRENCY,
00529         new Class[]{Integer.TYPE, Integer.TYPE},
00530         new Object[]{new Integer(ResultSet.TYPE_FORWARD_ONLY),
00531             new Integer(ResultSet.CONCUR_READ_ONLY)});
00532     insertMetadataInContainer(metaData,
00533         MetadataDescription.SUPPORTS_RESULT_SET_CONCURRENCY,
00534         new Class[]{Integer.TYPE, Integer.TYPE},
00535         new Object[]{new Integer(ResultSet.TYPE_FORWARD_ONLY),
00536             new Integer(ResultSet.CONCUR_UPDATABLE)});
00537     insertMetadataInContainer(metaData,
00538         MetadataDescription.SUPPORTS_RESULT_SET_CONCURRENCY,
00539         new Class[]{Integer.TYPE, Integer.TYPE},
00540         new Object[]{new Integer(ResultSet.TYPE_SCROLL_INSENSITIVE),
00541             new Integer(ResultSet.CONCUR_READ_ONLY)});
00542     insertMetadataInContainer(metaData,
00543         MetadataDescription.SUPPORTS_RESULT_SET_CONCURRENCY,
00544         new Class[]{Integer.TYPE, Integer.TYPE},
00545         new Object[]{new Integer(ResultSet.TYPE_SCROLL_INSENSITIVE),
00546             new Integer(ResultSet.CONCUR_UPDATABLE)});
00547     insertMetadataInContainer(metaData,
00548         MetadataDescription.SUPPORTS_RESULT_SET_CONCURRENCY,
00549         new Class[]{Integer.TYPE, Integer.TYPE},
00550         new Object[]{new Integer(ResultSet.TYPE_SCROLL_SENSITIVE),
00551             new Integer(ResultSet.CONCUR_READ_ONLY)});
00552     insertMetadataInContainer(metaData,
00553         MetadataDescription.SUPPORTS_RESULT_SET_CONCURRENCY,
00554         new Class[]{Integer.TYPE, Integer.TYPE},
00555         new Object[]{new Integer(ResultSet.TYPE_SCROLL_SENSITIVE),
00556             new Integer(ResultSet.CONCUR_UPDATABLE)});
00557     insertMetadataInContainer(metaData,
00558         MetadataDescription.SUPPORTS_RESULT_SET_HOLDABILITY,
00559         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00560             ResultSet.HOLD_CURSORS_OVER_COMMIT)});
00561     insertMetadataInContainer(metaData,
00562         MetadataDescription.SUPPORTS_RESULT_SET_HOLDABILITY,
00563         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00564             ResultSet.CLOSE_CURSORS_AT_COMMIT)});
00565     insertMetadataInContainer(metaData,
00566         MetadataDescription.SUPPORTS_RESULT_SET_TYPE,
00567         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00568             ResultSet.TYPE_FORWARD_ONLY)});
00569     insertMetadataInContainer(metaData,
00570         MetadataDescription.SUPPORTS_RESULT_SET_TYPE,
00571         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00572             ResultSet.TYPE_SCROLL_INSENSITIVE)});
00573     insertMetadataInContainer(metaData,
00574         MetadataDescription.SUPPORTS_RESULT_SET_TYPE,
00575         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00576             ResultSet.TYPE_SCROLL_SENSITIVE)});
00577     insertMetadataInContainer(metaData,
00578         MetadataDescription.SUPPORTS_SAVEPOINTS, null, null);
00579     insertMetadataInContainer(metaData,
00580         MetadataDescription.SUPPORTS_SCHEMAS_IN_DATA_MANIPULATION, null, null);
00581     insertMetadataInContainer(metaData,
00582         MetadataDescription.SUPPORTS_SCHEMAS_IN_INDEX_DEFINITIONS, null, null);
00583     insertMetadataInContainer(metaData,
00584         MetadataDescription.SUPPORTS_SCHEMAS_IN_PRIVILEGE_DEFINITIONS, null,
00585         null);
00586     insertMetadataInContainer(metaData,
00587         MetadataDescription.SUPPORTS_SCHEMAS_IN_PROCEDURE_CALLS, null, null);
00588     insertMetadataInContainer(metaData,
00589         MetadataDescription.SUPPORTS_SCHEMAS_IN_TABLE_DEFINITIONS, null, null);
00590     insertMetadataInContainer(metaData,
00591         MetadataDescription.SUPPORTS_SELECT_FOR_UPDATE, null, null);
00592     insertMetadataInContainer(metaData,
00593         MetadataDescription.SUPPORTS_STATEMENT_POOLING, null, null);
00594     insertMetadataInContainer(metaData,
00595         MetadataDescription.SUPPORTS_STORED_PROCEDURES, null, null);
00596     insertMetadataInContainer(metaData,
00597         MetadataDescription.SUPPORTS_SUB_QUERIES_IN_COMPARISONS, null, null);
00598     insertMetadataInContainer(metaData,
00599         MetadataDescription.SUPPORTS_SUB_QUERIES_IN_EXISTS, null, null);
00600     insertMetadataInContainer(metaData,
00601         MetadataDescription.SUPPORTS_SUB_QUERIES_IN_INS, null, null);
00602     insertMetadataInContainer(metaData,
00603         MetadataDescription.SUPPORTS_SUB_QUERIES_IN_QUANTIFIEDS, null, null);
00604     insertMetadataInContainer(metaData,
00605         MetadataDescription.SUPPORTS_TABLE_CORRELATION_NAMES, null, null);
00606     insertMetadataInContainer(metaData,
00607         MetadataDescription.SUPPORTS_TRANSACTION_ISOLATION_LEVEL,
00608         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00609             Connection.TRANSACTION_NONE)});
00610     insertMetadataInContainer(metaData,
00611         MetadataDescription.SUPPORTS_TRANSACTION_ISOLATION_LEVEL,
00612         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00613             Connection.TRANSACTION_READ_COMMITTED)});
00614     insertMetadataInContainer(metaData,
00615         MetadataDescription.SUPPORTS_TRANSACTION_ISOLATION_LEVEL,
00616         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00617             Connection.TRANSACTION_READ_UNCOMMITTED)});
00618     insertMetadataInContainer(metaData,
00619         MetadataDescription.SUPPORTS_TRANSACTION_ISOLATION_LEVEL,
00620         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00621             Connection.TRANSACTION_REPEATABLE_READ)});
00622     insertMetadataInContainer(metaData,
00623         MetadataDescription.SUPPORTS_TRANSACTION_ISOLATION_LEVEL,
00624         new Class[]{Integer.TYPE}, new Object[]{new Integer(
00625             Connection.TRANSACTION_SERIALIZABLE)});
00626     insertMetadataInContainer(metaData,
00627         MetadataDescription.SUPPORTS_TRANSACTIONS, null, null);
00628     insertMetadataInContainer(metaData, MetadataDescription.SUPPORTS_UNION,
00629         null, null);
00630     insertMetadataInContainer(metaData, MetadataDescription.SUPPORTS_UNION_ALL,
00631         null, null);
00632     insertMetadataInContainer(metaData,
00633         MetadataDescription.UPDATES_ARE_DETECTED, new Class[]{Integer.TYPE},
00634         new Object[]{new Integer(ResultSet.TYPE_FORWARD_ONLY)});
00635     insertMetadataInContainer(metaData,
00636         MetadataDescription.UPDATES_ARE_DETECTED, new Class[]{Integer.TYPE},
00637         new Object[]{new Integer(ResultSet.TYPE_SCROLL_INSENSITIVE)});
00638     insertMetadataInContainer(metaData,
00639         MetadataDescription.UPDATES_ARE_DETECTED, new Class[]{Integer.TYPE},
00640         new Object[]{new Integer(ResultSet.TYPE_SCROLL_SENSITIVE)});
00641     insertMetadataInContainer(metaData,
00642         MetadataDescription.USES_LOCAL_FILE_PER_TABLE, null, null);
00643     insertMetadataInContainer(metaData, MetadataDescription.USES_LOCAL_FILES,
00644         null, null);
00645     insertMetadataInContainer(metaData,
00646         MetadataDescription.IS_CATALOG_AT_START, null, null);
00647 
00648     overrideCJDBCSpecificFeatures();
00649 
00650     return metadataContainer;
00651   }


The documentation for this class was generated from the following file:
Generated on Mon Apr 11 22:03:26 2005 for C-JDBC by  doxygen 1.3.9.1