Implemented support for the SQL Server sql_variant data type #1354
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This commit adds support for decoding the SQL Server
sql_variant
data type.Attempting to read records containing
sql_variant
columns in the current version ofpyodbc
(5.1.0) results in the following exception:As mentioned in #307, it is not trivial to write a custom output converter for
sql_variant
as the bytes returned by SQL Server give no indication as to the underlying data type of each value.This commit adds a
GetData_SqlVariant()
method which retrieves the underlying data type per the Microsoft documentation usingSQLColAttribute()
:This underlying data type is then patched into the
ColumnInfo
struct for the current column andGetData()
is invoked using this new type:The
sql_variant
type is used by a number of system functions and views and this commit adds support for reading them: