com.mysql.jdbc

## Class JDBC4DatabaseMetaData

- java.lang.Object
- - com.mysql.jdbc.DatabaseMetaData
  - - com.mysql.jdbc.JDBC4DatabaseMetaData

All Implemented Interfaces:
  java.sql.DatabaseMetaData, java.sql.Wrapper

    public class JDBC4DatabaseMetaData
    extends DatabaseMetaData

### Nested Class Summary

### Nested classes/interfaces inherited from class com.mysql.jdbc.DatabaseMetaData

`DatabaseMetaData.IndexInfoKeyComparable, DatabaseMetaData.IteratorWithCleanup<T>, DatabaseMetaData.LocalAndReferencedColumns, DatabaseMetaData.ResultSetIterator, DatabaseMetaData.SingleStringIterator, DatabaseMetaData.TypeDescriptor`

### Field Summary

### Fields inherited from class com.mysql.jdbc.DatabaseMetaData

`conn, database, MAX_IDENTIFIER_LENGTH, quotedId, SYSTEM_TABLE_AS_BYTES, TABLE_AS_BYTES, VIEW_AS_BYTES`

### Fields inherited from interface java.sql.DatabaseMetaData

`attributeNoNulls, attributeNullable, attributeNullableUnknown, bestRowNotPseudo, bestRowPseudo, bestRowSession, bestRowTemporary, bestRowTransaction, bestRowUnknown, columnNoNulls, columnNullable, columnNullableUnknown, functionColumnIn, functionColumnInOut, functionColumnOut, functionColumnResult, functionColumnUnknown, functionNoNulls, functionNoTable, functionNullable, functionNullableUnknown, functionResultUnknown, functionReturn, functionReturnsTable, importedKeyCascade, importedKeyInitiallyDeferred, importedKeyInitiallyImmediate, importedKeyNoAction, importedKeyNotDeferrable, importedKeyRestrict, importedKeySetDefault, importedKeySetNull, procedureColumnIn, procedureColumnInOut, procedureColumnOut, procedureColumnResult, procedureColumnReturn, procedureColumnUnknown, procedureNoNulls, procedureNoResult, procedureNullable, procedureNullableUnknown, procedureResultUnknown, procedureReturnsResult, sqlStateSQL, sqlStateSQL99, sqlStateXOpen, tableIndexClustered, tableIndexHashed, tableIndexOther, tableIndexStatistic, typeNoNulls, typeNullable, typeNullableUnknown, typePredBasic, typePredChar, typePredNone, typeSearchable, versionColumnNotPseudo, versionColumnPseudo, versionColumnUnknown`

### Constructor Summary

Constructors
Constructor and Description
`JDBC4DatabaseMetaData(MySQLConnection connToSet, java.lang.String databaseToSet)`

### Method Summary

Methods
`boolean` `autoCommitFailureClosesAllResultSets()`
`protected int` `getColumnType(boolean isOutParam, boolean isInParam, boolean isReturnParam, boolean forGetFunctionColumns)` This method overrides DatabaseMetaData#getColumnType(boolean, boolean, boolean, boolean).
`protected int` `getJDBC4FunctionNoTableConstant()` Overrides DatabaseMetaData#getJDBC4FunctionNoTableConstant.
`java.sql.ResultSet` `getProcedureColumns(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String procedureNamePattern, java.lang.String columnNamePattern)` Changes in behavior introduced in JDBC4 when #getFunctionColumns became available.
`protected static int` `getProcedureOrFunctionColumnType(boolean isOutParam, boolean isInParam, boolean isReturnParam, boolean forGetFunctionColumns)` Determines the COLUMN_TYPE information based on parameter type (IN, OUT or INOUT) or function return parameter.
`java.sql.ResultSet` `getProcedures(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String procedureNamePattern)` Changes in behavior introduced in JDBC4 when #getFunctions became available.
`java.sql.RowIdLifetime` `getRowIdLifetime()`
`boolean` `isWrapperFor(java.lang.Class<?> iface)` Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does.
`<T> T` `unwrap(java.lang.Class<T> iface)` Returns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy.

