Package org.h2.jdbc

Class JdbcDatabaseMetaData

    • Constructor Detail

    • Method Detail

      • getDriverMajorVersion

        public int getDriverMajorVersion()
        Returns the major version of this driver.
        Specified by:
        getDriverMajorVersion in interface java.sql.DatabaseMetaData
        Returns:
        the major version number
      • getDriverMinorVersion

        public int getDriverMinorVersion()
        Returns the minor version of this driver.
        Specified by:
        getDriverMinorVersion in interface java.sql.DatabaseMetaData
        Returns:
        the minor version number
      • getDatabaseProductName

        public java.lang.String getDatabaseProductName()
        Gets the database product name.
        Specified by:
        getDatabaseProductName in interface java.sql.DatabaseMetaData
        Returns:
        the product name ("H2")
      • getDatabaseProductVersion

        public java.lang.String getDatabaseProductVersion()
                                                   throws java.sql.SQLException
        Gets the product version of the database.
        Specified by:
        getDatabaseProductVersion in interface java.sql.DatabaseMetaData
        Returns:
        the product version
        Throws:
        java.sql.SQLException
      • getDriverName

        public java.lang.String getDriverName()
        Gets the name of the JDBC driver.
        Specified by:
        getDriverName in interface java.sql.DatabaseMetaData
        Returns:
        the driver name ("H2 JDBC Driver")
      • getDriverVersion

        public java.lang.String getDriverVersion()
        Gets the version number of the driver. The format is [MajorVersion].[MinorVersion].
        Specified by:
        getDriverVersion in interface java.sql.DatabaseMetaData
        Returns:
        the version number
      • 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
        Gets the list of tables in the database. The result set is sorted by TABLE_TYPE, TABLE_SCHEM, and TABLE_NAME.
        1. TABLE_CAT (String) table catalog
        2. TABLE_SCHEM (String) table schema
        3. TABLE_NAME (String) table name
        4. TABLE_TYPE (String) table type
        5. REMARKS (String) comment
        6. TYPE_CAT (String) always null
        7. TYPE_SCHEM (String) always null
        8. TYPE_NAME (String) always null
        9. SELF_REFERENCING_COL_NAME (String) always null
        10. REF_GENERATION (String) always null
        11. SQL (String) the create table statement or NULL for systems tables.
        Specified by:
        getTables in interface java.sql.DatabaseMetaData
        Parameters:
        catalog - null (to get all objects) or the catalog name
        schemaPattern - null (to get all objects) or a schema name (uppercase for unquoted names)
        tableNamePattern - null (to get all objects) or a table name (uppercase for unquoted names)
        types - null or a list of table types
        Returns:
        the list of columns
        Throws:
        java.sql.SQLException - if the connection is closed
      • 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
        Gets the list of columns. The result set is sorted by TABLE_SCHEM, TABLE_NAME, and ORDINAL_POSITION.
        1. TABLE_CAT (String) table catalog
        2. TABLE_SCHEM (String) table schema
        3. TABLE_NAME (String) table name
        4. COLUMN_NAME (String) column name
        5. DATA_TYPE (int) data type (see java.sql.Types)
        6. TYPE_NAME (String) data type name ("INTEGER", "VARCHAR",...)
        7. COLUMN_SIZE (int) precision (values larger than 2 GB are returned as 2 GB)
        8. BUFFER_LENGTH (int) unused
        9. DECIMAL_DIGITS (int) scale (0 for INTEGER and VARCHAR)
        10. NUM_PREC_RADIX (int) radix
        11. NULLABLE (int) columnNoNulls or columnNullable
        12. REMARKS (String) comment
        13. COLUMN_DEF (String) default value
        14. SQL_DATA_TYPE (int) unused
        15. SQL_DATETIME_SUB (int) unused
        16. CHAR_OCTET_LENGTH (int) unused
        17. ORDINAL_POSITION (int) the column index (1,2,...)
        18. IS_NULLABLE (String) "NO" or "YES"
        19. SCOPE_CATALOG (String) always null
        20. SCOPE_SCHEMA (String) always null
        21. SCOPE_TABLE (String) always null
        22. SOURCE_DATA_TYPE (short) null
        23. IS_AUTOINCREMENT (String) "NO" or "YES"
        24. IS_GENERATEDCOLUMN (String) "NO" or "YES"
        Specified by:
        getColumns in interface java.sql.DatabaseMetaData
        Parameters:
        catalog - null (to get all objects) or the catalog name
        schemaPattern - null (to get all objects) or a schema name (uppercase for unquoted names)
        tableNamePattern - null (to get all objects) or a table name (uppercase for unquoted names)
        columnNamePattern - null (to get all objects) or a column name (uppercase for unquoted names)
        Returns:
        the list of columns
        Throws:
        java.sql.SQLException - if the connection is closed
      • 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
        Gets the list of indexes for this database. The primary key index (if there is one) is also listed, with the name PRIMARY_KEY. The result set is sorted by NON_UNIQUE ('false' first), TYPE, TABLE_SCHEM, INDEX_NAME, and ORDINAL_POSITION.
        1. TABLE_CAT (String) table catalog
        2. TABLE_SCHEM (String) table schema
        3. TABLE_NAME (String) table name
        4. NON_UNIQUE (boolean) 'true' if non-unique
        5. INDEX_QUALIFIER (String) index catalog
        6. INDEX_NAME (String) index name
        7. TYPE (short) the index type (tableIndexOther or tableIndexHash for unique indexes on non-nullable columns, tableIndexStatistics for other indexes)
        8. ORDINAL_POSITION (short) column index (1, 2, ...)
        9. COLUMN_NAME (String) column name
        10. ASC_OR_DESC (String) ascending or descending (always 'A')
        11. CARDINALITY (long) number of rows or numbers of unique values for unique indexes on non-nullable columns
        12. PAGES (long) number of pages use
        13. FILTER_CONDITION (String) filter condition (always empty)
        Specified by:
        getIndexInfo in interface java.sql.DatabaseMetaData
        Parameters:
        catalog - null or the catalog name
        schema - null (to get all objects) or a schema name (uppercase for unquoted names)
        table - table name (must be specified)
        unique - only unique indexes
        approximate - if true, return fast, but approximate CARDINALITY
        Returns:
        the list of indexes and columns
        Throws:
        java.sql.SQLException - if the connection is closed
      • getPrimaryKeys

        public java.sql.ResultSet getPrimaryKeys​(java.lang.String catalog,
                                                 java.lang.String schema,
                                                 java.lang.String table)
                                          throws java.sql.SQLException
        Gets the primary key columns for a table. The result set is sorted by TABLE_SCHEM, and COLUMN_NAME (and not by KEY_SEQ).
        1. TABLE_CAT (String) table catalog
        2. TABLE_SCHEM (String) table schema
        3. TABLE_NAME (String) table name
        4. COLUMN_NAME (String) column name
        5. KEY_SEQ (short) the column index of this column (1,2,...)
        6. PK_NAME (String) the name of the primary key index
        Specified by:
        getPrimaryKeys in interface java.sql.DatabaseMetaData
        Parameters:
        catalog - null or the catalog name
        schema - null (to get all objects) or a schema name (uppercase for unquoted names)
        table - table name (must be specified)
        Returns:
        the list of primary key columns
        Throws:
        java.sql.SQLException - if the connection is closed
      • allProceduresAreCallable

        public boolean allProceduresAreCallable()
        Checks if all procedures callable.
        Specified by:
        allProceduresAreCallable in interface java.sql.DatabaseMetaData
        Returns:
        true
      • allTablesAreSelectable

        public boolean allTablesAreSelectable()
        Checks if it possible to query all tables returned by getTables.
        Specified by:
        allTablesAreSelectable in interface java.sql.DatabaseMetaData
        Returns:
        true
      • getURL

        public java.lang.String getURL()
                                throws java.sql.SQLException
        Returns the database URL for this connection.
        Specified by:
        getURL in interface java.sql.DatabaseMetaData
        Returns:
        the url
        Throws:
        java.sql.SQLException
      • getUserName

        public java.lang.String getUserName()
                                     throws java.sql.SQLException
        Returns the user name as passed to DriverManager.getConnection(url, user, password).
        Specified by:
        getUserName in interface java.sql.DatabaseMetaData
        Returns:
        the user name
        Throws:
        java.sql.SQLException
      • isReadOnly

        public boolean isReadOnly()
                           throws java.sql.SQLException
        Returns the same as Connection.isReadOnly().
        Specified by:
        isReadOnly in interface java.sql.DatabaseMetaData
        Returns:
        if read only optimization is switched on
        Throws:
        java.sql.SQLException
      • nullsAreSortedHigh

        public boolean nullsAreSortedHigh()
                                   throws java.sql.SQLException
        Checks if NULL values are sorted high (bigger than anything that is not null).
        Specified by:
        nullsAreSortedHigh in interface java.sql.DatabaseMetaData
        Returns:
        if NULL values are sorted high
        Throws:
        java.sql.SQLException
      • nullsAreSortedLow

        public boolean nullsAreSortedLow()
                                  throws java.sql.SQLException
        Checks if NULL values are sorted low (smaller than anything that is not null).
        Specified by:
        nullsAreSortedLow in interface java.sql.DatabaseMetaData
        Returns:
        if NULL values are sorted low
        Throws:
        java.sql.SQLException
      • nullsAreSortedAtStart

        public boolean nullsAreSortedAtStart()
                                      throws java.sql.SQLException
        Checks if NULL values are sorted at the beginning (no matter if ASC or DESC is used).
        Specified by:
        nullsAreSortedAtStart in interface java.sql.DatabaseMetaData
        Returns:
        if NULL values are sorted at the beginning
        Throws:
        java.sql.SQLException
      • nullsAreSortedAtEnd

        public boolean nullsAreSortedAtEnd()
                                    throws java.sql.SQLException
        Checks if NULL values are sorted at the end (no matter if ASC or DESC is used).
        Specified by:
        nullsAreSortedAtEnd in interface java.sql.DatabaseMetaData
        Returns:
        if NULL values are sorted at the end
        Throws:
        java.sql.SQLException
      • getConnection

        public java.sql.Connection getConnection()
        Returns the connection that created this object.
        Specified by:
        getConnection in interface java.sql.DatabaseMetaData
        Returns:
        the connection
      • getProcedures

        public java.sql.ResultSet getProcedures​(java.lang.String catalog,
                                                java.lang.String schemaPattern,
                                                java.lang.String procedureNamePattern)
                                         throws java.sql.SQLException
        Gets the list of procedures. The result set is sorted by PROCEDURE_SCHEM, PROCEDURE_NAME, and NUM_INPUT_PARAMS. There are potentially multiple procedures with the same name, each with a different number of input parameters.
        1. PROCEDURE_CAT (String) catalog
        2. PROCEDURE_SCHEM (String) schema
        3. PROCEDURE_NAME (String) name
        4. reserved
        5. reserved
        6. reserved
        7. REMARKS (String) description
        8. PROCEDURE_TYPE (short) if this procedure returns a result (procedureNoResult or procedureReturnsResult)
        9. SPECIFIC_NAME (String) non-ambiguous name to distinguish overloads
        Specified by:
        getProcedures in interface java.sql.DatabaseMetaData
        Parameters:
        catalog - null or the catalog name
        schemaPattern - null (to get all objects) or a schema name (uppercase for unquoted names)
        procedureNamePattern - the procedure name pattern
        Returns:
        the procedures
        Throws:
        java.sql.SQLException - if the connection is closed
      • 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
        Gets the list of procedure columns. The result set is sorted by PROCEDURE_SCHEM, PROCEDURE_NAME, NUM_INPUT_PARAMS, and POS. There are potentially multiple procedures with the same name, each with a different number of input parameters.
        1. PROCEDURE_CAT (String) catalog
        2. PROCEDURE_SCHEM (String) schema
        3. PROCEDURE_NAME (String) name
        4. COLUMN_NAME (String) column name
        5. COLUMN_TYPE (short) column type (always DatabaseMetaData.procedureColumnIn)
        6. DATA_TYPE (short) sql type
        7. TYPE_NAME (String) type name
        8. PRECISION (int) precision
        9. LENGTH (int) length
        10. SCALE (short) scale
        11. RADIX (int)
        12. NULLABLE (short) nullable (DatabaseMetaData.columnNoNulls for primitive data types, DatabaseMetaData.columnNullable otherwise)
        13. REMARKS (String) description
        14. COLUMN_DEF (String) always null
        15. SQL_DATA_TYPE (int) for future use
        16. SQL_DATETIME_SUB (int) for future use
        17. CHAR_OCTET_LENGTH (int)
        18. ORDINAL_POSITION (int) the parameter index starting from 1 (0 is the return value)
        19. IS_NULLABLE (String) always "YES"
        20. SPECIFIC_NAME (String) non-ambiguous procedure name to distinguish overloads
        Specified by:
        getProcedureColumns in interface java.sql.DatabaseMetaData
        Parameters:
        catalog - null or the catalog name
        schemaPattern - null (to get all objects) or a schema name (uppercase for unquoted names)
        procedureNamePattern - the procedure name pattern
        columnNamePattern - the procedure name pattern
        Returns:
        the procedure columns
        Throws:
        java.sql.SQLException - if the connection is closed
      • getSchemas

        public java.sql.ResultSet getSchemas()
                                      throws java.sql.SQLException
        Gets the list of schemas. The result set is sorted by TABLE_SCHEM.
        1. TABLE_SCHEM (String) schema name
        2. TABLE_CATALOG (String) catalog name
        Specified by:
        getSchemas in interface java.sql.DatabaseMetaData
        Returns:
        the schema list
        Throws:
        java.sql.SQLException - if the connection is closed
      • getCatalogs

        public java.sql.ResultSet getCatalogs()
                                       throws java.sql.SQLException
        Gets the list of catalogs. The result set is sorted by TABLE_CAT.
        1. TABLE_CAT (String) catalog name
        Specified by:
        getCatalogs in interface java.sql.DatabaseMetaData
        Returns:
        the catalog list
        Throws:
        java.sql.SQLException - if the connection is closed
      • getTableTypes

        public java.sql.ResultSet getTableTypes()
                                         throws java.sql.SQLException
        Gets the list of table types. This call returns a result set with five records: "SYSTEM TABLE", "TABLE", "VIEW", "TABLE LINK" and "EXTERNAL".
        1. TABLE_TYPE (String) table type
        Specified by:
        getTableTypes in interface java.sql.DatabaseMetaData
        Returns:
        the table types
        Throws:
        java.sql.SQLException - if the connection is closed
      • 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
        Gets the list of column privileges. The result set is sorted by COLUMN_NAME and PRIVILEGE
        1. TABLE_CAT (String) table catalog
        2. TABLE_SCHEM (String) table schema
        3. TABLE_NAME (String) table name
        4. COLUMN_NAME (String) column name
        5. GRANTOR (String) grantor of access
        6. GRANTEE (String) grantee of access
        7. PRIVILEGE (String) SELECT, INSERT, UPDATE, DELETE or REFERENCES (only one per row)
        8. IS_GRANTABLE (String) YES means the grantee can grant access to others
        Specified by:
        getColumnPrivileges in interface java.sql.DatabaseMetaData
        Parameters:
        catalog - null (to get all objects) or the catalog name
        schema - null (to get all objects) or a schema name (uppercase for unquoted names)
        table - a table name (uppercase for unquoted names)
        columnNamePattern - null (to get all objects) or a column name (uppercase for unquoted names)
        Returns:
        the list of privileges
        Throws:
        java.sql.SQLException - if the connection is closed
      • getTablePrivileges

        public java.sql.ResultSet getTablePrivileges​(java.lang.String catalog,
                                                     java.lang.String schemaPattern,
                                                     java.lang.String tableNamePattern)
                                              throws java.sql.SQLException
        Gets the list of table privileges. The result set is sorted by TABLE_SCHEM, TABLE_NAME, and PRIVILEGE.
        1. TABLE_CAT (String) table catalog
        2. TABLE_SCHEM (String) table schema
        3. TABLE_NAME (String) table name
        4. GRANTOR (String) grantor of access
        5. GRANTEE (String) grantee of access
        6. PRIVILEGE (String) SELECT, INSERT, UPDATE, DELETE or REFERENCES (only one per row)
        7. IS_GRANTABLE (String) YES means the grantee can grant access to others
        Specified by:
        getTablePrivileges in interface java.sql.DatabaseMetaData
        Parameters:
        catalog - null (to get all objects) or the catalog name
        schemaPattern - null (to get all objects) or a schema name (uppercase for unquoted names)
        tableNamePattern - null (to get all objects) or a table name (uppercase for unquoted names)
        Returns:
        the list of privileges
        Throws:
        java.sql.SQLException - if the connection is closed
      • 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
        Gets the list of columns that best identifier a row in a table. The list is ordered by SCOPE.
        1. SCOPE (short) scope of result (always bestRowSession)
        2. COLUMN_NAME (String) column name
        3. DATA_TYPE (short) SQL data type, see also java.sql.Types
        4. TYPE_NAME (String) type name
        5. COLUMN_SIZE (int) precision (values larger than 2 GB are returned as 2 GB)
        6. BUFFER_LENGTH (int) unused
        7. DECIMAL_DIGITS (short) scale
        8. PSEUDO_COLUMN (short) (always bestRowNotPseudo)
        Specified by:
        getBestRowIdentifier in interface java.sql.DatabaseMetaData
        Parameters:
        catalog - null (to get all objects) or the catalog name
        schema - null (to get all objects) or a schema name (uppercase for unquoted names)
        table - table name (must be specified)
        scope - ignored
        nullable - ignored
        Returns:
        the primary key index
        Throws:
        java.sql.SQLException - if the connection is closed
      • getVersionColumns

        public java.sql.ResultSet getVersionColumns​(java.lang.String catalog,
                                                    java.lang.String schema,
                                                    java.lang.String table)
                                             throws java.sql.SQLException
        Get the list of columns that are update when any value is updated. The result set is always empty.
        1. 1 SCOPE (int) not used
        2. 2 COLUMN_NAME (String) column name
        3. 3 DATA_TYPE (int) SQL data type - see also java.sql.Types
        4. 4 TYPE_NAME (String) data type name
        5. 5 COLUMN_SIZE (int) precision (values larger than 2 GB are returned as 2 GB)
        6. 6 BUFFER_LENGTH (int) length (bytes)
        7. 7 DECIMAL_DIGITS (int) scale
        8. 8 PSEUDO_COLUMN (int) is this column a pseudo column
        Specified by:
        getVersionColumns in interface java.sql.DatabaseMetaData
        Parameters:
        catalog - null (to get all objects) or the catalog name
        schema - null (to get all objects) or a schema name
        table - table name (must be specified)
        Returns:
        an empty result set
        Throws:
        java.sql.SQLException - if the connection is closed
      • getImportedKeys

        public java.sql.ResultSet getImportedKeys​(java.lang.String catalog,
                                                  java.lang.String schema,
                                                  java.lang.String table)
                                           throws java.sql.SQLException
        Gets the list of primary key columns that are referenced by a table. The result set is sorted by PKTABLE_CAT, PKTABLE_SCHEM, PKTABLE_NAME, FK_NAME, KEY_SEQ.
        1. PKTABLE_CAT (String) primary catalog
        2. PKTABLE_SCHEM (String) primary schema
        3. PKTABLE_NAME (String) primary table
        4. PKCOLUMN_NAME (String) primary column
        5. FKTABLE_CAT (String) foreign catalog
        6. FKTABLE_SCHEM (String) foreign schema
        7. FKTABLE_NAME (String) foreign table
        8. FKCOLUMN_NAME (String) foreign column
        9. KEY_SEQ (short) sequence number (1, 2, ...)
        10. UPDATE_RULE (short) action on update (see DatabaseMetaData.importedKey...)
        11. DELETE_RULE (short) action on delete (see DatabaseMetaData.importedKey...)
        12. FK_NAME (String) foreign key name
        13. PK_NAME (String) primary key name
        14. DEFERRABILITY (short) deferrable or not (always importedKeyNotDeferrable)
        Specified by:
        getImportedKeys in interface java.sql.DatabaseMetaData
        Parameters:
        catalog - null (to get all objects) or the catalog name
        schema - the schema name of the foreign table
        table - the name of the foreign table
        Returns:
        the result set
        Throws:
        java.sql.SQLException - if the connection is closed
      • getExportedKeys

        public java.sql.ResultSet getExportedKeys​(java.lang.String catalog,
                                                  java.lang.String schema,
                                                  java.lang.String table)
                                           throws java.sql.SQLException
        Gets the list of foreign key columns that reference a table. The result set is sorted by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, FK_NAME, KEY_SEQ.
        1. PKTABLE_CAT (String) primary catalog
        2. PKTABLE_SCHEM (String) primary schema
        3. PKTABLE_NAME (String) primary table
        4. PKCOLUMN_NAME (String) primary column
        5. FKTABLE_CAT (String) foreign catalog
        6. FKTABLE_SCHEM (String) foreign schema
        7. FKTABLE_NAME (String) foreign table
        8. FKCOLUMN_NAME (String) foreign column
        9. KEY_SEQ (short) sequence number (1,2,...)
        10. UPDATE_RULE (short) action on update (see DatabaseMetaData.importedKey...)
        11. DELETE_RULE (short) action on delete (see DatabaseMetaData.importedKey...)
        12. FK_NAME (String) foreign key name
        13. PK_NAME (String) primary key name
        14. DEFERRABILITY (short) deferrable or not (always importedKeyNotDeferrable)
        Specified by:
        getExportedKeys in interface java.sql.DatabaseMetaData
        Parameters:
        catalog - null or the catalog name
        schema - the schema name of the primary table
        table - the name of the primary table
        Returns:
        the result set
        Throws:
        java.sql.SQLException - if the connection is closed
      • 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
        Gets the list of foreign key columns that references a table, as well as the list of primary key columns that are references by a table. The result set is sorted by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, FK_NAME, KEY_SEQ.
        1. PKTABLE_CAT (String) primary catalog
        2. PKTABLE_SCHEM (String) primary schema
        3. PKTABLE_NAME (String) primary table
        4. PKCOLUMN_NAME (String) primary column
        5. FKTABLE_CAT (String) foreign catalog
        6. FKTABLE_SCHEM (String) foreign schema
        7. FKTABLE_NAME (String) foreign table
        8. FKCOLUMN_NAME (String) foreign column
        9. KEY_SEQ (short) sequence number (1,2,...)
        10. UPDATE_RULE (short) action on update (see DatabaseMetaData.importedKey...)
        11. DELETE_RULE (short) action on delete (see DatabaseMetaData.importedKey...)
        12. FK_NAME (String) foreign key name
        13. PK_NAME (String) primary key name
        14. DEFERRABILITY (short) deferrable or not (always importedKeyNotDeferrable)
        Specified by:
        getCrossReference in interface java.sql.DatabaseMetaData
        Parameters:
        primaryCatalog - null or the catalog name
        primarySchema - the schema name of the primary table (optional)
        primaryTable - the name of the primary table (must be specified)
        foreignCatalog - null or the catalog name
        foreignSchema - the schema name of the foreign table (optional)
        foreignTable - the name of the foreign table (must be specified)
        Returns:
        the result set
        Throws:
        java.sql.SQLException - if the connection is closed
      • getUDTs

        public java.sql.ResultSet getUDTs​(java.lang.String catalog,
                                          java.lang.String schemaPattern,
                                          java.lang.String typeNamePattern,
                                          int[] types)
                                   throws java.sql.SQLException
        Gets the list of user-defined data types. This call returns an empty result set.
        1. TYPE_CAT (String) catalog
        2. TYPE_SCHEM (String) schema
        3. TYPE_NAME (String) type name
        4. CLASS_NAME (String) Java class
        5. DATA_TYPE (short) SQL Type - see also java.sql.Types
        6. REMARKS (String) description
        7. BASE_TYPE (short) base type - see also java.sql.Types
        Specified by:
        getUDTs in interface java.sql.DatabaseMetaData
        Parameters:
        catalog - ignored
        schemaPattern - ignored
        typeNamePattern - ignored
        types - ignored
        Returns:
        an empty result set
        Throws:
        java.sql.SQLException - if the connection is closed
      • getTypeInfo

        public java.sql.ResultSet getTypeInfo()
                                       throws java.sql.SQLException
        Gets the list of data types. The result set is sorted by DATA_TYPE and afterwards by how closely the data type maps to the corresponding JDBC SQL type (best match first).
        1. TYPE_NAME (String) type name
        2. DATA_TYPE (short) SQL data type - see also java.sql.Types
        3. PRECISION (int) maximum precision
        4. LITERAL_PREFIX (String) prefix used to quote a literal
        5. LITERAL_SUFFIX (String) suffix used to quote a literal
        6. CREATE_PARAMS (String) parameters used (may be null)
        7. NULLABLE (short) typeNoNulls (NULL not allowed) or typeNullable
        8. CASE_SENSITIVE (boolean) case sensitive
        9. SEARCHABLE (short) typeSearchable
        10. UNSIGNED_ATTRIBUTE (boolean) unsigned
        11. FIXED_PREC_SCALE (boolean) fixed precision
        12. AUTO_INCREMENT (boolean) auto increment
        13. LOCAL_TYPE_NAME (String) localized version of the data type
        14. MINIMUM_SCALE (short) minimum scale
        15. MAXIMUM_SCALE (short) maximum scale
        16. SQL_DATA_TYPE (int) unused
        17. SQL_DATETIME_SUB (int) unused
        18. NUM_PREC_RADIX (int) 2 for binary, 10 for decimal
        Specified by:
        getTypeInfo in interface java.sql.DatabaseMetaData
        Returns:
        the list of data types
        Throws:
        java.sql.SQLException - if the connection is closed
      • usesLocalFiles

        public boolean usesLocalFiles()
        Checks if this database store data in local files.
        Specified by:
        usesLocalFiles in interface java.sql.DatabaseMetaData
        Returns:
        true
      • usesLocalFilePerTable

        public boolean usesLocalFilePerTable()
        Checks if this database use one file per table.
        Specified by:
        usesLocalFilePerTable in interface java.sql.DatabaseMetaData
        Returns:
        false
      • getIdentifierQuoteString

        public java.lang.String getIdentifierQuoteString()
        Returns the string used to quote identifiers.
        Specified by:
        getIdentifierQuoteString in interface java.sql.DatabaseMetaData
        Returns:
        a double quote
      • getSQLKeywords

        public java.lang.String getSQLKeywords()
                                        throws java.sql.SQLException
        Gets the comma-separated list of all SQL keywords that are not supported as unquoted identifiers, in addition to the SQL:2003 reserved words.

        List of keywords in H2 may depend on compatibility mode and other settings.

        Specified by:
        getSQLKeywords in interface java.sql.DatabaseMetaData
        Returns:
        a list of additional keywords
        Throws:
        java.sql.SQLException
      • getNumericFunctions

        public java.lang.String getNumericFunctions()
                                             throws java.sql.SQLException
        Returns the list of numeric functions supported by this database.
        Specified by:
        getNumericFunctions in interface java.sql.DatabaseMetaData
        Returns:
        the list
        Throws:
        java.sql.SQLException
      • getStringFunctions

        public java.lang.String getStringFunctions()
                                            throws java.sql.SQLException
        Returns the list of string functions supported by this database.
        Specified by:
        getStringFunctions in interface java.sql.DatabaseMetaData
        Returns:
        the list
        Throws:
        java.sql.SQLException
      • getSystemFunctions

        public java.lang.String getSystemFunctions()
                                            throws java.sql.SQLException
        Returns the list of system functions supported by this database.
        Specified by:
        getSystemFunctions in interface java.sql.DatabaseMetaData
        Returns:
        the list
        Throws:
        java.sql.SQLException
      • getTimeDateFunctions

        public java.lang.String getTimeDateFunctions()
                                              throws java.sql.SQLException
        Returns the list of date and time functions supported by this database.
        Specified by:
        getTimeDateFunctions in interface java.sql.DatabaseMetaData
        Returns:
        the list
        Throws:
        java.sql.SQLException
      • getSearchStringEscape

        public java.lang.String getSearchStringEscape()
                                               throws java.sql.SQLException
        Returns the default escape character for DatabaseMetaData search patterns.
        Specified by:
        getSearchStringEscape in interface java.sql.DatabaseMetaData
        Returns:
        the default escape character (always '\', independent on the mode)
        Throws:
        java.sql.SQLException
      • getExtraNameCharacters

        public java.lang.String getExtraNameCharacters()
        Returns the characters that are allowed for identifiers in addiction to A-Z, a-z, 0-9 and '_'.
        Specified by:
        getExtraNameCharacters in interface java.sql.DatabaseMetaData
        Returns:
        an empty String ("")
      • supportsAlterTableWithAddColumn

        public boolean supportsAlterTableWithAddColumn()
        Returns whether alter table with add column is supported.
        Specified by:
        supportsAlterTableWithAddColumn in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsAlterTableWithDropColumn

        public boolean supportsAlterTableWithDropColumn()
        Returns whether alter table with drop column is supported.
        Specified by:
        supportsAlterTableWithDropColumn in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsColumnAliasing

        public boolean supportsColumnAliasing()
        Returns whether column aliasing is supported.
        Specified by:
        supportsColumnAliasing in interface java.sql.DatabaseMetaData
        Returns:
        true
      • nullPlusNonNullIsNull

        public boolean nullPlusNonNullIsNull()
        Returns whether NULL+1 is NULL or not.
        Specified by:
        nullPlusNonNullIsNull in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsConvert

        public boolean supportsConvert()
        Returns whether CONVERT is supported.
        Specified by:
        supportsConvert in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsConvert

        public boolean supportsConvert​(int fromType,
                                       int toType)
        Returns whether CONVERT is supported for one datatype to another.
        Specified by:
        supportsConvert in interface java.sql.DatabaseMetaData
        Parameters:
        fromType - the source SQL type
        toType - the target SQL type
        Returns:
        true
      • supportsTableCorrelationNames

        public boolean supportsTableCorrelationNames()
        Returns whether table correlation names (table alias) are supported.
        Specified by:
        supportsTableCorrelationNames in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsDifferentTableCorrelationNames

        public boolean supportsDifferentTableCorrelationNames()
        Returns whether table correlation names (table alias) are restricted to be different than table names.
        Specified by:
        supportsDifferentTableCorrelationNames in interface java.sql.DatabaseMetaData
        Returns:
        false
      • supportsExpressionsInOrderBy

        public boolean supportsExpressionsInOrderBy()
        Returns whether expression in ORDER BY are supported.
        Specified by:
        supportsExpressionsInOrderBy in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsOrderByUnrelated

        public boolean supportsOrderByUnrelated()
        Returns whether ORDER BY is supported if the column is not in the SELECT list.
        Specified by:
        supportsOrderByUnrelated in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsGroupBy

        public boolean supportsGroupBy()
        Returns whether GROUP BY is supported.
        Specified by:
        supportsGroupBy in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsGroupByUnrelated

        public boolean supportsGroupByUnrelated()
        Returns whether GROUP BY is supported if the column is not in the SELECT list.
        Specified by:
        supportsGroupByUnrelated in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsGroupByBeyondSelect

        public boolean supportsGroupByBeyondSelect()
        Checks whether a GROUP BY clause can use columns that are not in the SELECT clause, provided that it specifies all the columns in the SELECT clause.
        Specified by:
        supportsGroupByBeyondSelect in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsLikeEscapeClause

        public boolean supportsLikeEscapeClause()
        Returns whether LIKE... ESCAPE is supported.
        Specified by:
        supportsLikeEscapeClause in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsMultipleResultSets

        public boolean supportsMultipleResultSets()
        Returns whether multiple result sets are supported.
        Specified by:
        supportsMultipleResultSets in interface java.sql.DatabaseMetaData
        Returns:
        false
      • supportsMultipleTransactions

        public boolean supportsMultipleTransactions()
        Returns whether multiple transactions (on different connections) are supported.
        Specified by:
        supportsMultipleTransactions in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsNonNullableColumns

        public boolean supportsNonNullableColumns()
        Returns whether columns with NOT NULL are supported.
        Specified by:
        supportsNonNullableColumns in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsMinimumSQLGrammar

        public boolean supportsMinimumSQLGrammar()
        Returns whether ODBC Minimum SQL grammar is supported.
        Specified by:
        supportsMinimumSQLGrammar in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsCoreSQLGrammar

        public boolean supportsCoreSQLGrammar()
        Returns whether ODBC Core SQL grammar is supported.
        Specified by:
        supportsCoreSQLGrammar in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsExtendedSQLGrammar

        public boolean supportsExtendedSQLGrammar()
        Returns whether ODBC Extended SQL grammar is supported.
        Specified by:
        supportsExtendedSQLGrammar in interface java.sql.DatabaseMetaData
        Returns:
        false
      • supportsANSI92EntryLevelSQL

        public boolean supportsANSI92EntryLevelSQL()
        Returns whether SQL-92 entry level grammar is supported.
        Specified by:
        supportsANSI92EntryLevelSQL in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsANSI92IntermediateSQL

        public boolean supportsANSI92IntermediateSQL()
        Returns whether SQL-92 intermediate level grammar is supported.
        Specified by:
        supportsANSI92IntermediateSQL in interface java.sql.DatabaseMetaData
        Returns:
        false
      • supportsANSI92FullSQL

        public boolean supportsANSI92FullSQL()
        Returns whether SQL-92 full level grammar is supported.
        Specified by:
        supportsANSI92FullSQL in interface java.sql.DatabaseMetaData
        Returns:
        false
      • supportsIntegrityEnhancementFacility

        public boolean supportsIntegrityEnhancementFacility()
        Returns whether referential integrity is supported.
        Specified by:
        supportsIntegrityEnhancementFacility in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsOuterJoins

        public boolean supportsOuterJoins()
        Returns whether outer joins are supported.
        Specified by:
        supportsOuterJoins in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsFullOuterJoins

        public boolean supportsFullOuterJoins()
        Returns whether full outer joins are supported.
        Specified by:
        supportsFullOuterJoins in interface java.sql.DatabaseMetaData
        Returns:
        false
      • supportsLimitedOuterJoins

        public boolean supportsLimitedOuterJoins()
        Returns whether limited outer joins are supported.
        Specified by:
        supportsLimitedOuterJoins in interface java.sql.DatabaseMetaData
        Returns:
        true
      • getSchemaTerm

        public java.lang.String getSchemaTerm()
        Returns the term for "schema".
        Specified by:
        getSchemaTerm in interface java.sql.DatabaseMetaData
        Returns:
        "schema"
      • getProcedureTerm

        public java.lang.String getProcedureTerm()
        Returns the term for "procedure".
        Specified by:
        getProcedureTerm in interface java.sql.DatabaseMetaData
        Returns:
        "procedure"
      • getCatalogTerm

        public java.lang.String getCatalogTerm()
        Returns the term for "catalog".
        Specified by:
        getCatalogTerm in interface java.sql.DatabaseMetaData
        Returns:
        "catalog"
      • isCatalogAtStart

        public boolean isCatalogAtStart()
        Returns whether the catalog is at the beginning.
        Specified by:
        isCatalogAtStart in interface java.sql.DatabaseMetaData
        Returns:
        true
      • getCatalogSeparator

        public java.lang.String getCatalogSeparator()
        Returns the catalog separator.
        Specified by:
        getCatalogSeparator in interface java.sql.DatabaseMetaData
        Returns:
        "."
      • supportsSchemasInDataManipulation

        public boolean supportsSchemasInDataManipulation()
        Returns whether the schema name in INSERT, UPDATE, DELETE is supported.
        Specified by:
        supportsSchemasInDataManipulation in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsSchemasInProcedureCalls

        public boolean supportsSchemasInProcedureCalls()
        Returns whether the schema name in procedure calls is supported.
        Specified by:
        supportsSchemasInProcedureCalls in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsSchemasInTableDefinitions

        public boolean supportsSchemasInTableDefinitions()
        Returns whether the schema name in CREATE TABLE is supported.
        Specified by:
        supportsSchemasInTableDefinitions in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsSchemasInIndexDefinitions

        public boolean supportsSchemasInIndexDefinitions()
        Returns whether the schema name in CREATE INDEX is supported.
        Specified by:
        supportsSchemasInIndexDefinitions in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsSchemasInPrivilegeDefinitions

        public boolean supportsSchemasInPrivilegeDefinitions()
        Returns whether the schema name in GRANT is supported.
        Specified by:
        supportsSchemasInPrivilegeDefinitions in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsCatalogsInDataManipulation

        public boolean supportsCatalogsInDataManipulation()
        Returns whether the catalog name in INSERT, UPDATE, DELETE is supported.
        Specified by:
        supportsCatalogsInDataManipulation in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsCatalogsInProcedureCalls

        public boolean supportsCatalogsInProcedureCalls()
        Returns whether the catalog name in procedure calls is supported.
        Specified by:
        supportsCatalogsInProcedureCalls in interface java.sql.DatabaseMetaData
        Returns:
        false
      • supportsCatalogsInTableDefinitions

        public boolean supportsCatalogsInTableDefinitions()
        Returns whether the catalog name in CREATE TABLE is supported.
        Specified by:
        supportsCatalogsInTableDefinitions in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsCatalogsInIndexDefinitions

        public boolean supportsCatalogsInIndexDefinitions()
        Returns whether the catalog name in CREATE INDEX is supported.
        Specified by:
        supportsCatalogsInIndexDefinitions in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsCatalogsInPrivilegeDefinitions

        public boolean supportsCatalogsInPrivilegeDefinitions()
        Returns whether the catalog name in GRANT is supported.
        Specified by:
        supportsCatalogsInPrivilegeDefinitions in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsPositionedDelete

        public boolean supportsPositionedDelete()
        Returns whether positioned deletes are supported.
        Specified by:
        supportsPositionedDelete in interface java.sql.DatabaseMetaData
        Returns:
        false
      • supportsPositionedUpdate

        public boolean supportsPositionedUpdate()
        Returns whether positioned updates are supported.
        Specified by:
        supportsPositionedUpdate in interface java.sql.DatabaseMetaData
        Returns:
        false
      • supportsSelectForUpdate

        public boolean supportsSelectForUpdate()
        Returns whether SELECT ... FOR UPDATE is supported.
        Specified by:
        supportsSelectForUpdate in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsStoredProcedures

        public boolean supportsStoredProcedures()
        Returns whether stored procedures are supported.
        Specified by:
        supportsStoredProcedures in interface java.sql.DatabaseMetaData
        Returns:
        false
      • supportsSubqueriesInComparisons

        public boolean supportsSubqueriesInComparisons()
        Returns whether subqueries (SELECT) in comparisons are supported.
        Specified by:
        supportsSubqueriesInComparisons in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsSubqueriesInExists

        public boolean supportsSubqueriesInExists()
        Returns whether SELECT in EXISTS is supported.
        Specified by:
        supportsSubqueriesInExists in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsSubqueriesInIns

        public boolean supportsSubqueriesInIns()
        Returns whether IN(SELECT...) is supported.
        Specified by:
        supportsSubqueriesInIns in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsSubqueriesInQuantifieds

        public boolean supportsSubqueriesInQuantifieds()
        Returns whether subqueries in quantified expression are supported.
        Specified by:
        supportsSubqueriesInQuantifieds in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsCorrelatedSubqueries

        public boolean supportsCorrelatedSubqueries()
        Returns whether correlated subqueries are supported.
        Specified by:
        supportsCorrelatedSubqueries in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsUnion

        public boolean supportsUnion()
        Returns whether UNION SELECT is supported.
        Specified by:
        supportsUnion in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsUnionAll

        public boolean supportsUnionAll()
        Returns whether UNION ALL SELECT is supported.
        Specified by:
        supportsUnionAll in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsOpenCursorsAcrossCommit

        public boolean supportsOpenCursorsAcrossCommit()
        Returns whether open result sets across commits are supported.
        Specified by:
        supportsOpenCursorsAcrossCommit in interface java.sql.DatabaseMetaData
        Returns:
        false
      • supportsOpenCursorsAcrossRollback

        public boolean supportsOpenCursorsAcrossRollback()
        Returns whether open result sets across rollback are supported.
        Specified by:
        supportsOpenCursorsAcrossRollback in interface java.sql.DatabaseMetaData
        Returns:
        false
      • supportsOpenStatementsAcrossCommit

        public boolean supportsOpenStatementsAcrossCommit()
        Returns whether open statements across commit are supported.
        Specified by:
        supportsOpenStatementsAcrossCommit in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsOpenStatementsAcrossRollback

        public boolean supportsOpenStatementsAcrossRollback()
        Returns whether open statements across rollback are supported.
        Specified by:
        supportsOpenStatementsAcrossRollback in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsTransactions

        public boolean supportsTransactions()
        Returns whether transactions are supported.
        Specified by:
        supportsTransactions in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsTransactionIsolationLevel

        public boolean supportsTransactionIsolationLevel​(int level)
                                                  throws java.sql.SQLException
        Returns whether a specific transaction isolation level is supported.
        Specified by:
        supportsTransactionIsolationLevel in interface java.sql.DatabaseMetaData
        Parameters:
        level - the transaction isolation level (Connection.TRANSACTION_*)
        Returns:
        true
        Throws:
        java.sql.SQLException
      • supportsDataDefinitionAndDataManipulationTransactions

        public boolean supportsDataDefinitionAndDataManipulationTransactions()
        Returns whether data manipulation and CREATE/DROP is supported in transactions.
        Specified by:
        supportsDataDefinitionAndDataManipulationTransactions in interface java.sql.DatabaseMetaData
        Returns:
        false
      • supportsDataManipulationTransactionsOnly

        public boolean supportsDataManipulationTransactionsOnly()
        Returns whether only data manipulations are supported in transactions.
        Specified by:
        supportsDataManipulationTransactionsOnly in interface java.sql.DatabaseMetaData
        Returns:
        true
      • dataDefinitionCausesTransactionCommit

        public boolean dataDefinitionCausesTransactionCommit()
        Returns whether CREATE/DROP commit an open transaction.
        Specified by:
        dataDefinitionCausesTransactionCommit in interface java.sql.DatabaseMetaData
        Returns:
        true
      • dataDefinitionIgnoredInTransactions

        public boolean dataDefinitionIgnoredInTransactions()
        Returns whether CREATE/DROP do not affect transactions.
        Specified by:
        dataDefinitionIgnoredInTransactions in interface java.sql.DatabaseMetaData
        Returns:
        false
      • supportsResultSetType

        public boolean supportsResultSetType​(int type)
        Returns whether a specific result set type is supported. ResultSet.TYPE_SCROLL_SENSITIVE is not supported.
        Specified by:
        supportsResultSetType in interface java.sql.DatabaseMetaData
        Parameters:
        type - the result set type
        Returns:
        true for all types except ResultSet.TYPE_SCROLL_SENSITIVE
      • supportsResultSetConcurrency

        public boolean supportsResultSetConcurrency​(int type,
                                                    int concurrency)
        Returns whether a specific result set concurrency is supported. ResultSet.TYPE_SCROLL_SENSITIVE is not supported.
        Specified by:
        supportsResultSetConcurrency in interface java.sql.DatabaseMetaData
        Parameters:
        type - the result set type
        concurrency - the result set concurrency
        Returns:
        true if the type is not ResultSet.TYPE_SCROLL_SENSITIVE
      • ownUpdatesAreVisible

        public boolean ownUpdatesAreVisible​(int type)
        Returns whether own updates are visible.
        Specified by:
        ownUpdatesAreVisible in interface java.sql.DatabaseMetaData
        Parameters:
        type - the result set type
        Returns:
        true
      • ownDeletesAreVisible

        public boolean ownDeletesAreVisible​(int type)
        Returns whether own deletes are visible.
        Specified by:
        ownDeletesAreVisible in interface java.sql.DatabaseMetaData
        Parameters:
        type - the result set type
        Returns:
        false
      • ownInsertsAreVisible

        public boolean ownInsertsAreVisible​(int type)
        Returns whether own inserts are visible.
        Specified by:
        ownInsertsAreVisible in interface java.sql.DatabaseMetaData
        Parameters:
        type - the result set type
        Returns:
        false
      • othersUpdatesAreVisible

        public boolean othersUpdatesAreVisible​(int type)
        Returns whether other updates are visible.
        Specified by:
        othersUpdatesAreVisible in interface java.sql.DatabaseMetaData
        Parameters:
        type - the result set type
        Returns:
        false
      • othersDeletesAreVisible

        public boolean othersDeletesAreVisible​(int type)
        Returns whether other deletes are visible.
        Specified by:
        othersDeletesAreVisible in interface java.sql.DatabaseMetaData
        Parameters:
        type - the result set type
        Returns:
        false
      • othersInsertsAreVisible

        public boolean othersInsertsAreVisible​(int type)
        Returns whether other inserts are visible.
        Specified by:
        othersInsertsAreVisible in interface java.sql.DatabaseMetaData
        Parameters:
        type - the result set type
        Returns:
        false
      • updatesAreDetected

        public boolean updatesAreDetected​(int type)
        Returns whether updates are detected.
        Specified by:
        updatesAreDetected in interface java.sql.DatabaseMetaData
        Parameters:
        type - the result set type
        Returns:
        false
      • deletesAreDetected

        public boolean deletesAreDetected​(int type)
        Returns whether deletes are detected.
        Specified by:
        deletesAreDetected in interface java.sql.DatabaseMetaData
        Parameters:
        type - the result set type
        Returns:
        false
      • insertsAreDetected

        public boolean insertsAreDetected​(int type)
        Returns whether inserts are detected.
        Specified by:
        insertsAreDetected in interface java.sql.DatabaseMetaData
        Parameters:
        type - the result set type
        Returns:
        false
      • supportsBatchUpdates

        public boolean supportsBatchUpdates()
        Returns whether batch updates are supported.
        Specified by:
        supportsBatchUpdates in interface java.sql.DatabaseMetaData
        Returns:
        true
      • doesMaxRowSizeIncludeBlobs

        public boolean doesMaxRowSizeIncludeBlobs()
        Returns whether the maximum row size includes blobs.
        Specified by:
        doesMaxRowSizeIncludeBlobs in interface java.sql.DatabaseMetaData
        Returns:
        false
      • getDefaultTransactionIsolation

        public int getDefaultTransactionIsolation()
        Returns the default transaction isolation level.
        Specified by:
        getDefaultTransactionIsolation in interface java.sql.DatabaseMetaData
        Returns:
        Connection.TRANSACTION_READ_COMMITTED
      • supportsMixedCaseIdentifiers

        public boolean supportsMixedCaseIdentifiers()
                                             throws java.sql.SQLException
        Checks if for CREATE TABLE Test(ID INT), getTables returns Test as the table name and identifiers are case sensitive.
        Specified by:
        supportsMixedCaseIdentifiers in interface java.sql.DatabaseMetaData
        Returns:
        true is so, false otherwise
        Throws:
        java.sql.SQLException
      • storesUpperCaseIdentifiers

        public boolean storesUpperCaseIdentifiers()
                                           throws java.sql.SQLException
        Checks if for CREATE TABLE Test(ID INT), getTables returns TEST as the table name.
        Specified by:
        storesUpperCaseIdentifiers in interface java.sql.DatabaseMetaData
        Returns:
        true is so, false otherwise
        Throws:
        java.sql.SQLException
      • storesLowerCaseIdentifiers

        public boolean storesLowerCaseIdentifiers()
                                           throws java.sql.SQLException
        Checks if for CREATE TABLE Test(ID INT), getTables returns test as the table name.
        Specified by:
        storesLowerCaseIdentifiers in interface java.sql.DatabaseMetaData
        Returns:
        true is so, false otherwise
        Throws:
        java.sql.SQLException
      • storesMixedCaseIdentifiers

        public boolean storesMixedCaseIdentifiers()
                                           throws java.sql.SQLException
        Checks if for CREATE TABLE Test(ID INT), getTables returns Test as the table name and identifiers are not case sensitive.
        Specified by:
        storesMixedCaseIdentifiers in interface java.sql.DatabaseMetaData
        Returns:
        true is so, false otherwise
        Throws:
        java.sql.SQLException
      • supportsMixedCaseQuotedIdentifiers

        public boolean supportsMixedCaseQuotedIdentifiers()
                                                   throws java.sql.SQLException
        Checks if a table created with CREATE TABLE "Test"(ID INT) is a different table than a table created with CREATE TABLE "TEST"(ID INT).
        Specified by:
        supportsMixedCaseQuotedIdentifiers in interface java.sql.DatabaseMetaData
        Returns:
        true is so, false otherwise
        Throws:
        java.sql.SQLException
      • storesUpperCaseQuotedIdentifiers

        public boolean storesUpperCaseQuotedIdentifiers()
                                                 throws java.sql.SQLException
        Checks if for CREATE TABLE "Test"(ID INT), getTables returns TEST as the table name.
        Specified by:
        storesUpperCaseQuotedIdentifiers in interface java.sql.DatabaseMetaData
        Returns:
        false
        Throws:
        java.sql.SQLException
      • storesLowerCaseQuotedIdentifiers

        public boolean storesLowerCaseQuotedIdentifiers()
                                                 throws java.sql.SQLException
        Checks if for CREATE TABLE "Test"(ID INT), getTables returns test as the table name.
        Specified by:
        storesLowerCaseQuotedIdentifiers in interface java.sql.DatabaseMetaData
        Returns:
        false
        Throws:
        java.sql.SQLException
      • storesMixedCaseQuotedIdentifiers

        public boolean storesMixedCaseQuotedIdentifiers()
                                                 throws java.sql.SQLException
        Checks if for CREATE TABLE "Test"(ID INT), getTables returns Test as the table name and identifiers are case insensitive.
        Specified by:
        storesMixedCaseQuotedIdentifiers in interface java.sql.DatabaseMetaData
        Returns:
        true is so, false otherwise
        Throws:
        java.sql.SQLException
      • getMaxBinaryLiteralLength

        public int getMaxBinaryLiteralLength()
        Returns the maximum length for hex values (characters).
        Specified by:
        getMaxBinaryLiteralLength in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxCharLiteralLength

        public int getMaxCharLiteralLength()
        Returns the maximum length for literals.
        Specified by:
        getMaxCharLiteralLength in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxColumnNameLength

        public int getMaxColumnNameLength()
        Returns the maximum length for column names.
        Specified by:
        getMaxColumnNameLength in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxColumnsInGroupBy

        public int getMaxColumnsInGroupBy()
        Returns the maximum number of columns in GROUP BY.
        Specified by:
        getMaxColumnsInGroupBy in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxColumnsInIndex

        public int getMaxColumnsInIndex()
        Returns the maximum number of columns in CREATE INDEX.
        Specified by:
        getMaxColumnsInIndex in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxColumnsInOrderBy

        public int getMaxColumnsInOrderBy()
        Returns the maximum number of columns in ORDER BY.
        Specified by:
        getMaxColumnsInOrderBy in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxColumnsInSelect

        public int getMaxColumnsInSelect()
        Returns the maximum number of columns in SELECT.
        Specified by:
        getMaxColumnsInSelect in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxColumnsInTable

        public int getMaxColumnsInTable()
        Returns the maximum number of columns in CREATE TABLE.
        Specified by:
        getMaxColumnsInTable in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxConnections

        public int getMaxConnections()
        Returns the maximum number of open connection.
        Specified by:
        getMaxConnections in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxCursorNameLength

        public int getMaxCursorNameLength()
        Returns the maximum length for a cursor name.
        Specified by:
        getMaxCursorNameLength in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxIndexLength

        public int getMaxIndexLength()
        Returns the maximum length for an index (in bytes).
        Specified by:
        getMaxIndexLength in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxSchemaNameLength

        public int getMaxSchemaNameLength()
        Returns the maximum length for a schema name.
        Specified by:
        getMaxSchemaNameLength in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxProcedureNameLength

        public int getMaxProcedureNameLength()
        Returns the maximum length for a procedure name.
        Specified by:
        getMaxProcedureNameLength in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxCatalogNameLength

        public int getMaxCatalogNameLength()
        Returns the maximum length for a catalog name.
        Specified by:
        getMaxCatalogNameLength in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxRowSize

        public int getMaxRowSize()
        Returns the maximum size of a row (in bytes).
        Specified by:
        getMaxRowSize in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxStatementLength

        public int getMaxStatementLength()
        Returns the maximum length of a statement.
        Specified by:
        getMaxStatementLength in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxStatements

        public int getMaxStatements()
        Returns the maximum number of open statements.
        Specified by:
        getMaxStatements in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxTableNameLength

        public int getMaxTableNameLength()
        Returns the maximum length for a table name.
        Specified by:
        getMaxTableNameLength in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxTablesInSelect

        public int getMaxTablesInSelect()
        Returns the maximum number of tables in a SELECT.
        Specified by:
        getMaxTablesInSelect in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • getMaxUserNameLength

        public int getMaxUserNameLength()
        Returns the maximum length for a user name.
        Specified by:
        getMaxUserNameLength in interface java.sql.DatabaseMetaData
        Returns:
        0 for limit is unknown
      • supportsSavepoints

        public boolean supportsSavepoints()
        Does the database support savepoints.
        Specified by:
        supportsSavepoints in interface java.sql.DatabaseMetaData
        Returns:
        true
      • supportsNamedParameters

        public boolean supportsNamedParameters()
        Does the database support named parameters.
        Specified by:
        supportsNamedParameters in interface java.sql.DatabaseMetaData
        Returns:
        false
      • supportsMultipleOpenResults

        public boolean supportsMultipleOpenResults()
        Does the database support multiple open result sets returned from a CallableStatement.
        Specified by:
        supportsMultipleOpenResults in interface java.sql.DatabaseMetaData
        Returns:
        false
      • supportsGetGeneratedKeys

        public boolean supportsGetGeneratedKeys()
        Does the database support getGeneratedKeys.
        Specified by:
        supportsGetGeneratedKeys in interface java.sql.DatabaseMetaData
        Returns:
        true
      • getSuperTypes

        public java.sql.ResultSet getSuperTypes​(java.lang.String catalog,
                                                java.lang.String schemaPattern,
                                                java.lang.String typeNamePattern)
                                         throws java.sql.SQLException
        [Not supported]
        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
        Get the list of super tables of a table. This method currently returns an empty result set.
        1. TABLE_CAT (String) table catalog
        2. TABLE_SCHEM (String) table schema
        3. TABLE_NAME (String) table name
        4. SUPERTABLE_NAME (String) the name of the super table
        Specified by:
        getSuperTables in interface java.sql.DatabaseMetaData
        Parameters:
        catalog - null (to get all objects) or the catalog name
        schemaPattern - null (to get all objects) or a schema name (uppercase for unquoted names)
        tableNamePattern - null (to get all objects) or a table name pattern (uppercase for unquoted names)
        Returns:
        an empty result set
        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
        [Not supported]
        Specified by:
        getAttributes in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • supportsResultSetHoldability

        public boolean supportsResultSetHoldability​(int holdability)
        Does this database supports a result set holdability.
        Specified by:
        supportsResultSetHoldability in interface java.sql.DatabaseMetaData
        Parameters:
        holdability - ResultSet.HOLD_CURSORS_OVER_COMMIT or CLOSE_CURSORS_AT_COMMIT
        Returns:
        true if the holdability is ResultSet.CLOSE_CURSORS_AT_COMMIT
      • getResultSetHoldability

        public int getResultSetHoldability()
        Gets the result set holdability.
        Specified by:
        getResultSetHoldability in interface java.sql.DatabaseMetaData
        Returns:
        ResultSet.CLOSE_CURSORS_AT_COMMIT
      • getDatabaseMajorVersion

        public int getDatabaseMajorVersion()
                                    throws java.sql.SQLException
        Gets the major version of the database.
        Specified by:
        getDatabaseMajorVersion in interface java.sql.DatabaseMetaData
        Returns:
        the major version
        Throws:
        java.sql.SQLException
      • getDatabaseMinorVersion

        public int getDatabaseMinorVersion()
                                    throws java.sql.SQLException
        Gets the minor version of the database.
        Specified by:
        getDatabaseMinorVersion in interface java.sql.DatabaseMetaData
        Returns:
        the minor version
        Throws:
        java.sql.SQLException
      • getJDBCMajorVersion

        public int getJDBCMajorVersion()
        Gets the major version of the supported JDBC API.
        Specified by:
        getJDBCMajorVersion in interface java.sql.DatabaseMetaData
        Returns:
        the major version (4)
      • getJDBCMinorVersion

        public int getJDBCMinorVersion()
        Gets the minor version of the supported JDBC API.
        Specified by:
        getJDBCMinorVersion in interface java.sql.DatabaseMetaData
        Returns:
        the minor version (2)
      • getSQLStateType

        public int getSQLStateType()
        Gets the SQL State type.
        Specified by:
        getSQLStateType in interface java.sql.DatabaseMetaData
        Returns:
        DatabaseMetaData.sqlStateSQL
      • locatorsUpdateCopy

        public boolean locatorsUpdateCopy()
        Does the database make a copy before updating.
        Specified by:
        locatorsUpdateCopy in interface java.sql.DatabaseMetaData
        Returns:
        false
      • supportsStatementPooling

        public boolean supportsStatementPooling()
        Does the database support statement pooling.
        Specified by:
        supportsStatementPooling in interface java.sql.DatabaseMetaData
        Returns:
        false
      • checkClosed

        private void checkClosed()
      • getRowIdLifetime

        public java.sql.RowIdLifetime getRowIdLifetime()
        Get the lifetime of a rowid.
        Specified by:
        getRowIdLifetime in interface java.sql.DatabaseMetaData
        Returns:
        ROWID_UNSUPPORTED
      • getSchemas

        public java.sql.ResultSet getSchemas​(java.lang.String catalogPattern,
                                             java.lang.String schemaPattern)
                                      throws java.sql.SQLException
        Gets the list of schemas in the database. The result set is sorted by TABLE_SCHEM.
        1. TABLE_SCHEM (String) schema name
        2. TABLE_CATALOG (String) catalog name
        Specified by:
        getSchemas in interface java.sql.DatabaseMetaData
        Parameters:
        catalogPattern - null (to get all objects) or the catalog name
        schemaPattern - null (to get all objects) or a schema name (uppercase for unquoted names)
        Returns:
        the schema list
        Throws:
        java.sql.SQLException - if the connection is closed
      • supportsStoredFunctionsUsingCallSyntax

        public boolean supportsStoredFunctionsUsingCallSyntax()
        Returns whether the database supports calling functions using the call syntax.
        Specified by:
        supportsStoredFunctionsUsingCallSyntax in interface java.sql.DatabaseMetaData
        Returns:
        true
      • autoCommitFailureClosesAllResultSets

        public boolean autoCommitFailureClosesAllResultSets()
        Returns whether an exception while auto commit is on closes all result sets.
        Specified by:
        autoCommitFailureClosesAllResultSets in interface java.sql.DatabaseMetaData
        Returns:
        false
      • getClientInfoProperties

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

        public <T> T unwrap​(java.lang.Class<T> iface)
                     throws java.sql.SQLException
        Return an object of this class if possible.
        Specified by:
        unwrap in interface java.sql.Wrapper
        Parameters:
        iface - the class
        Returns:
        this
        Throws:
        java.sql.SQLException
      • isWrapperFor

        public boolean isWrapperFor​(java.lang.Class<?> iface)
                             throws java.sql.SQLException
        Checks if unwrap can return an object of this class.
        Specified by:
        isWrapperFor in interface java.sql.Wrapper
        Parameters:
        iface - the class
        Returns:
        whether or not the interface is assignable from this class
        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
        [Not supported] Gets the list of function columns.
        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
        [Not supported] Gets the list of functions.
        Specified by:
        getFunctions in interface java.sql.DatabaseMetaData
        Throws:
        java.sql.SQLException
      • generatedKeyAlwaysReturned

        public boolean generatedKeyAlwaysReturned()
        Returns whether database always returns generated keys if valid names or indexes of columns were specified and command was completed successfully.
        Specified by:
        generatedKeyAlwaysReturned in interface java.sql.DatabaseMetaData
        Returns:
        true
      • 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
        Gets the list of pseudo and invisible columns. The result set is sorted by TABLE_SCHEM, TABLE_NAME, and COLUMN_NAME.
        1. TABLE_CAT (String) table catalog
        2. TABLE_SCHEM (String) table schema
        3. TABLE_NAME (String) table name
        4. COLUMN_NAME (String) column name
        5. DATA_TYPE (int) data type (see java.sql.Types)
        6. COLUMN_SIZE (int) precision (values larger than 2 GB are returned as 2 GB)
        7. DECIMAL_DIGITS (int) scale (0 for INTEGER and VARCHAR)
        8. NUM_PREC_RADIX (int) radix
        9. COLUMN_USAGE (String) he allowed usage for the column, see PseudoColumnUsage
        10. REMARKS (String) comment
        11. CHAR_OCTET_LENGTH (int) for char types the maximum number of bytes in the column
        12. IS_NULLABLE (String) "NO" or "YES"
        Specified by:
        getPseudoColumns in interface java.sql.DatabaseMetaData
        Parameters:
        catalog - null (to get all objects) or the catalog name
        schemaPattern - null (to get all objects) or a schema name (uppercase for unquoted names)
        tableNamePattern - null (to get all objects) or a table name (uppercase for unquoted names)
        columnNamePattern - null (to get all objects) or a column name (uppercase for unquoted names)
        Returns:
        the list of pseudo and invisible columns
        Throws:
        java.sql.SQLException
      • toString

        public java.lang.String toString()
        INTERNAL
        Overrides:
        toString in class java.lang.Object