Module org.firebirdsql.jaybird
Package org.firebirdsql.jdbc

# Interface FirebirdDatabaseMetaData

All Superinterfaces:
  `DatabaseMetaData`, `Wrapper`

All Known Implementing Classes:
  `FBDatabaseMetaData`

public interface FirebirdDatabaseMetaData extends DatabaseMetaData
Extension of `DatabaseMetaData` interface providing access to Firebird specific features.

Author:
  Michael Romankiewicz

- ## Field Summary

  ### 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`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `void`
  `close()`
  Closes any cached metadata statements held by this database metadata implementation.
  `int`
  `getConnectionDialect()`
  Get the dialect of the connection.
  `int`
  `getDatabaseDialect()`
  Get the dialect of the database.
  `int`
  `getMaxObjectNameLength()`
  The default maximum identifier length.
  `int`
  `getOdsMajorVersion()`
  Get the major version of the ODS (On-Disk Structure) of the database.
  `int`
  `getOdsMinorVersion()`
  Get the minor version of the ODS (On-Disk Structure) of the database.
  `String`
  `getProcedureSourceCode(String procedureName)`
  Get the source of a stored procedure.
  `String[]`
  `getTableTypeNames()`
  Supported table type names.
  `String`
  `getTriggerSourceCode(String triggerName)`
  Get the source of a trigger.
  `String`
  `getViewSourceCode(String viewName)`
  Get the source of a view.

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

  `allProceduresAreCallable, allTablesAreSelectable, autoCommitFailureClosesAllResultSets, dataDefinitionCausesTransactionCommit, dataDefinitionIgnoredInTransactions, deletesAreDetected, doesMaxRowSizeIncludeBlobs, generatedKeyAlwaysReturned, getAttributes, getBestRowIdentifier, getCatalogs, getCatalogSeparator, getCatalogTerm, getClientInfoProperties, getColumnPrivileges, getColumns, getConnection, getCrossReference, getDatabaseMajorVersion, getDatabaseMinorVersion, getDatabaseProductName, getDatabaseProductVersion, getDefaultTransactionIsolation, getDriverMajorVersion, getDriverMinorVersion, getDriverName, getDriverVersion, getExportedKeys, getExtraNameCharacters, getFunctionColumns, getFunctions, getIdentifierQuoteString, getImportedKeys, getIndexInfo, getJDBCMajorVersion, getJDBCMinorVersion, getMaxBinaryLiteralLength, getMaxCatalogNameLength, getMaxCharLiteralLength, getMaxColumnNameLength, getMaxColumnsInGroupBy, getMaxColumnsInIndex, getMaxColumnsInOrderBy, getMaxColumnsInSelect, getMaxColumnsInTable, getMaxConnections, getMaxCursorNameLength, getMaxIndexLength, getMaxLogicalLobSize, getMaxProcedureNameLength, getMaxRowSize, getMaxSchemaNameLength, getMaxStatementLength, getMaxStatements, getMaxTableNameLength, getMaxTablesInSelect, getMaxUserNameLength, getNumericFunctions, getPrimaryKeys, getProcedureColumns, getProcedures, getProcedureTerm, getPseudoColumns, getResultSetHoldability, getRowIdLifetime, getSchemas, getSchemas, getSchemaTerm, getSearchStringEscape, getSQLKeywords, getSQLStateType, getStringFunctions, getSuperTables, getSuperTypes, getSystemFunctions, getTablePrivileges, getTables, getTableTypes, getTimeDateFunctions, getTypeInfo, getUDTs, getURL, getUserName, getVersionColumns, insertsAreDetected, isCatalogAtStart, isReadOnly, locatorsUpdateCopy, nullPlusNonNullIsNull, nullsAreSortedAtEnd, nullsAreSortedAtStart, nullsAreSortedHigh, nullsAreSortedLow, othersDeletesAreVisible, othersInsertsAreVisible, othersUpdatesAreVisible, ownDeletesAreVisible, ownInsertsAreVisible, ownUpdatesAreVisible, 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, supportsRefCursors, supportsResultSetConcurrency, supportsResultSetHoldability, supportsResultSetType, supportsSavepoints, supportsSchemasInDataManipulation, supportsSchemasInIndexDefinitions, supportsSchemasInPrivilegeDefinitions, supportsSchemasInProcedureCalls, supportsSchemasInTableDefinitions, supportsSelectForUpdate, supportsSharding, supportsStatementPooling, supportsStoredFunctionsUsingCallSyntax, supportsStoredProcedures, supportsSubqueriesInComparisons, supportsSubqueriesInExists, supportsSubqueriesInIns, supportsSubqueriesInQuantifieds, supportsTableCorrelationNames, supportsTransactionIsolationLevel, supportsTransactions, supportsUnion, supportsUnionAll, updatesAreDetected, usesLocalFilePerTable, usesLocalFiles`

  ### Methods inherited from interface java.sql.Wrapper

  `isWrapperFor, unwrap`