### Methods inherited from class com.mysql.jdbc.DatabaseMetaData

`allProceduresAreCallable, allTablesAreSelectable, buildResultSet, convertToJdbcFunctionList, convertToJdbcProcedureList, createColumnsFields, createFieldMetadataForGetProcedures, createFkMetadataFields, createFunctionColumnsFields, createIndexInfoFields, createProcedureColumnsFields, createTablesFields, dataDefinitionCausesTransactionCommit, dataDefinitionIgnoredInTransactions, deletesAreDetected, doesMaxRowSizeIncludeBlobs, extractForeignKeyForTable, extractForeignKeyFromCreateTable, generatedKeyAlwaysReturned, getAttributes, getBestRowIdentifier, getCallStmtParameterTypes, getCatalogIterator, getCatalogs, getCatalogSeparator, getCatalogTerm, getClientInfoProperties, getColumnPrivileges, getColumns, getConnection, getCrossReference, getDatabaseMajorVersion, getDatabaseMinorVersion, getDatabaseProductName, getDatabaseProductVersion, getDefaultTransactionIsolation, getDriverMajorVersion, getDriverMinorVersion, getDriverName, getDriverVersion, getExceptionInterceptor, getExportedKeys, getExportKeyResults, getExtraNameCharacters, getForeignKeyActions, getFunctionColumns, getFunctions, getIdentifierQuoteString, getImportedKeys, getImportKeyResults, getIndexInfo, getInstance, getJDBCMajorVersion, getJDBCMinorVersion, getMaxBinaryLiteralLength, getMaxCatalogNameLength, getMaxCharLiteralLength, getMaxColumnNameLength, getMaxColumnsInGroupBy, getMaxColumnsInIndex, getMaxColumnsInOrderBy, getMaxColumnsInSelect, getMaxColumnsInTable, getMaxConnections, getMaxCursorNameLength, getMaxIndexLength, getMaxProcedureNameLength, getMaxRowSize, getMaxSchemaNameLength, getMaxStatementLength, getMaxStatements, getMaxTableNameLength, getMaxTablesInSelect, getMaxUserNameLength, getNumericFunctions, getPrimaryKeys, getProcedureOrFunctionColumns, getProceduresAndOrFunctions, getProcedureTerm, getPseudoColumns, getResultSetHoldability, getSchemas, getSchemas, getSchemaTerm, getSearchStringEscape, getSQLKeywords, getSQLStateType, getStringFunctions, getSuperTables, getSuperTypes, getSystemFunctions, getTableNameWithCase, getTablePrivileges, getTables, getTableTypes, getTimeDateFunctions, getTypeInfo, getUDTs, getURL, getUserName, getVersionColumns, insertsAreDetected, isCatalogAtStart, isReadOnly, locatorsUpdateCopy, nullPlusNonNullIsNull, nullsAreSortedAtEnd, nullsAreSortedAtStart, nullsAreSortedHigh, nullsAreSortedLow, othersDeletesAreVisible, othersInsertsAreVisible, othersUpdatesAreVisible, ownDeletesAreVisible, ownInsertsAreVisible, ownUpdatesAreVisible, parseTableStatusIntoLocalAndReferencedColumns, prepareMetaDataSafeStatement, providesQueryObjectGenerator, s2b, storesLowerCaseIdentifiers, storesLowerCaseQuotedIdentifiers, storesMixedCaseIdentifiers, storesMixedCaseQuotedIdentifiers, storesUpperCaseIdentifiers, storesUpperCaseQuotedIdentifiers, supportsAlterTableWithAddColumn, supportsAlterTableWithDropColumn, supportsANSI92EntryLevelSQL, supportsANSI92FullSQL, supportsANSI92IntermediateSQL, supportsBatchUpdates, supportsCatalogsInDataManipulation, supportsCatalogsInIndexDefinitions, supportsCatalogsInPrivilegeDefinitions, supportsCatalogsInProcedureCalls, supportsCatalogsInTableDefinitions, supportsColumnAliasing, supportsConvert, supportsConvert, supportsCoreSQLGrammar, supportsCorrelatedSubqueries, supportsDataDefinitionAndDataManipulationTransactions, supportsDataManipulationTransactionsOnly, supportsDifferentTableCorrelationNames, supportsExpressionsInOrderBy, supportsExtendedSQLGrammar, supportsFullOuterJoins, supportsGetGeneratedKeys, supportsGroupBy, supportsGroupByBeyondSelect, supportsGroupByUnrelated, supportsIntegrityEnhancementFacility, supportsLikeEscapeClause, supportsLimitedOuterJoins, supportsMinimumSQLGrammar, supportsMixedCaseIdentifiers, supportsMixedCaseQuotedIdentifiers, supportsMultipleOpenResults, supportsMultipleResultSets, supportsMultipleTransactions, supportsNamedParameters, supportsNonNullableColumns, supportsOpenCursorsAcrossCommit, supportsOpenCursorsAcrossRollback, supportsOpenStatementsAcrossCommit, supportsOpenStatementsAcrossRollback, supportsOrderByUnrelated, supportsOuterJoins, supportsPositionedDelete, supportsPositionedUpdate, supportsResultSetConcurrency, supportsResultSetHoldability, supportsResultSetType, supportsSavepoints, supportsSchemasInDataManipulation, supportsSchemasInIndexDefinitions, supportsSchemasInPrivilegeDefinitions, supportsSchemasInProcedureCalls, supportsSchemasInTableDefinitions, supportsSelectForUpdate, supportsStatementPooling, supportsStoredFunctionsUsingCallSyntax, supportsStoredProcedures, supportsSubqueriesInComparisons, supportsSubqueriesInExists, supportsSubqueriesInIns, supportsSubqueriesInQuantifieds, supportsTableCorrelationNames, supportsTransactionIsolationLevel, supportsTransactions, supportsUnion, supportsUnionAll, updatesAreDetected, usesLocalFilePerTable, usesLocalFiles`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

