Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
186e8ab
CI config changes (version, test triggers) + .props
okramarenko Mar 30, 2026
cc2a684
update .csproj files
okramarenko Mar 31, 2026
e34c6e8
update SingleStoreConnector.Authentication.Ed25519
okramarenko Mar 31, 2026
af4cb81
grab block of updates for Authentication, ColumnReaders and Core folders
okramarenko Mar 31, 2026
b9968b9
grab another block of changes
okramarenko Apr 1, 2026
4fcc208
grab Protocol changes
okramarenko Apr 2, 2026
af6dd57
grab the last block of changes for the connector
okramarenko Apr 2, 2026
c75f384
grab first block of changes for the tests
okramarenko Apr 2, 2026
b357581
grab the last block of changes for tests
okramarenko Apr 3, 2026
dfb6ad7
make it build
okramarenko Apr 6, 2026
18c172b
fix dotnet version in CI
okramarenko Apr 6, 2026
77d5340
update config.yml
okramarenko Apr 6, 2026
5ef8f81
update Directory.Build.props
okramarenko Apr 6, 2026
45e9cbd
fix typo
okramarenko Apr 6, 2026
a007803
fix SingleStoreConnector.Tests and resolve Vector fixture creation
okramarenko Apr 6, 2026
501f031
get rid of the specific MySQL protocol mechanism (COM_STMT_SEND_LONG_…
okramarenko Apr 22, 2026
78aee2e
resolve issue with log4net package
okramarenko Apr 22, 2026
85899ab
minor fixes
okramarenko Apr 23, 2026
7c55285
implement bulk loading tests for Geography types
okramarenko Apr 24, 2026
712308a
get rid of Vector type support (need to reimplement it)
okramarenko Apr 24, 2026
082c9a4
resolve small issues
okramarenko Apr 24, 2026
ceef53a
regenerate docs
okramarenko May 12, 2026
8780d13
update version and release notes
okramarenko May 12, 2026
9842511
Make EnableResultSetHeaderEvent opt in
okramarenko May 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/SideBySide/config-ssl.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"Data": {
"ConnectionString": "server=SINGLESTORE_HOST;user id=SQL_USER_NAME;password=SQL_USER_PASSWORD;port=3306;database=singlestoretest;sslmode=Required;certificate file=../../../../.ci/server/certs/ssl-client.pfx;",
"UnsupportedFeatures": "CachingSha2Password,Ed25519,QueryAttributes,Tls11,Tls13,UuidToBin,UnixDomainSocket,Sha256Password,GlobalLog,Redirection,CancelSleepSuccessfully,TlsFingerprintValidation",
"UnsupportedFeatures": "CachingSha2Password,Ed25519,QueryAttributes,Tls11,Tls13,UuidToBin,UnixDomainSocket,Sha256Password,GlobalLog,Redirection,CancelSleepSuccessfully,TlsFingerprintValidation,ParsecAuthentication",
"CertificatesPath": "../../../../.ci/server/certs"
}
}
4 changes: 2 additions & 2 deletions .github/workflows/SideBySide/config.json
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
{
"Data": {
"ConnectionString": "server=SINGLESTORE_HOST;user id=SQL_USER_NAME;password=SQL_USER_PASSWORD;port=3306;database=singlestoretest;sslmode=None",
"UnsupportedFeatures": "CachingSha2Password,Ed25519,QueryAttributes,Tls11,Tls13,UuidToBin,UnixDomainSocket,Sha256Password,GlobalLog,Redirection,CancelSleepSuccessfully,TlsFingerprintValidation",
"ConnectionString": "server=SINGLESTORE_HOST;user id=SQL_USER_NAME;password=SQL_USER_PASSWORD;port=3306;database=singlestoretest;sslmode=disabled;",
"UnsupportedFeatures": "CachingSha2Password,Ed25519,QueryAttributes,Tls11,Tls13,UuidToBin,UnixDomainSocket,Sha256Password,GlobalLog,Redirection,CancelSleepSuccessfully,TlsFingerprintValidation,ParsecAuthentication",
"ManagedService": true
}
}
41 changes: 24 additions & 17 deletions .github/workflows/config.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,19 @@
name: SingleStore .NET Connector

on: [push]
on:
pull_request:
types: [opened, synchronize, reopened]
push:
branches: [master]
tags:
- 'v*'
workflow_call:
workflow_dispatch:

env:
DOTNET_VERSION: 9.0.303
TARGET_FRAMEWORK: net9.0
CONNECTOR_VERSION: 1.3.0
DOTNET_VERSION: 10.0.x
TARGET_FRAMEWORK: net10.0
CONNECTOR_VERSION: 1.4.0
LICENSE_KEY: ${{ secrets.LICENSE_KEY }}
SQL_USER_PASSWORD: ${{ secrets.SQL_USER_PASSWORD }}
S2MS_API_KEY: ${{ secrets.S2MS_API_KEY }}
Expand Down Expand Up @@ -51,13 +59,13 @@ jobs:

