ldbc.sql.DatabaseMetaData.scala Maven / Gradle / Ivy
Show all versions of ldbc-sql_3 Show documentation
/**
* Copyright (c) 2023-2024 by Takahiko Tominaga
* This software is licensed under the MIT License (MIT).
* For more information see LICENSE or https://opensource.org/licenses/MIT
*/
package ldbc.sql
/**
* Comprehensive information about the database as a whole.
*
* This interface is implemented by driver vendors to let users know the capabilities
* of a Database Management System (DBMS) in combination with
* the driver based on JDBC™ technology
* ("JDBC driver") that is used with it. Different relational DBMSs often support
* different features, implement features in different ways, and use different
* data types. In addition, a driver may implement a feature on top of what the
* DBMS offers. Information returned by methods in this interface applies
* to the capabilities of a particular driver and a particular DBMS working
* together. Note that as used in this documentation, the term "database" is
* used generically to refer to both the driver and DBMS.
*
* A user for this interface is commonly a tool that needs to discover how to
* deal with the underlying DBMS. This is especially true for applications
* that are intended to be used with more than one DBMS. For example, a tool might use the method
* getTypeInfo
to find out what data types can be used in a
* CREATE TABLE
statement. Or a user might call the method
* supportsCorrelatedSubqueries
to see if it is possible to use
* a correlated subquery or supportsBatchUpdates
to see if it is
* possible to use batch updates.
*
* Some DatabaseMetaData
methods return lists of information
* in the form of ResultSet
objects.
* Regular ResultSet
methods, such as
* getString
and getInt
, can be used
* to retrieve the data from these ResultSet
objects. If
* a given form of metadata is not available, an empty ResultSet
* will be returned. Additional columns beyond the columns defined to be
* returned by the ResultSet
object for a given method
* can be defined by the JDBC driver vendor and must be accessed
* by their column label.
*
* Some DatabaseMetaData
methods take arguments that are
* String patterns. These arguments all have names such as fooPattern.
* Within a pattern String, "%" means match any substring of 0 or more
* characters, and "_" means match any one character. Only metadata
* entries matching the search pattern are returned. If a search pattern
* argument is set to null
, that argument's criterion will
* be dropped from the search.
*
* @tparam F
* the effect type
*/
trait DatabaseMetaData[F[_]]:
/**
* Retrieves whether the current user can call all the procedures
* returned by the method getProcedures
.
*
* @return true
if so; false
otherwise
*/
def allProceduresAreCallable(): Boolean
/**
* Retrieves whether the current user can use all the tables returned
* by the method getTables
in a SELECT
* statement.
*
* @return true
if so; false
otherwise
*/
def allTablesAreSelectable(): Boolean
/**
* Retrieves the URL for this DBMS.
*
* @return the URL for this DBMS
*/
def getURL(): String
/**
* Retrieves the user name as known to this database.
*
* @return the database user name
*/
def getUserName(): F[String]
/**
* Retrieves whether this database is in read-only mode.
*
* @return true
if so; false
otherwise
*/
def isReadOnly(): Boolean
/**
* Retrieves whether NULL
values are sorted high.
* Sorted high means that NULL
values
* sort higher than any other value in a domain. In an ascending order,
* if this method returns true
, NULL
values
* will appear at the end. By contrast, the method
* nullsAreSortedAtEnd
indicates whether NULL
values
* are sorted at the end regardless of sort order.
*
* @return true
if so; false
otherwise
*/
def nullsAreSortedHigh(): Boolean = false
/**
* Retrieves whether NULL
values are sorted low.
* Sorted low means that NULL
values
* sort lower than any other value in a domain. In an ascending order,
* if this method returns true
, NULL
values
* will appear at the beginning. By contrast, the method
* nullsAreSortedAtStart
indicates whether NULL
values
* are sorted at the beginning regardless of sort order.
*
* @return true
if so; false
otherwise
*/
def nullsAreSortedLow(): Boolean = false
/**
* Retrieves whether NULL
values are sorted at the start regardless
* of sort order.
*
* @return true
if so; false
otherwise
*/
def nullsAreSortedAtStart(): Boolean
/**
* Retrieves whether NULL
values are sorted at the end regardless of
* sort order.
*
* @return true
if so; false
otherwise
*/
def nullsAreSortedAtEnd(): Boolean
/**
* Retrieves the name of this database product.
*
* @return database product name
*/
def getDatabaseProductName(): String
/**
* Retrieves the version number of this database product.
*
* @return database version number
*/
def getDatabaseProductVersion(): String
/**
* Retrieves the name of this JDBC driver.
*
* @return JDBC driver name
*/
def getDriverName(): String
/**
* Retrieves the version number of this JDBC driver as a String
.
*
* @return JDBC driver version
*/
def getDriverVersion(): String
/**
* Retrieves this JDBC driver's major version number.
*
* @return JDBC driver major version
*/
def getDriverMajorVersion(): Int
/**
* Retrieves this JDBC driver's minor version number.
*
* @return JDBC driver minor version number
*/
def getDriverMinorVersion(): Int
/**
* Retrieves whether this database stores tables in a local file.
*
* @return true
if so; false
otherwise
*/
def usesLocalFiles(): Boolean
/**
* Retrieves whether this database uses a file for each table.
*
* @return true
if this database uses a local file for each table;
* false
otherwise
*/
def usesLocalFilePerTable(): Boolean
/**
* Retrieves whether this database treats mixed case unquoted SQL identifiers as
* case sensitive and as a result stores them in mixed case.
*
* @return true
if so; false
otherwise
*/
def supportsMixedCaseIdentifiers(): Boolean
/**
* Retrieves whether this database treats mixed case unquoted SQL identifiers as
* case insensitive and stores them in upper case.
*
* @return true
if so; false
otherwise
*/
def storesUpperCaseIdentifiers(): Boolean
/**
* Retrieves whether this database treats mixed case unquoted SQL identifiers as
* case insensitive and stores them in lower case.
*
* @return true
if so; false
otherwise
*/
def storesLowerCaseIdentifiers(): Boolean
/**
* Retrieves whether this database treats mixed case unquoted SQL identifiers as
* case insensitive and stores them in mixed case.
*
* @return true
if so; false
otherwise
*/
def storesMixedCaseIdentifiers(): Boolean
/**
* Retrieves whether this database treats mixed case quoted SQL identifiers as
* case sensitive and as a result stores them in mixed case.
*
* @return true
if so; false
otherwise
*/
def supportsMixedCaseQuotedIdentifiers(): Boolean
/**
* Retrieves whether this database treats mixed case quoted SQL identifiers as
* case insensitive and stores them in upper case.
*
* @return true
if so; false
otherwise
*/
def storesUpperCaseQuotedIdentifiers(): Boolean
/**
* Retrieves whether this database treats mixed case quoted SQL identifiers as
* case insensitive and stores them in lower case.
*
* @return true
if so; false
otherwise
*/
def storesLowerCaseQuotedIdentifiers(): Boolean
/**
* Retrieves whether this database treats mixed case quoted SQL identifiers as
* case insensitive and stores them in mixed case.
*
* @return true
if so; false
otherwise
*/
def storesMixedCaseQuotedIdentifiers(): Boolean
/**
* Retrieves the string used to quote SQL identifiers.
* This method returns a space " " if identifier quoting is not supported.
*
* @return the quoting string or a space if quoting is not supported
*/
def getIdentifierQuoteString(): String
/**
* Retrieves a comma-separated list of all of this database's SQL keywords
* that are NOT also SQL:2003 keywords.
*
* @return the list of this database's keywords that are not also
* SQL:2003 keywords
*/
def getSQLKeywords(): F[String]
/**
* Retrieves a comma-separated list of math functions available with
* this database. These are the Open /Open CLI math function names used in
* the JDBC function escape clause.
*
* @return the list of math functions supported by this database
*/
def getNumericFunctions(): String
/**
* Retrieves a comma-separated list of string functions available with
* this database. These are the Open Group CLI string function names used
* in the JDBC function escape clause.
*
* @return the list of string functions supported by this database
*/
def getStringFunctions(): String
/**
* Retrieves a comma-separated list of system functions available with
* this database. These are the Open Group CLI system function names used
* in the JDBC function escape clause.
*
* @return a list of system functions supported by this database
*/
def getSystemFunctions(): String
/**
* Retrieves a comma-separated list of the time and date functions available
* with this database.
*
* @return the list of time and date functions supported by this database
*/
def getTimeDateFunctions(): String
/**
* Retrieves the string that can be used to escape wildcard characters.
* This is the string that can be used to escape '_' or '%' in
* the catalog search parameters that are a pattern (and therefore use one
* of the wildcard characters).
*
*
The '_' character represents any single character;
* the '%' character represents any sequence of zero or
* more characters.
*
* @return the string used to escape wildcard characters
*/
def getSearchStringEscape(): String
/**
* Retrieves all the "extra" characters that can be used in unquoted
* identifier names (those beyond a-z, A-Z, 0-9 and _).
*
* @return the string containing the extra characters
*/
def getExtraNameCharacters(): String
// --------------------------------------------------------------------
// Functions describing which features are supported.
/**
* Retrieves whether this database supports ALTER TABLE
* with add column.
*
* @return true
if so; false
otherwise
*/
def supportsAlterTableWithAddColumn(): Boolean
/**
* Retrieves whether this database supports ALTER TABLE
* with drop column.
*
* @return true
if so; false
otherwise
*/
def supportsAlterTableWithDropColumn(): Boolean
/**
* Retrieves whether this database supports column aliasing.
*
*
If so, the SQL AS clause can be used to provide names for
* computed columns or to provide alias names for columns as
* required.
*
* @return true
if so; false
otherwise
*/
def supportsColumnAliasing(): Boolean
/**
* Retrieves whether this database supports concatenations between
* NULL
and non-NULL
values being
* NULL
.
*
* @return true
if so; false
otherwise
*/
def nullPlusNonNullIsNull(): Boolean
/**
* Retrieves whether this database supports the JDBC scalar function
* CONVERT
for the conversion of one JDBC type to another.
* The JDBC types are the generic SQL data types defined
* in java.sql.Types
.
*
* @return true
if so; false
otherwise
*/
def supportsConvert(): Boolean
/**
* Retrieves whether this database supports the JDBC scalar function
* CONVERT
for conversions between the JDBC types fromType
* and toType. The JDBC types are the generic SQL data types defined
* in java.sql.Types
.
*
* @param fromType the type to convert from; one of the type codes from
* the class java.sql.Types
* @param toType the type to convert to; one of the type codes from
* the class java.sql.Types
* @return true
if so; false
otherwise
*/
def supportsConvert(fromType: Int, toType: Int): Boolean
/**
* Retrieves whether this database supports table correlation names.
*
* @return true
if so; false
otherwise
*/
def supportsTableCorrelationNames(): Boolean
/**
* Retrieves whether, when table correlation names are supported, they
* are restricted to being different from the names of the tables.
*
* @return true
if so; false
otherwise
*/
def supportsDifferentTableCorrelationNames(): Boolean
/**
* Retrieves whether this database supports expressions in
* ORDER BY
lists.
*
* @return true
if so; false
otherwise
*/
def supportsExpressionsInOrderBy(): Boolean
/**
* Retrieves whether this database supports using a column that is
* not in the SELECT
statement in an
* ORDER BY
clause.
*
* @return true
if so; false
otherwise
*/
def supportsOrderByUnrelated(): Boolean
/**
* Retrieves whether this database supports some form of
* GROUP BY
clause.
*
* @return true
if so; false
otherwise
*/
def supportsGroupBy(): Boolean
/**
* Retrieves whether this database supports using a column that is
* not in the SELECT
statement in a
* GROUP BY
clause.
*
* @return true
if so; false
otherwise
*/
def supportsGroupByUnrelated(): Boolean
/**
* Retrieves whether this database supports using columns not included in
* the SELECT
statement in a GROUP BY
clause
* provided that all of the columns in the SELECT
statement
* are included in the GROUP BY
clause.
*
* @return true
if so; false
otherwise
*/
def supportsGroupByBeyondSelect(): Boolean
/**
* Retrieves whether this database supports specifying a
* LIKE
escape clause.
*
* @return true
if so; false
otherwise
*/
def supportsLikeEscapeClause(): Boolean
/**
* Retrieves whether this database supports getting multiple
* ResultSet
objects from a single call to the
* method execute
.
*
* @return true
if so; false
otherwise
*/
def supportsMultipleResultSets(): Boolean
/**
* Retrieves whether this database allows having multiple
* transactions open at once (on different connections).
*
* @return true
if so; false
otherwise
*/
def supportsMultipleTransactions(): Boolean
/**
* Retrieves whether columns in this database may be defined as non-nullable.
*
* @return true
if so; false
otherwise
*/
def supportsNonNullableColumns(): Boolean
/**
* Retrieves whether this database supports the ODBC Minimum SQL grammar.
*
* @return true
if so; false
otherwise
*/
def supportsMinimumSQLGrammar(): Boolean
/**
* Retrieves whether this database supports the ODBC Core SQL grammar.
*
* @return true
if so; false
otherwise
*/
def supportsCoreSQLGrammar(): Boolean
/**
* Retrieves whether this database supports the ODBC Extended SQL grammar.
*
* @return true
if so; false
otherwise
*/
def supportsExtendedSQLGrammar(): Boolean
/**
* Retrieves whether this database supports the ANSI92 entry level SQL
* grammar.
*
* @return true
if so; false
otherwise
*/
def supportsANSI92EntryLevelSQL(): Boolean
/**
* Retrieves whether this database supports the ANSI92 intermediate SQL grammar supported.
*
* @return true
if so; false
otherwise
*/
def supportsANSI92IntermediateSQL(): Boolean
/**
* Retrieves whether this database supports the ANSI92 full SQL grammar supported.
*
* @return true
if so; false
otherwise
*/
def supportsANSI92FullSQL(): Boolean
/**
* Retrieves whether this database supports the SQL Integrity
* Enhancement Facility.
*
* @return true
if so; false
otherwise
*/
def supportsIntegrityEnhancementFacility(): Boolean
/**
* Retrieves whether this database supports some form of outer join.
*
* @return true
if so; false
otherwise
*/
def supportsOuterJoins(): Boolean
/**
* Retrieves whether this database supports full nested outer joins.
*
* @return true
if so; false
otherwise
*/
def supportsFullOuterJoins(): Boolean
/**
* Retrieves whether this database provides limited support for outer
* joins. (This will be true
if the method
* supportsFullOuterJoins
returns true
).
*
* @return true
if so; false
otherwise
*/
def supportsLimitedOuterJoins(): Boolean
/**
* Retrieves the database vendor's preferred term for "schema".
*
* @return the vendor term for "schema"
*/
def getSchemaTerm(): String
/**
* Retrieves the database vendor's preferred term for "procedure".
*
* @return the vendor term for "procedure"
*/
def getProcedureTerm(): String
/**
* Retrieves the database vendor's preferred term for "catalog".
*
* @return the vendor term for "catalog"
*/
def getCatalogTerm(): String
/**
* Retrieves whether a catalog appears at the start of a fully qualified
* table name. If not, the catalog appears at the end.
*
* @return true
if the catalog name appears at the beginning
* of a fully qualified table name; false
otherwise
*/
def isCatalogAtStart(): Boolean
/**
* Retrieves the String
that this database uses as the
* separator between a catalog and table name.
*
* @return the separator string
*/
def getCatalogSeparator(): String
/**
* Retrieves whether a schema name can be used in a data manipulation statement.
*
* @return true
if so; false
otherwise
*/
def supportsSchemasInDataManipulation(): Boolean
/**
* Retrieves whether a schema name can be used in a procedure call statement.
*
* @return true
if so; false
otherwise
*/
def supportsSchemasInProcedureCalls(): Boolean
/**
* Retrieves whether a schema name can be used in a table definition statement.
*
* @return true
if so; false
otherwise
*/
def supportsSchemasInTableDefinitions(): Boolean
/**
* Retrieves whether a schema name can be used in an index definition statement.
*
* @return true
if so; false
otherwise
*/
def supportsSchemasInIndexDefinitions(): Boolean
/**
* Retrieves whether a schema name can be used in a privilege definition statement.
*
* @return true
if so; false
otherwise
*/
def supportsSchemasInPrivilegeDefinitions(): Boolean
/**
* Retrieves whether a catalog name can be used in a data manipulation statement.
*
* @return true
if so; false
otherwise
*/
def supportsCatalogsInDataManipulation(): Boolean
/**
* Retrieves whether a catalog name can be used in a procedure call statement.
*
* @return true
if so; false
otherwise
*/
def supportsCatalogsInProcedureCalls(): Boolean
/**
* Retrieves whether a catalog name can be used in a table definition statement.
*
* @return true
if so; false
otherwise
*/
def supportsCatalogsInTableDefinitions(): Boolean
/**
* Retrieves whether a catalog name can be used in an index definition statement.
*
* @return true
if so; false
otherwise
*/
def supportsCatalogsInIndexDefinitions(): Boolean
/**
* Retrieves whether a catalog name can be used in a privilege definition statement.
*
* @return true
if so; false
otherwise
*/
def supportsCatalogsInPrivilegeDefinitions(): Boolean
/**
* Retrieves whether this database supports positioned DELETE
* statements.
*
* @return true
if so; false
otherwise
*/
def supportsPositionedDelete(): Boolean
/**
* Retrieves whether this database supports positioned UPDATE
* statements.
*
* @return true
if so; false
otherwise
*/
def supportsPositionedUpdate(): Boolean
/**
* Retrieves whether this database supports SELECT FOR UPDATE
* statements.
*
* @return true
if so; false
otherwise
*/
def supportsSelectForUpdate(): Boolean
/**
* Retrieves whether this database supports stored procedure calls
* that use the stored procedure escape syntax.
*
* @return true
if so; false
otherwise
*/
def supportsStoredProcedures(): Boolean
/**
* Retrieves whether this database supports subqueries in comparison
* expressions.
*
* @return true
if so; false
otherwise
*/
def supportsSubqueriesInComparisons(): Boolean
/**
* Retrieves whether this database supports subqueries in
* EXISTS
expressions.
*
* @return true
if so; false
otherwise
*/
def supportsSubqueriesInExists(): Boolean
/**
* Retrieves whether this database supports subqueries in
* IN
expressions.
*
* @return true
if so; false
otherwise
*/
def supportsSubqueriesInIns(): Boolean
/**
* Retrieves whether this database supports subqueries in quantified
* expressions.
*
* @return true
if so; false
otherwise
*/
def supportsSubqueriesInQuantifieds(): Boolean
/**
* Retrieves whether this database supports correlated subqueries.
*
* @return true
if so; false
otherwise
*/
def supportsCorrelatedSubqueries(): Boolean
/**
* Retrieves whether this database supports SQL UNION
.
*
* @return true
if so; false
otherwise
*/
def supportsUnion(): Boolean
/**
* Retrieves whether this database supports SQL UNION ALL
.
*
* @return true
if so; false
otherwise
*/
def supportsUnionAll(): Boolean
/**
* Retrieves whether this database supports keeping cursors open
* across commits.
*
* @return true
if cursors always remain open;
* false
if they might not remain open
*/
def supportsOpenCursorsAcrossCommit(): Boolean
/**
* Retrieves whether this database supports keeping cursors open
* across rollbacks.
*
* @return true
if cursors always remain open;
* false
if they might not remain open
*/
def supportsOpenCursorsAcrossRollback(): Boolean
/**
* Retrieves whether this database supports keeping statements open
* across commits.
*
* @return true
if statements always remain open;
* false
if they might not remain open
*/
def supportsOpenStatementsAcrossCommit(): Boolean
/**
* Retrieves whether this database supports keeping statements open
* across rollbacks.
*
* @return true
if statements always remain open;
* false
if they might not remain open
*/
def supportsOpenStatementsAcrossRollback(): Boolean
// ----------------------------------------------------------------------
// The following group of methods exposes various limitations
// based on the target database with the current driver.
// Unless otherwise specified, a result of zero means there is no
// limit, or the limit is not known.
/**
* Retrieves the maximum number of hex characters this database allows in an
* inline binary literal.
*
* @return max the maximum length (in hex characters) for a binary literal;
* a result of zero means that there is no limit or the limit
* is not known
*/
def getMaxBinaryLiteralLength(): Int
/**
* Retrieves the maximum number of characters this database allows
* for a character literal.
*
* @return the maximum number of characters allowed for a character literal;
* a result of zero means that there is no limit or the limit is
* not known
*/
def getMaxCharLiteralLength(): Int
/**
* Retrieves the maximum number of characters this database allows
* for a column name.
*
* @return the maximum number of characters allowed for a column name;
* a result of zero means that there is no limit or the limit
* is not known
*/
def getMaxColumnNameLength(): Int
/**
* Retrieves the maximum number of columns this database allows in a
* GROUP BY
clause.
*
* @return the maximum number of columns allowed;
* a result of zero means that there is no limit or the limit
* is not known
*/
def getMaxColumnsInGroupBy(): Int
/**
* Retrieves the maximum number of columns this database allows in an index.
*
* @return the maximum number of columns allowed;
* a result of zero means that there is no limit or the limit
* is not known
*/
def getMaxColumnsInIndex(): Int
/**
* Retrieves the maximum number of columns this database allows in an
* ORDER BY
clause.
*
* @return the maximum number of columns allowed;
* a result of zero means that there is no limit or the limit
* is not known
*/
def getMaxColumnsInOrderBy(): Int
/**
* Retrieves the maximum number of columns this database allows in a
* SELECT
list.
*
* @return the maximum number of columns allowed;
* a result of zero means that there is no limit or the limit
* is not known
*/
def getMaxColumnsInSelect(): Int
/**
* Retrieves the maximum number of columns this database allows in a table.
*
* @return the maximum number of columns allowed;
* a result of zero means that there is no limit or the limit
* is not known
*/
def getMaxColumnsInTable(): Int
/**
* Retrieves the maximum number of concurrent connections to this
* database that are possible.
*
* @return the maximum number of active connections possible at one time;
* a result of zero means that there is no limit or the limit
* is not known
*/
def getMaxConnections(): Int
/**
* Retrieves the maximum number of characters that this database allows in a
* cursor name.
*
* @return the maximum number of characters allowed in a cursor name;
* a result of zero means that there is no limit or the limit
* is not known
*/
def getMaxCursorNameLength(): Int
/**
* Retrieves the maximum number of bytes this database allows for an
* index, including all of the parts of the index.
*
* @return the maximum number of bytes allowed; this limit includes the
* composite of all the constituent parts of the index;
* a result of zero means that there is no limit or the limit
* is not known
*/
def getMaxIndexLength(): Int
/**
* Retrieves the maximum number of characters that this database allows in a
* schema name.
*
* @return the maximum number of characters allowed in a schema name;
* a result of zero means that there is no limit or the limit
* is not known
*/
def getMaxSchemaNameLength(): Int
/**
* Retrieves the maximum number of characters that this database allows in a
* procedure name.
*
* @return the maximum number of characters allowed in a procedure name;
* a result of zero means that there is no limit or the limit
* is not known
*/
def getMaxProcedureNameLength(): Int
/**
* Retrieves the maximum number of characters that this database allows in a
* catalog name.
*
* @return the maximum number of characters allowed in a catalog name;
* a result of zero means that there is no limit or the limit
* is not known
*/
def getMaxCatalogNameLength(): Int
/**
* Retrieves the maximum number of bytes this database allows in
* a single row.
*
* @return the maximum number of bytes allowed for a row; a result of
* zero means that there is no limit or the limit is not known
*/
def getMaxRowSize(): Int
/**
* Retrieves whether the return value for the method
* getMaxRowSize
includes the SQL data types
* LONGVARCHAR
and LONGVARBINARY
.
*
* @return true
if so; false
otherwise
*/
def doesMaxRowSizeIncludeBlobs(): Boolean
/**
* Retrieves the maximum number of characters this database allows in
* an SQL statement.
*
* @return the maximum number of characters allowed for an SQL statement;
* a result of zero means that there is no limit or the limit
* is not known
*/
def getMaxStatementLength(): Int
/**
* Retrieves the maximum number of active statements to this database
* that can be open at the same time.
*
* @return the maximum number of statements that can be open at one time;
* a result of zero means that there is no limit or the limit
* is not known
*/
def getMaxStatements(): Int
/**
* Retrieves the maximum number of characters this database allows in
* a table name.
*
* @return the maximum number of characters allowed for a table name;
* a result of zero means that there is no limit or the limit
* is not known
*/
def getMaxTableNameLength(): Int
/**
* Retrieves the maximum number of tables this database allows in a
* SELECT
statement.
*
* @return the maximum number of tables allowed in a SELECT
* statement; a result of zero means that there is no limit or
* the limit is not known
*/
def getMaxTablesInSelect(): Int
/**
* Retrieves the maximum number of characters this database allows in
* a user name.
*
* @return the maximum number of characters allowed for a user name;
* a result of zero means that there is no limit or the limit
* is not known
*/
def getMaxUserNameLength(): Int
/**
* Retrieves this database's default transaction isolation level. The
* possible values are defined in java.sql.Connection
.
*
* @return the default isolation level
*/
def getDefaultTransactionIsolation(): Int
/**
* Retrieves whether this database supports transactions. If not, invoking the
* method commit
is a noop, and the isolation level is
* TRANSACTION_NONE
.
*
* @return true
if transactions are supported;
* false
otherwise
*/
def supportsTransactions(): Boolean
/**
* Retrieves whether this database supports the given transaction isolation level.
*
* @param level one of the transaction isolation levels defined in
* java.sql.Connection
* @return true
if so; false
otherwise
*/
def supportsTransactionIsolationLevel(level: Int): Boolean
/**
* Retrieves whether this database supports both data definition and
* data manipulation statements within a transaction.
*
* @return true
if so; false
otherwise
*/
def supportsDataDefinitionAndDataManipulationTransactions(): Boolean
/**
* Retrieves whether this database supports only data manipulation
* statements within a transaction.
*
* @return true
if so; false
otherwise
*/
def supportsDataManipulationTransactionsOnly(): Boolean
/**
* Retrieves whether a data definition statement within a transaction forces
* the transaction to commit.
*
* @return true
if so; false
otherwise
*/
def dataDefinitionCausesTransactionCommit(): Boolean
/**
* Retrieves whether this database ignores a data definition statement
* within a transaction.
*
* @return true
if so; false
otherwise
*/
def dataDefinitionIgnoredInTransactions(): Boolean
/**
* Retrieves a description of the stored procedures available in the given
* catalog.
*
* Only procedure descriptions matching the schema and
* procedure name criteria are returned. They are ordered by
* PROCEDURE_CAT
, PROCEDURE_SCHEM
,
* PROCEDURE_NAME
and SPECIFIC_ NAME
.
*
*
Each procedure description has the following columns:
*
* - PROCEDURE_CAT String {@code =>} procedure catalog (may be
null
)
* - PROCEDURE_SCHEM String {@code =>} procedure schema (may be
null
)
* - PROCEDURE_NAME String {@code =>} procedure name
*
- reserved for future use
*
- reserved for future use
*
- reserved for future use
*
- REMARKS String {@code =>} explanatory comment on the procedure
*
- PROCEDURE_TYPE short {@code =>} kind of procedure:
*
* - procedureResultUnknown - Cannot determine if a return value
* will be returned
*
- procedureNoResult - Does not return a return value
*
- procedureReturnsResult - Returns a return value
*
* - SPECIFIC_NAME String {@code =>} The name which uniquely identifies this
* procedure within its schema.
*
*
* A user may not have permissions to execute any of the procedures that are
* returned by getProcedures
*
* @param catalog a catalog name; must match the catalog name as it
* is stored in the database; "" retrieves those without a catalog;
* null
means that the catalog name should not be used to narrow
* the search
* @param schemaPattern a schema name pattern; must match the schema name
* as it is stored in the database; "" retrieves those without a schema;
* null
means that the schema name should not be used to narrow
* the search
* @param procedureNamePattern a procedure name pattern; must match the
* procedure name as it is stored in the database
* @return ResultSet
- each row is a procedure description
*/
def getProcedures(catalog: String, schemaPattern: String, procedureNamePattern: String): F[ResultSet[F]] =
getProcedures(Some(catalog), Some(schemaPattern), Some(procedureNamePattern))
def getProcedures(
catalog: Option[String],
schemaPattern: Option[String],
procedureNamePattern: Option[String]
): F[ResultSet[F]]
/**
* Retrieves a description of the given catalog's stored procedure parameter
* and result columns.
*
*
Only descriptions matching the schema, procedure and
* parameter name criteria are returned. They are ordered by
* PROCEDURE_CAT, PROCEDURE_SCHEM, PROCEDURE_NAME and SPECIFIC_NAME. Within this, the return value,
* if any, is first. Next are the parameter descriptions in call
* order. The column descriptions follow in column number order.
*
*
Each row in the ResultSet
is a parameter description or
* column description with the following fields:
*
* - PROCEDURE_CAT String {@code =>} procedure catalog (may be
null
)
* - PROCEDURE_SCHEM String {@code =>} procedure schema (may be
null
)
* - PROCEDURE_NAME String {@code =>} procedure name
*
- COLUMN_NAME String {@code =>} column/parameter name
*
- COLUMN_TYPE Short {@code =>} kind of column/parameter:
*
* - procedureColumnUnknown - nobody knows
*
- procedureColumnIn - IN parameter
*
- procedureColumnInOut - INOUT parameter
*
- procedureColumnOut - OUT parameter
*
- procedureColumnReturn - procedure return value
*
- procedureColumnResult - result column in
ResultSet
*
* - DATA_TYPE int {@code =>} SQL type from java.sql.Types
*
- TYPE_NAME String {@code =>} SQL type name, for a UDT type the
* type name is fully qualified
*
- PRECISION int {@code =>} precision
*
- LENGTH int {@code =>} length in bytes of data
*
- SCALE short {@code =>} scale - null is returned for data types where
* SCALE is not applicable.
*
- RADIX short {@code =>} radix
*
- NULLABLE short {@code =>} can it contain NULL.
*
* - procedureNoNulls - does not allow NULL values
*
- procedureNullable - allows NULL values
*
- procedureNullableUnknown - nullability unknown
*
* - REMARKS String {@code =>} comment describing parameter/column
*
- COLUMN_DEF String {@code =>} default value for the column, which should be interpreted as a string when the value is enclosed in single quotes (may be
null
)
*
* - The string NULL (not enclosed in quotes) - if NULL was specified as the default value
*
- TRUNCATE (not enclosed in quotes) - if the specified default value cannot be represented without truncation
*
- NULL - if a default value was not specified
*
* - SQL_DATA_TYPE int {@code =>} reserved for future use
*
- SQL_DATETIME_SUB int {@code =>} reserved for future use
*
- CHAR_OCTET_LENGTH int {@code =>} the maximum length of binary and character based columns. For any other datatype the returned value is a
* NULL
*
- ORDINAL_POSITION int {@code =>} the ordinal position, starting from 1, for the input and output parameters for a procedure. A value of 0
*is returned if this row describes the procedure's return value. For result set columns, it is the
*ordinal position of the column in the result set starting from 1. If there are
*multiple result sets, the column ordinal positions are implementation
* defined.
*
- IS_NULLABLE String {@code =>} ISO rules are used to determine the nullability for a column.
*
* - YES --- if the column can include NULLs
*
- NO --- if the column cannot include NULLs
*
- empty string --- if the nullability for the
* column is unknown
*
* - SPECIFIC_NAME String {@code =>} the name which uniquely identifies this procedure within its schema.
*
*
* Note: Some databases may not return the column
* descriptions for a procedure.
*
*
The PRECISION column represents the specified column size for the given column.
* For numeric data, this is the maximum precision. For character data, this is the length in characters.
* For datetime datatypes, this is the length in characters of the String representation (assuming the
* maximum allowed precision of the fractional seconds component). For binary data, this is the length in bytes. For the ROWID datatype,
* this is the length in bytes. Null is returned for data types where the
* column size is not applicable.
* @param catalog a catalog name; must match the catalog name as it
* is stored in the database; "" retrieves those without a catalog;
* null
means that the catalog name should not be used to narrow
* the search
* @param schemaPattern a schema name pattern; must match the schema name
* as it is stored in the database; "" retrieves those without a schema;
* null
means that the schema name should not be used to narrow
* the search
* @param procedureNamePattern a procedure name pattern; must match the
* procedure name as it is stored in the database
* @param columnNamePattern a column name pattern; must match the column name
* as it is stored in the database
* @return ResultSet
- each row describes a stored procedure parameter or
* column
*/
def getProcedureColumns(
catalog: String,
schemaPattern: String,
procedureNamePattern: String,
columnNamePattern: String
): F[ResultSet[F]] =
getProcedureColumns(Some(catalog), Some(schemaPattern), Some(procedureNamePattern), Some(columnNamePattern))
def getProcedureColumns(
catalog: Option[String],
schemaPattern: Option[String],
procedureNamePattern: Option[String],
columnNamePattern: Option[String]
): F[ResultSet[F]]
/**
* Retrieves a description of the tables available in the given catalog.
* Only table descriptions matching the catalog, schema, table
* name and type criteria are returned. They are ordered by
* TABLE_TYPE
, TABLE_CAT
,
* TABLE_SCHEM
and TABLE_NAME
.
*
* Each table description has the following columns:
*
* - TABLE_CAT String {@code =>} table catalog (may be
null
)
* - TABLE_SCHEM String {@code =>} table schema (may be
null
)
* - TABLE_NAME String {@code =>} table name
*
- TABLE_TYPE String {@code =>} table type. Typical types are "TABLE",
* "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY",
* "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
*
- REMARKS String {@code =>} explanatory comment on the table (may be {@code null})
*
- TYPE_CAT String {@code =>} the types catalog (may be
null
)
* - TYPE_SCHEM String {@code =>} the types schema (may be
null
)
* - TYPE_NAME String {@code =>} type name (may be
null
)
* - SELF_REFERENCING_COL_NAME String {@code =>} name of the designated
* "identifier" column of a typed table (may be
null
)
* - REF_GENERATION String {@code =>} specifies how values in
* SELF_REFERENCING_COL_NAME are created. Values are
* "SYSTEM", "USER", "DERIVED". (may be
null
)
*
*
* Note: Some databases may not return information for
* all tables.
*
* @param catalog a catalog name; must match the catalog name as it
* is stored in the database; "" retrieves those without a catalog;
* null
means that the catalog name should not be used to narrow
* the search
* @param schemaPattern a schema name pattern; must match the schema name
* as it is stored in the database; "" retrieves those without a schema;
* null
means that the schema name should not be used to narrow
* the search
* @param tableNamePattern a table name pattern; must match the
* table name as it is stored in the database
* @param types a list of table types, which must be from the list of table types
* returned from {@link #getTableTypes},to include; null
returns
* all types
* @return ResultSet
- each row is a table description
*/
def getTables(
catalog: String,
schemaPattern: String,
tableNamePattern: String,
types: Array[String]
): F[ResultSet[F]] =
getTables(Some(catalog), Some(schemaPattern), Some(tableNamePattern), types)
def getTables(
catalog: Option[String],
schemaPattern: Option[String],
tableNamePattern: Option[String],
types: Array[String]
): F[ResultSet[F]]
/**
* Retrieves the schema names available in this database. The results
* are ordered by TABLE_CATALOG
and
* TABLE_SCHEM
.
*
*
The schema columns are:
*
* - TABLE_SCHEM String {@code =>} schema name
*
- TABLE_CATALOG String {@code =>} catalog name (may be
null
)
*
*
* @return a ResultSet
object in which each row is a
* schema description
*/
def getSchemas(): F[ResultSet[F]] = getSchemas(None, None)
/**
* Retrieves the catalog names available in this database. The results
* are ordered by catalog name.
*
* The catalog column is:
*
* - TABLE_CAT String {@code =>} catalog name
*
*
* @return a ResultSet
object in which each row has a
* single String
column that is a catalog name
*/
def getCatalogs(): F[ResultSet[F]]
/**
* Retrieves the table types available in this database. The results
* are ordered by table type.
*
* The table type is:
*
* - TABLE_TYPE String {@code =>} table type. Typical types are "TABLE",
* "VIEW", "SYSTEM TABLE", "GLOBAL TEMPORARY",
* "LOCAL TEMPORARY", "ALIAS", "SYNONYM".
*
*
* @return a ResultSet
object in which each row has a
* single String
column that is a table type
*/
def getTableTypes(): F[ResultSet[F]]
/**
* Retrieves a description of table columns available in
* the specified catalog.
*
* Only column descriptions matching the catalog, schema, table
* and column name criteria are returned. They are ordered by
* TABLE_CAT
,TABLE_SCHEM
,
* TABLE_NAME
, and ORDINAL_POSITION
.
*
*
Each column description has the following columns:
*
* - TABLE_CAT String {@code =>} table catalog (may be
null
)
* - TABLE_SCHEM String {@code =>} table schema (may be
null
)
* - TABLE_NAME String {@code =>} table name
*
- COLUMN_NAME String {@code =>} column name
*
- DATA_TYPE int {@code =>} SQL type from java.sql.Types
*
- TYPE_NAME String {@code =>} Data source dependent type name,
* for a UDT the type name is fully qualified
*
- COLUMN_SIZE int {@code =>} column size.
*
- BUFFER_LENGTH is not used.
*
- DECIMAL_DIGITS int {@code =>} the number of fractional digits. Null is returned for data types where
* DECIMAL_DIGITS is not applicable.
*
- NUM_PREC_RADIX int {@code =>} Radix (typically either 10 or 2)
*
- NULLABLE int {@code =>} is NULL allowed.
*
* - columnNoNulls - might not allow
NULL
values
* - columnNullable - definitely allows
NULL
values
* - columnNullableUnknown - nullability unknown
*
* - REMARKS String {@code =>} comment describing column (may be
null
)
* - COLUMN_DEF String {@code =>} default value for the column, which should be interpreted as a string when the value is enclosed in single quotes (may be
null
)
* - SQL_DATA_TYPE int {@code =>} unused
*
- SQL_DATETIME_SUB int {@code =>} unused
*
- CHAR_OCTET_LENGTH int {@code =>} for char types the
* maximum number of bytes in the column
*
- ORDINAL_POSITION int {@code =>} index of column in table
* (starting at 1)
*
- IS_NULLABLE String {@code =>} ISO rules are used to determine the nullability for a column.
*
* - YES --- if the column can include NULLs
*
- NO --- if the column cannot include NULLs
*
- empty string --- if the nullability for the
* column is unknown
*
* - SCOPE_CATALOG String {@code =>} catalog of table that is the scope
* of a reference attribute (
null
if DATA_TYPE isn't REF)
* - SCOPE_SCHEMA String {@code =>} schema of table that is the scope
* of a reference attribute (
null
if the DATA_TYPE isn't REF)
* - SCOPE_TABLE String {@code =>} table name that this the scope
* of a reference attribute (
null
if the DATA_TYPE isn't REF)
* - SOURCE_DATA_TYPE short {@code =>} source type of a distinct type or user-generated
* Ref type, SQL type from java.sql.Types (
null
if DATA_TYPE
* isn't DISTINCT or user-generated REF)
* - IS_AUTOINCREMENT String {@code =>} Indicates whether this column is auto incremented
*
* - YES --- if the column is auto incremented
*
- NO --- if the column is not auto incremented
*
- empty string --- if it cannot be determined whether the column is auto incremented
*
* - IS_GENERATEDCOLUMN String {@code =>} Indicates whether this is a generated column
*
* - YES --- if this a generated column
*
- NO --- if this not a generated column
*
- empty string --- if it cannot be determined whether this is a generated column
*
*
*
* The COLUMN_SIZE column specifies the column size for the given column.
* For numeric data, this is the maximum precision. For character data, this is the length in characters.
* For datetime datatypes, this is the length in characters of the String representation (assuming the
* maximum allowed precision of the fractional seconds component). For binary data, this is the length in bytes. For the ROWID datatype,
* this is the length in bytes. Null is returned for data types where the
* column size is not applicable.
*
* @param catalog a catalog name; must match the catalog name as it
* is stored in the database; "" retrieves those without a catalog;
* null
means that the catalog name should not be used to narrow
* the search
* @param schemaPattern a schema name pattern; must match the schema name
* as it is stored in the database; "" retrieves those without a schema;
* null
means that the schema name should not be used to narrow
* the search
* @param tableNamePattern a table name pattern; must match the
* table name as it is stored in the database
* @param columnNamePattern a column name pattern; must match the column
* name as it is stored in the database
* @return ResultSet
- each row is a column description
*/
def getColumns(
catalog: String,
schemaPattern: String,
tableName: String,
columnNamePattern: String
): F[ResultSet[F]] =
getColumns(Some(catalog), Some(schemaPattern), Some(tableName), Some(columnNamePattern))
def getColumns(
catalog: Option[String],
schemaPattern: Option[String],
tableName: Option[String],
columnNamePattern: Option[String]
): F[ResultSet[F]]
/**
* Retrieves a description of the access rights for a table's columns.
*
*
Only privileges matching the column name criteria are
* returned. They are ordered by COLUMN_NAME and PRIVILEGE.
*
*
Each privilege description has the following columns:
*
* - TABLE_CAT String {@code =>} table catalog (may be
null
)
* - TABLE_SCHEM String {@code =>} table schema (may be
null
)
* - TABLE_NAME String {@code =>} table name
*
- COLUMN_NAME String {@code =>} column name
*
- GRANTOR String {@code =>} grantor of access (may be
null
)
* - GRANTEE String {@code =>} grantee of access
*
- PRIVILEGE String {@code =>} name of access (SELECT,
* INSERT, UPDATE, REFERENCES, ...)
*
- IS_GRANTABLE String {@code =>} "YES" if grantee is permitted
* to grant to others; "NO" if not;
null
if unknown
*
*
* @param catalog a catalog name; must match the catalog name as it
* is stored in the database; "" retrieves those without a catalog;
* null
means that the catalog name should not be used to narrow
* the search
* @param schema a schema name; must match the schema name as it is
* stored in the database; "" retrieves those without a schema;
* null
means that the schema name should not be used to narrow
* the search
* @param table a table name; must match the table name as it is
* stored in the database
* @param columnNamePattern a column name pattern; must match the column
* name as it is stored in the database
* @return ResultSet
- each row is a column privilege description
*/
def getColumnPrivileges(catalog: String, schema: String, table: String, columnNamePattern: String): F[ResultSet[F]] =
getColumnPrivileges(Some(catalog), Some(schema), Some(table), Some(columnNamePattern))
def getColumnPrivileges(
catalog: Option[String],
schema: Option[String],
table: Option[String],
columnNamePattern: Option[String]
): F[ResultSet[F]]
/**
* Retrieves a description of the access rights for each table available
* in a catalog. Note that a table privilege applies to one or
* more columns in the table. It would be wrong to assume that
* this privilege applies to all columns (this may be true for
* some systems but is not true for all.)
*
* Only privileges matching the schema and table name
* criteria are returned. They are ordered by
* TABLE_CAT
,
* TABLE_SCHEM
, TABLE_NAME
,
* and PRIVILEGE
.
*
*
Each privilege description has the following columns:
*
* - TABLE_CAT String {@code =>} table catalog (may be
null
)
* - TABLE_SCHEM String {@code =>} table schema (may be
null
)
* - TABLE_NAME String {@code =>} table name
*
- GRANTOR String {@code =>} grantor of access (may be
null
)
* - GRANTEE String {@code =>} grantee of access
*
- PRIVILEGE String {@code =>} name of access (SELECT,
* INSERT, UPDATE, REFERENCES, ...)
*
- IS_GRANTABLE String {@code =>} "YES" if grantee is permitted
* to grant to others; "NO" if not;
null
if unknown
*
*
* @param catalog a catalog name; must match the catalog name as it
* is stored in the database; "" retrieves those without a catalog;
* null
means that the catalog name should not be used to narrow
* the search
* @param schemaPattern a schema name pattern; must match the schema name
* as it is stored in the database; "" retrieves those without a schema;
* null
means that the schema name should not be used to narrow
* the search
* @param tableNamePattern a table name pattern; must match the
* table name as it is stored in the database
* @return ResultSet
- each row is a table privilege description
*/
def getTablePrivileges(catalog: String, schemaPattern: String, tableNamePattern: String): F[ResultSet[F]] =
getTablePrivileges(Some(catalog), Some(schemaPattern), Some(tableNamePattern))
def getTablePrivileges(
catalog: Option[String],
schemaPattern: Option[String],
tableNamePattern: Option[String]
): F[ResultSet[F]]
/**
* Retrieves a description of a table's optimal set of columns that
* uniquely identifies a row. They are ordered by SCOPE.
*
* Each column description has the following columns:
*
* - SCOPE short {@code =>} actual scope of result
*
* - bestRowTemporary - very temporary, while using row
*
- bestRowTransaction - valid for remainder of current transaction
*
- bestRowSession - valid for remainder of current session
*
* - COLUMN_NAME String {@code =>} column name
*
- DATA_TYPE int {@code =>} SQL data type from java.sql.Types
*
- TYPE_NAME String {@code =>} Data source dependent type name,
* for a UDT the type name is fully qualified
*
- COLUMN_SIZE int {@code =>} precision
*
- BUFFER_LENGTH int {@code =>} not used
*
- DECIMAL_DIGITS short {@code =>} scale - Null is returned for data types where
* DECIMAL_DIGITS is not applicable.
*
- PSEUDO_COLUMN short {@code =>} is this a pseudo column
* like an Oracle ROWID
*
* - bestRowUnknown - may or may not be pseudo column
*
- bestRowNotPseudo - is NOT a pseudo column
*
- bestRowPseudo - is a pseudo column
*
*
*
* The COLUMN_SIZE column represents the specified column size for the given column.
* For numeric data, this is the maximum precision. For character data, this is the length in characters.
* For datetime datatypes, this is the length in characters of the String representation (assuming the
* maximum allowed precision of the fractional seconds component). For binary data, this is the length in bytes. For the ROWID datatype,
* this is the length in bytes. Null is returned for data types where the
* column size is not applicable.
*
* @param catalog a catalog name; must match the catalog name as it
* is stored in the database; "" retrieves those without a catalog;
* null
means that the catalog name should not be used to narrow
* the search
* @param schema a schema name; must match the schema name
* as it is stored in the database; "" retrieves those without a schema;
* null
means that the schema name should not be used to narrow
* the search
* @param table a table name; must match the table name as it is stored
* in the database
* @param scope the scope of interest; use same values as SCOPE
* @param nullable include columns that are nullable.
* @return ResultSet
- each row is a column description
*/
def getBestRowIdentifier(
catalog: String,
schema: String,
table: String,
scope: Int,
nullable: Boolean
): F[ResultSet[F]] =
getBestRowIdentifier(Some(catalog), Some(schema), table, Some(scope), Some(nullable))
def getBestRowIdentifier(
catalog: Option[String],
schema: Option[String],
table: String,
scope: Option[Int],
nullable: Option[Boolean]
): F[ResultSet[F]]
/**
* Retrieves a description of a table's columns that are automatically
* updated when any value in a row is updated. They are
* unordered.
*
*
Each column description has the following columns:
*
* - SCOPE short {@code =>} is not used
*
- COLUMN_NAME String {@code =>} column name
*
- DATA_TYPE int {@code =>} SQL data type from
java.sql.Types
* - TYPE_NAME String {@code =>} Data source-dependent type name
*
- COLUMN_SIZE int {@code =>} precision
*
- BUFFER_LENGTH int {@code =>} length of column value in bytes
*
- DECIMAL_DIGITS short {@code =>} scale - Null is returned for data types where
* DECIMAL_DIGITS is not applicable.
*
- PSEUDO_COLUMN short {@code =>} whether this is pseudo column
* like an Oracle ROWID
*
* - versionColumnUnknown - may or may not be pseudo column
*
- versionColumnNotPseudo - is NOT a pseudo column
*
- versionColumnPseudo - is a pseudo column
*
*
*
* The COLUMN_SIZE column represents the specified column size for the given column.
* For numeric data, this is the maximum precision. For character data, this is the length in characters.
* For datetime datatypes, this is the length in characters of the String representation (assuming the
* maximum allowed precision of the fractional seconds component). For binary data, this is the length in bytes. For the ROWID datatype,
* this is the length in bytes. Null is returned for data types where the
* column size is not applicable.
* @param catalog a catalog name; must match the catalog name as it
* is stored in the database; "" retrieves those without a catalog;
* null
means that the catalog name should not be used to narrow
* the search
* @param schema a schema name; must match the schema name
* as it is stored in the database; "" retrieves those without a schema;
* null
means that the schema name should not be used to narrow
* the search
* @param table a table name; must match the table name as it is stored
* in the database
* @return a ResultSet
object in which each row is a
* column description
*/
def getVersionColumns(catalog: String, schema: String, table: String): F[ResultSet[F]] =
getVersionColumns(Some(catalog), Some(schema), table)
def getVersionColumns(catalog: Option[String], schema: Option[String], table: String): F[ResultSet[F]]
/**
* Retrieves a description of the given table's primary key columns. They
* are ordered by COLUMN_NAME.
*
*
Each primary key column description has the following columns:
*
* - TABLE_CAT String {@code =>} table catalog (may be
null
)
* - TABLE_SCHEM String {@code =>} table schema (may be
null
)
* - TABLE_NAME String {@code =>} table name
*
- COLUMN_NAME String {@code =>} column name
*
- KEY_SEQ short {@code =>} sequence number within primary key( a value
* of 1 represents the first column of the primary key, a value of 2 would
* represent the second column within the primary key).
*
- PK_NAME String {@code =>} primary key name (may be
null
)
*
*
* @param catalog a catalog name; must match the catalog name as it
* is stored in the database; "" retrieves those without a catalog;
* null
means that the catalog name should not be used to narrow
* the search
* @param schema a schema name; must match the schema name
* as it is stored in the database; "" retrieves those without a schema;
* null
means that the schema name should not be used to narrow
* the search
* @param table a table name; must match the table name as it is stored
* in the database
* @return ResultSet
- each row is a primary key column description
*/
def getPrimaryKeys(catalog: String, schema: String, table: String): F[ResultSet[F]] =
getPrimaryKeys(Some(catalog), Some(schema), table)
def getPrimaryKeys(catalog: Option[String], schema: Option[String], table: String): F[ResultSet[F]]
/**
* Retrieves a description of the primary key columns that are
* referenced by the given table's foreign key columns (the primary keys
* imported by a table). They are ordered by PKTABLE_CAT,
* PKTABLE_SCHEM, PKTABLE_NAME, and KEY_SEQ.
*
* Each primary key column description has the following columns:
*
* - PKTABLE_CAT String {@code =>} primary key table catalog
* being imported (may be
null
)
* - PKTABLE_SCHEM String {@code =>} primary key table schema
* being imported (may be
null
)
* - PKTABLE_NAME String {@code =>} primary key table name
* being imported
*
- PKCOLUMN_NAME String {@code =>} primary key column name
* being imported
*
- FKTABLE_CAT String {@code =>} foreign key table catalog (may be
null
)
* - FKTABLE_SCHEM String {@code =>} foreign key table schema (may be
null
)
* - FKTABLE_NAME String {@code =>} foreign key table name
*
- FKCOLUMN_NAME String {@code =>} foreign key column name
*
- KEY_SEQ short {@code =>} sequence number within a foreign key( a value
* of 1 represents the first column of the foreign key, a value of 2 would
* represent the second column within the foreign key).
*
- UPDATE_RULE short {@code =>} What happens to a
* foreign key when the primary key is updated:
*
* - importedNoAction - do not allow update of primary
* key if it has been imported
*
- importedKeyCascade - change imported key to agree
* with primary key update
*
- importedKeySetNull - change imported key to
NULL
* if its primary key has been updated
* - importedKeySetDefault - change imported key to default values
* if its primary key has been updated
*
- importedKeyRestrict - same as importedKeyNoAction
* (for ODBC 2.x compatibility)
*
* - DELETE_RULE short {@code =>} What happens to
* the foreign key when primary is deleted.
*
* - importedKeyNoAction - do not allow delete of primary
* key if it has been imported
*
- importedKeyCascade - delete rows that import a deleted key
*
- importedKeySetNull - change imported key to NULL if
* its primary key has been deleted
*
- importedKeyRestrict - same as importedKeyNoAction
* (for ODBC 2.x compatibility)
*
- importedKeySetDefault - change imported key to default if
* its primary key has been deleted
*
* - FK_NAME String {@code =>} foreign key name (may be
null
)
* - PK_NAME String {@code =>} primary key name (may be
null
)
* - DEFERRABILITY short {@code =>} can the evaluation of foreign key
* constraints be deferred until commit
*
* - importedKeyInitiallyDeferred - see SQL92 for definition
*
- importedKeyInitiallyImmediate - see SQL92 for definition
*
- importedKeyNotDeferrable - see SQL92 for definition
*
*
*
* @param catalog a catalog name; must match the catalog name as it
* is stored in the database; "" retrieves those without a catalog;
* null
means that the catalog name should not be used to narrow
* the search
* @param schema a schema name; must match the schema name
* as it is stored in the database; "" retrieves those without a schema;
* null
means that the schema name should not be used to narrow
* the search
* @param table a table name; must match the table name as it is stored
* in the database
* @return ResultSet
- each row is a primary key column description
*/
def getImportedKeys(catalog: String, schema: String, table: String): F[ResultSet[F]] =
getImportedKeys(Some(catalog), Some(schema), table)
def getImportedKeys(catalog: Option[String], schema: Option[String], table: String): F[ResultSet[F]]
/**
* Retrieves a description of the foreign key columns that reference the
* given table's primary key columns (the foreign keys exported by a
* table). They are ordered by FKTABLE_CAT, FKTABLE_SCHEM,
* FKTABLE_NAME, and KEY_SEQ.
*
* Each foreign key column description has the following columns:
*
* - PKTABLE_CAT String {@code =>} primary key table catalog (may be
null
)
* - PKTABLE_SCHEM String {@code =>} primary key table schema (may be
null
)
* - PKTABLE_NAME String {@code =>} primary key table name
*
- PKCOLUMN_NAME String {@code =>} primary key column name
*
- FKTABLE_CAT String {@code =>} foreign key table catalog (may be
null
)
* being exported (may be null
)
* - FKTABLE_SCHEM String {@code =>} foreign key table schema (may be
null
)
* being exported (may be null
)
* - FKTABLE_NAME String {@code =>} foreign key table name
* being exported
*
- FKCOLUMN_NAME String {@code =>} foreign key column name
* being exported
*
- KEY_SEQ short {@code =>} sequence number within foreign key( a value
* of 1 represents the first column of the foreign key, a value of 2 would
* represent the second column within the foreign key).
*
- UPDATE_RULE short {@code =>} What happens to
* foreign key when primary is updated:
*
* - importedNoAction - do not allow update of primary
* key if it has been imported
*
- importedKeyCascade - change imported key to agree
* with primary key update
*
- importedKeySetNull - change imported key to
NULL
if
* its primary key has been updated
* - importedKeySetDefault - change imported key to default values
* if its primary key has been updated
*
- importedKeyRestrict - same as importedKeyNoAction
* (for ODBC 2.x compatibility)
*
* - DELETE_RULE short {@code =>} What happens to
* the foreign key when primary is deleted.
*
* - importedKeyNoAction - do not allow delete of primary
* key if it has been imported
*
- importedKeyCascade - delete rows that import a deleted key
*
- importedKeySetNull - change imported key to
NULL
if
* its primary key has been deleted
* - importedKeyRestrict - same as importedKeyNoAction
* (for ODBC 2.x compatibility)
*
- importedKeySetDefault - change imported key to default if
* its primary key has been deleted
*
* - FK_NAME String {@code =>} foreign key name (may be
null
)
* - PK_NAME String {@code =>} primary key name (may be
null
)
* - DEFERRABILITY short {@code =>} can the evaluation of foreign key
* constraints be deferred until commit
*
* - importedKeyInitiallyDeferred - see SQL92 for definition
*
- importedKeyInitiallyImmediate - see SQL92 for definition
*
- importedKeyNotDeferrable - see SQL92 for definition
*
*
*
* @param catalog a catalog name; must match the catalog name as it
* is stored in this database; "" retrieves those without a catalog;
* null
means that the catalog name should not be used to narrow
* the search
* @param schema a schema name; must match the schema name
* as it is stored in the database; "" retrieves those without a schema;
* null
means that the schema name should not be used to narrow
* the search
* @param table a table name; must match the table name as it is stored
* in this database
* @return a ResultSet
object in which each row is a
* foreign key column description
*/
def getExportedKeys(catalog: String, schema: String, table: String): F[ResultSet[F]] =
getExportedKeys(Some(catalog), Some(schema), table)
def getExportedKeys(catalog: Option[String], schema: Option[String], table: String): F[ResultSet[F]]
/**
* Retrieves a description of the foreign key columns in the given foreign key
* table that reference the primary key or the columns representing a unique constraint of the parent table (could be the same or a different table).
* The number of columns returned from the parent table must match the number of
* columns that make up the foreign key. They
* are ordered by FKTABLE_CAT, FKTABLE_SCHEM, FKTABLE_NAME, and
* KEY_SEQ.
*
* Each foreign key column description has the following columns:
*
* - PKTABLE_CAT String {@code =>} parent key table catalog (may be
null
)
* - PKTABLE_SCHEM String {@code =>} parent key table schema (may be
null
)
* - PKTABLE_NAME String {@code =>} parent key table name
*
- PKCOLUMN_NAME String {@code =>} parent key column name
*
- FKTABLE_CAT String {@code =>} foreign key table catalog (may be
null
)
* being exported (may be null
)
* - FKTABLE_SCHEM String {@code =>} foreign key table schema (may be
null
)
* being exported (may be null
)
* - FKTABLE_NAME String {@code =>} foreign key table name
* being exported
*
- FKCOLUMN_NAME String {@code =>} foreign key column name
* being exported
*
- KEY_SEQ short {@code =>} sequence number within foreign key( a value
* of 1 represents the first column of the foreign key, a value of 2 would
* represent the second column within the foreign key).
*
- UPDATE_RULE short {@code =>} What happens to
* foreign key when parent key is updated:
*
* - importedNoAction - do not allow update of parent
* key if it has been imported
*
- importedKeyCascade - change imported key to agree
* with parent key update
*
- importedKeySetNull - change imported key to
NULL
if
* its parent key has been updated
* - importedKeySetDefault - change imported key to default values
* if its parent key has been updated
*
- importedKeyRestrict - same as importedKeyNoAction
* (for ODBC 2.x compatibility)
*
* - DELETE_RULE short {@code =>} What happens to
* the foreign key when parent key is deleted.
*
* - importedKeyNoAction - do not allow delete of parent
* key if it has been imported
*
- importedKeyCascade - delete rows that import a deleted key
*
- importedKeySetNull - change imported key to
NULL
if
* its primary key has been deleted
* - importedKeyRestrict - same as importedKeyNoAction
* (for ODBC 2.x compatibility)
*
- importedKeySetDefault - change imported key to default if
* its parent key has been deleted
*
* - FK_NAME String {@code =>} foreign key name (may be
null
)
* - PK_NAME String {@code =>} parent key name (may be
null
)
* - DEFERRABILITY short {@code =>} can the evaluation of foreign key
* constraints be deferred until commit
*
* - importedKeyInitiallyDeferred - see SQL92 for definition
*
- importedKeyInitiallyImmediate - see SQL92 for definition
*
- importedKeyNotDeferrable - see SQL92 for definition
*
*
*
* @param parentCatalog a catalog name; must match the catalog name
* as it is stored in the database; "" retrieves those without a
* catalog; null
means drop catalog name from the selection criteria
* @param parentSchema a schema name; must match the schema name as
* it is stored in the database; "" retrieves those without a schema;
* null
means drop schema name from the selection criteria
* @param parentTable the name of the table that exports the key; must match
* the table name as it is stored in the database
* @param foreignCatalog a catalog name; must match the catalog name as
* it is stored in the database; "" retrieves those without a
* catalog; null
means drop catalog name from the selection criteria
* @param foreignSchema a schema name; must match the schema name as it
* is stored in the database; "" retrieves those without a schema;
* null
means drop schema name from the selection criteria
* @param foreignTable the name of the table that imports the key; must match
* the table name as it is stored in the database
* @return ResultSet
- each row is a foreign key column description
*/
def getCrossReference(
parentCatalog: String,
parentSchema: String,
parentTable: String,
foreignCatalog: String,
foreignSchema: String,
foreignTable: String
): F[ResultSet[F]] =
getCrossReference(
Some(parentCatalog),
Some(parentSchema),
parentTable,
Some(foreignCatalog),
Some(foreignSchema),
Some(foreignTable)
)
def getCrossReference(
parentCatalog: Option[String],
parentSchema: Option[String],
parentTable: String,
foreignCatalog: Option[String],
foreignSchema: Option[String],
foreignTable: Option[String]
): F[ResultSet[F]]
/**
* Retrieves a description of all the data types supported by
* this database. They are ordered by DATA_TYPE and then by how
* closely the data type maps to the corresponding JDBC SQL type.
*
* If the database supports SQL distinct types, then getTypeInfo() will return
* a single row with a TYPE_NAME of DISTINCT and a DATA_TYPE of Types.DISTINCT.
* If the database supports SQL structured types, then getTypeInfo() will return
* a single row with a TYPE_NAME of STRUCT and a DATA_TYPE of Types.STRUCT.
*
*
If SQL distinct or structured types are supported, then information on the
* individual types may be obtained from the getUDTs() method.
*
*
*
Each type description has the following columns:
*
* - TYPE_NAME String {@code =>} Type name
*
- DATA_TYPE int {@code =>} SQL data type from java.sql.Types
*
- PRECISION int {@code =>} maximum precision
*
- LITERAL_PREFIX String {@code =>} prefix used to quote a literal
* (may be
null
)
* - LITERAL_SUFFIX String {@code =>} suffix used to quote a literal
* (may be
null
)
* - CREATE_PARAMS String {@code =>} parameters used in creating
* the type (may be
null
)
* - NULLABLE short {@code =>} can you use NULL for this type.
*
* - typeNoNulls - does not allow NULL values
*
- typeNullable - allows NULL values
*
- typeNullableUnknown - nullability unknown
*
* - CASE_SENSITIVE boolean{@code =>} is it case sensitive.
*
- SEARCHABLE short {@code =>} can you use "WHERE" based on this type:
*
* - typePredNone - No support
*
- typePredChar - Only supported with WHERE .. LIKE
*
- typePredBasic - Supported except for WHERE .. LIKE
*
- typeSearchable - Supported for all WHERE ..
*
* - UNSIGNED_ATTRIBUTE boolean {@code =>} is it unsigned.
*
- FIXED_PREC_SCALE boolean {@code =>} can it be a money value.
*
- AUTO_INCREMENT boolean {@code =>} can it be used for an
* auto-increment value.
*
- LOCAL_TYPE_NAME String {@code =>} localized version of type name
* (may be
null
)
* - MINIMUM_SCALE short {@code =>} minimum scale supported
*
- MAXIMUM_SCALE short {@code =>} maximum scale supported
*
- SQL_DATA_TYPE int {@code =>} unused
*
- SQL_DATETIME_SUB int {@code =>} unused
*
- NUM_PREC_RADIX int {@code =>} usually 2 or 10
*
*
* The PRECISION column represents the maximum column size that the server supports for the given datatype.
* For numeric data, this is the maximum precision. For character data, this is the length in characters.
* For datetime datatypes, this is the length in characters of the String representation (assuming the
* maximum allowed precision of the fractional seconds component). For binary data, this is the length in bytes. For the ROWID datatype,
* this is the length in bytes. Null is returned for data types where the
* column size is not applicable.
*
* @return a ResultSet
object in which each row is an SQL
* type description
*/
def getTypeInfo(): F[ResultSet[F]]
/**
* Retrieves a description of the given table's indices and statistics. They are
* ordered by NON_UNIQUE, TYPE, INDEX_NAME, and ORDINAL_POSITION.
*
*
Each index column description has the following columns:
*
* - TABLE_CAT String {@code =>} table catalog (may be
null
)
* - TABLE_SCHEM String {@code =>} table schema (may be
null
)
* - TABLE_NAME String {@code =>} table name
*
- NON_UNIQUE boolean {@code =>} Can index values be non-unique.
* false when TYPE is tableIndexStatistic
*
- INDEX_QUALIFIER String {@code =>} index catalog (may be
null
);
* null
when TYPE is tableIndexStatistic
* - INDEX_NAME String {@code =>} index name;
null
when TYPE is
* tableIndexStatistic
* - TYPE short {@code =>} index type:
*
* - tableIndexStatistic - this identifies table statistics that are
* returned in conjunction with a table's index descriptions
*
- tableIndexClustered - this is a clustered index
*
- tableIndexHashed - this is a hashed index
*
- tableIndexOther - this is some other style of index
*
* - ORDINAL_POSITION short {@code =>} column sequence number
* within index; zero when TYPE is tableIndexStatistic
*
- COLUMN_NAME String {@code =>} column name;
null
when TYPE is
* tableIndexStatistic
* - ASC_OR_DESC String {@code =>} column sort sequence, "A" {@code =>} ascending,
* "D" {@code =>} descending, may be
null
if sort sequence is not supported;
* null
when TYPE is tableIndexStatistic
* - CARDINALITY long {@code =>} When TYPE is tableIndexStatistic, then
* this is the number of rows in the table; otherwise, it is the
* number of unique values in the index.
*
- PAGES long {@code =>} When TYPE is tableIndexStatistic then
* this is the number of pages used for the table, otherwise it
* is the number of pages used for the current index.
*
- FILTER_CONDITION String {@code =>} Filter condition, if any.
* (may be
null
)
*
*
* @param catalog a catalog name; must match the catalog name as it
* is stored in this database; "" retrieves those without a catalog;
* null
means that the catalog name should not be used to narrow
* the search
* @param schema a schema name; must match the schema name
* as it is stored in this database; "" retrieves those without a schema;
* null
means that the schema name should not be used to narrow
* the search
* @param table a table name; must match the table name as it is stored
* in this database
* @param unique when true, return only indices for unique values;
* when false, return indices regardless of whether unique or not
* @param approximate when true, result is allowed to reflect approximate
* or out of data values; when false, results are requested to be
* accurate
* @return ResultSet
- each row is an index column description
*/
def getIndexInfo(
catalog: String,
schema: String,
table: String,
unique: Boolean,
approximate: Boolean
): F[ResultSet[F]] =
getIndexInfo(Some(catalog), Some(schema), Some(table), unique, approximate)
def getIndexInfo(
catalog: Option[String],
schema: Option[String],
table: Option[String],
unique: Boolean,
approximate: Boolean
): F[ResultSet[F]]
/**
* Retrieves whether this database supports the given result set type.
*
* @param `type` defined in java.sql.ResultSet
* @return true
if so; false
otherwise
*/
def supportsResultSetType(`type`: Int): Boolean
/**
* Retrieves whether this database supports the given concurrency type
* in combination with the given result set type.
*
* @param `type` defined in java.sql.ResultSet
* @param concurrency type defined in java.sql.ResultSet
* @return true
if so; false
otherwise
*/
def supportsResultSetConcurrency(`type`: Int, concurrency: Int): Boolean
/**
* Retrieves whether for the given type of ResultSet
object,
* the result set's own updates are visible.
*
* @param type the ResultSet
type; one of
* ResultSet.TYPE_FORWARD_ONLY
,
* ResultSet.TYPE_SCROLL_INSENSITIVE
, or
* ResultSet.TYPE_SCROLL_SENSITIVE
*/
def ownUpdatesAreVisible(`type`: Int): Boolean
/**
* Retrieves whether a result set's own deletes are visible.
*
* @param type the ResultSet
type; one of
* ResultSet.TYPE_FORWARD_ONLY
,
* ResultSet.TYPE_SCROLL_INSENSITIVE
, or
* ResultSet.TYPE_SCROLL_SENSITIVE
* @return true
if deletes are visible for the given result set type;
* false
otherwise
*/
def ownDeletesAreVisible(`type`: Int): Boolean
/**
* Retrieves whether a result set's own inserts are visible.
*
* @param type the ResultSet
type; one of
* ResultSet.TYPE_FORWARD_ONLY
,
* ResultSet.TYPE_SCROLL_INSENSITIVE
, or
* ResultSet.TYPE_SCROLL_SENSITIVE
* @return true
if inserts are visible for the given result set type;
* false
otherwise
*/
def ownInsertsAreVisible(`type`: Int): Boolean
/**
* Retrieves whether updates made by others are visible.
*
* @param type the ResultSet
type; one of
* ResultSet.TYPE_FORWARD_ONLY
,
* ResultSet.TYPE_SCROLL_INSENSITIVE
, or
* ResultSet.TYPE_SCROLL_SENSITIVE
* @return true
if updates made by others
* are visible for the given result set type;
* false
otherwise
*/
def othersUpdatesAreVisible(`type`: Int): Boolean
/**
* Retrieves whether deletes made by others are visible.
*
* @param type the ResultSet
type; one of
* ResultSet.TYPE_FORWARD_ONLY
,
* ResultSet.TYPE_SCROLL_INSENSITIVE
, or
* ResultSet.TYPE_SCROLL_SENSITIVE
* @return true
if deletes made by others
* are visible for the given result set type;
* false
otherwise
*/
def othersDeletesAreVisible(`type`: Int): Boolean
/**
* Retrieves whether inserts made by others are visible.
*
* @param type the ResultSet
type; one of
* ResultSet.TYPE_FORWARD_ONLY
,
* ResultSet.TYPE_SCROLL_INSENSITIVE
, or
* ResultSet.TYPE_SCROLL_SENSITIVE
* @return true
if inserts made by others
* are visible for the given result set type;
* false
otherwise
*/
def othersInsertsAreVisible(`type`: Int): Boolean
/**
* Retrieves whether or not a visible row update can be detected by
* calling the method ResultSet.rowUpdated
.
*
* @param type the ResultSet
type; one of
* ResultSet.TYPE_FORWARD_ONLY
,
* ResultSet.TYPE_SCROLL_INSENSITIVE
, or
* ResultSet.TYPE_SCROLL_SENSITIVE
* @return true
if changes are detected by the result set type;
* false
otherwise
*/
def updatesAreDetected(`type`: Int): Boolean
/**
* Retrieves whether or not a visible row delete can be detected by
* calling the method ResultSet.rowDeleted
. If the method
* deletesAreDetected
returns false
, it means that
* deleted rows are removed from the result set.
*
* @param type the ResultSet
type; one of
* ResultSet.TYPE_FORWARD_ONLY
,
* ResultSet.TYPE_SCROLL_INSENSITIVE
, or
* ResultSet.TYPE_SCROLL_SENSITIVE
* @return true
if deletes are detected by the given result set type;
* false
otherwise
*/
def deletesAreDetected(`type`: Int): Boolean
/**
* Retrieves whether or not a visible row insert can be detected
* by calling the method ResultSet.rowInserted
.
*
* @param type the ResultSet
type; one of
* ResultSet.TYPE_FORWARD_ONLY
,
* ResultSet.TYPE_SCROLL_INSENSITIVE
, or
* ResultSet.TYPE_SCROLL_SENSITIVE
* @return true
if changes are detected by the specified result
* set type; false
otherwise
*/
def insertsAreDetected(`type`: Int): Boolean
/**
* Retrieves whether this database supports batch updates.
*
* @return true
if this database supports batch updates;
* false
otherwise
*/
def supportsBatchUpdates(): Boolean
/**
* Retrieves a description of the user-defined types (UDTs) defined
* in a particular schema. Schema-specific UDTs may have type
* JAVA_OBJECT
, STRUCT
,
* or DISTINCT
.
*
* Only types matching the catalog, schema, type name and type
* criteria are returned. They are ordered by DATA_TYPE
,
* TYPE_CAT
, TYPE_SCHEM
and
* TYPE_NAME
. The type name parameter may be a fully-qualified
* name. In this case, the catalog and schemaPattern parameters are
* ignored.
*
*
Each type description has the following columns:
*
* - TYPE_CAT String {@code =>} the type's catalog (may be
null
)
* - TYPE_SCHEM String {@code =>} type's schema (may be
null
)
* - TYPE_NAME String {@code =>} type name
*
- CLASS_NAME String {@code =>} Java class name
*
- DATA_TYPE int {@code =>} type value defined in java.sql.Types.
* One of JAVA_OBJECT, STRUCT, or DISTINCT
*
- REMARKS String {@code =>} explanatory comment on the type
*
- BASE_TYPE short {@code =>} type code of the source type of a
* DISTINCT type or the type that implements the user-generated
* reference type of the SELF_REFERENCING_COLUMN of a structured
* type as defined in java.sql.Types (
null
if DATA_TYPE is not
* DISTINCT or not STRUCT with REFERENCE_GENERATION = USER_DEFINED)
*
*
* Note: If the driver does not support UDTs, an empty
* result set is returned.
*
* @param catalog a catalog name; must match the catalog name as it
* is stored in the database; "" retrieves those without a catalog;
* null
means that the catalog name should not be used to narrow
* the search
* @param schemaPattern a schema pattern name; must match the schema name
* as it is stored in the database; "" retrieves those without a schema;
* null
means that the schema name should not be used to narrow
* the search
* @param typeNamePattern a type name pattern; must match the type name
* as it is stored in the database; may be a fully qualified name
* @param types a list of user-defined types (JAVA_OBJECT,
* STRUCT, or DISTINCT) to include; null
returns all types
* @return ResultSet
object in which each row describes a UDT
*/
def getUDTs(catalog: String, schemaPattern: String, typeNamePattern: String, types: Array[Int]): F[ResultSet[F]] =
getUDTs(Some(catalog), Some(schemaPattern), Some(typeNamePattern), types)
def getUDTs(
catalog: Option[String],
schemaPattern: Option[String],
typeNamePattern: Option[String],
types: Array[Int]
): F[ResultSet[F]]
/**
* Retrieves the connection that produced this metadata object.
*
* @return the connection that produced this metadata object
*/
def getConnection(): Connection[F]
/**
* Retrieves whether this database supports savepoints.
*
* @return true
if savepoints are supported;
* false
otherwise
*/
def supportsSavepoints(): Boolean
/**
* Retrieves whether this database supports named parameters to callable
* statements.
*
* @return true
if named parameters are supported;
* false
otherwise
*/
def supportsNamedParameters(): Boolean
/**
* Retrieves whether it is possible to have multiple ResultSet
objects
* returned from a CallableStatement
object
* simultaneously.
*
* @return true
if a CallableStatement
object
* can return multiple ResultSet
objects
* simultaneously; false
otherwise
*/
def supportsMultipleOpenResults(): Boolean
/**
* Retrieves whether auto-generated keys can be retrieved after
* a statement has been executed
*
* @return true
if auto-generated keys can be retrieved
* after a statement has executed; false
otherwise
*
If true
is returned, the JDBC driver must support the
* returning of auto-generated keys for at least SQL INSERT statements
*/
def supportsGetGeneratedKeys(): Boolean
/**
* Retrieves a description of the user-defined type (UDT) hierarchies defined in a
* particular schema in this database. Only the immediate super type/
* sub type relationship is modeled.
*
* Only supertype information for UDTs matching the catalog,
* schema, and type name is returned. The type name parameter
* may be a fully-qualified name. When the UDT name supplied is a
* fully-qualified name, the catalog and schemaPattern parameters are
* ignored.
*
* If a UDT does not have a direct super type, it is not listed here.
* A row of the ResultSet
object returned by this method
* describes the designated UDT and a direct supertype. A row has the following
* columns:
*
* - TYPE_CAT String {@code =>} the UDT's catalog (may be
null
)
* - TYPE_SCHEM String {@code =>} UDT's schema (may be
null
)
* - TYPE_NAME String {@code =>} type name of the UDT
*
- SUPERTYPE_CAT String {@code =>} the direct super type's catalog
* (may be
null
)
* - SUPERTYPE_SCHEM String {@code =>} the direct super type's schema
* (may be
null
)
* - SUPERTYPE_NAME String {@code =>} the direct super type's name
*
*
* Note: If the driver does not support type hierarchies, an
* empty result set is returned.
*
* @param catalog a catalog name; "" retrieves those without a catalog;
* null
means drop catalog name from the selection criteria
* @param schemaPattern a schema name pattern; "" retrieves those
* without a schema
* @param typeNamePattern a UDT name pattern; may be a fully-qualified
* name
* @return a ResultSet
object in which a row gives information
* about the designated UDT
*/
def getSuperTypes(catalog: String, schemaPattern: String, typeNamePattern: String): F[ResultSet[F]] =
getSuperTypes(Some(catalog), Some(schemaPattern), Some(typeNamePattern))
def getSuperTypes(
catalog: Option[String],
schemaPattern: Option[String],
typeNamePattern: Option[String]
): F[ResultSet[F]]
/**
* Retrieves a description of the table hierarchies defined in a particular
* schema in this database.
*
*
Only supertable information for tables matching the catalog, schema
* and table name are returned. The table name parameter may be a fully-
* qualified name, in which case, the catalog and schemaPattern parameters
* are ignored. If a table does not have a super table, it is not listed here.
* Supertables have to be defined in the same catalog and schema as the
* sub tables. Therefore, the type description does not need to include
* this information for the supertable.
*
*
Each type description has the following columns:
*
* - TABLE_CAT String {@code =>} the type's catalog (may be
null
)
* - TABLE_SCHEM String {@code =>} type's schema (may be
null
)
* - TABLE_NAME String {@code =>} type name
*
- SUPERTABLE_NAME String {@code =>} the direct super type's name
*
*
* Note: If the driver does not support type hierarchies, an
* empty result set is returned.
*
* @param catalog a catalog name; "" retrieves those without a catalog;
* null
means drop catalog name from the selection criteria
* @param schemaPattern a schema name pattern; "" retrieves those
* without a schema
* @param tableNamePattern a table name pattern; may be a fully-qualified
* name
* @return a ResultSet
object in which each row is a type description
*/
def getSuperTables(catalog: String, schemaPattern: String, tableNamePattern: String): F[ResultSet[F]] =
getSuperTables(Some(catalog), Some(schemaPattern), Some(tableNamePattern))
def getSuperTables(
catalog: Option[String],
schemaPattern: Option[String],
tableNamePattern: Option[String]
): F[ResultSet[F]]
/**
* Retrieves a description of the given attribute of the given type
* for a user-defined type (UDT) that is available in the given schema
* and catalog.
*
* Descriptions are returned only for attributes of UDTs matching the
* catalog, schema, type, and attribute name criteria. They are ordered by
* TYPE_CAT
, TYPE_SCHEM
,
* TYPE_NAME
and ORDINAL_POSITION
. This description
* does not contain inherited attributes.
*
* The ResultSet
object that is returned has the following
* columns:
*
* - TYPE_CAT String {@code =>} type catalog (may be
null
)
* - TYPE_SCHEM String {@code =>} type schema (may be
null
)
* - TYPE_NAME String {@code =>} type name
*
- ATTR_NAME String {@code =>} attribute name
*
- DATA_TYPE int {@code =>} attribute type SQL type from java.sql.Types
*
- ATTR_TYPE_NAME String {@code =>} Data source dependent type name.
* For a UDT, the type name is fully qualified. For a REF, the type name is
* fully qualified and represents the target type of the reference type.
*
- ATTR_SIZE int {@code =>} column size. For char or date
* types this is the maximum number of characters; for numeric or
* decimal types this is precision.
*
- DECIMAL_DIGITS int {@code =>} the number of fractional digits. Null is returned for data types where
* DECIMAL_DIGITS is not applicable.
*
- NUM_PREC_RADIX int {@code =>} Radix (typically either 10 or 2)
*
- NULLABLE int {@code =>} whether NULL is allowed
*
* - attributeNoNulls - might not allow NULL values
*
- attributeNullable - definitely allows NULL values
*
- attributeNullableUnknown - nullability unknown
*
* - REMARKS String {@code =>} comment describing column (may be
null
)
* - ATTR_DEF String {@code =>} default value (may be
null
)
* - SQL_DATA_TYPE int {@code =>} unused
*
- SQL_DATETIME_SUB int {@code =>} unused
*
- CHAR_OCTET_LENGTH int {@code =>} for char types the
* maximum number of bytes in the column
*
- ORDINAL_POSITION int {@code =>} index of the attribute in the UDT
* (starting at 1)
*
- IS_NULLABLE String {@code =>} ISO rules are used to determine
* the nullability for a attribute.
*
* - YES --- if the attribute can include NULLs
*
- NO --- if the attribute cannot include NULLs
*
- empty string --- if the nullability for the
* attribute is unknown
*
* - SCOPE_CATALOG String {@code =>} catalog of table that is the
* scope of a reference attribute (
null
if DATA_TYPE isn't REF)
* - SCOPE_SCHEMA String {@code =>} schema of table that is the
* scope of a reference attribute (
null
if DATA_TYPE isn't REF)
* - SCOPE_TABLE String {@code =>} table name that is the scope of a
* reference attribute (
null
if the DATA_TYPE isn't REF)
* - SOURCE_DATA_TYPE short {@code =>} source type of a distinct type or user-generated
* Ref type,SQL type from java.sql.Types (
null
if DATA_TYPE
* isn't DISTINCT or user-generated REF)
*
* @param catalog a catalog name; must match the catalog name as it
* is stored in the database; "" retrieves those without a catalog;
* null
means that the catalog name should not be used to narrow
* the search
* @param schemaPattern a schema name pattern; must match the schema name
* as it is stored in the database; "" retrieves those without a schema;
* null
means that the schema name should not be used to narrow
* the search
* @param typeNamePattern a type name pattern; must match the
* type name as it is stored in the database
* @param attributeNamePattern an attribute name pattern; must match the attribute
* name as it is declared in the database
* @return a ResultSet
object in which each row is an
* attribute description
*/
def getAttributes(
catalog: String,
schemaPattern: String,
typeNamePattern: String,
attributeNamePattern: String
): F[ResultSet[F]] =
getAttributes(Some(catalog), Some(schemaPattern), Some(typeNamePattern), Some(attributeNamePattern))
def getAttributes(
catalog: Option[String],
schemaPattern: Option[String],
typeNamePattern: Option[String],
attributeNamePattern: Option[String]
): F[ResultSet[F]]
/**
* Retrieves whether this database supports the given result set holdability.
*
* @param holdability one of the following constants:
* ResultSet.HOLD_CURSORS_OVER_COMMIT
or
* ResultSet.CLOSE_CURSORS_AT_COMMIT
* @return true
if so; false
otherwise
*/
def supportsResultSetHoldability(holdability: Int): Boolean
/**
* Retrieves this database's default holdability for ResultSet
* objects.
*
* @return the default holdability; either
* ResultSet.HOLD_CURSORS_OVER_COMMIT
or
* ResultSet.CLOSE_CURSORS_AT_COMMIT
*/
def getResultSetHoldability(): Int
/**
* Retrieves the major version number of the underlying database.
*
* @return the underlying database's major version
*/
def getDatabaseMajorVersion(): Int
/**
* Retrieves the minor version number of the underlying database.
*
* @return underlying database's minor version
*/
def getDatabaseMinorVersion(): Int
/**
* Retrieves the major JDBC version number for this
* driver.
*
* @return JDBC version major number
*/
def getJDBCMajorVersion(): Int
/**
* Retrieves the minor JDBC version number for this
* driver.
*
* @return JDBC version minor number
*/
def getJDBCMinorVersion(): Int
/**
* Indicates whether the SQLSTATE returned by SQLException.getSQLState
* is X/Open (now known as Open Group) SQL CLI or SQL:2003.
* @return the type of SQLSTATE; one of:
* sqlStateXOpen or
* sqlStateSQL
*/
def getSQLStateType(): Int
/**
* Indicates whether updates made to a LOB are made on a copy or directly
* to the LOB.
* @return true
if updates are made to a copy of the LOB;
* false
if updates are made directly to the LOB
*/
def locatorsUpdateCopy(): Boolean
/**
* Retrieves whether this database supports statement pooling.
*
* @return true
if so; false
otherwise
*/
def supportsStatementPooling(): Boolean
/**
* Indicates whether this data source supports the SQL {@code ROWID} type,
* and the lifetime for which a {@link RowId} object remains valid.
*
* @return the status indicating the lifetime of a {@code RowId}
*/
def getRowIdLifetime(): RowIdLifetime
/**
* Retrieves the schema names available in this database. The results
* are ordered by TABLE_CATALOG
and
* TABLE_SCHEM
.
*
* The schema columns are:
*
* - TABLE_SCHEM String {@code =>} schema name
*
- TABLE_CATALOG String {@code =>} catalog name (may be
null
)
*
*
*
* @param catalog a catalog name; must match the catalog name as it is stored
* in the database;"" retrieves those without a catalog; null means catalog
* name should not be used to narrow down the search.
* @param schemaPattern a schema name; must match the schema name as it is
* stored in the database; null means
* schema name should not be used to narrow down the search.
* @return a ResultSet
object in which each row is a
* schema description
*/
def getSchemas(catalog: String, schemaPattern: String): F[ResultSet[F]] =
getSchemas(Some(catalog), Some(schemaPattern))
def getSchemas(catalog: Option[String], schemaPattern: Option[String]): F[ResultSet[F]]
/**
* Retrieves whether this database supports invoking user-defined or vendor functions
* using the stored procedure escape syntax.
*
* @return true
if so; false
otherwise
*/
def supportsStoredFunctionsUsingCallSyntax(): Boolean
/**
* Retrieves whether a SQLException
while autoCommit is true
indicates
* that all open ResultSets are closed, even ones that are holdable. When a SQLException
occurs while
* autocommit is true
, it is vendor specific whether the JDBC driver responds with a commit operation, a
* rollback operation, or by doing neither a commit nor a rollback. A potential result of this difference
* is in whether or not holdable ResultSets are closed.
*
* @return true
if so; false
otherwise
*/
def autoCommitFailureClosesAllResultSets(): Boolean
/**
* Retrieves a list of the client info properties
* that the driver supports. The result set contains the following columns
*
*
* - NAME String{@code =>} The name of the client info property
* - MAX_LEN int{@code =>} The maximum length of the value for the property
* - DEFAULT_VALUE String{@code =>} The default value of the property
* - DESCRIPTION String{@code =>} A description of the property. This will typically
* contain information as to where this property is
* stored in the database.
*
*
* The ResultSet
is sorted by the NAME column
*
* @return A ResultSet
object; each row is a supported client info
* property
*/
def getClientInfoProperties(): F[ResultSet[F]]
/**
* Retrieves a description of the system and user functions available
* in the given catalog.
*
* Only system and user function descriptions matching the schema and
* function name criteria are returned. They are ordered by
* FUNCTION_CAT
, FUNCTION_SCHEM
,
* FUNCTION_NAME
and
* SPECIFIC_ NAME
.
*
*
Each function description has the following columns:
*
* - FUNCTION_CAT String {@code =>} function catalog (may be
null
)
* - FUNCTION_SCHEM String {@code =>} function schema (may be
null
)
* - FUNCTION_NAME String {@code =>} function name. This is the name
* used to invoke the function
*
- REMARKS String {@code =>} explanatory comment on the function
*
- FUNCTION_TYPE short {@code =>} kind of function:
*
* - functionResultUnknown - Cannot determine if a return value
* or table will be returned
*
- functionNoTable- Does not return a table
*
- functionReturnsTable - Returns a table
*
* - SPECIFIC_NAME String {@code =>} the name which uniquely identifies
* this function within its schema. This is a user specified, or DBMS
* generated, name that may be different then the
FUNCTION_NAME
* for example with overload functions
*
*
* A user may not have permission to execute any of the functions that are
* returned by getFunctions
*
* @param catalog a catalog name; must match the catalog name as it
* is stored in the database; "" retrieves those without a catalog;
* null
means that the catalog name should not be used to narrow
* the search
* @param schemaPattern a schema name pattern; must match the schema name
* as it is stored in the database; "" retrieves those without a schema;
* null
means that the schema name should not be used to narrow
* the search
* @param functionNamePattern a function name pattern; must match the
* function name as it is stored in the database
* @return ResultSet
- each row is a function description
*/
def getFunctions(catalog: String, schemaPattern: String, functionNamePattern: String): F[ResultSet[F]] =
getFunctions(Some(catalog), Some(schemaPattern), Some(functionNamePattern))
def getFunctions(
catalog: Option[String],
schemaPattern: Option[String],
functionNamePattern: Option[String]
): F[ResultSet[F]]
/**
* Retrieves a description of the given catalog's system or user
* function parameters and return type.
*
*
Only descriptions matching the schema, function and
* parameter name criteria are returned. They are ordered by
* FUNCTION_CAT
, FUNCTION_SCHEM
,
* FUNCTION_NAME
and
* SPECIFIC_ NAME
. Within this, the return value,
* if any, is first. Next are the parameter descriptions in call
* order. The column descriptions follow in column number order.
*
*
Each row in the ResultSet
* is a parameter description, column description or
* return type description with the following fields:
*
* - FUNCTION_CAT String {@code =>} function catalog (may be
null
)
* - FUNCTION_SCHEM String {@code =>} function schema (may be
null
)
* - FUNCTION_NAME String {@code =>} function name. This is the name
* used to invoke the function
*
- COLUMN_NAME String {@code =>} column/parameter name
*
- COLUMN_TYPE Short {@code =>} kind of column/parameter:
*
* - functionColumnUnknown - nobody knows
*
- functionColumnIn - IN parameter
*
- functionColumnInOut - INOUT parameter
*
- functionColumnOut - OUT parameter
*
- functionColumnReturn - function return value
*
- functionColumnResult - Indicates that the parameter or column
* is a column in the
ResultSet
*
* - DATA_TYPE int {@code =>} SQL type from java.sql.Types
*
- TYPE_NAME String {@code =>} SQL type name, for a UDT type the
* type name is fully qualified
*
- PRECISION int {@code =>} precision
*
- LENGTH int {@code =>} length in bytes of data
*
- SCALE short {@code =>} scale - null is returned for data types where
* SCALE is not applicable.
*
- RADIX short {@code =>} radix
*
- NULLABLE short {@code =>} can it contain NULL.
*
* - functionNoNulls - does not allow NULL values
*
- functionNullable - allows NULL values
*
- functionNullableUnknown - nullability unknown
*
* - REMARKS String {@code =>} comment describing column/parameter
*
- CHAR_OCTET_LENGTH int {@code =>} the maximum length of binary
* and character based parameters or columns. For any other datatype the returned value
* is a NULL
*
- ORDINAL_POSITION int {@code =>} the ordinal position, starting
* from 1, for the input and output parameters. A value of 0
* is returned if this row describes the function's return value.
* For result set columns, it is the
* ordinal position of the column in the result set starting from 1.
*
- IS_NULLABLE String {@code =>} ISO rules are used to determine
* the nullability for a parameter or column.
*
* - YES --- if the parameter or column can include NULLs
*
- NO --- if the parameter or column cannot include NULLs
*
- empty string --- if the nullability for the
* parameter or column is unknown
*
* - SPECIFIC_NAME String {@code =>} the name which uniquely identifies
* this function within its schema. This is a user specified, or DBMS
* generated, name that may be different then the
FUNCTION_NAME
* for example with overload functions
*
*
* The PRECISION column represents the specified column size for the given
* parameter or column.
* For numeric data, this is the maximum precision. For character data, this is the length in characters.
* For datetime datatypes, this is the length in characters of the String representation (assuming the
* maximum allowed precision of the fractional seconds component). For binary data, this is the length in bytes. For the ROWID datatype,
* this is the length in bytes. Null is returned for data types where the
* column size is not applicable.
* @param catalog a catalog name; must match the catalog name as it
* is stored in the database; "" retrieves those without a catalog;
* null
means that the catalog name should not be used to narrow
* the search
* @param schemaPattern a schema name pattern; must match the schema name
* as it is stored in the database; "" retrieves those without a schema;
* null
means that the schema name should not be used to narrow
* the search
* @param functionNamePattern a procedure name pattern; must match the
* function name as it is stored in the database
* @param columnNamePattern a parameter name pattern; must match the
* parameter or column name as it is stored in the database
* @return ResultSet
- each row describes a
* user function parameter, column or return type
*/
def getFunctionColumns(
catalog: String,
schemaPattern: String,
functionNamePattern: String,
columnNamePattern: String
): F[ResultSet[F]] =
getFunctionColumns(Some(catalog), Some(schemaPattern), Some(functionNamePattern), Some(columnNamePattern))
def getFunctionColumns(
catalog: Option[String],
schemaPattern: Option[String],
functionNamePattern: Option[String],
columnNamePattern: Option[String]
): F[ResultSet[F]]
/**
* Retrieves a description of the pseudo or hidden columns available
* in a given table within the specified catalog and schema.
* Pseudo or hidden columns may not always be stored within
* a table and are not visible in a ResultSet unless they are
* specified in the query's outermost SELECT list. Pseudo or hidden
* columns may not necessarily be able to be modified. If there are
* no pseudo or hidden columns, an empty ResultSet is returned.
*
*
Only column descriptions matching the catalog, schema, table
* and column name criteria are returned. They are ordered by
* TABLE_CAT
,TABLE_SCHEM
, TABLE_NAME
* and COLUMN_NAME
.
*
*
Each column description has the following columns:
*
* - TABLE_CAT String {@code =>} table catalog (may be
null
)
* - TABLE_SCHEM String {@code =>} table schema (may be
null
)
* - TABLE_NAME String {@code =>} table name
*
- COLUMN_NAME String {@code =>} column name
*
- DATA_TYPE int {@code =>} SQL type from java.sql.Types
*
- COLUMN_SIZE int {@code =>} column size.
*
- DECIMAL_DIGITS int {@code =>} the number of fractional digits. Null is returned for data types where
* DECIMAL_DIGITS is not applicable.
*
- NUM_PREC_RADIX int {@code =>} Radix (typically either 10 or 2)
*
- COLUMN_USAGE String {@code =>} The allowed usage for the column. The
* value returned will correspond to the enum name returned by {@link PseudoColumnUsage#name PseudoColumnUsage.name()}
*
- REMARKS String {@code =>} comment describing column (may be
null
)
* - CHAR_OCTET_LENGTH int {@code =>} for char types the
* maximum number of bytes in the column
*
- IS_NULLABLE String {@code =>} ISO rules are used to determine the nullability for a column.
*
* - YES --- if the column can include NULLs
*
- NO --- if the column cannot include NULLs
*
- empty string --- if the nullability for the column is unknown
*
*
*
* The COLUMN_SIZE column specifies the column size for the given column.
* For numeric data, this is the maximum precision. For character data, this is the length in characters.
* For datetime datatypes, this is the length in characters of the String representation (assuming the
* maximum allowed precision of the fractional seconds component). For binary data, this is the length in bytes. For the ROWID datatype,
* this is the length in bytes. Null is returned for data types where the
* column size is not applicable.
*
* @param catalog a catalog name; must match the catalog name as it
* is stored in the database; "" retrieves those without a catalog;
* null
means that the catalog name should not be used to narrow
* the search
* @param schemaPattern a schema name pattern; must match the schema name
* as it is stored in the database; "" retrieves those without a schema;
* null
means that the schema name should not be used to narrow
* the search
* @param tableNamePattern a table name pattern; must match the
* table name as it is stored in the database
* @param columnNamePattern a column name pattern; must match the column
* name as it is stored in the database
* @return ResultSet
- each row is a column description
*/
def getPseudoColumns(
catalog: String,
schemaPattern: String,
tableNamePattern: String,
columnNamePattern: String
): F[ResultSet[F]] =
getPseudoColumns(Some(catalog), Some(schemaPattern), Some(tableNamePattern), Some(columnNamePattern))
def getPseudoColumns(
catalog: Option[String],
schemaPattern: Option[String],
tableNamePattern: Option[String],
columnNamePattern: Option[String]
): F[ResultSet[F]]
/**
* Retrieves whether a generated key will always be returned if the column
* name(s) or index(es) specified for the auto generated key column(s)
* are valid and the statement succeeds. The key that is returned may or
* may not be based on the column(s) for the auto generated key.
* Consult your JDBC driver documentation for additional details.
* @return true
if so; false
otherwise
*/
def generatedKeyAlwaysReturned(): Boolean
/**
* Retrieves the maximum number of bytes this database allows for
* the logical size for a {@code LOB}.
*
* The default implementation will return {@code 0}
*
* @return the maximum number of bytes allowed; a result of zero
* means that there is no limit or the limit is not known
*/
def getMaxLogicalLobSize(): Long = 0
/**
* Retrieves whether this database supports REF CURSOR.
*
* The default implementation will return {@code false}
*
* @return {@code true} if this database supports REF CURSOR;
* {@code false} otherwise
*/
def supportsRefCursors(): Boolean = false
/**
* Retrieves whether this database supports sharding.
* @implSpec
* The default implementation will return {@code false}
*
* @return {@code true} if this database supports sharding;
* {@code false} otherwise
*/
def supportsSharding(): Boolean = false
object DatabaseMetaData:
enum DatabaseTerm:
case SCHEMA, CATALOG
/**
* Indicates that it is not known whether the procedure returns
* a result.
*
* A possible value for column PROCEDURE_TYPE
in the
* ResultSet
object returned by the method
* getProcedures
.
*/
val procedureResultUnknown: Int = 0
/**
* Indicates that the procedure does not return a result.
*
* A possible value for column PROCEDURE_TYPE
in the
* ResultSet
object returned by the method
* getProcedures
.
*/
val procedureNoResult: Int = 1
/**
* Indicates that the procedure returns a result.
*
* A possible value for column PROCEDURE_TYPE
in the
* ResultSet
object returned by the method
* getProcedures
.
*/
val procedureReturnsResult: Int = 2
/**
* Indicates that type of the column is unknown.
*
* A possible value for the column
* COLUMN_TYPE
* in the ResultSet
* returned by the method getProcedureColumns
.
*/
val procedureColumnUnknown: Int = 0
/**
* Indicates that the column stores IN parameters.
*
* A possible value for the column
* COLUMN_TYPE
* in the ResultSet
* returned by the method getProcedureColumns
.
*/
val procedureColumnIn: Int = 1
/**
* Indicates that the column stores INOUT parameters.
*
* A possible value for the column
* COLUMN_TYPE
* in the ResultSet
* returned by the method getProcedureColumns
.
*/
val procedureColumnInOut: Int = 2
/**
* Indicates that the column stores results.
*
* A possible value for the column
* COLUMN_TYPE
* in the ResultSet
* returned by the method getProcedureColumns
.
*/
val procedureColumnResult: Int = 3
/**
* Indicates that the column stores OUT parameters.
*
* A possible value for the column
* COLUMN_TYPE
* in the ResultSet
* returned by the method getProcedureColumns
.
*/
val procedureColumnOut: Int = 4
/**
* Indicates that the column stores return values.
*
* A possible value for the column
* COLUMN_TYPE
* in the ResultSet
* returned by the method getProcedureColumns
.
*/
val procedureColumnReturn: Int = 5
/**
* Indicates that NULL
values are not allowed.
*
* A possible value for the column
* NULLABLE
* in the ResultSet
object
* returned by the method getProcedureColumns
.
*/
val procedureNoNulls: Int = 0
/**
* Indicates that NULL
values are allowed.
*
* A possible value for the column
* NULLABLE
* in the ResultSet
object
* returned by the method getProcedureColumns
.
*/
val procedureNullable: Int = 1
/**
* Indicates that whether NULL
values are allowed
* is unknown.
*
* A possible value for the column
* NULLABLE
* in the ResultSet
object
* returned by the method getProcedureColumns
.
*/
val procedureNullableUnknown: Int = 2
/**
* Indicates that the column might not allow NULL
values.
*
* A possible value for the column
* NULLABLE
* in the ResultSet
returned by the method
* getColumns
.
*/
val columnNoNulls: Int = 0
/**
* Indicates that the column definitely allows NULL
values.
*
* A possible value for the column
* NULLABLE
* in the ResultSet
returned by the method
* getColumns
.
*/
val columnNullable: Int = 1
/**
* Indicates that the nullability of columns is unknown.
*
* A possible value for the column
* NULLABLE
* in the ResultSet
returned by the method
* getColumns
.
*/
val columnNullableUnknown: Int = 2
/**
* Indicates that the scope of the best row identifier is
* very temporary, lasting only while the
* row is being used.
*
* A possible value for the column
* SCOPE
* in the ResultSet
object
* returned by the method getBestRowIdentifier
.
*/
val bestRowTemporary: Int = 0
/**
* Indicates that the scope of the best row identifier is
* the remainder of the current transaction.
*
* A possible value for the column
* SCOPE
* in the ResultSet
object
* returned by the method getBestRowIdentifier
.
*/
val bestRowTransaction: Int = 1
/**
* Indicates that the scope of the best row identifier is
* the remainder of the current session.
*
* A possible value for the column
* SCOPE
* in the ResultSet
object
* returned by the method getBestRowIdentifier
.
*/
val bestRowSession: Int = 2
/**
* Indicates that the best row identifier may or may not be a pseudo column.
*
* A possible value for the column
* PSEUDO_COLUMN
* in the ResultSet
object
* returned by the method getBestRowIdentifier
.
*/
val bestRowUnknown: Int = 0
/**
* Indicates that the best row identifier is NOT a pseudo column.
*
* A possible value for the column
* PSEUDO_COLUMN
* in the ResultSet
object
* returned by the method getBestRowIdentifier
.
*/
val bestRowNotPseudo: Int = 1
/**
* Indicates that the best row identifier is a pseudo column.
*
* A possible value for the column
* PSEUDO_COLUMN
* in the ResultSet
object
* returned by the method getBestRowIdentifier
.
*/
val bestRowPseudo: Int = 2
/**
* Indicates that this version column may or may not be a pseudo column.
*
* A possible value for the column
* PSEUDO_COLUMN
* in the ResultSet
object
* returned by the method getVersionColumns
.
*/
val versionColumnUnknown: Int = 0
/**
* Indicates that this version column is NOT a pseudo column.
*
* A possible value for the column
* PSEUDO_COLUMN
* in the ResultSet
object
* returned by the method getVersionColumns
.
*/
val versionColumnNotPseudo: Int = 1
/**
* Indicates that this version column is a pseudo column.
*
* A possible value for the column
* PSEUDO_COLUMN
* in the ResultSet
object
* returned by the method getVersionColumns
.
*/
val versionColumnPseudo: Int = 2
/**
* For the column UPDATE_RULE
,
* indicates that
* when the primary key is updated, the foreign key (imported key)
* is changed to agree with it.
* For the column DELETE_RULE
,
* it indicates that
* when the primary key is deleted, rows that imported that key
* are deleted.
*
* A possible value for the columns UPDATE_RULE
* and DELETE_RULE
in the
* ResultSet
objects returned by the methods
* getImportedKeys
, getExportedKeys
,
* and getCrossReference
.
*/
val importedKeyCascade: Int = 0
/**
* For the column UPDATE_RULE
, indicates that
* a primary key may not be updated if it has been imported by
* another table as a foreign key.
* For the column DELETE_RULE
, indicates that
* a primary key may not be deleted if it has been imported by
* another table as a foreign key.
*
* A possible value for the columns UPDATE_RULE
* and DELETE_RULE
in the
* ResultSet
objects returned by the methods
* getImportedKeys
, getExportedKeys
,
* and getCrossReference
.
*/
val importedKeyRestrict: Int = 1
/**
* For the columns UPDATE_RULE
* and DELETE_RULE
, indicates that
* when the primary key is updated or deleted, the foreign key (imported key)
* is changed to NULL
.
*
* A possible value for the columns UPDATE_RULE
* and DELETE_RULE
in the
* ResultSet
objects returned by the methods
* getImportedKeys
, getExportedKeys
,
* and getCrossReference
.
*/
val importedKeySetNull: Int = 2
/**
* For the columns UPDATE_RULE
* and DELETE_RULE
, indicates that
* if the primary key has been imported, it cannot be updated or deleted.
*
* A possible value for the columns UPDATE_RULE
* and DELETE_RULE
in the
* ResultSet
objects returned by the methods
* getImportedKeys
, getExportedKeys
,
* and getCrossReference
.
*/
val importedKeyNoAction: Int = 3
/**
* For the columns UPDATE_RULE
* and DELETE_RULE
, indicates that
* if the primary key is updated or deleted, the foreign key (imported key)
* is set to the default value.
*
* A possible value for the columns UPDATE_RULE
* and DELETE_RULE
in the
* ResultSet
objects returned by the methods
* getImportedKeys
, getExportedKeys
,
* and getCrossReference
.
*/
val importedKeySetDefault: Int = 4
/**
* Indicates deferrability. See SQL-92 for a definition.
*
* A possible value for the column DEFERRABILITY
* in the ResultSet
objects returned by the methods
* getImportedKeys
, getExportedKeys
,
* and getCrossReference
.
*/
val importedKeyInitiallyDeferred: Int = 5
/**
* Indicates deferrability. See SQL-92 for a definition.
*
* A possible value for the column DEFERRABILITY
* in the ResultSet
objects returned by the methods
* getImportedKeys
, getExportedKeys
,
* and getCrossReference
.
*/
val importedKeyInitiallyImmediate: Int = 6
/**
* Indicates deferrability. See SQL-92 for a definition.
*
* A possible value for the column DEFERRABILITY
* in the ResultSet
objects returned by the methods
* getImportedKeys
, getExportedKeys
,
* and getCrossReference
.
*/
val importedKeyNotDeferrable: Int = 7
/**
* Indicates that a NULL
value is NOT allowed for this
* data type.
*
* A possible value for column NULLABLE
in the
* ResultSet
object returned by the method
* getTypeInfo
.
*/
val typeNoNulls: Int = 0
/**
* Indicates that a NULL
value is allowed for this
* data type.
*
* A possible value for column NULLABLE
in the
* ResultSet
object returned by the method
* getTypeInfo
.
*/
val typeNullable: Int = 1
/**
* Indicates that it is not known whether a NULL
value
* is allowed for this data type.
*
* A possible value for column NULLABLE
in the
* ResultSet
object returned by the method
* getTypeInfo
.
*/
val typeNullableUnknown: Int = 2
/**
* Indicates that WHERE
search clauses are not supported
* for this type.
*
* A possible value for column SEARCHABLE
in the
* ResultSet
object returned by the method
* getTypeInfo
.
*/
val typePredNone: Int = 0
/**
* Indicates that the data type
* can be only be used in WHERE
search clauses
* that use LIKE
predicates.
*
* A possible value for column SEARCHABLE
in the
* ResultSet
object returned by the method
* getTypeInfo
.
*/
val typePredChar: Int = 1
/**
* Indicates that the data type can be only be used in WHERE
* search clauses
* that do not use LIKE
predicates.
*
* A possible value for column SEARCHABLE
in the
* ResultSet
object returned by the method
* getTypeInfo
.
*/
val typePredBasic: Int = 2
/**
* Indicates that all WHERE
search clauses can be
* based on this type.
*
* A possible value for column SEARCHABLE
in the
* ResultSet
object returned by the method
* getTypeInfo
.
*/
val typeSearchable: Int = 3
/**
* Indicates that this column contains table statistics that
* are returned in conjunction with a table's index descriptions.
*
* A possible value for column TYPE
in the
* ResultSet
object returned by the method
* getIndexInfo
.
*/
val tableIndexStatistic: Short = 0
/**
* Indicates that this table index is a clustered index.
*
* A possible value for column TYPE
in the
* ResultSet
object returned by the method
* getIndexInfo
.
*/
val tableIndexClustered: Short = 1
/**
* Indicates that this table index is a hashed index.
*
* A possible value for column TYPE
in the
* ResultSet
object returned by the method
* getIndexInfo
.
*/
val tableIndexHashed: Short = 2
/**
* Indicates that this table index is not a clustered
* index, a hashed index, or table statistics;
* it is something other than these.
*
* A possible value for column TYPE
in the
* ResultSet
object returned by the method
* getIndexInfo
.
*/
val tableIndexOther: Short = 3
/**
* Indicates that NULL
values might not be allowed.
*
* A possible value for the column
* NULLABLE
in the ResultSet
object
* returned by the method getAttributes
.
*/
val attributeNoNulls: Short = 0
/**
* Indicates that NULL
values are definitely allowed.
*
* A possible value for the column NULLABLE
* in the ResultSet
object
* returned by the method getAttributes
.
*/
val attributeNullable: Short = 1
/**
* Indicates that whether NULL
values are allowed is not
* known.
*
* A possible value for the column NULLABLE
* in the ResultSet
object
* returned by the method getAttributes
.
*/
val attributeNullableUnknown: Short = 2
/**
* A possible return value for the method
* DatabaseMetaData.getSQLStateType
which is used to indicate
* whether the value returned by the method
* SQLException.getSQLState
is an
* X/Open (now know as Open Group) SQL CLI SQLSTATE value.
*/
val sqlStateXOpen: Int = 1
/**
* A possible return value for the method
* DatabaseMetaData.getSQLStateType
which is used to indicate
* whether the value returned by the method
* SQLException.getSQLState
is an SQLSTATE value.
*/
val sqlStateSQL: Int = 2
/**
* A possible return value for the method
* DatabaseMetaData.getSQLStateType
which is used to indicate
* whether the value returned by the method
* SQLException.getSQLState
is an SQL99 SQLSTATE value.
*
* Note:This constant remains only for compatibility reasons. Developers
* should use the constant sqlStateSQL
instead.
*/
val sqlStateSQL99: Int = sqlStateSQL
/**
* Indicates that type of the parameter or column is unknown.
*
* A possible value for the column
* COLUMN_TYPE
* in the ResultSet
* returned by the method getFunctionColumns
.
*/
val functionColumnUnknown: Int = 0
/**
* Indicates that the parameter or column is an IN parameter.
*
* A possible value for the column
* COLUMN_TYPE
* in the ResultSet
* returned by the method getFunctionColumns
.
*/
val functionColumnIn: Int = 1
/**
* Indicates that the parameter or column is an INOUT parameter.
*
* A possible value for the column
* COLUMN_TYPE
* in the ResultSet
* returned by the method getFunctionColumns
.
*/
val functionColumnInOut: Int = 2
/**
* Indicates that the parameter or column is an OUT parameter.
*
* A possible value for the column
* COLUMN_TYPE
* in the ResultSet
* returned by the method getFunctionColumns
.
*/
val functionColumnOut: Int = 3
/**
* Indicates that the parameter or column is a return value.
*
* A possible value for the column
* COLUMN_TYPE
* in the ResultSet
* returned by the method getFunctionColumns
.
*/
val functionReturn: Int = 4
/**
* Indicates that the parameter or column is a column in a result set.
*
* A possible value for the column
* COLUMN_TYPE
* in the ResultSet
* returned by the method getFunctionColumns
.
*/
val functionColumnResult: Int = 5
/**
* Indicates that NULL
values are not allowed.
*
* A possible value for the column
* NULLABLE
* in the ResultSet
object
* returned by the method getFunctionColumns
.
*/
val functionNoNulls: Int = 0
/**
* Indicates that NULL
values are allowed.
*
* A possible value for the column
* NULLABLE
* in the ResultSet
object
* returned by the method getFunctionColumns
.
*/
val functionNullable: Int = 1
/**
* Indicates that whether NULL
values are allowed
* is unknown.
*
* A possible value for the column
* NULLABLE
* in the ResultSet
object
* returned by the method getFunctionColumns
.
*/
val functionNullableUnknown: Int = 2
/**
* Indicates that it is not known whether the function returns
* a result or a table.
*
* A possible value for column FUNCTION_TYPE
in the
* ResultSet
object returned by the method
* getFunctions
.
*/
val functionResultUnknown: Int = 0
/**
* Indicates that the function does not return a table.
*
* A possible value for column FUNCTION_TYPE
in the
* ResultSet
object returned by the method
* getFunctions
.
*/
val functionNoTable: Int = 1
/**
* Indicates that the function returns a table.
*
* A possible value for column FUNCTION_TYPE
in the
* ResultSet
object returned by the method
* getFunctions
.
*/
val functionReturnsTable: Int = 2