Skip to content

src/rptocol/tds: add TDS 8.0 protocol interface#12

Open
kardianos wants to merge 2 commits intojgarzik:mainfrom
kardianos:kardianos-tds
Open

src/rptocol/tds: add TDS 8.0 protocol interface#12
kardianos wants to merge 2 commits intojgarzik:mainfrom
kardianos:kardianos-tds

Conversation

@kardianos
Copy link

TDS 8.0 Allows a TLS only protocol and can switch between MySQL and TDS wire protocols.
TDS supports inline cancelation and transaction rpc start, rollback, and commit.

@jgarzik
Copy link
Owner

jgarzik commented Feb 15, 2026

Nice! Being a Linux guy, I've never heard of TDS 8.0 before today.

Definitely looks like something we want to support, to really open up our use on windows.

As an aside, I also want to add IOCP support for Windows users. Needs a lot of testing and design work, though.

I'll queue this up for merging, after some research and testing and analysis.

TDS 8.0 Allows a TLS only protocol and can switch between
MySQL and TDS wire protocols.
TDS supports inline cancelation and transaction rpc start, rollback, and commit.
@kardianos
Copy link
Author

I don't run windows on client or server. I run MS SQL Server in a Linux container, which is officially supported now. The client I use is https://github.com/kardianos/rdb (go, ms sub folder for tds) and it the client implementation I used to test the server implementation. The TDS protocol itself is well documented https://github.com/kardianos/rdb/tree/master/ms/_ref/MS-TDS_v39-0 . TDS itself supports named parameters, inline cancellation, and multiple result sets. It isn't without warts, such as using UTF16 for text, though you might be able to use a UTF8 collation these days.

Right now the implementation can enable TDS and MySQL on the same port but detect the difference with APLN, but imposes a 5ms delay on the MySQL connection side if TDS is also enabled due to that.

I fixed the rust fmt issue.

@kardianos
Copy link
Author

I've linted.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants