diff --git a/src/SQLProvider.Runtime/Providers.Firebird.fs b/src/SQLProvider.Runtime/Providers.Firebird.fs index 8a1ae5a2..aed609f7 100644 --- a/src/SQLProvider.Runtime/Providers.Firebird.fs +++ b/src/SQLProvider.Runtime/Providers.Firebird.fs @@ -1168,7 +1168,7 @@ type internal FirebirdProvider(resolutionPath, contextSchemaPath, owner, referen } | Deleted | Unchanged -> failwith "Unchanged entity encountered in update list - this should not be possible!" - do! Utilities.executeOneByOne handleEntity (entities.Keys|>Seq.toList) + let! _ = Sql.evaluateOneByOne handleEntity (entities.Keys|>Seq.toList) if scope<>null then scope.Complete() diff --git a/src/SQLProvider.Runtime/Providers.MSAccess.fs b/src/SQLProvider.Runtime/Providers.MSAccess.fs index 31ca6003..db17af7f 100644 --- a/src/SQLProvider.Runtime/Providers.MSAccess.fs +++ b/src/SQLProvider.Runtime/Providers.MSAccess.fs @@ -762,7 +762,7 @@ type internal MSAccessProvider(contextSchemaPath) = } | Deleted | Unchanged -> failwith "Unchanged entity encountered in update list - this should not be possible!" - do! Utilities.executeOneByOne handleEntity (entities.Keys|>Seq.toList) + let! _ = Sql.evaluateOneByOne handleEntity (entities.Keys|>Seq.toList) trnsx.Commit() with _ -> diff --git a/src/SQLProvider.Runtime/Providers.MsSqlServer.Dynamic.fs b/src/SQLProvider.Runtime/Providers.MsSqlServer.Dynamic.fs index e490b4df..00606b17 100644 --- a/src/SQLProvider.Runtime/Providers.MsSqlServer.Dynamic.fs +++ b/src/SQLProvider.Runtime/Providers.MsSqlServer.Dynamic.fs @@ -1259,7 +1259,7 @@ type internal MSSqlServerDynamicProvider(resolutionPath, contextSchemaPath, refe } | Deleted | Unchanged -> failwith "Unchanged entity encountered in update list - this should not be possible!" - do! Utilities.executeOneByOne handleEntity (entities.Keys|>Seq.toList) + let! _ = Sql.evaluateOneByOne handleEntity (entities.Keys|>Seq.toList) if scope<>null then scope.Complete() finally diff --git a/src/SQLProvider.Runtime/Providers.MsSqlServer.Ssdt.fs b/src/SQLProvider.Runtime/Providers.MsSqlServer.Ssdt.fs index b7eefe69..5efefdfb 100644 --- a/src/SQLProvider.Runtime/Providers.MsSqlServer.Ssdt.fs +++ b/src/SQLProvider.Runtime/Providers.MsSqlServer.Ssdt.fs @@ -903,7 +903,7 @@ type internal MSSqlServerProviderSsdt(tableNames: string, ssdtPath: string) = } | Deleted | Unchanged -> failwith "Unchanged entity encountered in update list - this should not be possible!" - do! Utilities.executeOneByOne handleEntity (entities.Keys|>Seq.toList) + let! _ = Sql.evaluateOneByOne handleEntity (entities.Keys|>Seq.toList) if scope<>null then scope.Complete() finally diff --git a/src/SQLProvider.Runtime/Providers.MsSqlServer.fs b/src/SQLProvider.Runtime/Providers.MsSqlServer.fs index b0f1c33a..59cea911 100644 --- a/src/SQLProvider.Runtime/Providers.MsSqlServer.fs +++ b/src/SQLProvider.Runtime/Providers.MsSqlServer.fs @@ -1184,7 +1184,7 @@ type internal MSSqlServerProvider(contextSchemaPath, tableNames:string) = } | Deleted | Unchanged -> failwith "Unchanged entity encountered in update list - this should not be possible!" - do! Utilities.executeOneByOne handleEntity (entities.Keys|>Seq.toList) + let! _ = Sql.evaluateOneByOne handleEntity (entities.Keys|>Seq.toList) if scope<>null then scope.Complete() finally diff --git a/src/SQLProvider.Runtime/Providers.MySql.fs b/src/SQLProvider.Runtime/Providers.MySql.fs index 70a632b6..d1a87e1b 100644 --- a/src/SQLProvider.Runtime/Providers.MySql.fs +++ b/src/SQLProvider.Runtime/Providers.MySql.fs @@ -1106,7 +1106,7 @@ type internal MySqlProvider(resolutionPath, contextSchemaPath, owner:string, ref } | Deleted | Unchanged -> failwith "Unchanged entity encountered in update list - this should not be possible!" - do! Utilities.executeOneByOne handleEntity (entities.Keys|>Seq.toList) + let! _ = Sql.evaluateOneByOne handleEntity (entities.Keys|>Seq.toList) if scope<>null then scope.Complete() diff --git a/src/SQLProvider.Runtime/Providers.Odbc.fs b/src/SQLProvider.Runtime/Providers.Odbc.fs index 22d7d620..644b974c 100644 --- a/src/SQLProvider.Runtime/Providers.Odbc.fs +++ b/src/SQLProvider.Runtime/Providers.Odbc.fs @@ -775,7 +775,7 @@ type internal OdbcProvider(contextSchemaPath, quotechar : OdbcQuoteCharacter) = e._State <- Deleted } | Deleted | Unchanged -> failwith "Unchanged entity encountered in update list - this should not be possible!" - do! Utilities.executeOneByOne handleEntity (entities.Keys|>Seq.toList) + let! _ = Sql.evaluateOneByOne handleEntity (entities.Keys|>Seq.toList) if scope<>null then scope.Complete() finally diff --git a/src/SQLProvider.Runtime/Providers.Oracle.fs b/src/SQLProvider.Runtime/Providers.Oracle.fs index 905fbe9c..86718bd6 100644 --- a/src/SQLProvider.Runtime/Providers.Oracle.fs +++ b/src/SQLProvider.Runtime/Providers.Oracle.fs @@ -1162,7 +1162,7 @@ type internal OracleProvider(resolutionPath, contextSchemaPath, owner, reference } | Deleted | Unchanged -> failwith "Unchanged entity encountered in update list - this should not be possible!" - do! Utilities.executeOneByOne handleEntity (entities.Keys|>Seq.toList) + let! _ = Sql.evaluateOneByOne handleEntity (entities.Keys|>Seq.toList) if scope<>null then scope.Complete() finally diff --git a/src/SQLProvider.Runtime/Providers.Postgresql.fs b/src/SQLProvider.Runtime/Providers.Postgresql.fs index 394188f3..8f49c4cc 100644 --- a/src/SQLProvider.Runtime/Providers.Postgresql.fs +++ b/src/SQLProvider.Runtime/Providers.Postgresql.fs @@ -1300,7 +1300,7 @@ type internal PostgresqlProvider(resolutionPath, contextSchemaPath, owner, refer } | Deleted | Unchanged -> failwith "Unchanged entity encountered in update list - this should not be possible!" - do! Utilities.executeOneByOne handleEntity (entities.Keys|>Seq.toList) + let! _ = Sql.evaluateOneByOne handleEntity (entities.Keys|>Seq.toList) if scope<>null then scope.Complete() finally diff --git a/src/SQLProvider.Runtime/Providers.SQLite.fs b/src/SQLProvider.Runtime/Providers.SQLite.fs index a4d70d27..a28ca8a6 100644 --- a/src/SQLProvider.Runtime/Providers.SQLite.fs +++ b/src/SQLProvider.Runtime/Providers.SQLite.fs @@ -989,7 +989,7 @@ type internal SQLiteProvider(resolutionPath, contextSchemaPath, referencedAssemb } | Deleted | Unchanged -> failwith "Unchanged entity encountered in update list - this should not be possible!" - do! Utilities.executeOneByOne handleEntity (entities.Keys|>Seq.toList) + let! _ = Sql.evaluateOneByOne handleEntity (entities.Keys|>Seq.toList) if scope<>null then scope.Complete() finally diff --git a/src/SQLProvider.Runtime/Utils.fs b/src/SQLProvider.Runtime/Utils.fs index d1152555..dc92e872 100644 --- a/src/SQLProvider.Runtime/Utils.fs +++ b/src/SQLProvider.Runtime/Utils.fs @@ -59,17 +59,6 @@ module internal Utilities = | count -> name + "_" + (string count) ) - /// DB-connections are not usually supporting parallel SQL-query execution, so even when - /// async thread is available, it can't be used to execute another SQL at the same time. - let rec executeOneByOne asyncFunc entityList = - match entityList with - | h::t -> - task { - do! asyncFunc h - return! executeOneByOne asyncFunc t - } - | [] -> task { () } - let parseAggregates fieldNotat fieldNotationAlias query = let rec parseAggregates' fieldNotation fieldNotationAlias query (selectColumns:string list) = match query with @@ -662,6 +651,8 @@ module Sql = /// Helper function to run async computation non-parallel style for list of objects. /// This is needed if async database opreation is executed for a list of entities. + /// DB-connections are not usually supporting parallel SQL-query execution, so even when + /// async thread is available, it can't be used to execute another SQL at the same time. let evaluateOneByOne asyncFunc entityList = let rec executeOneByOneTask' asyncFunc entityList acc = match entityList with