test-ubuntu:
name: ${{ matrix.name }}
runs-on: ubuntu-22.04
needs: build-matrix
runs-on: ubuntu-24.04
strategy:
fail-fast: false
matrix: ${{ fromJson(needs.build-matrix.outputs.matrix) }}
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- name: Remove unnecessary pre-installed toolchains for free disk spaces
run: |
Expand All @@ -77,18 +85,16 @@ jobs:
df -h

- name: Set up .NET
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: ${{ env.DOTNET_VERSION }}

- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y apt-transport-https
sudo apt-get install -y mariadb-client-core-10.6
sudo apt-get install -y mariadb-client-10.6
sudo apt-get install -y mariadb-client-core
sudo apt-get install -y mariadb-client
sudo apt-get update
sudo apt-get install -y dotnet-sdk-9.0
dotnet --info

- name: Start SingleStore Cluster
Expand Down Expand Up @@ -138,18 +144,19 @@ jobs:
dotnet test -f ${{ env.TARGET_FRAMEWORK }} -c Release --no-build
cd ../../


test-windows:
runs-on: windows-latest
strategy:
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- name: Install Python dependencies
run: pip install singlestoredb

- name: Install .NET
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: ${{ env.DOTNET_VERSION }}

Expand All @@ -161,7 +168,7 @@ jobs:

- name: Fill test config
run: python .github\workflows\fill_test_config.py

- name: Export full connection string
shell: bash
run: echo "CONNECTION_STRING=$(< $HOME/CONNECTION_STRING)" >> $GITHUB_ENV
Expand Down Expand Up @@ -189,10 +196,10 @@ jobs:
if: startsWith(github.ref, 'refs/tags/')
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v5

- name: Install .NET
uses: actions/setup-dotnet@v4
uses: actions/setup-dotnet@v5
with:
dotnet-version: ${{ env.DOTNET_VERSION }}

Expand All @@ -206,7 +213,7 @@ jobs:
run: dotnet pack -c Release --output net_connector -p:PackageVersion=${{ env.CONNECTOR_VERSION }}

- name: Upload artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v5
with:
name: net_connector
path: net_connector/
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/fill_test_config.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
import os
from s2ms_cluster import WORKSPACE_ENDPOINT_FILE

NET_FRAMEWORKS = ["net462", "net472", "net6.0", "net7.0", "net8.0", "net9.0"]
NET_FRAMEWORKS = ["net462", "net472", "net6.0", "net7.0", "net8.0", "net10.0"]


if __name__ == "__main__":
Expand Down
8 changes: 5 additions & 3 deletions Directory.Build.props
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,16 @@

<PropertyGroup>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<LangVersion>preview</LangVersion>
<LangVersion>14.0</LangVersion>
<AccelerateBuildsInVisualStudio>true</AccelerateBuildsInVisualStudio>
<NoWarn>$(NoWarn);1591;CA1708;CA1835;CA2215;CA5397;NU5105;SYSLIB0039</NoWarn>

<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);1573;1591;1712;CA1708;CA1835;CA2215;CA5397;NU5105;SYSLIB0039</NoWarn>

<ArtifactsPath>$(MSBuildThisFileDirectory)artifacts</ArtifactsPath>
<NuGetAudit>true</NuGetAudit>
<NuGetAuditLevel>low</NuGetAuditLevel>
<NuGetAuditMode>all</NuGetAuditMode>
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
</PropertyGroup>

<PropertyGroup Condition=" '$(Configuration)' == 'Release' ">
Expand Down
15 changes: 8 additions & 7 deletions Directory.Packages.props
Original file line number Diff line number Diff line change
Expand Up @@ -8,28 +8,29 @@
<PackageVersion Include="AdoNet.Specification.Tests" Version="2.0.0-beta.2" />
<PackageVersion Include="Dapper.StrongName" Version="2.1.35" />
<PackageVersion Include="IndexRange" Version="1.0.3" />
<PackageVersion Include="log4net" Version="2.0.17" />
<PackageVersion Include="log4net" Version="3.3.1" />
<PackageVersion Include="Microsoft.AspNetCore.Cryptography.KeyDerivation" Version="8.0.16" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Binder" Version="8.0.2" />
<PackageVersion Include="Microsoft.Extensions.Configuration.EnvironmentVariables" Version="8.0.0" />
<PackageVersion Include="Microsoft.Extensions.Configuration.Json" Version="8.0.1" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection" Version="8.0.1" />
<PackageVersion Include="Microsoft.Extensions.DependencyInjection.Abstractions" Version="8.0.2" />
<PackageVersion Include="Microsoft.Extensions.Logging.Abstractions" Version="8.0.2" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.11.1" />
<PackageVersion Include="MySql.Data" Version="9.1.0" />
<PackageVersion Include="Microsoft.NET.Test.Sdk" Version="17.12.0" />
<PackageVersion Include="MySql.Data" Version="9.5.0" />
<PackageVersion Include="NLog" Version="4.7.15" />
<PackageVersion Include="Serilog" Version="2.12.0" />
<PackageVersion Include="StyleCop.Analyzers" Version="1.2.0-beta.556" />
<PackageVersion Include="System.Diagnostics.DiagnosticSource" Version="8.0.1" />
<PackageVersion Include="System.Text.Json" Version="8.0.5" />
<PackageVersion Include="System.Text.Json" Version="9.0.1" />
<PackageVersion Include="System.Threading.Tasks.Extensions" Version="4.5.4" />
<PackageVersion Include="xunit" Version="2.9.2" />
<PackageVersion Include="xunit" Version="2.9.3" />
<PackageVersion Include="xunit.runner.visualstudio" Version="2.8.2" />
<PackageVersion Include="YamlDotNet" Version="16.1.3" />
<PackageVersion Include="YamlDotNet" Version="16.3.0" />
</ItemGroup>

