## 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.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
`JDBC4DatabaseMetaData(MySQLConnection connToSet, java.lang.String databaseToSet)`

Method Summary
`boolean` `autoCommitFailureClosesAllResultSets()`
`java.sql.ResultSet` `getClientInfoProperties()` Retrieves a list of the client info properties that the driver supports.
`java.sql.ResultSet` `getFunctions(java.lang.String catalog, java.lang.String schemaPattern, java.lang.String functionNamePattern)` Retrieves a description of the system and user functions available in the given catalog.
`protected int` `getJDBC4FunctionNoTableConstant()`
`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, createFkMetadataFields, createFunctionColumnsFields, createIndexInfoFields, createProcedureColumnsFields, dataDefinitionCausesTransactionCommit, dataDefinitionIgnoredInTransactions, deletesAreDetected, doesMaxRowSizeIncludeBlobs, extractForeignKeyForTable, extractForeignKeyFromCreateTable, generatedKeyAlwaysReturned, getAttributes, getBestRowIdentifier, getCallStmtParameterTypes, getCatalogIterator, getCatalogs, getCatalogSeparator, getCatalogTerm, getColumnPrivileges, getColumns, getConnection, getCrossReference, getDatabaseMajorVersion, getDatabaseMinorVersion, getDatabaseProductName, getDatabaseProductVersion, getDefaultTransactionIsolation, getDriverMajorVersion, getDriverMinorVersion, getDriverName, getDriverVersion, getExceptionInterceptor, getExportedKeys, getExportKeyResults, getExtraNameCharacters, getForeignKeyActions, getFunctionColumns, 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, getProcedureColumns, getProcedureOrFunctionColumns, getProcedures, 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, removeQuotedId, 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, unQuoteQuotedIdentifier, 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

### getClientInfoProperties

    public java.sql.ResultSet getClientInfoProperties()
                                               throws java.sql.SQLException

  Retrieves a list of the client info properties that the driver supports. The result set contains the following columns

  1. NAME String=> The name of the client info property
  2. MAX_LEN int=> The maximum length of the value for the property
  3. DEFAULT_VALUE String=> The default value of the property
  4. DESCRIPTION String=> A description of the property. This will typically contain information as to where this property is stored in the database.

  The `ResultSet` is sorted by the NAME column

  Returns:
    A `ResultSet` object; each row is a supported client info property

  Throws:
    `java.sql.SQLException` - if a database access error occurs

  Since:
    1.6

### autoCommitFailureClosesAllResultSets

    public boolean autoCommitFailureClosesAllResultSets()
                                                 throws java.sql.SQLException

  Throws:
    `java.sql.SQLException`

### getFunctions

    public java.sql.ResultSet getFunctions(java.lang.String catalog,
                                           java.lang.String schemaPattern,
                                           java.lang.String functionNamePattern)
                                    throws java.sql.SQLException

  Retrieves a description of the system and user functions available in the given catalog.

  Only system and user function descriptions matching the schema and function name criteria are returned. They are ordered by `FUNCTION_CAT`, `FUNCTION_SCHEM`, `FUNCTION_NAME` and `SPECIFIC_ NAME`.

  Each function description has the the following columns:

  1. FUNCTION_CAT String => function catalog (may be `null`)
  2. FUNCTION_SCHEM String => function schema (may be `null`)
  3. FUNCTION_NAME String => function name. This is the name used to invoke the function
  4. REMARKS String => explanatory comment on the function
  5. FUNCTION_TYPE short => kind of function:
     - functionResultUnknown - Cannot determine if a return value or table will be returned
     - functionNoTable- Does not return a table
     - functionReturnsTable - Returns a table
  6. SPECIFIC_NAME String => the name which uniquely identifies this function within its schema. This is a user specified, or DBMS generated, name that may be different then the `FUNCTION_NAME` for example with overload functions

  A user may not have permission to execute any of the functions that are returned by `getFunctions`

  Parameters:
    `catalog` - a catalog name; must match the catalog name as it is stored in the database; "" retrieves those without a catalog; `null` means that the catalog name should not be used to narrow the search
    `schemaPattern` - a schema name pattern; must match the schema name as it is stored in the database; "" retrieves those without a schema; `null` means that the schema name should not be used to narrow the search
    `functionNamePattern` - a function name pattern; must match the function name as it is stored in the database
  Returns:
    `ResultSet` - each row is a function description
  Throws:
    `java.sql.SQLException` - if a database access error occurs
  Since:
    1.6
  See Also:
    `DatabaseMetaData.getSearchStringEscape()`

### getJDBC4FunctionNoTableConstant

    protected int getJDBC4FunctionNoTableConstant()

  Overrides:
    `getJDBC4FunctionNoTableConstant` in class `DatabaseMetaData`