src/rptocol/tds: add TDS 8.0 protocol interface#12
src/rptocol/tds: add TDS 8.0 protocol interface#12kardianos wants to merge 2 commits intojgarzik:mainfrom
Conversation
|
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.
e6629c8 to
cf31ef3
Compare
|
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. |
|
I've linted. |
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.