### Constructor Detail

#### JDBC4DatabaseMetaData

    public JDBC4DatabaseMetaData(MySQLConnection connToSet,
                         java.lang.String databaseToSet)

### Method Detail

#### getRowIdLifetime

    public java.sql.RowIdLifetime getRowIdLifetime()
                                            throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### isWrapperFor

    public boolean isWrapperFor(java.lang.Class<?> iface)
                         throws java.sql.SQLException

Returns true if this either implements the interface argument or is directly or indirectly a wrapper for an object that does. Returns false otherwise. If this implements the interface then return true, else if this is a wrapper then return the result of recursively calling `isWrapperFor` on the wrapped object. If this does not implement the interface and is not a wrapper, return false. This method should be implemented as a low-cost operation compared to `unwrap` so that callers can use this method to avoid expensive `unwrap` calls that may fail. If this method returns true then calling `unwrap` with the same argument should succeed.

Parameters:
  `interfaces` - a Class defining an interface.
Returns:
  true if this implements the interface or directly or indirectly wraps an object that does.
Throws:
  `java.sql.SQLException` - if an error occurs while determining whether this is a wrapper for an object with the given interface.
Since:
  1.6

#### unwrap

    public <T> T unwrap(java.lang.Class<T> iface)
             throws java.sql.SQLException

Returns an object that implements the given interface to allow access to non-standard methods, or standard methods not exposed by the proxy. The result may be either the object found to implement the interface or a proxy for that object. If the receiver implements the interface then that is the object. If the receiver is a wrapper and the wrapped object implements the interface then that is the object. Otherwise the object is the result of calling `unwrap` recursively on the wrapped object. If the receiver is not a wrapper and does not implement the interface, then an `SQLException` is thrown.

Parameters:
  `iface` - A Class defining an interface that the result must implement.
Returns:
  an object that implements the interface. May be a proxy for the actual implementing object.
Throws:
  `java.sql.SQLException` - If no object found that implements the interface
Since:
  1.6

#### autoCommitFailureClosesAllResultSets

    public boolean autoCommitFailureClosesAllResultSets()
                                                 throws java.sql.SQLException

Throws:
  `java.sql.SQLException`