- ## Method Details

  - ### getProcedureSourceCode

    String getProcedureSourceCode(String procedureName) throws SQLException
    Get the source of a stored procedure.
    Parameters:
      `procedureName` - name of the stored procedure.
    Returns:
      source of the stored procedure.
    Throws:
      `SQLException` - if specified procedure cannot be found.

  - ### getTriggerSourceCode

    String getTriggerSourceCode(String triggerName) throws SQLException
    Get the source of a trigger.
    Parameters:
      `triggerName` - name of the trigger.
    Returns:
      source of the trigger.
    Throws:
      `SQLException` - if specified trigger cannot be found.

  - ### getViewSourceCode

    String getViewSourceCode(String viewName) throws SQLException
    Get the source of a view.
    Parameters:
      `viewName` - name of the view.
    Returns:
      source of the view.
    Throws:
      `SQLException` - if specified view cannot be found.

  - ### getOdsMajorVersion

    int getOdsMajorVersion() throws SQLException
    Get the major version of the ODS (On-Disk Structure) of the database.
    Returns:
      The major version number of the database itself
    Throws:
      `SQLException` - if a database access error occurs

  - ### getOdsMinorVersion

    int getOdsMinorVersion() throws SQLException
    Get the minor version of the ODS (On-Disk Structure) of the database.
    Returns:
      The minor version number of the database itself
    Throws:
      `SQLException` - if a database access error occurs

  - ### getDatabaseDialect

    int getDatabaseDialect() throws SQLException
    Get the dialect of the database.
    Returns:
      The dialect of the database
    Throws:
      `SQLException` - if a database access error occurs
    See Also:
      - `getConnectionDialect()`

  - ### getConnectionDialect

    int getConnectionDialect() throws SQLException
    Get the dialect of the connection.

    The connection dialect may be different from the database dialect.

    Returns:
      The dialect of the connection
    Throws:
      `SQLException` - if a database access error occurs
    See Also:
      - `getDatabaseDialect()`

  - ### close

    void close()
    Closes any cached metadata statements held by this database metadata implementation.

    The database metadata object itself remains usable. Exceptions during statement close are logged and suppressed.

  - ### getTableTypeNames

    String[] getTableTypeNames() throws SQLException
    Supported table type names.
    Returns:
      An array with the supported table types names for `DatabaseMetaData.getTables(String, String, String, String[])`
    Throws:
      `SQLException` - For problems determining supported table types
    Since:
      4.0
    See Also:
      - `DatabaseMetaData.getTableTypes()`

  - ### getMaxObjectNameLength

    int getMaxObjectNameLength() throws SQLException
    The default maximum identifier length.

    NOTE: This method reports the standard maximum length, and does not take into account restrictions configured through `MaxIdentifierByteLength` or `MaxIdentifierCharLength`.

    Returns:
      the (default) maximum identifier length
    Throws:
      `SQLException`