MsSql

object MsSql : DbType

Represents the MSSQL database type.

This class provides methods to convert data from a ResultSet to the appropriate type for MSSQL, and to generate the corresponding column schema.

Properties

Link copied to clipboard

The name of the database as specified in the JDBC URL.

Link copied to clipboard
open val defaultFetchSize: Int = 1000

Specifies the default batch size for fetching rows from the database during query execution.

Link copied to clipboard

Default mapping of Java SQL Types to KType.

Link copied to clipboard
open val defaultQueryTimeout: Int? = null

Specifies the default timeout in seconds for database queries.

Link copied to clipboard
open override val driverClassName: String

Represents the JDBC driver class name for a given database type.

Link copied to clipboard
open val tableTypes: List<String>?

The table type(s) (TABLE_TYPE) of ordinary tables in the SQL database, used by the readAllSqlTables functions as a filter when querying the database for all the tables it has using DatabaseMetaData.getTables.

Functions

Link copied to clipboard
open fun <D, P> buildDataColumn(name: String, values: List<D>, tableColumnMetadata: TableColumnMetadata, targetColumnSchema: ColumnSchema?, inferNullability: Boolean): DataColumn<P>

Builds a DataColumn from the given (preprocessed) values, adhering to targetColumnSchema.

Link copied to clipboard
open fun buildSelectTableQueryWithLimit(tableName: String, limit: Int?): String

Builds a SELECT query for reading from a table.

Link copied to clipboard
open override fun buildSqlQueryWithLimit(sqlQuery: String, limit: Int = 1): String

Constructs a SQL query with a limit clause.

Link copied to clipboard
open override fun buildTableMetadata(tables: ResultSet): TableMetadata

Builds the table metadata based on the database type and the ResultSet from the query.

Link copied to clipboard

Configures the provided PreparedStatement for optimized read operations.

Link copied to clipboard

Creates a database connection using the provided configuration. This method is only called when working with DbConnectionConfig (internally managed connections).

Link copied to clipboard
open override fun getExpectedJdbcType(tableColumnMetadata: TableColumnMetadata): KType

MSSQL-specific deviations from the default type mapping, all of them cases where the default mapping and the values ResultSet.getObject returns disagreed (see #2087):

Link copied to clipboard
open fun getPreprocessedValueType(tableColumnMetadata: TableColumnMetadata, expectedJdbcType: KType): KType

Returns the type of the objects returned by preprocessValue for the given column. Also called type D.

Link copied to clipboard

Retrieves column metadata from a JDBC ResultSet.

Link copied to clipboard
open fun getTargetColumnSchema(tableColumnMetadata: TableColumnMetadata, expectedValueType: KType): ColumnSchema?

Returns the target schema of the given column which buildDataColumn will adhere to. This schema corresponds to type P, in the sense that it will describe the schema of DataColumn<P>.

Link copied to clipboard
open override fun <J> getValueFromResultSet(rs: ResultSet, columnIndex: Int, tableColumnMetadata: TableColumnMetadata, expectedJdbcType: KType): J

Reads DATETIMEOFFSET columns as OffsetDateTime directly from the driver, see getExpectedJdbcType. Plain ResultSet.getObject would return a driver-specific microsoft.sql.DateTimeOffset instead.

Link copied to clipboard
open override fun isSystemTable(tableMetadata: TableMetadata): Boolean

Checks if the given table name is a system table for the specified database type.

Link copied to clipboard
open fun <J, D> preprocessValue(value: J, tableColumnMetadata: TableColumnMetadata, expectedJdbcType: KType, expectedPreprocessedValueType: KType): D

(Potentially) preprocesses the value for the given column before collecting it in a DataFrame DataColumn.

Link copied to clipboard
open override fun quoteIdentifier(name: String): String

Quotes an identifier (table or column name) according to database-specific rules.

Link copied to clipboard
protected fun <D, P> List<D>.toDataColumn(name: String, targetColumnSchema: ColumnSchema?, inferNullability: Boolean): DataColumn<P>

Helper function to convert this list of values to a DataColumn<P>.