Bugfix go2SqlDataType was returning too large of a varbinary#74
Open
nehoffman wants to merge 6 commits into
Open
Bugfix go2SqlDataType was returning too large of a varbinary#74nehoffman wants to merge 6 commits into
nehoffman wants to merge 6 commits into
Conversation
Varbinary was being returned with a number greater than 8000 (the maximum) when the length of []byte was too long. Switched so that it will automatically switch to varbinary (MAX) when needed.
Removed redundant max(1, len(b)) function call since that is not needed to check if the length is over 8000. Slightly altered style to match the rest of the code base as well.
Added a test to ensure that all byte slices with a length over 8000 will auto-switch to varbinary (MAX).
Added a boolean flag for whether the attached database is MSSQL2005, and it's being used to determine whether to use datetimeoffset or datetime for variables. Added a test to make sure the correct date type is used.
Attempting to run a SQL query after the DbProcMutex was locked was causing a permament lockup. Switched to running the SQL query asynchronously.
The value of conn.mssqlVersion2005 was incorrect on query runtime. This was either because it never got set, or didn't get set in time. Removed asynchronous function call and replaced it with a synchronous one in a spot of code that will not cause a lock to occur.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The go2sqlDataType function would return a varbinary of any length,
however, 8000 is the maximum size any varbinary data type can be.
Source: https://docs.microsoft.com/en-us/sql/t-sql/data-types/binary-and-varbinary-transact-sql?view=sql-server-ver15
To be larger than 8000, it must be a varbinary (MAX). Otherwise, this would cause an error when calling conn.ExecuteSql with a byte slice with a greater length than 8000.
I've made this adjustment and added a test to make sure it keeps working.