- All Implemented Interfaces:
DatabaseMetaData,Wrapper,FirebirdDatabaseMetaData
This class is internal API of Jaybird. Future versions may radically change, move, or make inaccessible this type.
For the public API, refer to the DatabaseMetaData and FirebirdDatabaseMetaData interfaces.
- Author:
- David Jencks, Mark Rotteveel
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final Stringstatic final Stringstatic final Stringstatic final StringFields 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 -
Method Summary
Modifier and TypeMethodDescriptionbooleanbooleanbooleanvoidclose()Closes any cached metadata statements held by this database metadata implementation.booleanbooleanbooleandeletesAreDetected(int type) booleanprotected ResultSetExecute an SQL query with a given set of parameters.protected ResultSetExecute an SQL query with a given set of parameters.static StringescapeWildcards(String objectName) Escapes the like wildcards and escape (\_%in the provided search string with a\.booleangetAttributes(String catalog, String schemaPattern, String typeNamePattern, String attributeNamePattern) getBestRowIdentifier(String catalog, String schema, String table, int scope, boolean nullable) protected static byte[]getColumnPrivileges(String catalog, String schema, String table, String columnNamePattern) getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) intGet the dialect of the connection.getCrossReference(String primaryCatalog, String primarySchema, String primaryTable, String foreignCatalog, String foreignSchema, String foreignTable) intGet the dialect of the database.intintprotected DbMetadataMediatorintintintgetExportedKeys(String catalog, String schema, String table) getFunctionColumns(String catalog, String schemaPattern, String functionNamePattern, String columnNamePattern) getFunctions(String catalog, String schemaPattern, String functionNamePattern) getImportedKeys(String catalog, String schema, String table) getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate) intintintintintintintintintintintintintintintThe default maximum identifier length.intintintintintintintintintGet the major version of the ODS (On-Disk Structure) of the database.intGet the minor version of the ODS (On-Disk Structure) of the database.getPrimaryKeys(String catalog, String schema, String table) getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern) getProcedures(String catalog, String schemaPattern, String procedureNamePattern) getProcedureSourceCode(String procedureName) Get the source of a stored procedure.getPseudoColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) intgetSchemas(String catalog, String schemaPattern) intgetSuperTables(String catalog, String schemaPattern, String tableNamePattern) getSuperTypes(String catalog, String schemaPattern, String tableNamePattern) getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern) String[]Supported table type names.getTriggerSourceCode(String triggerName) Get the source of a trigger.getURL()getVersionColumns(String catalog, String schema, String table) getViewSourceCode(String viewName) Get the source of a view.booleaninsertsAreDetected(int type) booleanbooleanbooleanisWrapperFor(Class<?> iface) booleanbooleanbooleanbooleanbooleanbooleanbooleanothersDeletesAreVisible(int type) booleanothersInsertsAreVisible(int type) booleanothersUpdatesAreVisible(int type) booleanownDeletesAreVisible(int type) booleanownInsertsAreVisible(int type) booleanownUpdatesAreVisible(int type) booleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleansupportsConvert(int fromType, int toType) booleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleansupportsResultSetConcurrency(int type, int concurrency) booleansupportsResultSetHoldability(int holdability) booleansupportsResultSetType(int type) booleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleanbooleansupportsTransactionIsolationLevel(int level) booleanbooleanboolean<T> TbooleanupdatesAreDetected(int type) booleanbooleanMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface java.sql.DatabaseMetaData
getMaxLogicalLobSize, supportsRefCursors, supportsSharding
-
Field Details
-
TABLE
- See Also:
-
SYSTEM_TABLE
- See Also:
-
VIEW
- See Also:
-
GLOBAL_TEMPORARY
- See Also:
-
-
Constructor Details
-
FBDatabaseMetaData
- Throws:
SQLException
-
-
Method Details
-
close
public void close()Description copied from interface:FirebirdDatabaseMetaDataCloses 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.
- Specified by:
closein interfaceFirebirdDatabaseMetaData
-
allProceduresAreCallable
- Specified by:
allProceduresAreCallablein interfaceDatabaseMetaData- Throws:
SQLException
-
allTablesAreSelectable
- Specified by:
allTablesAreSelectablein interfaceDatabaseMetaData- Throws:
SQLException
-
getURL
- Specified by:
getURLin interfaceDatabaseMetaData- Throws:
SQLException
-
getUserName
- Specified by:
getUserNamein interfaceDatabaseMetaData- Throws:
SQLException
-
isReadOnly
- Specified by:
isReadOnlyin interfaceDatabaseMetaData- Throws:
SQLException
-
nullsAreSortedHigh
- Specified by:
nullsAreSortedHighin interfaceDatabaseMetaData- Throws:
SQLException
-
nullsAreSortedLow
- Specified by:
nullsAreSortedLowin interfaceDatabaseMetaData- Throws:
SQLException
-
nullsAreSortedAtStart
- Specified by:
nullsAreSortedAtStartin interfaceDatabaseMetaData- Throws:
SQLException
-
nullsAreSortedAtEnd
- Specified by:
nullsAreSortedAtEndin interfaceDatabaseMetaData- Throws:
SQLException
-
getDatabaseProductName
- Specified by:
getDatabaseProductNamein interfaceDatabaseMetaData- Throws:
SQLException
-
getDatabaseProductVersion
- Specified by:
getDatabaseProductVersionin interfaceDatabaseMetaData- Throws:
SQLException
-
getDriverName
- Specified by:
getDriverNamein interfaceDatabaseMetaData- Throws:
SQLException
-
getDriverVersion
- Specified by:
getDriverVersionin interfaceDatabaseMetaData- Throws:
SQLException
-
getDriverMajorVersion
public int getDriverMajorVersion()- Specified by:
getDriverMajorVersionin interfaceDatabaseMetaData
-
getDriverMinorVersion
public int getDriverMinorVersion()- Specified by:
getDriverMinorVersionin interfaceDatabaseMetaData
-
usesLocalFiles
- Specified by:
usesLocalFilesin interfaceDatabaseMetaData- Throws:
SQLException
-
usesLocalFilePerTable
- Specified by:
usesLocalFilePerTablein interfaceDatabaseMetaData- Throws:
SQLException
-
supportsMixedCaseIdentifiers
- Specified by:
supportsMixedCaseIdentifiersin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsStatementPooling
- Specified by:
supportsStatementPoolingin interfaceDatabaseMetaData- Throws:
SQLException
-
locatorsUpdateCopy
- Specified by:
locatorsUpdateCopyin interfaceDatabaseMetaData- Throws:
SQLException
-
storesUpperCaseIdentifiers
- Specified by:
storesUpperCaseIdentifiersin interfaceDatabaseMetaData- Throws:
SQLException
-
storesLowerCaseIdentifiers
- Specified by:
storesLowerCaseIdentifiersin interfaceDatabaseMetaData- Throws:
SQLException
-
storesMixedCaseIdentifiers
- Specified by:
storesMixedCaseIdentifiersin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsMixedCaseQuotedIdentifiers
- Specified by:
supportsMixedCaseQuotedIdentifiersin interfaceDatabaseMetaData- Throws:
SQLException
-
storesUpperCaseQuotedIdentifiers
- Specified by:
storesUpperCaseQuotedIdentifiersin interfaceDatabaseMetaData- Throws:
SQLException
-
storesLowerCaseQuotedIdentifiers
- Specified by:
storesLowerCaseQuotedIdentifiersin interfaceDatabaseMetaData- Throws:
SQLException
-
storesMixedCaseQuotedIdentifiers
- Specified by:
storesMixedCaseQuotedIdentifiersin interfaceDatabaseMetaData- Throws:
SQLException
-
getIdentifierQuoteString
- Specified by:
getIdentifierQuoteStringin interfaceDatabaseMetaData- Throws:
SQLException
-
getSQLKeywords
- Specified by:
getSQLKeywordsin interfaceDatabaseMetaData- Throws:
SQLException
-
getNumericFunctions
NOTE: Some of the functions listed may only work on Firebird 2.1 or higher, or when equivalent UDFs are installed.
- Specified by:
getNumericFunctionsin interfaceDatabaseMetaData- Throws:
SQLException
-
getStringFunctions
NOTE: Some of the functions listed may only work on Firebird 2.1 or higher, or when equivalent UDFs are installed.
- Specified by:
getStringFunctionsin interfaceDatabaseMetaData- Throws:
SQLException
-
getSystemFunctions
NOTE: Some of the functions listed may only work on Firebird 2.1 or higher, or when equivalent UDFs are installed.
- Specified by:
getSystemFunctionsin interfaceDatabaseMetaData- Throws:
SQLException
-
getTimeDateFunctions
NOTE: Some of the functions listed may only work on Firebird 2.1 or higher, or when equivalent UDFs are installed.
- Specified by:
getTimeDateFunctionsin interfaceDatabaseMetaData- Throws:
SQLException
-
getSearchStringEscape
- Specified by:
getSearchStringEscapein interfaceDatabaseMetaData- Throws:
SQLException
-
getExtraNameCharacters
- Specified by:
getExtraNameCharactersin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsAlterTableWithAddColumn
- Specified by:
supportsAlterTableWithAddColumnin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsAlterTableWithDropColumn
- Specified by:
supportsAlterTableWithDropColumnin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsColumnAliasing
- Specified by:
supportsColumnAliasingin interfaceDatabaseMetaData- Throws:
SQLException
-
nullPlusNonNullIsNull
- Specified by:
nullPlusNonNullIsNullin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsConvert
- Specified by:
supportsConvertin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsConvert
See also
org.firebirdsql.jdbc.escape.ConvertFunctionfor caveats.- Specified by:
supportsConvertin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsTableCorrelationNames
- Specified by:
supportsTableCorrelationNamesin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsDifferentTableCorrelationNames
- Specified by:
supportsDifferentTableCorrelationNamesin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsExpressionsInOrderBy
- Specified by:
supportsExpressionsInOrderByin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsGroupBy
- Specified by:
supportsGroupByin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsGroupByBeyondSelect
- Specified by:
supportsGroupByBeyondSelectin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsLikeEscapeClause
- Specified by:
supportsLikeEscapeClausein interfaceDatabaseMetaData- Throws:
SQLException
-
supportsMultipleResultSets
- Specified by:
supportsMultipleResultSetsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsMultipleTransactions
- Specified by:
supportsMultipleTransactionsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsNonNullableColumns
- Specified by:
supportsNonNullableColumnsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsMinimumSQLGrammar
- Specified by:
supportsMinimumSQLGrammarin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsCoreSQLGrammar
- Specified by:
supportsCoreSQLGrammarin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsExtendedSQLGrammar
- Specified by:
supportsExtendedSQLGrammarin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsANSI92EntryLevelSQL
- Specified by:
supportsANSI92EntryLevelSQLin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsANSI92IntermediateSQL
- Specified by:
supportsANSI92IntermediateSQLin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsANSI92FullSQL
- Specified by:
supportsANSI92FullSQLin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsIntegrityEnhancementFacility
- Specified by:
supportsIntegrityEnhancementFacilityin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsOuterJoins
- Specified by:
supportsOuterJoinsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsFullOuterJoins
- Specified by:
supportsFullOuterJoinsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsLimitedOuterJoins
- Specified by:
supportsLimitedOuterJoinsin interfaceDatabaseMetaData- Throws:
SQLException
-
getSchemaTerm
- Specified by:
getSchemaTermin interfaceDatabaseMetaData- Returns:
- the vendor term, always
nullbecause schemas are not supported by database server (see JDBC CTS for details). - Throws:
SQLException
-
getProcedureTerm
- Specified by:
getProcedureTermin interfaceDatabaseMetaData- Throws:
SQLException
-
getCatalogTerm
- Specified by:
getCatalogTermin interfaceDatabaseMetaData- Returns:
- the vendor term for catalog, normally
nullbecause catalogs are not supported by database server (see JDBC CTS for details), or"PACKAGE"whenuseCatalogAsPackage = trueand packages are supported. - Throws:
SQLException
-
isCatalogAtStart
Will report
truewhenuseCatalogAsPackage = trueand packages are supported.- Specified by:
isCatalogAtStartin interfaceDatabaseMetaData- Throws:
SQLException
-
getCatalogSeparator
- Specified by:
getCatalogSeparatorin interfaceDatabaseMetaData- Returns:
- the separator string, always
nullbecause catalogs are not supported by database server (see JDBC CTS for details), or"."whenuseCatalogAsPackage = trueand packages are supported. - Throws:
SQLException
-
supportsSchemasInDataManipulation
- Specified by:
supportsSchemasInDataManipulationin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsSchemasInProcedureCalls
- Specified by:
supportsSchemasInProcedureCallsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsSchemasInTableDefinitions
- Specified by:
supportsSchemasInTableDefinitionsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsSchemasInIndexDefinitions
- Specified by:
supportsSchemasInIndexDefinitionsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsSchemasInPrivilegeDefinitions
- Specified by:
supportsSchemasInPrivilegeDefinitionsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsCatalogsInDataManipulation
Will report
truewhenuseCatalogAsPackage = trueand packages are supported.- Specified by:
supportsCatalogsInDataManipulationin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsCatalogsInProcedureCalls
Will report
truewhenuseCatalogAsPackage = trueand packages are supported.- Specified by:
supportsCatalogsInProcedureCallsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsCatalogsInTableDefinitions
- Specified by:
supportsCatalogsInTableDefinitionsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsCatalogsInIndexDefinitions
- Specified by:
supportsCatalogsInIndexDefinitionsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsCatalogsInPrivilegeDefinitions
- Specified by:
supportsCatalogsInPrivilegeDefinitionsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsPositionedDelete
- Specified by:
supportsPositionedDeletein interfaceDatabaseMetaData- Throws:
SQLException
-
supportsPositionedUpdate
- Specified by:
supportsPositionedUpdatein interfaceDatabaseMetaData- Throws:
SQLException
-
supportsSelectForUpdate
- Specified by:
supportsSelectForUpdatein interfaceDatabaseMetaData- Throws:
SQLException
-
supportsStoredProcedures
- Specified by:
supportsStoredProceduresin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsSubqueriesInComparisons
- Specified by:
supportsSubqueriesInComparisonsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsSubqueriesInExists
- Specified by:
supportsSubqueriesInExistsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsSubqueriesInIns
- Specified by:
supportsSubqueriesInInsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsSubqueriesInQuantifieds
- Specified by:
supportsSubqueriesInQuantifiedsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsUnion
- Specified by:
supportsUnionin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsUnionAll
- Specified by:
supportsUnionAllin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsOpenCursorsAcrossCommit
- Specified by:
supportsOpenCursorsAcrossCommitin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsOpenCursorsAcrossRollback
- Specified by:
supportsOpenCursorsAcrossRollbackin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsOpenStatementsAcrossCommit
- Specified by:
supportsOpenStatementsAcrossCommitin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsOpenStatementsAcrossRollback
- Specified by:
supportsOpenStatementsAcrossRollbackin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxBinaryLiteralLength
- Specified by:
getMaxBinaryLiteralLengthin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxCharLiteralLength
- Specified by:
getMaxCharLiteralLengthin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxColumnNameLength
NOTE: This method reports the standard maximum length, and does not take into account restrictions configured through
MaxIdentifierByteLengthorMaxIdentifierCharLength.- Specified by:
getMaxColumnNameLengthin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxObjectNameLength
public int getMaxObjectNameLength()Description copied from interface:FirebirdDatabaseMetaDataThe default maximum identifier length.NOTE: This method reports the standard maximum length, and does not take into account restrictions configured through
MaxIdentifierByteLengthorMaxIdentifierCharLength.- Specified by:
getMaxObjectNameLengthin interfaceFirebirdDatabaseMetaData- Returns:
- the (default) maximum identifier length
-
getMaxColumnsInGroupBy
- Specified by:
getMaxColumnsInGroupByin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxColumnsInIndex
- Specified by:
getMaxColumnsInIndexin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxColumnsInOrderBy
- Specified by:
getMaxColumnsInOrderByin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxColumnsInSelect
- Specified by:
getMaxColumnsInSelectin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxColumnsInTable
- Specified by:
getMaxColumnsInTablein interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxConnections
- Specified by:
getMaxConnectionsin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxCursorNameLength
- Specified by:
getMaxCursorNameLengthin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxIndexLength
- Specified by:
getMaxIndexLengthin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxSchemaNameLength
- Specified by:
getMaxSchemaNameLengthin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxProcedureNameLength
NOTE: This method reports the standard maximum length, and does not take into account restrictions configured through
MaxIdentifierByteLengthorMaxIdentifierCharLength.- Specified by:
getMaxProcedureNameLengthin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxCatalogNameLength
Will normally report
0, but non-zero whenuseCatalogAsPackage = trueand packages are supported.- Specified by:
getMaxCatalogNameLengthin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxRowSize
- Specified by:
getMaxRowSizein interfaceDatabaseMetaData- Throws:
SQLException
-
doesMaxRowSizeIncludeBlobs
- Specified by:
doesMaxRowSizeIncludeBlobsin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxStatementLength
- Specified by:
getMaxStatementLengthin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxStatements
- Specified by:
getMaxStatementsin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxTableNameLength
NOTE: This method reports the standard maximum length, and does not take into account restrictions configured through
MaxIdentifierByteLengthorMaxIdentifierCharLength.- Specified by:
getMaxTableNameLengthin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxTablesInSelect
- Specified by:
getMaxTablesInSelectin interfaceDatabaseMetaData- Throws:
SQLException
-
getMaxUserNameLength
NOTE: This method reports the standard maximum length, and does not take into account restrictions configured through
MaxIdentifierByteLengthorMaxIdentifierCharLength.- Specified by:
getMaxUserNameLengthin interfaceDatabaseMetaData- Throws:
SQLException
-
getDefaultTransactionIsolation
- Specified by:
getDefaultTransactionIsolationin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsTransactions
- Specified by:
supportsTransactionsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsTransactionIsolationLevel
- Specified by:
supportsTransactionIsolationLevelin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsDataDefinitionAndDataManipulationTransactions
Although Firebird supports both DML and DDL in transactions, it is not possible to use objects in the same transaction that defines them. For example, it is not possible to insert into a table in the same transaction that created it.
- Specified by:
supportsDataDefinitionAndDataManipulationTransactionsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsDataManipulationTransactionsOnly
- Specified by:
supportsDataManipulationTransactionsOnlyin interfaceDatabaseMetaData- Throws:
SQLException
-
dataDefinitionCausesTransactionCommit
Read the note on
supportsDataDefinitionAndDataManipulationTransactions().- Specified by:
dataDefinitionCausesTransactionCommitin interfaceDatabaseMetaData- Throws:
SQLException
-
dataDefinitionIgnoredInTransactions
Read the note on
supportsDataDefinitionAndDataManipulationTransactions().- Specified by:
dataDefinitionIgnoredInTransactionsin interfaceDatabaseMetaData- Throws:
SQLException
-
getProcedures
public ResultSet getProcedures(String catalog, String schemaPattern, String procedureNamePattern) throws SQLException By default, this method does not return procedures defined in packages. To also return procedures in packages, set connection property
useCatalogAsPackagetotrue. When enabled, this method has the following differences in behaviour:- The
catalogparameter will return normal and packaged procedures whennull, only normal (non-packaged) procedures when empty string (""), and procedures from a specific package (exact case-sensitive match!) for other non-nullvalues - Column
PROCEDURE_CATfor normal procedures is empty string ("") instead ofnull, for packaged procedures it is the package name - Column
SPECIFIC_NAMEfor packaged procedures will report<quoted-package-name>.<quoted-procedure-name>(normal procedures will report the same as columnPROCEDURE_NAME, the unquoted name)
- Specified by:
getProceduresin interfaceDatabaseMetaData- Throws:
SQLException
- The
-
getProcedureColumns
public ResultSet getProcedureColumns(String catalog, String schemaPattern, String procedureNamePattern, String columnNamePattern) throws SQLException By default, this method does not return columns of procedures defined in packages. To also return columns of procedures in packages, set connection property
useCatalogAsPackagetotrue. When enabled, this method has the following differences in behaviour:- The
catalogparameter will return normal and packaged procedures whennull, only normal (non-packaged) procedures when empty string (""), and procedures from a specific package (exact case-sensitive match!) for other non-nullvalues - Column
PROCEDURE_CATfor normal procedures is empty string ("") instead ofnull, for packaged procedures it is the package name - Column
SPECIFIC_NAMEfor packaged procedures will report<quoted-package-name>.<quoted-procedure-name>(normal procedures will report the same as columnPROCEDURE_NAME, the unquoted name)
- Specified by:
getProcedureColumnsin interfaceDatabaseMetaData- Throws:
SQLException
- The
-
getTables
public ResultSet getTables(String catalog, String schemaPattern, String tableNamePattern, String[] types) throws SQLException Jaybird defines these additional columns:
- OWNER_NAME String => Owner of the table
- JB_RELATION_ID Short => Value of
RDB$RELATIONS.RDB$RELATION_IDof the table
- Specified by:
getTablesin interfaceDatabaseMetaData- Throws:
SQLException
-
getSchemas
- Specified by:
getSchemasin interfaceDatabaseMetaData- Throws:
SQLException
-
getCatalogs
When
>useCatalogAsPackage = trueand packages are supported, this method will return the package names in columnTABLE_CAT.- Specified by:
getCatalogsin interfaceDatabaseMetaData- Throws:
SQLException
-
getTableTypes
- Specified by:
getTableTypesin interfaceDatabaseMetaData- Throws:
SQLException
-
getTableTypeNames
Description copied from interface:FirebirdDatabaseMetaDataSupported table type names.- Specified by:
getTableTypeNamesin interfaceFirebirdDatabaseMetaData- Returns:
- An array with the supported table types names for
DatabaseMetaData.getTables(String, String, String, String[]) - Throws:
SQLException- For problems determining supported table types- See Also:
-
getColumns
public ResultSet getColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) throws SQLException Jaybird defines these additional columns:
- JB_IS_IDENTITY String => Indicates whether this column is an identity column (NOTE: Jaybird
specific column; retrieve by name!).
There is a subtle difference with the meaning of
IS_AUTOINCREMENT. This column indicates if the column is a true identity column.- YES --- if the column is an identity column
- NO --- if the column is not an identity column
- JB_IDENTITY_TYPE String => Type of identity column (NOTE: Jaybird specific column; retrieve by
name!)
- ALWAYS --- for a GENERATED ALWAYS AS IDENTITY column (not yet supported in Firebird 3!)
- BY DEFAULT --- for a GENERATED BY DEFAULT AS IDENTITY column
- null --- if the column is not an identity type (or the identity type is unknown)
- Specified by:
getColumnsin interfaceDatabaseMetaData- Throws:
SQLException
- JB_IS_IDENTITY String => Indicates whether this column is an identity column (NOTE: Jaybird
specific column; retrieve by name!).
There is a subtle difference with the meaning of
-
getColumnPrivileges
public ResultSet getColumnPrivileges(String catalog, String schema, String table, String columnNamePattern) throws SQLException Jaybird defines an additional column:
- JB_GRANTEE_TYPE String => Object type of
GRANTEE(NOTE: Jaybird specific column; retrieve by name!).
Privileges granted to the table as a whole are reported for each individual column.
NOTE: This implementation returns all privileges, not just applicable to the current user. It is unclear if this complies with the JDBC requirements. This may change in the future to only return only privileges applicable to the current user, user
PUBLICand — maybe — active roles.- Specified by:
getColumnPrivilegesin interfaceDatabaseMetaData- Throws:
SQLException
- JB_GRANTEE_TYPE String => Object type of
-
getTablePrivileges
public ResultSet getTablePrivileges(String catalog, String schemaPattern, String tableNamePattern) throws SQLException Jaybird defines an additional column:
- JB_GRANTEE_TYPE String => Object type of
GRANTEE(NOTE: Jaybird specific column; retrieve by name!).
NOTE: This implementation returns all privileges, not just applicable to the current user. It is unclear if this complies with the JDBC requirements. This may change in the future to only return only privileges applicable to the current user, user
PUBLICand — maybe — active roles.- Specified by:
getTablePrivilegesin interfaceDatabaseMetaData- Throws:
SQLException
- JB_GRANTEE_TYPE String => Object type of
-
getBestRowIdentifier
public ResultSet getBestRowIdentifier(String catalog, String schema, String table, int scope, boolean nullable) throws SQLException Jaybird considers the primary key (scoped as
bestRowSessionas the best identifier for all scopes. Pseudo columnRDB$DB_KEY(scoped asbestRowTransactionis considered the second-best alternative for scopesbestRowTemporaryandbestRowTransactioniftablehas no primary key.Jaybird currently considers
RDB$DB_KEYto beDatabaseMetaData.bestRowTransactioneven if the dbkey_scope is set to 1 (session). This may change in the future. See alsogetRowIdLifetime().- Specified by:
getBestRowIdentifierin interfaceDatabaseMetaData- Throws:
SQLException
-
getVersionColumns
Jaybird considers both
RDB$DB_KEYandRDB$RECORD_VERSION(Firebird 3 and higher) as version columns.Jaybird only returns pseudo-column as version columns, so 'last updated' columns updated by a trigger, calculated columns, or other forms of change tracking are not reported by this method.
- Specified by:
getVersionColumnsin interfaceDatabaseMetaData- Throws:
SQLException
-
getPrimaryKeys
Jaybird defines these additional columns:
- JB_PK_INDEX_NAME String => Index backing the primary key
- Specified by:
getPrimaryKeysin interfaceDatabaseMetaData- Throws:
SQLException
-
getImportedKeys
Jaybird defines these additional columns:
- JB_FK_INDEX_NAME String => Index backing the foreign key
- JB_PK_INDEX_NAME String => Index backing the primary key
- Specified by:
getImportedKeysin interfaceDatabaseMetaData- Throws:
SQLException
-
getExportedKeys
Jaybird defines these additional columns:
- JB_FK_INDEX_NAME String => Index backing the foreign key
- JB_PK_INDEX_NAME String => Index backing the primary key
- Specified by:
getExportedKeysin interfaceDatabaseMetaData- Throws:
SQLException
-
getCrossReference
public ResultSet getCrossReference(String primaryCatalog, String primarySchema, String primaryTable, String foreignCatalog, String foreignSchema, String foreignTable) throws SQLException Jaybird defines these additional columns:
- JB_FK_INDEX_NAME String => Index backing the foreign key
- JB_PK_INDEX_NAME String => Index backing the primary key
- Specified by:
getCrossReferencein interfaceDatabaseMetaData- Throws:
SQLException
-
getTypeInfo
- Specified by:
getTypeInfoin interfaceDatabaseMetaData- Throws:
SQLException
-
getIndexInfo
public ResultSet getIndexInfo(String catalog, String schema, String table, boolean unique, boolean approximate) throws SQLException Implementation note: The value of
FILTER_CONDITIONis populated with the value ofRDB$INDICES.RDB$CONDITION_SOURCE, which includes theWHEREkeyword and comments before theWHEREkeyword. This is an implementation detail which may change in the future. That is, Jaybird may change in the future to only include the condition itself, not theWHEREkeyword, and/or may remove some or all comments.- Specified by:
getIndexInfoin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsResultSetType
- Specified by:
supportsResultSetTypein interfaceDatabaseMetaData- Throws:
SQLException
-
supportsResultSetConcurrency
- Specified by:
supportsResultSetConcurrencyin interfaceDatabaseMetaData- Throws:
SQLException
-
ownUpdatesAreVisible
- Specified by:
ownUpdatesAreVisiblein interfaceDatabaseMetaData- Throws:
SQLException
-
ownDeletesAreVisible
- Specified by:
ownDeletesAreVisiblein interfaceDatabaseMetaData- Throws:
SQLException
-
ownInsertsAreVisible
- Specified by:
ownInsertsAreVisiblein interfaceDatabaseMetaData- Throws:
SQLException
-
othersUpdatesAreVisible
- Specified by:
othersUpdatesAreVisiblein interfaceDatabaseMetaData- Throws:
SQLException
-
othersDeletesAreVisible
- Specified by:
othersDeletesAreVisiblein interfaceDatabaseMetaData- Throws:
SQLException
-
othersInsertsAreVisible
- Specified by:
othersInsertsAreVisiblein interfaceDatabaseMetaData- Throws:
SQLException
-
updatesAreDetected
- Specified by:
updatesAreDetectedin interfaceDatabaseMetaData- Throws:
SQLException
-
deletesAreDetected
- Specified by:
deletesAreDetectedin interfaceDatabaseMetaData- Throws:
SQLException
-
insertsAreDetected
- Specified by:
insertsAreDetectedin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsBatchUpdates
- Specified by:
supportsBatchUpdatesin interfaceDatabaseMetaData- Throws:
SQLException
-
getUDTs
public ResultSet getUDTs(String catalog, String schemaPattern, String typeNamePattern, int[] types) throws SQLException UDTs are not supported by Firebird. This method will always return an empty ResultSet.
- Specified by:
getUDTsin interfaceDatabaseMetaData- Throws:
SQLException
-
getConnection
- Specified by:
getConnectionin interfaceDatabaseMetaData- Throws:
SQLException
-
getAttributes
public ResultSet getAttributes(String catalog, String schemaPattern, String typeNamePattern, String attributeNamePattern) throws SQLException UDTs are not supported by Firebird. This method will always return an empty ResultSet.
- Specified by:
getAttributesin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsSavepoints
- Specified by:
supportsSavepointsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsNamedParameters
- Specified by:
supportsNamedParametersin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsMultipleOpenResults
- Specified by:
supportsMultipleOpenResultsin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsGetGeneratedKeys
- Specified by:
supportsGetGeneratedKeysin interfaceDatabaseMetaData- Throws:
SQLException
-
getSuperTypes
public ResultSet getSuperTypes(String catalog, String schemaPattern, String tableNamePattern) throws SQLException Supertypes are not supported by Firebird. This method will always return an empty ResultSet.
- Specified by:
getSuperTypesin interfaceDatabaseMetaData- Throws:
SQLException
-
getSuperTables
public ResultSet getSuperTables(String catalog, String schemaPattern, String tableNamePattern) throws SQLException Supertables are not supported by Firebird. This method will always return an empty ResultSet.
- Specified by:
getSuperTablesin interfaceDatabaseMetaData- Throws:
SQLException
-
supportsResultSetHoldability
- Specified by:
supportsResultSetHoldabilityin interfaceDatabaseMetaData- Throws:
SQLException
-
getResultSetHoldability
- Specified by:
getResultSetHoldabilityin interfaceDatabaseMetaData- Throws:
SQLException
-
getDatabaseMajorVersion
- Specified by:
getDatabaseMajorVersionin interfaceDatabaseMetaData- Throws:
SQLException
-
getDatabaseMinorVersion
- Specified by:
getDatabaseMinorVersionin interfaceDatabaseMetaData- Throws:
SQLException
-
getOdsMajorVersion
Description copied from interface:FirebirdDatabaseMetaDataGet the major version of the ODS (On-Disk Structure) of the database.- Specified by:
getOdsMajorVersionin interfaceFirebirdDatabaseMetaData- Returns:
- The major version number of the database itself
- Throws:
SQLException- if a database access error occurs
-
getOdsMinorVersion
Description copied from interface:FirebirdDatabaseMetaDataGet the minor version of the ODS (On-Disk Structure) of the database.- Specified by:
getOdsMinorVersionin interfaceFirebirdDatabaseMetaData- Returns:
- The minor version number of the database itself
- Throws:
SQLException- if a database access error occurs
-
getDatabaseDialect
Description copied from interface:FirebirdDatabaseMetaDataGet the dialect of the database.- Specified by:
getDatabaseDialectin interfaceFirebirdDatabaseMetaData- Returns:
- The dialect of the database
- Throws:
SQLException- if a database access error occurs- See Also:
-
getConnectionDialect
Description copied from interface:FirebirdDatabaseMetaDataGet the dialect of the connection.The connection dialect may be different from the database dialect.
- Specified by:
getConnectionDialectin interfaceFirebirdDatabaseMetaData- Returns:
- The dialect of the connection
- Throws:
SQLException- if a database access error occurs- See Also:
-
getSQLStateType
Firebird primarily uses SQL standard SQL states, but may occasionally use values from X/Open.
- Specified by:
getSQLStateTypein interfaceDatabaseMetaData- Throws:
SQLException
-
supportsStoredFunctionsUsingCallSyntax
- Specified by:
supportsStoredFunctionsUsingCallSyntaxin interfaceDatabaseMetaData- Throws:
SQLException
-
autoCommitFailureClosesAllResultSets
The holdable result sets remain open, others are closed, but this happens before the statement is executed.
- Specified by:
autoCommitFailureClosesAllResultSetsin interfaceDatabaseMetaData- Throws:
SQLException
-
getClientInfoProperties
- Specified by:
getClientInfoPropertiesin interfaceDatabaseMetaData- Throws:
SQLException
-
getFunctionColumns
public ResultSet getFunctionColumns(String catalog, String schemaPattern, String functionNamePattern, String columnNamePattern) throws SQLException By default, this method does not return columns of functions defined in packages. To also return columns of functions in packages, set connection property
useCatalogAsPackagetotrue. When enabled, this method has the following differences in behaviour:- The
catalogparameter will return normal and packaged functions whennull, only normal (non-packaged) function when empty string (""), and functions from a specific package (exact case-sensitive match!) for other non-nullvalues - Column
FUNCTION_CATfor normal functions is empty string ("") instead ofnull, for packaged functions it is the package name - Column
SPECIFIC_NAMEfor packaged functions will report<quoted-package-name>.<quoted-function-name>(normal functions will report the same as columnFUNCTION_NAME, the unquoted name)
- Specified by:
getFunctionColumnsin interfaceDatabaseMetaData- Throws:
SQLException
- The
-
getFunctions
public ResultSet getFunctions(String catalog, String schemaPattern, String functionNamePattern) throws SQLException Jaybird defines a number of additional columns. As these are not defined in JDBC, their position may change with revisions of JDBC. We recommend to retrieve these columns by name. The following additional columns are available:
- JB_FUNCTION_SOURCE String => The source of the function (for Firebird 3+ PSQL functions only)).
- JB_FUNCTION_KIND String => The kind of function, one of "UDF", "PSQL" (Firebird 3+) or "UDR" (Firebird 3+)
- JB_MODULE_NAME String => Value of
RDB$MODULE_NAME(isnullfor PSQL) - JB_ENTRYPOINT String => Value of
RDB$ENTRYPOINT(isnullfor PSQL) - JB_ENGINE_NAME String => Value of
RDB$ENGINE_NAME(isnullfor UDF and PSQL)
By default, this method does not return functions defined in packages. To also return functions in packages, set connection property
useCatalogAsPackagetotrue. When enabled, this method has the following differences in behaviour:- The
catalogparameter will return normal and packaged functions whennull, only normal (non-packaged) function when empty string (""), and functions from a specific package (exact case-sensitive match!) for other non-nullvalues - Column
FUNCTION_CATfor normal functions is empty string ("") instead ofnull, for packaged functions it is the package name - Column
SPECIFIC_NAMEfor packaged functions will report<quoted-package-name>.<quoted-function-name>(normal functions will report the same as columnFUNCTION_NAME, the unquoted name)
- Specified by:
getFunctionsin interfaceDatabaseMetaData- Throws:
SQLException
-
getSchemas
- Specified by:
getSchemasin interfaceDatabaseMetaData- Throws:
SQLException
-
isWrapperFor
- Specified by:
isWrapperForin interfaceWrapper- Throws:
SQLException
-
unwrap
- Specified by:
unwrapin interfaceWrapper- Throws:
SQLException
-
escapeWildcards
Escapes the like wildcards and escape (\_%in the provided search string with a\.Primary purpose is to escape object names with wildcards for use in metadata patterns for literal matches, but it can also be used to escape for SQL
LIKE.- Parameters:
objectName- Object name to escape.- Returns:
- Object name with wildcards escaped.
-
getPseudoColumns
public ResultSet getPseudoColumns(String catalog, String schemaPattern, String tableNamePattern, String columnNamePattern) throws SQLException - Specified by:
getPseudoColumnsin interfaceDatabaseMetaData- Throws:
SQLException
-
generatedKeyAlwaysReturned
- Specified by:
generatedKeyAlwaysReturnedin interfaceDatabaseMetaData- Throws:
SQLException
-
getProcedureSourceCode
Description copied from interface:FirebirdDatabaseMetaDataGet the source of a stored procedure.- Specified by:
getProcedureSourceCodein interfaceFirebirdDatabaseMetaData- Parameters:
procedureName- name of the stored procedure.- Returns:
- source of the stored procedure.
- Throws:
SQLException- if specified procedure cannot be found.
-
getTriggerSourceCode
Description copied from interface:FirebirdDatabaseMetaDataGet the source of a trigger.- Specified by:
getTriggerSourceCodein interfaceFirebirdDatabaseMetaData- Parameters:
triggerName- name of the trigger.- Returns:
- source of the trigger.
- Throws:
SQLException- if specified trigger cannot be found.
-
getViewSourceCode
Description copied from interface:FirebirdDatabaseMetaDataGet the source of a view.- Specified by:
getViewSourceCodein interfaceFirebirdDatabaseMetaData- Parameters:
viewName- name of the view.- Returns:
- source of the view.
- Throws:
SQLException- if specified view cannot be found.
-
getBytes
-
doQuery
Execute an SQL query with a given set of parameters.- Parameters:
sql- The sql statement to be used for the queryparams- The parameters to be used in the query- Throws:
SQLException- if a database access error occurs
-
doQuery
protected ResultSet doQuery(String sql, List<String> params, boolean standalone) throws SQLException Execute an SQL query with a given set of parameters.- Parameters:
sql- The sql statement to be used for the queryparams- The parameters to be used in the querystandalone- The query to be executed is a standalone query (should not be cached and be closed asap)- Throws:
SQLException- if a database access error occurs
-
getRowIdLifetime
Minimum lifetime supported by Firebird is transaction-scope, and this can be changed to session-scope with
isc_dpb_dbkey_scopeset to1(eg connection propertydbkey_scope=1). This implementation, however, will always reportRowIdLifetime.ROWID_VALID_TRANSACTION.- Specified by:
getRowIdLifetimein interfaceDatabaseMetaData- Throws:
SQLException
-
getJDBCMajorVersion
public int getJDBCMajorVersion()- Specified by:
getJDBCMajorVersionin interfaceDatabaseMetaData
-
getJDBCMinorVersion
public int getJDBCMinorVersion()- Specified by:
getJDBCMinorVersionin interfaceDatabaseMetaData
-
getDbMetadataMediator
-