From abbb0369d7730dfdd5cb04357fd7023d1fe90983 Mon Sep 17 00:00:00 2001 From: Jordan Brown Date: Wed, 28 Sep 2022 21:46:26 -0400 Subject: [PATCH] Set global query splitting behavior --- .../Database/MySqlDatabaseContext.cs | 6 +++++- .../Database/PostgresSqlDatabaseContext.cs | 1 + .../Database/SqlServerDatabaseContext.cs | 8 +++++++- .../Database/SqliteDatabaseContext.cs | 2 +- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/src/Tgstation.Server.Host/Database/MySqlDatabaseContext.cs b/src/Tgstation.Server.Host/Database/MySqlDatabaseContext.cs index 60c3cf3fc9..170fe93eee 100644 --- a/src/Tgstation.Server.Host/Database/MySqlDatabaseContext.cs +++ b/src/Tgstation.Server.Host/Database/MySqlDatabaseContext.cs @@ -54,7 +54,11 @@ namespace Tgstation.Server.Host.Database options.UseMySql( databaseConfiguration.ConnectionString, serverVersion, - mySqlOptions => mySqlOptions.EnableRetryOnFailure()); + mySqlOptions => + { + mySqlOptions.EnableRetryOnFailure(); + mySqlOptions.UseQuerySplittingBehavior(QuerySplittingBehavior.SingleQuery); + }); } } } diff --git a/src/Tgstation.Server.Host/Database/PostgresSqlDatabaseContext.cs b/src/Tgstation.Server.Host/Database/PostgresSqlDatabaseContext.cs index 64654ef4cc..0274d2e8b3 100644 --- a/src/Tgstation.Server.Host/Database/PostgresSqlDatabaseContext.cs +++ b/src/Tgstation.Server.Host/Database/PostgresSqlDatabaseContext.cs @@ -44,6 +44,7 @@ namespace Tgstation.Server.Host.Database options.UseNpgsql(databaseConfiguration.ConnectionString, options => { options.EnableRetryOnFailure(); + options.UseQuerySplittingBehavior(QuerySplittingBehavior.SingleQuery); if (!String.IsNullOrEmpty(databaseConfiguration.ServerVersion)) options.SetPostgresVersion( diff --git a/src/Tgstation.Server.Host/Database/SqlServerDatabaseContext.cs b/src/Tgstation.Server.Host/Database/SqlServerDatabaseContext.cs index c0b06ad1f5..71dddb328d 100644 --- a/src/Tgstation.Server.Host/Database/SqlServerDatabaseContext.cs +++ b/src/Tgstation.Server.Host/Database/SqlServerDatabaseContext.cs @@ -34,7 +34,13 @@ namespace Tgstation.Server.Host.Database if (databaseConfiguration.DatabaseType != DatabaseType.SqlServer) throw new InvalidOperationException($"Invalid DatabaseType for {nameof(SqlServerDatabaseContext)}!"); - options.UseSqlServer(databaseConfiguration.ConnectionString, x => x.EnableRetryOnFailure()); + options.UseSqlServer( + databaseConfiguration.ConnectionString, + sqlServerOptions => + { + sqlServerOptions.EnableRetryOnFailure(); + sqlServerOptions.UseQuerySplittingBehavior(QuerySplittingBehavior.SingleQuery); + }); } } } diff --git a/src/Tgstation.Server.Host/Database/SqliteDatabaseContext.cs b/src/Tgstation.Server.Host/Database/SqliteDatabaseContext.cs index eada1f31a9..3aa0955d79 100644 --- a/src/Tgstation.Server.Host/Database/SqliteDatabaseContext.cs +++ b/src/Tgstation.Server.Host/Database/SqliteDatabaseContext.cs @@ -42,7 +42,7 @@ namespace Tgstation.Server.Host.Database throw new InvalidOperationException($"Invalid DatabaseType for {nameof(SqliteDatabaseContext)}!"); DesignTime = databaseConfiguration.DesignTime; - options.UseSqlite(databaseConfiguration.ConnectionString); + options.UseSqlite(databaseConfiguration.ConnectionString, sqliteOptions => sqliteOptions.UseQuerySplittingBehavior(QuerySplittingBehavior.SingleQuery)); } ///