Class FBDatabaseMetaData

    • Constructor Detail

      • FBDatabaseMetaData

        protected FBDatabaseMetaData​(FBConnection c)
                              throws java.sql.SQLException
        Throws:
        java.sql.SQLException
    • Method Detail

      • close

        public void close()
        Description copied from interface: FirebirdDatabaseMetaData
        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.

        Specified by:
        close in interface FirebirdDatabaseMetaData
      • allProceduresAreCallable

        public boolean allProceduresAreCallable()
                                         throws java.sql.SQLException
        Specified by:
        allProceduresAreCallable in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • allTablesAreSelectable

        public boolean allTablesAreSelectable()
                                       throws java.sql.SQLException
        Specified by:
        allTablesAreSelectable in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getURL

        public java.lang.String getURL()
                                throws java.sql.SQLException
        Specified by:
        getURL in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getUserName

        public java.lang.String getUserName()
                                     throws java.sql.SQLException
        Specified by:
        getUserName in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • isReadOnly

        public boolean isReadOnly()
                           throws java.sql.SQLException
        Specified by:
        isReadOnly in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • nullsAreSortedHigh

        public boolean nullsAreSortedHigh()
                                   throws java.sql.SQLException
        Specified by:
        nullsAreSortedHigh in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • nullsAreSortedLow

        public boolean nullsAreSortedLow()
                                  throws java.sql.SQLException
        Specified by:
        nullsAreSortedLow in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • nullsAreSortedAtStart

        public boolean nullsAreSortedAtStart()
                                      throws java.sql.SQLException
        Specified by:
        nullsAreSortedAtStart in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • nullsAreSortedAtEnd

        public boolean nullsAreSortedAtEnd()
                                    throws java.sql.SQLException
        Specified by:
        nullsAreSortedAtEnd in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getDatabaseProductName

        public java.lang.String getDatabaseProductName()
                                                throws java.sql.SQLException
        Specified by:
        getDatabaseProductName in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getDatabaseProductVersion

        public java.lang.String getDatabaseProductVersion()
                                                   throws java.sql.SQLException
        Specified by:
        getDatabaseProductVersion in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getDriverName

        public java.lang.String getDriverName()
                                       throws java.sql.SQLException
        Specified by:
        getDriverName in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getDriverVersion

        public java.lang.String getDriverVersion()
                                          throws java.sql.SQLException
        Specified by:
        getDriverVersion in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getDriverMajorVersion

        public int getDriverMajorVersion()
        Specified by:
        getDriverMajorVersion in interface java.sql.DatabaseMetaData
      • getDriverMinorVersion

        public int getDriverMinorVersion()
        Specified by:
        getDriverMinorVersion in interface java.sql.DatabaseMetaData
      • usesLocalFiles

        public boolean usesLocalFiles()
                               throws java.sql.SQLException
        Specified by:
        usesLocalFiles in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • usesLocalFilePerTable

        public boolean usesLocalFilePerTable()
                                      throws java.sql.SQLException
        Specified by:
        usesLocalFilePerTable in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsMixedCaseIdentifiers

        public boolean supportsMixedCaseIdentifiers()
                                             throws java.sql.SQLException
        Specified by:
        supportsMixedCaseIdentifiers in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsStatementPooling

        public boolean supportsStatementPooling()
                                         throws java.sql.SQLException
        Specified by:
        supportsStatementPooling in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • locatorsUpdateCopy

        public boolean locatorsUpdateCopy()
                                   throws java.sql.SQLException
        Specified by:
        locatorsUpdateCopy in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • storesUpperCaseIdentifiers

        public boolean storesUpperCaseIdentifiers()
                                           throws java.sql.SQLException
        Specified by:
        storesUpperCaseIdentifiers in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • storesLowerCaseIdentifiers

        public boolean storesLowerCaseIdentifiers()
                                           throws java.sql.SQLException
        Specified by:
        storesLowerCaseIdentifiers in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • storesMixedCaseIdentifiers

        public boolean storesMixedCaseIdentifiers()
                                           throws java.sql.SQLException
        Specified by:
        storesMixedCaseIdentifiers in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsMixedCaseQuotedIdentifiers

        public boolean supportsMixedCaseQuotedIdentifiers()
                                                   throws java.sql.SQLException
        Specified by:
        supportsMixedCaseQuotedIdentifiers in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • storesUpperCaseQuotedIdentifiers

        public boolean storesUpperCaseQuotedIdentifiers()
                                                 throws java.sql.SQLException
        Specified by:
        storesUpperCaseQuotedIdentifiers in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • storesLowerCaseQuotedIdentifiers

        public boolean storesLowerCaseQuotedIdentifiers()
                                                 throws java.sql.SQLException
        Specified by:
        storesLowerCaseQuotedIdentifiers in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • storesMixedCaseQuotedIdentifiers

        public boolean storesMixedCaseQuotedIdentifiers()
                                                 throws java.sql.SQLException
        Specified by:
        storesMixedCaseQuotedIdentifiers in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getIdentifierQuoteString

        public java.lang.String getIdentifierQuoteString()
                                                  throws java.sql.SQLException
        Specified by:
        getIdentifierQuoteString in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getSQLKeywords

        public java.lang.String getSQLKeywords()
                                        throws java.sql.SQLException
        Specified by:
        getSQLKeywords in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getNumericFunctions

        public java.lang.String getNumericFunctions()
                                             throws java.sql.SQLException

        NOTE: Some of the functions listed may only work on Firebird 2.1 or higher, or when equivalent UDFs are installed.

        Specified by:
        getNumericFunctions in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getStringFunctions

        public java.lang.String getStringFunctions()
                                            throws java.sql.SQLException

        NOTE: Some of the functions listed may only work on Firebird 2.1 or higher, or when equivalent UDFs are installed.

        Specified by:
        getStringFunctions in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getSystemFunctions

        public java.lang.String getSystemFunctions()
                                            throws java.sql.SQLException

        NOTE: Some of the functions listed may only work on Firebird 2.1 or higher, or when equivalent UDFs are installed.

        Specified by:
        getSystemFunctions in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getTimeDateFunctions

        public java.lang.String getTimeDateFunctions()
                                              throws java.sql.SQLException

        NOTE: Some of the functions listed may only work on Firebird 2.1 or higher, or when equivalent UDFs are installed.

        Specified by:
        getTimeDateFunctions in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getSearchStringEscape

        public java.lang.String getSearchStringEscape()
                                               throws java.sql.SQLException
        Specified by:
        getSearchStringEscape in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getExtraNameCharacters

        public java.lang.String getExtraNameCharacters()
                                                throws java.sql.SQLException
        Specified by:
        getExtraNameCharacters in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsAlterTableWithAddColumn

        public boolean supportsAlterTableWithAddColumn()
                                                throws java.sql.SQLException
        Specified by:
        supportsAlterTableWithAddColumn in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsAlterTableWithDropColumn

        public boolean supportsAlterTableWithDropColumn()
                                                 throws java.sql.SQLException
        Specified by:
        supportsAlterTableWithDropColumn in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsColumnAliasing

        public boolean supportsColumnAliasing()
                                       throws java.sql.SQLException
        Specified by:
        supportsColumnAliasing in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • nullPlusNonNullIsNull

        public boolean nullPlusNonNullIsNull()
                                      throws java.sql.SQLException
        Specified by:
        nullPlusNonNullIsNull in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsConvert

        public boolean supportsConvert()
                                throws java.sql.SQLException
        Specified by:
        supportsConvert in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsConvert

        public boolean supportsConvert​(int fromType,
                                       int toType)
                                throws java.sql.SQLException

        See also org.firebirdsql.jdbc.escape.ConvertFunction for caveats.

        Specified by:
        supportsConvert in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsTableCorrelationNames

        public boolean supportsTableCorrelationNames()
                                              throws java.sql.SQLException
        Specified by:
        supportsTableCorrelationNames in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsDifferentTableCorrelationNames

        public boolean supportsDifferentTableCorrelationNames()
                                                       throws java.sql.SQLException
        Specified by:
        supportsDifferentTableCorrelationNames in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsExpressionsInOrderBy

        public boolean supportsExpressionsInOrderBy()
                                             throws java.sql.SQLException
        Specified by:
        supportsExpressionsInOrderBy in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsOrderByUnrelated

        public boolean supportsOrderByUnrelated()
                                         throws java.sql.SQLException
        Specified by:
        supportsOrderByUnrelated in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsGroupBy

        public boolean supportsGroupBy()
                                throws java.sql.SQLException
        Specified by:
        supportsGroupBy in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsGroupByUnrelated

        public boolean supportsGroupByUnrelated()
                                         throws java.sql.SQLException
        Specified by:
        supportsGroupByUnrelated in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsGroupByBeyondSelect

        public boolean supportsGroupByBeyondSelect()
                                            throws java.sql.SQLException
        Specified by:
        supportsGroupByBeyondSelect in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsLikeEscapeClause

        public boolean supportsLikeEscapeClause()
                                         throws java.sql.SQLException
        Specified by:
        supportsLikeEscapeClause in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsMultipleResultSets

        public boolean supportsMultipleResultSets()
                                           throws java.sql.SQLException
        Specified by:
        supportsMultipleResultSets in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsMultipleTransactions

        public boolean supportsMultipleTransactions()
                                             throws java.sql.SQLException
        Specified by:
        supportsMultipleTransactions in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsNonNullableColumns

        public boolean supportsNonNullableColumns()
                                           throws java.sql.SQLException
        Specified by:
        supportsNonNullableColumns in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsMinimumSQLGrammar

        public boolean supportsMinimumSQLGrammar()
                                          throws java.sql.SQLException
        Specified by:
        supportsMinimumSQLGrammar in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsCoreSQLGrammar

        public boolean supportsCoreSQLGrammar()
                                       throws java.sql.SQLException
        Specified by:
        supportsCoreSQLGrammar in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsExtendedSQLGrammar

        public boolean supportsExtendedSQLGrammar()
                                           throws java.sql.SQLException
        Specified by:
        supportsExtendedSQLGrammar in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsANSI92EntryLevelSQL

        public boolean supportsANSI92EntryLevelSQL()
                                            throws java.sql.SQLException
        Specified by:
        supportsANSI92EntryLevelSQL in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsANSI92IntermediateSQL

        public boolean supportsANSI92IntermediateSQL()
                                              throws java.sql.SQLException
        Specified by:
        supportsANSI92IntermediateSQL in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsANSI92FullSQL

        public boolean supportsANSI92FullSQL()
                                      throws java.sql.SQLException
        Specified by:
        supportsANSI92FullSQL in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsIntegrityEnhancementFacility

        public boolean supportsIntegrityEnhancementFacility()
                                                     throws java.sql.SQLException
        Specified by:
        supportsIntegrityEnhancementFacility in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsOuterJoins

        public boolean supportsOuterJoins()
                                   throws java.sql.SQLException
        Specified by:
        supportsOuterJoins in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsFullOuterJoins

        public boolean supportsFullOuterJoins()
                                       throws java.sql.SQLException
        Specified by:
        supportsFullOuterJoins in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsLimitedOuterJoins

        public boolean supportsLimitedOuterJoins()
                                          throws java.sql.SQLException
        Specified by:
        supportsLimitedOuterJoins in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getSchemaTerm

        public java.lang.String getSchemaTerm()
                                       throws java.sql.SQLException
        Specified by:
        getSchemaTerm in interface java.sql.DatabaseMetaData
        Returns:
        the vendor term, always null because schemas are not supported by database server (see JDBC CTS for details).
        Throws:
        java.sql.SQLException
      • getProcedureTerm

        public java.lang.String getProcedureTerm()
                                          throws java.sql.SQLException
        Specified by:
        getProcedureTerm in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getCatalogTerm

        public java.lang.String getCatalogTerm()
                                        throws java.sql.SQLException
        Specified by:
        getCatalogTerm in interface java.sql.DatabaseMetaData
        Returns:
        the vendor term, always null because catalogs are not supported by database server (see JDBC CTS for details).
        Throws:
        java.sql.SQLException
      • isCatalogAtStart

        public boolean isCatalogAtStart()
                                 throws java.sql.SQLException
        Specified by:
        isCatalogAtStart in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getCatalogSeparator

        public java.lang.String getCatalogSeparator()
                                             throws java.sql.SQLException
        Specified by:
        getCatalogSeparator in interface java.sql.DatabaseMetaData
        Returns:
        the separator string, always null because catalogs are not supported by database server (see JDBC CTS for details).
        Throws:
        java.sql.SQLException
      • supportsSchemasInDataManipulation

        public boolean supportsSchemasInDataManipulation()
                                                  throws java.sql.SQLException
        Specified by:
        supportsSchemasInDataManipulation in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsSchemasInProcedureCalls

        public boolean supportsSchemasInProcedureCalls()
                                                throws java.sql.SQLException
        Specified by:
        supportsSchemasInProcedureCalls in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsSchemasInTableDefinitions

        public boolean supportsSchemasInTableDefinitions()
                                                  throws java.sql.SQLException
        Specified by:
        supportsSchemasInTableDefinitions in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsSchemasInIndexDefinitions

        public boolean supportsSchemasInIndexDefinitions()
                                                  throws java.sql.SQLException
        Specified by:
        supportsSchemasInIndexDefinitions in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsSchemasInPrivilegeDefinitions

        public boolean supportsSchemasInPrivilegeDefinitions()
                                                      throws java.sql.SQLException
        Specified by:
        supportsSchemasInPrivilegeDefinitions in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsCatalogsInDataManipulation

        public boolean supportsCatalogsInDataManipulation()
                                                   throws java.sql.SQLException
        Specified by:
        supportsCatalogsInDataManipulation in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsCatalogsInProcedureCalls

        public boolean supportsCatalogsInProcedureCalls()
                                                 throws java.sql.SQLException
        Specified by:
        supportsCatalogsInProcedureCalls in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsCatalogsInTableDefinitions

        public boolean supportsCatalogsInTableDefinitions()
                                                   throws java.sql.SQLException
        Specified by:
        supportsCatalogsInTableDefinitions in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsCatalogsInIndexDefinitions

        public boolean supportsCatalogsInIndexDefinitions()
                                                   throws java.sql.SQLException
        Specified by:
        supportsCatalogsInIndexDefinitions in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsCatalogsInPrivilegeDefinitions

        public boolean supportsCatalogsInPrivilegeDefinitions()
                                                       throws java.sql.SQLException
        Specified by:
        supportsCatalogsInPrivilegeDefinitions in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsPositionedDelete

        public boolean supportsPositionedDelete()
                                         throws java.sql.SQLException
        Specified by:
        supportsPositionedDelete in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsPositionedUpdate

        public boolean supportsPositionedUpdate()
                                         throws java.sql.SQLException
        Specified by:
        supportsPositionedUpdate in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsSelectForUpdate

        public boolean supportsSelectForUpdate()
                                        throws java.sql.SQLException
        Specified by:
        supportsSelectForUpdate in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsStoredProcedures

        public boolean supportsStoredProcedures()
                                         throws java.sql.SQLException
        Specified by:
        supportsStoredProcedures in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsSubqueriesInComparisons

        public boolean supportsSubqueriesInComparisons()
                                                throws java.sql.SQLException
        Specified by:
        supportsSubqueriesInComparisons in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsSubqueriesInExists

        public boolean supportsSubqueriesInExists()
                                           throws java.sql.SQLException
        Specified by:
        supportsSubqueriesInExists in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsSubqueriesInIns

        public boolean supportsSubqueriesInIns()
                                        throws java.sql.SQLException
        Specified by:
        supportsSubqueriesInIns in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsSubqueriesInQuantifieds

        public boolean supportsSubqueriesInQuantifieds()
                                                throws java.sql.SQLException
        Specified by:
        supportsSubqueriesInQuantifieds in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsCorrelatedSubqueries

        public boolean supportsCorrelatedSubqueries()
                                             throws java.sql.SQLException
        Specified by:
        supportsCorrelatedSubqueries in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsUnion

        public boolean supportsUnion()
                              throws java.sql.SQLException
        Specified by:
        supportsUnion in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsUnionAll

        public boolean supportsUnionAll()
                                 throws java.sql.SQLException
        Specified by:
        supportsUnionAll in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsOpenCursorsAcrossCommit

        public boolean supportsOpenCursorsAcrossCommit()
                                                throws java.sql.SQLException
        Specified by:
        supportsOpenCursorsAcrossCommit in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsOpenCursorsAcrossRollback

        public boolean supportsOpenCursorsAcrossRollback()
                                                  throws java.sql.SQLException
        Specified by:
        supportsOpenCursorsAcrossRollback in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsOpenStatementsAcrossCommit

        public boolean supportsOpenStatementsAcrossCommit()
                                                   throws java.sql.SQLException
        Specified by:
        supportsOpenStatementsAcrossCommit in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsOpenStatementsAcrossRollback

        public boolean supportsOpenStatementsAcrossRollback()
                                                     throws java.sql.SQLException
        Specified by:
        supportsOpenStatementsAcrossRollback in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxBinaryLiteralLength

        public int getMaxBinaryLiteralLength()
                                      throws java.sql.SQLException
        Specified by:
        getMaxBinaryLiteralLength in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxCharLiteralLength

        public int getMaxCharLiteralLength()
                                    throws java.sql.SQLException
        Specified by:
        getMaxCharLiteralLength in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxColumnNameLength

        public int getMaxColumnNameLength()
                                   throws java.sql.SQLException
        Specified by:
        getMaxColumnNameLength in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxColumnsInGroupBy

        public int getMaxColumnsInGroupBy()
                                   throws java.sql.SQLException
        Specified by:
        getMaxColumnsInGroupBy in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxColumnsInIndex

        public int getMaxColumnsInIndex()
                                 throws java.sql.SQLException
        Specified by:
        getMaxColumnsInIndex in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxColumnsInOrderBy

        public int getMaxColumnsInOrderBy()
                                   throws java.sql.SQLException
        Specified by:
        getMaxColumnsInOrderBy in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxColumnsInSelect

        public int getMaxColumnsInSelect()
                                  throws java.sql.SQLException
        Specified by:
        getMaxColumnsInSelect in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxColumnsInTable

        public int getMaxColumnsInTable()
                                 throws java.sql.SQLException
        Specified by:
        getMaxColumnsInTable in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxConnections

        public int getMaxConnections()
                              throws java.sql.SQLException
        Specified by:
        getMaxConnections in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxCursorNameLength

        public int getMaxCursorNameLength()
                                   throws java.sql.SQLException
        Specified by:
        getMaxCursorNameLength in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxIndexLength

        public int getMaxIndexLength()
                              throws java.sql.SQLException
        Specified by:
        getMaxIndexLength in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxSchemaNameLength

        public int getMaxSchemaNameLength()
                                   throws java.sql.SQLException
        Specified by:
        getMaxSchemaNameLength in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxProcedureNameLength

        public int getMaxProcedureNameLength()
                                      throws java.sql.SQLException
        Specified by:
        getMaxProcedureNameLength in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxCatalogNameLength

        public int getMaxCatalogNameLength()
                                    throws java.sql.SQLException
        Specified by:
        getMaxCatalogNameLength in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxRowSize

        public int getMaxRowSize()
                          throws java.sql.SQLException
        Specified by:
        getMaxRowSize in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • doesMaxRowSizeIncludeBlobs

        public boolean doesMaxRowSizeIncludeBlobs()
                                           throws java.sql.SQLException
        Specified by:
        doesMaxRowSizeIncludeBlobs in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxStatementLength

        public int getMaxStatementLength()
                                  throws java.sql.SQLException
        Specified by:
        getMaxStatementLength in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxStatements

        public int getMaxStatements()
                             throws java.sql.SQLException
        Specified by:
        getMaxStatements in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxTableNameLength

        public int getMaxTableNameLength()
                                  throws java.sql.SQLException
        Specified by:
        getMaxTableNameLength in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxTablesInSelect

        public int getMaxTablesInSelect()
                                 throws java.sql.SQLException
        Specified by:
        getMaxTablesInSelect in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getMaxUserNameLength

        public int getMaxUserNameLength()
                                 throws java.sql.SQLException
        Specified by:
        getMaxUserNameLength in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getDefaultTransactionIsolation

        public int getDefaultTransactionIsolation()
                                           throws java.sql.SQLException
        Specified by:
        getDefaultTransactionIsolation in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsTransactions

        public boolean supportsTransactions()
                                     throws java.sql.SQLException
        Specified by:
        supportsTransactions in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsTransactionIsolationLevel

        public boolean supportsTransactionIsolationLevel​(int level)
                                                  throws java.sql.SQLException
        Specified by:
        supportsTransactionIsolationLevel in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsDataDefinitionAndDataManipulationTransactions

        public boolean supportsDataDefinitionAndDataManipulationTransactions()
                                                                      throws java.sql.SQLException

        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:
        supportsDataDefinitionAndDataManipulationTransactions in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsDataManipulationTransactionsOnly

        public boolean supportsDataManipulationTransactionsOnly()
                                                         throws java.sql.SQLException
        Specified by:
        supportsDataManipulationTransactionsOnly in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • dataDefinitionCausesTransactionCommit

        public boolean dataDefinitionCausesTransactionCommit()
                                                      throws java.sql.SQLException
        Specified by:
        dataDefinitionCausesTransactionCommit in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • dataDefinitionIgnoredInTransactions

        public boolean dataDefinitionIgnoredInTransactions()
                                                    throws java.sql.SQLException
        Specified by:
        dataDefinitionIgnoredInTransactions in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getProcedures

        public java.sql.ResultSet getProcedures​(java.lang.String catalog,
                                                java.lang.String schemaPattern,
                                                java.lang.String procedureNamePattern)
                                         throws java.sql.SQLException
        Specified by:
        getProcedures in interface java.sql.DatabaseMetaData
        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
        Specified by:
        getProcedureColumns in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getTables

        public java.sql.ResultSet getTables​(java.lang.String catalog,
                                            java.lang.String schemaPattern,
                                            java.lang.String tableNamePattern,
                                            java.lang.String[] types)
                                     throws java.sql.SQLException

        Jaybird defines these additional columns:

        1. OWNER_NAME String => Owner of the table
        2. JB_RELATION_ID Short => Value of RDB$RELATIONS.RDB$RELATION_ID of the table

        Specified by:
        getTables in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getSchemas

        public java.sql.ResultSet getSchemas()
                                      throws java.sql.SQLException
        Specified by:
        getSchemas in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getCatalogs

        public java.sql.ResultSet getCatalogs()
                                       throws java.sql.SQLException
        Specified by:
        getCatalogs in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getTableTypes

        public java.sql.ResultSet getTableTypes()
                                         throws java.sql.SQLException
        Specified by:
        getTableTypes in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getTableTypeNames

        public java.lang.String[] getTableTypeNames()
                                             throws java.sql.SQLException
        Description copied from interface: FirebirdDatabaseMetaData
        Supported table type names.
        Specified by:
        getTableTypeNames in interface FirebirdDatabaseMetaData
        Returns:
        An array with the supported table types names for DatabaseMetaData.getTables(String, String, String, String[])
        Throws:
        java.sql.SQLException - For problems determining supported table types
        See Also:
        DatabaseMetaData.getTableTypes()
      • getColumns

        public java.sql.ResultSet getColumns​(java.lang.String catalog,
                                             java.lang.String schemaPattern,
                                             java.lang.String tableNamePattern,
                                             java.lang.String columnNamePattern)
                                      throws java.sql.SQLException

        Jaybird defines these additional columns:

        1. 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
        2. 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:
        getColumns in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getColumnPrivileges

        public java.sql.ResultSet getColumnPrivileges​(java.lang.String catalog,
                                                      java.lang.String schema,
                                                      java.lang.String table,
                                                      java.lang.String columnNamePattern)
                                               throws java.sql.SQLException

        Jaybird defines an additional column:

        1. 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 PUBLIC and — maybe — active roles. This note does not apply to the OOREMOTE sub-protocol, which already restricts privileges to the current user and PUBLIC.

        Specified by:
        getColumnPrivileges in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getTablePrivileges

        public java.sql.ResultSet getTablePrivileges​(java.lang.String catalog,
                                                     java.lang.String schemaPattern,
                                                     java.lang.String tableNamePattern)
                                              throws java.sql.SQLException

        Jaybird defines an additional column:

        1. 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 PUBLIC and — maybe — active roles. This note does not apply to the OOREMOTE sub-protocol, which already restricts privileges to the current user and PUBLIC.

        Specified by:
        getTablePrivileges in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getBestRowIdentifier

        public java.sql.ResultSet getBestRowIdentifier​(java.lang.String catalog,
                                                       java.lang.String schema,
                                                       java.lang.String table,
                                                       int scope,
                                                       boolean nullable)
                                                throws java.sql.SQLException

        Jaybird considers the primary key (scoped as bestRowSession as the best identifier for all scopes. Pseudo column RDB$DB_KEY (scoped as bestRowTransaction is considered the second-best alternative for scopes bestRowTemporary and bestRowTransaction if table has no primary key.

        Jaybird currently considers RDB$DB_KEY to be DatabaseMetaData.bestRowTransaction even if the dbkey_scope is set to 1 (session). This may change in the future. See also getRowIdLifetime().

        Specified by:
        getBestRowIdentifier in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getVersionColumns

        public java.sql.ResultSet getVersionColumns​(java.lang.String catalog,
                                                    java.lang.String schema,
                                                    java.lang.String table)
                                             throws java.sql.SQLException

        Jaybird considers both RDB$DB_KEY and RDB$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:
        getVersionColumns in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getPrimaryKeys

        public java.sql.ResultSet getPrimaryKeys​(java.lang.String catalog,
                                                 java.lang.String schema,
                                                 java.lang.String table)
                                          throws java.sql.SQLException
        Specified by:
        getPrimaryKeys in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getImportedKeys

        public java.sql.ResultSet getImportedKeys​(java.lang.String catalog,
                                                  java.lang.String schema,
                                                  java.lang.String table)
                                           throws java.sql.SQLException
        Specified by:
        getImportedKeys in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getExportedKeys

        public java.sql.ResultSet getExportedKeys​(java.lang.String catalog,
                                                  java.lang.String schema,
                                                  java.lang.String table)
                                           throws java.sql.SQLException
        Specified by:
        getExportedKeys in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getCrossReference

        public java.sql.ResultSet getCrossReference​(java.lang.String primaryCatalog,
                                                    java.lang.String primarySchema,
                                                    java.lang.String primaryTable,
                                                    java.lang.String foreignCatalog,
                                                    java.lang.String foreignSchema,
                                                    java.lang.String foreignTable)
                                             throws java.sql.SQLException
        Specified by:
        getCrossReference in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getTypeInfo

        public java.sql.ResultSet getTypeInfo()
                                       throws java.sql.SQLException
        Specified by:
        getTypeInfo in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getIndexInfo

        public java.sql.ResultSet getIndexInfo​(java.lang.String catalog,
                                               java.lang.String schema,
                                               java.lang.String table,
                                               boolean unique,
                                               boolean approximate)
                                        throws java.sql.SQLException
        Specified by:
        getIndexInfo in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsResultSetType

        public boolean supportsResultSetType​(int type)
                                      throws java.sql.SQLException
        Specified by:
        supportsResultSetType in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsResultSetConcurrency

        public boolean supportsResultSetConcurrency​(int type,
                                                    int concurrency)
                                             throws java.sql.SQLException
        Specified by:
        supportsResultSetConcurrency in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • ownUpdatesAreVisible

        public boolean ownUpdatesAreVisible​(int type)
                                     throws java.sql.SQLException
        Specified by:
        ownUpdatesAreVisible in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • ownDeletesAreVisible

        public boolean ownDeletesAreVisible​(int type)
                                     throws java.sql.SQLException
        Specified by:
        ownDeletesAreVisible in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • ownInsertsAreVisible

        public boolean ownInsertsAreVisible​(int type)
                                     throws java.sql.SQLException
        Specified by:
        ownInsertsAreVisible in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • othersUpdatesAreVisible

        public boolean othersUpdatesAreVisible​(int type)
                                        throws java.sql.SQLException
        Specified by:
        othersUpdatesAreVisible in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • othersDeletesAreVisible

        public boolean othersDeletesAreVisible​(int type)
                                        throws java.sql.SQLException
        Specified by:
        othersDeletesAreVisible in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • othersInsertsAreVisible

        public boolean othersInsertsAreVisible​(int type)
                                        throws java.sql.SQLException
        Specified by:
        othersInsertsAreVisible in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • updatesAreDetected

        public boolean updatesAreDetected​(int type)
                                   throws java.sql.SQLException
        Specified by:
        updatesAreDetected in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • deletesAreDetected

        public boolean deletesAreDetected​(int type)
                                   throws java.sql.SQLException
        Specified by:
        deletesAreDetected in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • insertsAreDetected

        public boolean insertsAreDetected​(int type)
                                   throws java.sql.SQLException
        Specified by:
        insertsAreDetected in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsBatchUpdates

        public boolean supportsBatchUpdates()
                                     throws java.sql.SQLException
        Specified by:
        supportsBatchUpdates in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getUDTs

        public java.sql.ResultSet getUDTs​(java.lang.String catalog,
                                          java.lang.String schemaPattern,
                                          java.lang.String typeNamePattern,
                                          int[] types)
                                   throws java.sql.SQLException

        UDTs are not supported by Firebird. This method will always return an empty ResultSet.

        Specified by:
        getUDTs in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getConnection

        public java.sql.Connection getConnection()
                                          throws java.sql.SQLException
        Specified by:
        getConnection in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getAttributes

        public java.sql.ResultSet getAttributes​(java.lang.String catalog,
                                                java.lang.String schemaPattern,
                                                java.lang.String typeNamePattern,
                                                java.lang.String attributeNamePattern)
                                         throws java.sql.SQLException

        UDTs are not supported by Firebird. This method will always return an empty ResultSet.

        Specified by:
        getAttributes in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsSavepoints

        public boolean supportsSavepoints()
                                   throws java.sql.SQLException
        Specified by:
        supportsSavepoints in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsNamedParameters

        public boolean supportsNamedParameters()
                                        throws java.sql.SQLException
        Specified by:
        supportsNamedParameters in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsMultipleOpenResults

        public boolean supportsMultipleOpenResults()
                                            throws java.sql.SQLException
        Specified by:
        supportsMultipleOpenResults in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsGetGeneratedKeys

        public boolean supportsGetGeneratedKeys()
                                         throws java.sql.SQLException
        Specified by:
        supportsGetGeneratedKeys in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getSuperTypes

        public java.sql.ResultSet getSuperTypes​(java.lang.String catalog,
                                                java.lang.String schemaPattern,
                                                java.lang.String tableNamePattern)
                                         throws java.sql.SQLException

        Supertypes are not supported by Firebird. This method will always return an empty ResultSet.

        Specified by:
        getSuperTypes in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getSuperTables

        public java.sql.ResultSet getSuperTables​(java.lang.String catalog,
                                                 java.lang.String schemaPattern,
                                                 java.lang.String tableNamePattern)
                                          throws java.sql.SQLException

        Supertables are not supported by Firebird. This method will always return an empty ResultSet.

        Specified by:
        getSuperTables in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsResultSetHoldability

        public boolean supportsResultSetHoldability​(int holdability)
                                             throws java.sql.SQLException
        Specified by:
        supportsResultSetHoldability in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getResultSetHoldability

        public int getResultSetHoldability()
                                    throws java.sql.SQLException
        Specified by:
        getResultSetHoldability in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getDatabaseMajorVersion

        public int getDatabaseMajorVersion()
                                    throws java.sql.SQLException
        Specified by:
        getDatabaseMajorVersion in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getDatabaseMinorVersion

        public int getDatabaseMinorVersion()
                                    throws java.sql.SQLException
        Specified by:
        getDatabaseMinorVersion in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getOdsMajorVersion

        public int getOdsMajorVersion()
                               throws java.sql.SQLException
        Description copied from interface: FirebirdDatabaseMetaData
        Get the major version of the ODS (On-Disk Structure) of the database.
        Specified by:
        getOdsMajorVersion in interface FirebirdDatabaseMetaData
        Returns:
        The major version number of the database itself
        Throws:
        java.sql.SQLException - if a database access error occurs
      • getOdsMinorVersion

        public int getOdsMinorVersion()
                               throws java.sql.SQLException
        Description copied from interface: FirebirdDatabaseMetaData
        Get the minor version of the ODS (On-Disk Structure) of the database.
        Specified by:
        getOdsMinorVersion in interface FirebirdDatabaseMetaData
        Returns:
        The minor version number of the database itself
        Throws:
        java.sql.SQLException - if a database access error occurs
      • getSQLStateType

        public int getSQLStateType()
                            throws java.sql.SQLException

        Firebird primarily uses SQL standard SQL states, but may occasionally use values from X/Open.

        Specified by:
        getSQLStateType in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsStoredFunctionsUsingCallSyntax

        public boolean supportsStoredFunctionsUsingCallSyntax()
                                                       throws java.sql.SQLException
        Specified by:
        supportsStoredFunctionsUsingCallSyntax in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • autoCommitFailureClosesAllResultSets

        public boolean autoCommitFailureClosesAllResultSets()
                                                     throws java.sql.SQLException

        The holdable result sets remain open, others are closed, but this happens before the statement is executed.

        Specified by:
        autoCommitFailureClosesAllResultSets in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getClientInfoProperties

        public java.sql.ResultSet getClientInfoProperties()
                                                   throws java.sql.SQLException
        Specified by:
        getClientInfoProperties in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getFunctionColumns

        public java.sql.ResultSet getFunctionColumns​(java.lang.String catalog,
                                                     java.lang.String schemaPattern,
                                                     java.lang.String functionNamePattern,
                                                     java.lang.String columnNamePattern)
                                              throws java.sql.SQLException

        This method does not return columns of functions defined in packages.

        Specified by:
        getFunctionColumns in interface java.sql.DatabaseMetaData
        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

        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:

        1. JB_FUNCTION_SOURCE String => The source of the function (for Firebird 3+ PSQL functions only)).
        2. JB_FUNCTION_KIND String => The kind of function, one of "UDF", "PSQL" (Firebird 3+) or "UDR" (Firebird 3+)
        3. JB_MODULE_NAME String => Value of RDB$MODULE_NAME (is null for PSQL)
        4. JB_ENTRYPOINT String => Value of RDB$ENTRYPOINT (is null for PSQL)
        5. JB_ENGINE_NAME String => Value of RDB$ENGINE_NAME (is null for UDF and PSQL)

        This method does not return functions defined in packages.

        Specified by:
        getFunctions in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getSchemas

        public java.sql.ResultSet getSchemas​(java.lang.String catalog,
                                             java.lang.String schemaPattern)
                                      throws java.sql.SQLException
        Specified by:
        getSchemas in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • isWrapperFor

        public boolean isWrapperFor​(java.lang.Class<?> iface)
                             throws java.sql.SQLException
        Specified by:
        isWrapperFor in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException
      • unwrap

        public <T> T unwrap​(java.lang.Class<T> iface)
                     throws java.sql.SQLException
        Specified by:
        unwrap in interface java.sql.Wrapper
        Throws:
        java.sql.SQLException
      • escapeWildcards

        public static java.lang.String escapeWildcards​(java.lang.String objectName)
        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 java.sql.ResultSet getPseudoColumns​(java.lang.String catalog,
                                                   java.lang.String schemaPattern,
                                                   java.lang.String tableNamePattern,
                                                   java.lang.String columnNamePattern)
                                            throws java.sql.SQLException
        Specified by:
        getPseudoColumns in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • generatedKeyAlwaysReturned

        public boolean generatedKeyAlwaysReturned()
                                           throws java.sql.SQLException
        Specified by:
        generatedKeyAlwaysReturned in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getProcedureSourceCode

        public java.lang.String getProcedureSourceCode​(java.lang.String procedureName)
                                                throws java.sql.SQLException
        Description copied from interface: FirebirdDatabaseMetaData
        Get the source of a stored procedure.
        Specified by:
        getProcedureSourceCode in interface FirebirdDatabaseMetaData
        Parameters:
        procedureName - name of the stored procedure.
        Returns:
        source of the stored procedure.
        Throws:
        java.sql.SQLException - if specified procedure cannot be found.
      • getTriggerSourceCode

        public java.lang.String getTriggerSourceCode​(java.lang.String triggerName)
                                              throws java.sql.SQLException
        Description copied from interface: FirebirdDatabaseMetaData
        Get the source of a trigger.
        Specified by:
        getTriggerSourceCode in interface FirebirdDatabaseMetaData
        Parameters:
        triggerName - name of the trigger.
        Returns:
        source of the trigger.
        Throws:
        java.sql.SQLException - if specified trigger cannot be found.
      • getViewSourceCode

        public java.lang.String getViewSourceCode​(java.lang.String viewName)
                                           throws java.sql.SQLException
        Description copied from interface: FirebirdDatabaseMetaData
        Get the source of a view.
        Specified by:
        getViewSourceCode in interface FirebirdDatabaseMetaData
        Parameters:
        viewName - name of the view.
        Returns:
        source of the view.
        Throws:
        java.sql.SQLException - if specified view cannot be found.
      • getBytes

        protected static byte[] getBytes​(java.lang.String value)
      • doQuery

        protected java.sql.ResultSet doQuery​(java.lang.String sql,
                                             java.util.List<java.lang.String> params)
                                      throws java.sql.SQLException
        Execute an SQL query with a given set of parameters.
        Parameters:
        sql - The sql statement to be used for the query
        params - The parameters to be used in the query
        Throws:
        java.sql.SQLException - if a database access error occurs
      • doQuery

        protected java.sql.ResultSet doQuery​(java.lang.String sql,
                                             java.util.List<java.lang.String> params,
                                             boolean standalone)
                                      throws java.sql.SQLException
        Execute an SQL query with a given set of parameters.
        Parameters:
        sql - The sql statement to be used for the query
        params - The parameters to be used in the query
        standalone - The query to be executed is a standalone query (should not be cached and be closed asap)
        Throws:
        java.sql.SQLException - if a database access error occurs
      • getRowIdLifetime

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

        Minimum lifetime supported by Firebird is transaction-scope, and this can be changed to session-scope with isc_dpb_dbkey_scope set to 1 (eg connection property dbkey_scope=1). This implementation, however, will always report RowIdLifetime.ROWID_VALID_TRANSACTION.

        Specified by:
        getRowIdLifetime in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • getJDBCMajorVersion

        public int getJDBCMajorVersion()
        Specified by:
        getJDBCMajorVersion in interface java.sql.DatabaseMetaData
      • getJDBCMinorVersion

        public int getJDBCMinorVersion()
        Specified by:
        getJDBCMinorVersion in interface java.sql.DatabaseMetaData