#### getProcedureColumns

    public java.sql.ResultSet getProcedureColumns(java.lang.String catalog,
                                         java.lang.String schemaPattern,
                                         java.lang.String procedureNamePattern,
                                         java.lang.String columnNamePattern)
                                           throws java.sql.SQLException

Changes in behavior introduced in JDBC4 when #getFunctionColumns became available. Overrides DatabaseMetaData#getProcedureColumns

Specified by:
  `getProcedureColumns` in interface `java.sql.DatabaseMetaData`
Overrides:
  `getProcedureColumns` in class `DatabaseMetaData`
Parameters:
  `catalog` - a catalog name; "" retrieves those without a catalog
  `schemaPattern` - a schema name pattern; "" retrieves those without a schema
  `procedureNamePattern` - a procedure name pattern
  `columnNamePattern` - a column name pattern
Returns:
  ResultSet each row is a stored procedure parameter or column description
Throws:
  `java.sql.SQLException` - if a database access error occurs
Since:
  1.6
See Also:
  `DatabaseMetaData.getProcedureColumns(java.lang.String, java.lang.String, java.lang.String, java.lang.String)`

#### getProcedures

    public java.sql.ResultSet getProcedures(java.lang.String catalog,
                                   java.lang.String schemaPattern,
                                   java.lang.String procedureNamePattern)
                                     throws java.sql.SQLException

Changes in behavior introduced in JDBC4 when #getFunctions became available. Overrides DatabaseMetaData#getProcedures.

Specified by:
  `getProcedures` in interface `java.sql.DatabaseMetaData`
Overrides:
  `getProcedures` in class `DatabaseMetaData`
Parameters:
  `catalog` - a catalog name; "" retrieves those without a catalog
  `schemaPattern` - a schema name pattern; "" retrieves those without a schema
  `procedureNamePattern` - a procedure name pattern
Returns:
  ResultSet each row is a procedure description
Throws:
  `java.sql.SQLException` - if a database access error occurs
Since:
  1.6
See Also:
  `DatabaseMetaData.getProcedures(java.lang.String, java.lang.String, java.lang.String)`

#### getJDBC4FunctionNoTableConstant

    protected int getJDBC4FunctionNoTableConstant()

Overrides DatabaseMetaData#getJDBC4FunctionNoTableConstant.

Overrides:
  `getJDBC4FunctionNoTableConstant` in class `DatabaseMetaData`
Returns:
  java.sql.DatabaseMetaData#functionNoTable

#### getColumnType

    protected int getColumnType(boolean isOutParam,
                    boolean isInParam,
                    boolean isReturnParam,
                    boolean forGetFunctionColumns)

This method overrides DatabaseMetaData#getColumnType(boolean, boolean, boolean, boolean).

Overrides:
  `getColumnType` in class `DatabaseMetaData`
Parameters:
  `isOutParam` - Indicates whether it's an output parameter.
  `isInParam` - Indicates whether it's an input parameter.
  `isReturnParam` - Indicates whether it's a function return parameter.
  `forGetFunctionColumns` - Indicates whether the column belong to a function. This argument is required for JDBC4, in which case this method must be overridden to provide the correct functionality.
Returns:
  The corresponding COLUMN_TYPE as in java.sql.getProcedureColumns API.
See Also:
  `getProcedureOrFunctionColumnType(boolean, boolean, boolean, boolean)`

#### getProcedureOrFunctionColumnType

    protected static int getProcedureOrFunctionColumnType(boolean isOutParam,
                                       boolean isInParam,
                                       boolean isReturnParam,
                                       boolean forGetFunctionColumns)

Determines the COLUMN_TYPE information based on parameter type (IN, OUT or INOUT) or function return parameter.

Parameters:
  `isOutParam` - Indicates whether it's an output parameter.
  `isInParam` - Indicates whether it's an input parameter.
  `isReturnParam` - Indicates whether it's a function return parameter.
  `forGetFunctionColumns` - Indicates whether the column belong to a function.
Returns:
  The corresponding COLUMN_TYPE as in java.sql.getProcedureColumns API.