<ItemGroup>
<GlobalPackageReference Include="Microsoft.SourceLink.GitHub" Version="8.0.0" />
<GlobalPackageReference Include="StyleCop.Analyzers" Version="1.2.0-beta.556" />
</ItemGroup>

</Project>
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
MIT License

Copyright (c) 2016-2021 Bradley Grainger
Copyright (c) 2022-2025 SingleStore, Inc.
Copyright (c) 2022-2026 SingleStore, Inc.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# SingleStore Connector for .NET and .NET Core 1.3.0
# SingleStore Connector for .NET and .NET Core 1.4.0

This is an [ADO.NET](https://docs.microsoft.com/en-us/dotnet/framework/data/adonet/) data
provider for [SingleStore](https://www.singlestore.com/). It provides implementations of
Expand Down
17 changes: 17 additions & 0 deletions SingleStoreConnector.slnx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
<Solution>
<Folder Name="/tools/">
<Project Path="tools/SchemaCollectionGenerator/SchemaCollectionGenerator.csproj" />
</Folder>
<Project Path="src/SingleStoreConnector.Authentication.Ed25519/SingleStoreConnector.Authentication.Ed25519.csproj" />
<Project Path="src/SingleStoreConnector.DependencyInjection/SingleStoreConnector.DependencyInjection.csproj" />
<Project Path="src/SingleStoreConnector.Logging.log4net/SingleStoreConnector.Logging.log4net.csproj" />
<Project Path="src/SingleStoreConnector.Logging.Microsoft.Extensions.Logging/SingleStoreConnector.Logging.Microsoft.Extensions.Logging.csproj" />
<Project Path="src/SingleStoreConnector.Logging.NLog/SingleStoreConnector.Logging.NLog.csproj" />
<Project Path="src/SingleStoreConnector.Logging.Serilog/SingleStoreConnector.Logging.Serilog.csproj" />
<Project Path="src/SingleStoreConnector/SingleStoreConnector.csproj" />
<Project Path="tests/Conformance.Tests/Conformance.Tests.csproj" />
<Project Path="tests/SideBySide/SideBySide.csproj" />
<Project Path="tests/SingleStoreConnector.DependencyInjection.Tests/SingleStoreConnector.DependencyInjection.Tests.csproj" />
<Project Path="tests/SingleStoreConnector.NativeAot.Tests/SingleStoreConnector.NativeAot.Tests.csproj" />
<Project Path="tests/SingleStoreConnector.Tests/SingleStoreConnector.Tests.csproj" />
</Solution>
96 changes: 0 additions & 96 deletions SingleStoreNETConnector.sln

This file was deleted.

34 changes: 34 additions & 0 deletions docs/VersionHistory.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,40 @@

## Release Notes

### 1.4.0

All the changes introduced with MySqlConnector (2.4.0 - 2.5.0):

* Support .NET 10

* **Possibly breaking** SingleStoreConnection.State will be set to ConnectionState.Broken when there is a network error:
- Previously it would have been set to ConnectionState.Closed but the connection wasn't truly closed.
- Call SingleStoreConnection.Close() to fully close the connection before calling Open() again.
- Better yet, call .Dispose() (ideally with a using declaration) and create a new SingleStoreConnection instance to recover from failure.

* **Possibly breaking** SingleStoreConnection.ResetConnectionAsync will consistently throw a SingleStoreException.

* Support VECTOR and BSON data types

* Add SingleStoreConnectorTracingOptions and builder APIs to configure tracing output

* Mark SingleStoreDbType with [DbProviderSpecificTypeProperty(true)]

* Allow loopback connections (e.g., Google Cloud SQL Proxy) to use clear-text password or public key retrieval

* Improve XA transaction rollback handling

* Free large cached payload buffers when returning sessions to the pool to reduce memory usage

* Suppress error-level logging when a command is canceled

* Fix SingleStoreBulkCopy auto-detected column mappings

* Fix extra roundtrip for caching_sha2_password

* Fix cancellation with AWS RDS Proxy


### 1.3.0

All the changes introduced with MySqlConnector (2.3.1 - 2.4.0):
Expand Down
Loading
Loading