From 6abce271e214ff373ce48516c78a40f1e6b328c2 Mon Sep 17 00:00:00 2001 From: Tom Date: Wed, 20 Aug 2025 00:32:26 +0100 Subject: [PATCH 1/4] Fix linux build issue due to lowercase 'b' in FireBird Linux paths are case sensitive --- .../{Providers.Firebird.fs => Providers.FireBird.fs} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename src/SQLProvider.Runtime/{Providers.Firebird.fs => Providers.FireBird.fs} (100%) diff --git a/src/SQLProvider.Runtime/Providers.Firebird.fs b/src/SQLProvider.Runtime/Providers.FireBird.fs similarity index 100% rename from src/SQLProvider.Runtime/Providers.Firebird.fs rename to src/SQLProvider.Runtime/Providers.FireBird.fs From d9a5094cc03f5f8c15f72b5466c06347968255f4 Mon Sep 17 00:00:00 2001 From: Tom Date: Wed, 20 Aug 2025 04:46:03 +0100 Subject: [PATCH 2/4] Fix Firebird provider name inconsistencies Corrects inconsistencies in the Firebird provider's name across the project. They don't use the upper-case 'B' on their website, so went with that. --- README.md | 4 +- SQLProvider.sln | 4 +- src/SQLProvider.DesignTime/SqlDesignTime.fs | 122 +++++++++--------- .../AssemblyInfo.fs | 17 +++ .../SQLProvider.Firebird.DesignTime.fsproj} | 8 +- .../paket.references | 0 .../AssemblyInfo.fs | 17 +++ .../SQLProvider.Firebird.Runtime.fsproj} | 8 +- .../paket.references | 0 .../paket.template | 0 .../AssemblyInfo.fs | 17 +++ .../AssemblyInfo.fs | 17 +++ ...ders.FireBird.fs => Providers.Firebird.fs} | 0 .../SqlRuntime.DataContext.fs | 14 +- 14 files changed, 148 insertions(+), 80 deletions(-) create mode 100644 src/SQLProvider.Firebird.DesignTime/AssemblyInfo.fs rename src/{SQLProvider.FireBird.DesignTime/SQLProvider.FireBird.DesignTime.fsproj => SQLProvider.Firebird.DesignTime/SQLProvider.Firebird.DesignTime.fsproj} (89%) rename src/{SQLProvider.FireBird.DesignTime => SQLProvider.Firebird.DesignTime}/paket.references (100%) create mode 100644 src/SQLProvider.Firebird.Runtime/AssemblyInfo.fs rename src/{SQLProvider.FireBird.Runtime/SQLProvider.FireBird.Runtime.fsproj => SQLProvider.Firebird.Runtime/SQLProvider.Firebird.Runtime.fsproj} (86%) rename src/{SQLProvider.FireBird.Runtime => SQLProvider.Firebird.Runtime}/paket.references (100%) rename src/{SQLProvider.FireBird.Runtime => SQLProvider.Firebird.Runtime}/paket.template (100%) create mode 100644 src/SQLProvider.PostgreSql.DesignTime/AssemblyInfo.fs create mode 100644 src/SQLProvider.PostgreSql.Runtime/AssemblyInfo.fs rename src/SQLProvider.Runtime/{Providers.FireBird.fs => Providers.Firebird.fs} (100%) diff --git a/README.md b/README.md index 59fb548f..2390730a 100644 --- a/README.md +++ b/README.md @@ -80,9 +80,9 @@ The default maintainer account for projects under "fsprojects" is [@fsprojectsgi | Any ODBC connection | [SQLProvider.Odbc](https://www.nuget.org/packages/SQLProvider.Odbc) | FSharp.Data.Sql.Odbc.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.Odbc) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.Odbc)](https://www.nuget.org/packages/SQLProvider.Odbc) | SQLite | [SQLProvider.SQLite](https://www.nuget.org/packages/SQLProvider.SQLite) | FSharp.Data.Sql.SQLite.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.SQLite) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.SQLite)](https://www.nuget.org/packages/SQLProvider.SQLite) | Microsoft Access | [SQLProvider.MsAccess](https://www.nuget.org/packages/SQLProvider.MsAccess) | FSharp.Data.Sql.MsAccess.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.MsAccess) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.MsAccess)](https://www.nuget.org/packages/SQLProvider.MsAccess) -| FireBird | [SQLProvider.FireBird](https://www.nuget.org/packages/SQLProvider.FireBird) | FSharp.Data.Sql.FireBird.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.FireBird) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.FireBird)](https://www.nuget.org/packages/SQLProvider.FireBird) +| Firebird | [SQLProvider.Firebird](https://www.nuget.org/packages/SQLProvider.Firebird) | FSharp.Data.Sql.Firebird.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.Firebird) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.Firebird)](https://www.nuget.org/packages/SQLProvider.Firebird) | DuckDb | [SQLProvider.DuckDb](https://www.nuget.org/packages/SQLProvider.DuckDb) | FSharp.Data.Sql.DuckDb.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.DuckDb) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.DuckDb)](https://www.nuget.org/packages/SQLProvider.DuckDb) | General, all via manual config | [SQLProvider](https://www.nuget.org/packages/SQLProvider) | FSharp.Data.Sql.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider)](https://www.nuget.org/packages/SQLProvider) -Depending on the used provider, the namespace of the SqlDataProvider type class varies as above. \ No newline at end of file +Depending on the used provider, the namespace of the SqlDataProvider type class varies as above. diff --git a/SQLProvider.sln b/SQLProvider.sln index dcfad2b5..eb6c50fe 100644 --- a/SQLProvider.sln +++ b/SQLProvider.sln @@ -31,9 +31,9 @@ Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "SQLProvider.SQLite.DesignTi EndProject Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "SQLProvider.SQLite.Runtime", "src\SQLProvider.SQLite.Runtime\SQLProvider.SQLite.Runtime.fsproj", "{03AE8F01-38A4-12D5-FD40-0AF5CF297BD4}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "SQLProvider.FireBird.DesignTime", "src\SQLProvider.FireBird.DesignTime\SQLProvider.FireBird.DesignTime.fsproj", "{82C1A507-F1DC-9E5C-6C87-DDAF37DA4BEB}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "SQLProvider.Firebird.DesignTime", "src\SQLProvider.Firebird.DesignTime\SQLProvider.Firebird.DesignTime.fsproj", "{82C1A507-F1DC-9E5C-6C87-DDAF37DA4BEB}" EndProject -Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "SQLProvider.FireBird.Runtime", "src\SQLProvider.FireBird.Runtime\SQLProvider.FireBird.Runtime.fsproj", "{E7CD6210-6382-799C-1C0A-4BD675FA02AB}" +Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "SQLProvider.Firebird.Runtime", "src\SQLProvider.Firebird.Runtime\SQLProvider.Firebird.Runtime.fsproj", "{E7CD6210-6382-799C-1C0A-4BD675FA02AB}" EndProject Project("{F2A71F9B-5D33-465A-A702-920D77279786}") = "SQLProvider.Odbc.DesignTime", "src\SQLProvider.Odbc.DesignTime\SQLProvider.Odbc.DesignTime.fsproj", "{07F9D1E1-6D3C-1B12-9B83-69BFCFFBF219}" EndProject diff --git a/src/SQLProvider.DesignTime/SqlDesignTime.fs b/src/SQLProvider.DesignTime/SqlDesignTime.fs index 43fa7030..311381c8 100644 --- a/src/SQLProvider.DesignTime/SqlDesignTime.fs +++ b/src/SQLProvider.DesignTime/SqlDesignTime.fs @@ -36,7 +36,7 @@ type internal ParameterValue = | UserProvided of string * string * Type | Default of Expr -module DesignTimeUtils = +module DesignTimeUtils = #if COMMON let [] design1 = "FSharp.Data.SqlProvider.DesignTime" @@ -81,11 +81,11 @@ module DesignTimeUtils = let [] FSHARP_DATA_SQL = "FSharp.Data.Sql.SQLite" #endif #if FIREBIRD - let [] design1 = "FSharp.Data.SqlProvider.FireBird.DesignTime" - let [] runtime1 = "FSharp.Data.SqlProvider.FireBird" - let [] design2 = "SQLProvider.FireBird.DesignTime" - let [] runtime2 = "SQLProvider.FireBird.Runtime" - let [] FSHARP_DATA_SQL = "FSharp.Data.Sql.FireBird" + let [] design1 = "FSharp.Data.SqlProvider.Firebird.DesignTime" + let [] runtime1 = "FSharp.Data.SqlProvider.Firebird" + let [] design2 = "SQLProvider.Firebird.DesignTime" + let [] runtime2 = "SQLProvider.Firebird.Runtime" + let [] FSHARP_DATA_SQL = "FSharp.Data.Sql.Firebird" #endif #if ODBC let [] design1 = "FSharp.Data.SqlProvider.Odbc.DesignTime" @@ -265,11 +265,11 @@ module DesignTimeUtils = SchemaProjections.buildFieldName(name),propTy, getterCode = match nullable with - | NullableColumnType.OPTION -> + | NullableColumnType.OPTION -> (fun (args:Expr list) -> let meth = typeof.GetMethod("GetColumnOption").MakeGenericMethod([|ty|]) Expr.Call(args.[0],meth,[Expr.Value name])) - | NullableColumnType.VALUE_OPTION -> + | NullableColumnType.VALUE_OPTION -> (fun (args:Expr list) -> let meth = typeof.GetMethod("GetColumnValueOption").MakeGenericMethod([|ty|]) Expr.Call(args.[0],meth,[Expr.Value name])) @@ -278,13 +278,13 @@ module DesignTimeUtils = let meth = typeof.GetMethod("GetColumn").MakeGenericMethod([|ty|]) Expr.Call(args.[0],meth,[Expr.Value name])) , - setterCode = + setterCode = match nullable with - | NullableColumnType.OPTION -> + | NullableColumnType.OPTION -> (fun (args:Expr list) -> let meth = typeof.GetMethod("SetColumnOption").MakeGenericMethod([|ty|]) Expr.Call(args.[0],meth,[Expr.Value name;args.[1]])) - | NullableColumnType.VALUE_OPTION -> + | NullableColumnType.VALUE_OPTION -> (fun (args:Expr list) -> let meth = typeof.GetMethod("SetColumnValueOption").MakeGenericMethod([|ty|]) Expr.Call(args.[0],meth,[Expr.Value name;args.[1]])) @@ -319,14 +319,14 @@ module DesignTimeUtils = resultType.AddMembersDelayed(fun () -> let sprocParameters = - + match con with | None -> match prov.GetSchemaCache().SprocsParams.TryGetValue sprocname with | true, x -> x | false, _ -> [] | Some con -> - (lazy + (lazy Sql.ensureOpen con let ps = sproc.Params con prov.GetSchemaCache().SprocsParams.AddOrUpdate(sprocname, ps, fun _ _ -> ps) |> ignore @@ -573,14 +573,14 @@ module DesignTimeUtils = match conString, conStringName with | "", "" -> failwith "No connection string or connection string name was specified." | "", _ -> failwithf "Could not find a connection string with name '%s'." conStringName - | _ -> + | _ -> match prov.GetSchemaCache().IsOffline with | false -> let con = prov.CreateConnection conString registerDispose (con, dbVendor) try con.Open() - with + with | exn -> let baseError = exn.GetBaseException() failwithf $"Error opening compile-time connection. Connection string: {conString}. Error: {typeof}, {exn.Message}, inner {baseError.GetType()} {baseError.Message}" @@ -687,7 +687,7 @@ module DesignTimeUtils = t.AddMembersDelayed(fun () -> let (columns,(children,parents)) = getTableData key let attProps = - let createCols = createColumnProperty con prov useOptionTypes key + let createCols = createColumnProperty con prov useOptionTypes key List.map createCols (columns |> Seq.map (fun kvp -> kvp.Value) |> Seq.toList) let relProps = let getRelationshipName = Utilities.uniqueName() @@ -745,7 +745,7 @@ module DesignTimeUtils = if not isReadonly then yield! containers |> Seq.cast - let tableTypes = + let tableTypes = if not isReadonly then tableTypes else [] |> dict // Readonly shares the same schema and table types. @@ -771,7 +771,7 @@ module DesignTimeUtils = | NullableColumnType.NO_OPTION | _ -> "" let template= - let items = + let items = columns |> Map.toArray |> Array.map(fun (s,v) -> (SchemaProjections.nicePascalName v.Name) + " : " + (Utilities.getType v.TypeMapping.ClrType).Name + (if v.IsNullable then optType else "")) @@ -787,28 +787,28 @@ module DesignTimeUtils = // we are forced to load the columns here, but this is ok as the user has already // pressed . on an IQueryable type so they are obviously interested in using this entity.. let columns, _ = getTableData key - + let requiredColumns = columns |> Map.toArray |> Array.map (fun (s,c) -> c) |> Array.filter (fun c -> (not c.IsNullable) && (not c.IsAutonumber) && (not c.IsComputed)) - + let backwardCompatibilityOnly = requiredColumns |> Array.filter (fun c-> not c.IsPrimaryKey) |> Array.map(fun c -> ProvidedParameter(c.Name,Utilities.getType c.TypeMapping.ClrType)) |> Array.sortBy(fun p -> p.Name) |> Array.toList - + let normalParameters = requiredColumns |> Array.map(fun c -> ProvidedParameter(c.Name,Utilities.getType c.TypeMapping.ClrType)) |> Array.sortBy(fun p -> p.Name) |> Array.toList - + if isReadonly then - + seq { if not (ct.DeclaredProperties |> Seq.exists(fun m -> m.Name = "Individuals")) then let individuals = ProvidedProperty("Individuals",Seq.head it, getterCode = fun args -> @@ -817,9 +817,9 @@ module DesignTimeUtils = individuals.AddXmlDoc("Get individual items from the table. Requires single primary key.") yield individuals :> MemberInfo } |> Seq.toList - + else - + // Create: unit -> SqlEntity let create1 = ProvidedMethod("Create", [], entityType, invokeCode = fun args -> let a0 = args.[0] @@ -829,12 +829,12 @@ module DesignTimeUtils = ((%%a0 : obj ):?> IWithDataContext ).DataContext.SubmitChangedEntity e e @@> ) - + // Create: ('a * 'b * 'c * ...) -> SqlEntity let create2 = if List.isEmpty normalParameters then Unchecked.defaultof else ProvidedMethod("Create", normalParameters, entityType, invokeCode = fun args -> - + let dc = args.Head let args = args.Tail let columns = @@ -850,12 +850,12 @@ module DesignTimeUtils = ((%%dc : obj ):?> IWithDataContext ).DataContext.SubmitChangedEntity e e @@>) - + // Create: ('a * 'b * 'c * ...) -> SqlEntity let create2old = if List.isEmpty backwardCompatibilityOnly || normalParameters.Length = backwardCompatibilityOnly.Length then Unchecked.defaultof else ProvidedMethod("Create", backwardCompatibilityOnly, entityType, invokeCode = fun args -> - + let dc = args.Head let args = args.Tail let columns = @@ -871,7 +871,7 @@ module DesignTimeUtils = ((%%dc : obj ):?> IWithDataContext ).DataContext.SubmitChangedEntity e e @@>) - + // Create: (data : seq) -> SqlEntity let create3 = ProvidedMethod("Create", [ProvidedParameter("data",typeof< (string*obj) seq >)] , entityType, invokeCode = fun args -> let dc = args.[0] @@ -887,7 +887,7 @@ module DesignTimeUtils = let cols = requiredColumns |> Seq.map(fun c -> c.Name) "Item array of database columns: \r\n" + (String.concat "," cols) create3.AddXmlDoc (sprintf "%s" desc3) - + // ``Create(...)``: ('a * 'b * 'c * ...) -> SqlEntity let create4 = if List.isEmpty normalParameters then Unchecked.defaultof else @@ -910,14 +910,14 @@ module DesignTimeUtils = ((%%dc : obj ):?> IWithDataContext ).DataContext.SubmitChangedEntity e e @@>) - + let minimalParameters = requiredColumns |> Array.filter (fun c-> (not c.HasDefault)) |> Array.map(fun c -> ProvidedParameter(c.Name,Utilities.getType c.TypeMapping.ClrType)) |> Array.sortBy(fun p -> p.Name) |> Array.toList - + // ``Create(...)``: ('a * 'b * 'c * ...) -> SqlEntity let create4old = if List.isEmpty backwardCompatibilityOnly || backwardCompatibilityOnly.Length = normalParameters.Length || @@ -941,7 +941,7 @@ module DesignTimeUtils = ((%%dc : obj ):?> IWithDataContext ).DataContext.SubmitChangedEntity e e @@>) - + // ``Create(...)``: ('a * 'b * 'c * ...) -> SqlEntity let create5 = if List.isEmpty minimalParameters || normalParameters.Length = minimalParameters.Length then Unchecked.defaultof else @@ -964,7 +964,7 @@ module DesignTimeUtils = ((%%dc : obj ):?> IWithDataContext ).DataContext.SubmitChangedEntity e e @@>) - + seq { if not (ct.DeclaredProperties |> Seq.exists(fun m -> m.Name = "Individuals")) then let individuals = ProvidedProperty("Individuals",Seq.head it, getterCode = fun args -> @@ -988,10 +988,10 @@ module DesignTimeUtils = backwardCompatibilityOnly.Length <> minimalParameters.Length then create4old.AddXmlDoc("This will be obsolete soon. Migrate away from this!") yield create4old :> MemberInfo - + } |> Seq.toList ) - + let buildTableName = SchemaProjections.buildTableName >> caseInsensitivityCheck let prop = ProvidedProperty(buildTableName(ct.Name),ct, getterCode = fun args -> let a0 = args.[0] @@ -1009,7 +1009,7 @@ module DesignTimeUtils = schemaType.AddMember ct if not (schemaType.DeclaredMembers |> Seq.exists(fun m -> m.Name = prop.Name)) then schemaType.AddMember prop - + yield entityType :> MemberInfo //yield ct :> MemberInfo //yield prop :> MemberInfo @@ -1040,7 +1040,7 @@ module DesignTimeUtils = <@@ ((%%a0 : obj) :?> ISqlDataContext).CreateConnection() @@>) :> MemberInfo if not isReadonly then - let recreate = fun () -> createTypes rootType serviceType readServiceType config sqlRuntimeInfo invalidate registerDispose (connectionString, conStringName,dbVendor,resolutionPath,individualsAmount,useOptionTypes,owner,caseSensitivity, tableNames, contextSchemaPath, odbcquote, sqliteLibrary, ssdtPath, rootTypeName) + let recreate = fun () -> createTypes rootType serviceType readServiceType config sqlRuntimeInfo invalidate registerDispose (connectionString, conStringName,dbVendor,resolutionPath,individualsAmount,useOptionTypes,owner,caseSensitivity, tableNames, contextSchemaPath, odbcquote, sqliteLibrary, ssdtPath, rootTypeName) let designTimeCommandsContainer, saveResponse, mOld, designTime, invalidateActionResponse = createDesignTimeCommands prov contextSchemaPath recreate invalidate @@ -1109,7 +1109,7 @@ module DesignTimeUtils = () - let createConstructors (config:TypeProviderConfig) (rootType:ProvidedTypeDefinition, serviceType, readServiceType, args) = + let createConstructors (config:TypeProviderConfig) (rootType:ProvidedTypeDefinition, serviceType, readServiceType, args) = let struct(connectionString, conStringName,dbVendor,resolutionPath,individualsAmount,useOptionTypes,owner,caseSensitivity, tableNames, contextSchemaPath, odbcquote, sqliteLibrary, ssdtPath, rootTypeName) = args let referencedAssemblyExpr = QuotationHelpers.arrayExpr config.ReferencedAssemblies |> snd @@ -1190,17 +1190,17 @@ module DesignTimeUtils = [ for overload in overloads do - + let actualParams = [| for (customParam, defaultParam) in optionPairs do match overload |> Array.exists ((=) customParam) with | true -> yield UserProvided customParam | false -> yield Default defaultParam |] - + // The code that gets actually executed let inline invoker (isReadOnly:bool) (args: Expr list) = - + let actualArgs = [| let mutable argPosition = 0 @@ -1211,12 +1211,12 @@ module DesignTimeUtils = // otherwise, we use the default value | Default p -> yield p |] - + <@@ let cmdTimeout = let argTimeout = %%actualArgs.[3] if argTimeout = NO_COMMAND_TIMEOUT then None else Some argTimeout - + // **important**: contextSchemaPath is empty because we do not want // to load the schema cache from (the developer's) local filesystem in production SqlDataContext(typeName = rootTypeName, connectionString = %%actualArgs.[0], providerType = dbVendor, @@ -1227,7 +1227,7 @@ module DesignTimeUtils = commandTimeout = cmdTimeout, sqlOperationsInSelect = %%actualArgs.[4], ssdtPath = ssdtPath, isReadOnly=isReadOnly) :> ISqlDataContext @@> - + // builds the definitions let paramList = [ for actualParam in actualParams do @@ -1235,15 +1235,15 @@ module DesignTimeUtils = | UserProvided(pname, pcomment, ptype) -> yield pname, pcomment, ptype | _ -> () ] - + let providerParams = [ for (pname, _, ptype) in paramList -> ProvidedParameter(pname, ptype)] - + let xmlComments = [| yield "Returns an instance of the SQL Provider using the static parameters" for (pname, xmlInfo, _) in paramList -> "" + xmlInfo + "" |] - + let method = ProvidedMethod( methodName = "GetDataContext" , parameters = providerParams @@ -1251,16 +1251,16 @@ module DesignTimeUtils = , isStatic = true , invokeCode = invoker false ) - + method.AddXmlDoc (String.Concat xmlComments) - + yield method - + let xmlComments2 = [| yield "Returns an instance of the SQL Provider using the static parameters, without direct access to modify data." for (pname, xmlInfo, _) in paramList -> "" + xmlInfo + "" |] - + let rmethod = ProvidedMethod( methodName = "GetReadOnlyDataContext" , parameters = providerParams @@ -1268,9 +1268,9 @@ module DesignTimeUtils = , isStatic = true , invokeCode = invoker true ) - + rmethod.AddXmlDoc (String.Concat xmlComments2) - + yield rmethod ]) @@ -1278,7 +1278,7 @@ module DesignTimeUtils = open DesignTimeUtils -module DesignReflection = +module DesignReflection = let execAssembly = lazy System.Reflection.Assembly.GetExecutingAssembly() type SqlRuntimeInfo (config : TypeProviderConfig) = @@ -1400,7 +1400,7 @@ module internal FixReferenceAssemblies = "linux-" + System.Runtime.InteropServices.RuntimeInformation.ProcessArchitecture.ToString().ToLowerInvariant() else "" ); "native" |] - + if System.IO.Directory.Exists nativeLibrary then Environment.SetEnvironmentVariable("Path", Environment.GetEnvironmentVariable("Path") + ";" + nativeLibrary) // Path for native libraries (net8.0) @@ -1443,7 +1443,7 @@ type public SqlTypeProvider(config: TypeProviderConfig) as this = let asm = DesignReflection.execAssembly.Force() // check we contain a copy of runtime files, and are not referencing the runtime DLL - do assert (typeof.Assembly.GetName().Name = asm.GetName().Name) + do assert (typeof.Assembly.GetName().Name = asm.GetName().Name) #if !COMMON let _ = FixReferenceAssemblies.manualLoadNet8Runtime.Force() #endif @@ -1515,7 +1515,7 @@ type public SqlTypeProvider(config: TypeProviderConfig) as this = let addCache args = lazy let struct(connectionString, conStringName,dbVendor,resolutionPath,individualsAmount,useOptionTypes,owner,caseSensitivity, tableNames, contextSchemaPath, odbcquote, sqliteLibrary, ssdtPath, rootTypeName) = args - + let rootType = ProvidedTypeDefinition(sqlRuntimeInfo.RuntimeAssembly,FSHARP_DATA_SQL,rootTypeName,Some typeof, isErased=true) let serviceType = ProvidedTypeDefinition( "dataContext", Some typeof, isErased=true) let readServiceType = ProvidedTypeDefinition( "readDataContext", Some typeof, isErased=true) @@ -1527,7 +1527,7 @@ type public SqlTypeProvider(config: TypeProviderConfig) as this = // cache after the time-out, causing one extra hit, but this is only a design-time cache // and it will work well enough to deal with Visual Studio's multi-threading problems let expiration = TimeSpan.FromMinutes 3 - let rec invalidationFunction key = + let rec invalidationFunction key = async { do! Async.Sleep (int expiration.TotalMilliseconds) @@ -1549,7 +1549,7 @@ type public SqlTypeProvider(config: TypeProviderConfig) as this = let _ = DesignTimeCache.cache.TryRemove(arguments) let _ = lock mySaveLock (fun() -> - let keysToClear = + let keysToClear = DesignTimeCacheSchema.schemaMap.Keys |> Seq.toList |> List.filter(fun (a,k) -> a = arguments) diff --git a/src/SQLProvider.Firebird.DesignTime/AssemblyInfo.fs b/src/SQLProvider.Firebird.DesignTime/AssemblyInfo.fs new file mode 100644 index 00000000..58dee8e3 --- /dev/null +++ b/src/SQLProvider.Firebird.DesignTime/AssemblyInfo.fs @@ -0,0 +1,17 @@ +// Auto-Generated by FAKE; do not edit +namespace System +open System.Reflection + +[] +[] +[] +[] +[] +do () + +module internal AssemblyVersionInformation = + let [] AssemblyTitle = "SQLProvider.Firebird.DesignTime" + let [] AssemblyProduct = "SQLProvider" + let [] AssemblyDescription = "Type providers for Firebird database access." + let [] AssemblyVersion = "1.5.12" + let [] AssemblyFileVersion = "1.5.12" diff --git a/src/SQLProvider.FireBird.DesignTime/SQLProvider.FireBird.DesignTime.fsproj b/src/SQLProvider.Firebird.DesignTime/SQLProvider.Firebird.DesignTime.fsproj similarity index 89% rename from src/SQLProvider.FireBird.DesignTime/SQLProvider.FireBird.DesignTime.fsproj rename to src/SQLProvider.Firebird.DesignTime/SQLProvider.Firebird.DesignTime.fsproj index 570808cc..9028cd4f 100644 --- a/src/SQLProvider.FireBird.DesignTime/SQLProvider.FireBird.DesignTime.fsproj +++ b/src/SQLProvider.Firebird.DesignTime/SQLProvider.Firebird.DesignTime.fsproj @@ -6,8 +6,8 @@ true $(DefineConstants);NO_GENERATIVE;DESIGNTIME;FIREBIRD ..\..\bin\firebird\typeproviders\fsharp41\ - FSharp.Data.SqlProvider.FireBird.DesignTime - FSharp.Data.SqlProvider.FireBird + FSharp.Data.SqlProvider.Firebird.DesignTime + FSharp.Data.SqlProvider.Firebird false 8.0.0.0 true @@ -30,7 +30,7 @@ True paket-files/ExpressionOptimizer.fs - + @@ -43,4 +43,4 @@ - \ No newline at end of file + diff --git a/src/SQLProvider.FireBird.DesignTime/paket.references b/src/SQLProvider.Firebird.DesignTime/paket.references similarity index 100% rename from src/SQLProvider.FireBird.DesignTime/paket.references rename to src/SQLProvider.Firebird.DesignTime/paket.references diff --git a/src/SQLProvider.Firebird.Runtime/AssemblyInfo.fs b/src/SQLProvider.Firebird.Runtime/AssemblyInfo.fs new file mode 100644 index 00000000..4ec06d3c --- /dev/null +++ b/src/SQLProvider.Firebird.Runtime/AssemblyInfo.fs @@ -0,0 +1,17 @@ +// Auto-Generated by FAKE; do not edit +namespace System +open System.Reflection + +[] +[] +[] +[] +[] +do () + +module internal AssemblyVersionInformation = + let [] AssemblyTitle = "SQLProvider.FireBird.Runtime" + let [] AssemblyProduct = "SQLProvider" + let [] AssemblyDescription = "Type providers for FireBird database access." + let [] AssemblyVersion = "1.5.12" + let [] AssemblyFileVersion = "1.5.12" diff --git a/src/SQLProvider.FireBird.Runtime/SQLProvider.FireBird.Runtime.fsproj b/src/SQLProvider.Firebird.Runtime/SQLProvider.Firebird.Runtime.fsproj similarity index 86% rename from src/SQLProvider.FireBird.Runtime/SQLProvider.FireBird.Runtime.fsproj rename to src/SQLProvider.Firebird.Runtime/SQLProvider.Firebird.Runtime.fsproj index 34793469..bf2e01ae 100644 --- a/src/SQLProvider.FireBird.Runtime/SQLProvider.FireBird.Runtime.fsproj +++ b/src/SQLProvider.Firebird.Runtime/SQLProvider.Firebird.Runtime.fsproj @@ -9,8 +9,8 @@ https://fsprojects.github.io/SQLProvider https://github.com/fsprojects/SQLProvider ..\..\bin\firebird\lib\ - FSharp.Data.SqlProvider.FireBird - FSharp.Data.SqlProvider.FireBird + FSharp.Data.SqlProvider.Firebird + FSharp.Data.SqlProvider.Firebird sql, typeprovider, firebirdsql, f#, fsharp, database, dotnet https://github.com/fsprojects/SQLProvider/blob/master/LICENSE.txt false @@ -26,11 +26,11 @@ True paket-files/ExpressionOptimizer.fs - + - + diff --git a/src/SQLProvider.FireBird.Runtime/paket.references b/src/SQLProvider.Firebird.Runtime/paket.references similarity index 100% rename from src/SQLProvider.FireBird.Runtime/paket.references rename to src/SQLProvider.Firebird.Runtime/paket.references diff --git a/src/SQLProvider.FireBird.Runtime/paket.template b/src/SQLProvider.Firebird.Runtime/paket.template similarity index 100% rename from src/SQLProvider.FireBird.Runtime/paket.template rename to src/SQLProvider.Firebird.Runtime/paket.template diff --git a/src/SQLProvider.PostgreSql.DesignTime/AssemblyInfo.fs b/src/SQLProvider.PostgreSql.DesignTime/AssemblyInfo.fs new file mode 100644 index 00000000..2a7ec6c7 --- /dev/null +++ b/src/SQLProvider.PostgreSql.DesignTime/AssemblyInfo.fs @@ -0,0 +1,17 @@ +// Auto-Generated by FAKE; do not edit +namespace System +open System.Reflection + +[] +[] +[] +[] +[] +do () + +module internal AssemblyVersionInformation = + let [] AssemblyTitle = "SQLProvider.PostgreSql.DesignTime" + let [] AssemblyProduct = "SQLProvider" + let [] AssemblyDescription = "Type providers for PostgreSql database access." + let [] AssemblyVersion = "1.5.12" + let [] AssemblyFileVersion = "1.5.12" diff --git a/src/SQLProvider.PostgreSql.Runtime/AssemblyInfo.fs b/src/SQLProvider.PostgreSql.Runtime/AssemblyInfo.fs new file mode 100644 index 00000000..feccc678 --- /dev/null +++ b/src/SQLProvider.PostgreSql.Runtime/AssemblyInfo.fs @@ -0,0 +1,17 @@ +// Auto-Generated by FAKE; do not edit +namespace System +open System.Reflection + +[] +[] +[] +[] +[] +do () + +module internal AssemblyVersionInformation = + let [] AssemblyTitle = "SQLProvider.PostgreSql.Runtime" + let [] AssemblyProduct = "SQLProvider" + let [] AssemblyDescription = "Type providers for PostgreSql database access." + let [] AssemblyVersion = "1.5.12" + let [] AssemblyFileVersion = "1.5.12" diff --git a/src/SQLProvider.Runtime/Providers.FireBird.fs b/src/SQLProvider.Runtime/Providers.Firebird.fs similarity index 100% rename from src/SQLProvider.Runtime/Providers.FireBird.fs rename to src/SQLProvider.Runtime/Providers.Firebird.fs diff --git a/src/SQLProvider.Runtime/SqlRuntime.DataContext.fs b/src/SQLProvider.Runtime/SqlRuntime.DataContext.fs index 0306aef2..5843fa5a 100644 --- a/src/SQLProvider.Runtime/SqlRuntime.DataContext.fs +++ b/src/SQLProvider.Runtime/SqlRuntime.DataContext.fs @@ -56,10 +56,10 @@ module internal ProviderBuilder = #if DUCKDB | DatabaseProviderTypes.DUCKDB -> DuckDbProvider(resolutionPath, contextSchemaPath, owner, referencedAssemblies) :> ISqlProvider #endif - | DatabaseProviderTypes.EXTERNAL + | DatabaseProviderTypes.EXTERNAL | _ -> failwith ("Unsupported database provider: " + vendor.ToString()) -module DcCache = +module DcCache = let providerCache = ConcurrentDictionary>() type public SqlDataContext (typeName, connectionString:string, providerType:DatabaseProviderTypes, resolutionPath:string, referencedAssemblies:string array, runtimeAssembly: string, owner: string, caseSensitivity, tableNames:string, contextSchemaPath:string, odbcquote:OdbcQuoteCharacter, sqliteLibrary:SQLiteLibrary, transactionOptions, commandTimeout:Option, sqlOperationsInSelect, ssdtPath:string, isReadOnly:bool) = @@ -80,7 +80,7 @@ type public SqlDataContext (typeName, connectionString:string, providerType:Data con else Stubs.connection - + // create type mappings and also trigger the table info read so the provider has // the minimum base set of data available prov.CreateTypeMappings(con) @@ -122,7 +122,7 @@ type public SqlDataContext (typeName, connectionString:string, providerType:Data member __.GetPendingEntities() = if isReadOnly then failwith "Context is readonly" else (CommonTasks.sortEntities (pendingChanges.Force())) |> Seq.toList member __.SubmitPendingChanges() = - if isReadOnly then failwith "Context is readonly" else + if isReadOnly then failwith "Context is readonly" else let pendingChanges = pendingChanges.Force() use con = provider.CreateConnection(connectionString) lock myLock2 (fun () -> @@ -131,7 +131,7 @@ type public SqlDataContext (typeName, connectionString:string, providerType:Data ) member __.SubmitPendingChangesAsync() = - if isReadOnly then failwith "Context is readonly" else + if isReadOnly then failwith "Context is readonly" else let pendingChanges = pendingChanges.Force() task { use con = provider.CreateConnection(connectionString) :?> System.Data.Common.DbConnection @@ -261,7 +261,7 @@ type public SqlDataContext (typeName, connectionString:string, providerType:Data } member this.CreateEntity(tableName) = - if isReadOnly then failwith "Context is readonly" else + if isReadOnly then failwith "Context is readonly" else use con = provider.CreateConnection(connectionString) let columns = provider.GetColumns(con, Table.FromFullName(tableName)) new SqlEntity(this, tableName, columns, columns.Count) @@ -310,7 +310,7 @@ do () #endif #if FIREBIRD // Put the TypeProviderAssemblyAttribute in the runtime DLL, pointing to the design-time DLL -[] +[] do () #endif #if ODBC From 516650db5303dad4b5bba443dd7b85ac8673ca4b Mon Sep 17 00:00:00 2001 From: Tom Date: Wed, 20 Aug 2025 05:14:03 +0100 Subject: [PATCH 3/4] Fixes Firebird naming inconsistencies DLC Corrects the spelling of "Firebird" to be consistent throughout the codebase. Missed a couple in the last commit. --- .github/ISSUE_TEMPLATE.md | 2 +- build.fsx | 4 ++-- docs/content/core/netstandard.fsx | 2 +- docs/content/index.fsx | 24 +++++++++---------- .../AssemblyInfo.fs | 17 ------------- .../AssemblyInfo.fs | 17 ------------- .../AssemblyInfo.fs | 8 +++---- .../paket.template | 6 ++--- .../scripts/FirebirdTests.fsx | 4 ++-- 9 files changed, 25 insertions(+), 59 deletions(-) delete mode 100644 src/SQLProvider.FireBird.DesignTime/AssemblyInfo.fs delete mode 100644 src/SQLProvider.FireBird.Runtime/AssemblyInfo.fs diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 8b176021..e6460a79 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -32,7 +32,7 @@ Please provide a description of any known workarounds. - [ ] Oracle - [ ] Odbc - [ ] Microsoft Access - - [ ] FireBird + - [ ] Firebird - [ ] DuckDB - [ ] Other * Operating system diff --git a/build.fsx b/build.fsx index c5bafd67..89ea5686 100644 --- a/build.fsx +++ b/build.fsx @@ -118,8 +118,8 @@ let projects = {name="SQLProvider.DuckDb.DesignTime";summary="Type providers for DuckDb database access.";description="Type providers for DuckDb database access.";dependencies=[]}; {name="SQLProvider.DuckDb.Runtime";summary="Type providers for DuckDb database access.";description="Type providers for DuckDb database access.";dependencies=[]}; - {name="SQLProvider.FireBird.DesignTime";summary="Type providers for FireBird database access.";description="Type providers for FireBird database access.";dependencies=[]}; - {name="SQLProvider.FireBird.Runtime";summary="Type providers for FireBird database access.";description="Type providers for FireBird database access.";dependencies=[]}; + {name="SQLProvider.Firebird.DesignTime";summary="Type providers for Firebird database access.";description="Type providers for Firebird database access.";dependencies=[]}; + {name="SQLProvider.Firebird.Runtime";summary="Type providers for Firebird database access.";description="Type providers for Firebird database access.";dependencies=[]}; {name="SQLProvider.MsSql.DesignTime";summary="Type providers for Microsoft SQL Server database access.";description="Type providers for Microsoft SQL Server database access.";dependencies=[]}; {name="SQLProvider.MsSql.Runtime";summary="Type providers for Microsoft SQL Server database access.";description="Type providers for Microsoft SQL Server database access.";dependencies=[]}; diff --git a/docs/content/core/netstandard.fsx b/docs/content/core/netstandard.fsx index b0fc3aeb..122300cd 100644 --- a/docs/content/core/netstandard.fsx +++ b/docs/content/core/netstandard.fsx @@ -19,7 +19,7 @@ Microsoft SQL Server | [x] | [x] | [x] | See prebuild task. | Postgres | [x] | [x] | [x] | See post-build task. | MySQL / MariaDB | [x] | [x] | [x] | See post-build task. | SQLite | [x] | | | See post-build task. Builds on Win, runs on all | -FireBird | ? | ? | ? | Not tested. | +Firebird | ? | ? | ? | Not tested. | Oracle | | | | No ODP.NET-driver yet. | Odbc | | | | Not supported. | Access | | | | Not supported. | diff --git a/docs/content/index.fsx b/docs/content/index.fsx index 782fd9eb..efb67ab6 100644 --- a/docs/content/index.fsx +++ b/docs/content/index.fsx @@ -49,18 +49,18 @@ Oracle is based on the current release (12.1.0.1.2) of the managed ODP.NET drive SQL Server SSDT is based on the current release (160.20216.14) found [here](https://www.nuget.org/packages/Microsoft.SqlServer.Management.SqlParser/). | Database | Nuget Package | TypeProvider Class | NuGet Status | -| ------- | ----- | -----------| ---------- | -| Microsoft SQL Server | [SQLProvider.MsSql](https://www.nuget.org/packages/SQLProvider.MsSql) | FSharp.Data.Sql.MsSql.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.MsSql) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.MsSql)](https://www.nuget.org/packages/SQLProvider.MsSql) -| PostgreSQL | [SQLProvider.PostgreSql](https://www.nuget.org/packages/SQLProvider.PostgreSql) | FSharp.Data.Sql.PostgreSql.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.PostgreSql) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.PostgreSql)](https://www.nuget.org/packages/SQLProvider.PostgreSql) -| MySQL and MariaDB | [SQLProvider.MySqlConnector](https://www.nuget.org/packages/SQLProvider.MySqMySqlConnectorl) | FSharp.Data.Sql.MySqlConnector.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.MySqlConnector) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.MySqlConnector)](https://www.nuget.org/packages/SQLProvider.MySqMySqlConnectorl) -| MySQL | [SQLProvider.MySql](https://www.nuget.org/packages/SQLProvider.MySql) | FSharp.Data.Sql.MySql.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.MySql) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.MySql)](https://www.nuget.org/packages/SQLProvider.MySql) -| Oracle | [SQLProvider.Oracle](https://www.nuget.org/packages/SQLProvider.Oracle) | FSharp.Data.Sql.Oracle.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.Oracle) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.Oracle)](https://www.nuget.org/packages/SQLProvider.Oracle) -| Any ODBC connection | [SQLProvider.Odbc](https://www.nuget.org/packages/SQLProvider.Odbc) | FSharp.Data.Sql.Odbc.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.Odbc) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.Odbc)](https://www.nuget.org/packages/SQLProvider.Odbc) -| SQLite | [SQLProvider.SQLite](https://www.nuget.org/packages/SQLProvider.SQLite) | FSharp.Data.Sql.SQLite.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.SQLite) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.SQLite)](https://www.nuget.org/packages/SQLProvider.SQLite) -| Microsoft Access | [SQLProvider.MsAccess](https://www.nuget.org/packages/SQLProvider.MsAccess) | FSharp.Data.Sql.MsAccess.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.MsAccess) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.MsAccess)](https://www.nuget.org/packages/SQLProvider.MsAccess) -| FireBird | [SQLProvider.FireBird](https://www.nuget.org/packages/SQLProvider.FireBird) | FSharp.Data.Sql.FireBird.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.FireBird) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.FireBird)](https://www.nuget.org/packages/SQLProvider.FireBird) -| DuckDb | [SQLProvider.DuckDb](https://www.nuget.org/packages/SQLProvider.DuckDb) | FSharp.Data.Sql.DuckDb.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.DuckDb) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.DuckDb)](https://www.nuget.org/packages/SQLProvider.DuckDb) -| General, all via manual config | [SQLProvider](https://www.nuget.org/packages/SQLProvider) | FSharp.Data.Sql.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider)](https://www.nuget.org/packages/SQLProvider) +| ------- | ----- | -----------| ---------- | +| Microsoft SQL Server | [SQLProvider.MsSql](https://www.nuget.org/packages/SQLProvider.MsSql) | FSharp.Data.Sql.MsSql.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.MsSql) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.MsSql)](https://www.nuget.org/packages/SQLProvider.MsSql) +| PostgreSQL | [SQLProvider.PostgreSql](https://www.nuget.org/packages/SQLProvider.PostgreSql) | FSharp.Data.Sql.PostgreSql.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.PostgreSql) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.PostgreSql)](https://www.nuget.org/packages/SQLProvider.PostgreSql) +| MySQL and MariaDB | [SQLProvider.MySqlConnector](https://www.nuget.org/packages/SQLProvider.MySqMySqlConnectorl) | FSharp.Data.Sql.MySqlConnector.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.MySqlConnector) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.MySqlConnector)](https://www.nuget.org/packages/SQLProvider.MySqMySqlConnectorl) +| MySQL | [SQLProvider.MySql](https://www.nuget.org/packages/SQLProvider.MySql) | FSharp.Data.Sql.MySql.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.MySql) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.MySql)](https://www.nuget.org/packages/SQLProvider.MySql) +| Oracle | [SQLProvider.Oracle](https://www.nuget.org/packages/SQLProvider.Oracle) | FSharp.Data.Sql.Oracle.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.Oracle) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.Oracle)](https://www.nuget.org/packages/SQLProvider.Oracle) +| Any ODBC connection | [SQLProvider.Odbc](https://www.nuget.org/packages/SQLProvider.Odbc) | FSharp.Data.Sql.Odbc.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.Odbc) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.Odbc)](https://www.nuget.org/packages/SQLProvider.Odbc) +| SQLite | [SQLProvider.SQLite](https://www.nuget.org/packages/SQLProvider.SQLite) | FSharp.Data.Sql.SQLite.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.SQLite) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.SQLite)](https://www.nuget.org/packages/SQLProvider.SQLite) +| Microsoft Access | [SQLProvider.MsAccess](https://www.nuget.org/packages/SQLProvider.MsAccess) | FSharp.Data.Sql.MsAccess.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.MsAccess) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.MsAccess)](https://www.nuget.org/packages/SQLProvider.MsAccess) +| Firebird | [SQLProvider.Firebird](https://www.nuget.org/packages/SQLProvider.Firebird) | FSharp.Data.Sql.Firebird.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.Firebird) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.Firebird)](https://www.nuget.org/packages/SQLProvider.Firebird) +| DuckDb | [SQLProvider.DuckDb](https://www.nuget.org/packages/SQLProvider.DuckDb) | FSharp.Data.Sql.DuckDb.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider.DuckDb) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider.DuckDb)](https://www.nuget.org/packages/SQLProvider.DuckDb) +| General, all via manual config | [SQLProvider](https://www.nuget.org/packages/SQLProvider) | FSharp.Data.Sql.SqlDataProvider | [![Nuget](https://img.shields.io/nuget/v/SQLProvider) ![Nuget](https://img.shields.io/nuget/dt/SQLProvider)](https://www.nuget.org/packages/SQLProvider)
diff --git a/src/SQLProvider.FireBird.DesignTime/AssemblyInfo.fs b/src/SQLProvider.FireBird.DesignTime/AssemblyInfo.fs deleted file mode 100644 index c9e57192..00000000 --- a/src/SQLProvider.FireBird.DesignTime/AssemblyInfo.fs +++ /dev/null @@ -1,17 +0,0 @@ -// Auto-Generated by FAKE; do not edit -namespace System -open System.Reflection - -[] -[] -[] -[] -[] -do () - -module internal AssemblyVersionInformation = - let [] AssemblyTitle = "SQLProvider.FireBird.DesignTime" - let [] AssemblyProduct = "SQLProvider" - let [] AssemblyDescription = "Type providers for FireBird database access." - let [] AssemblyVersion = "1.5.12" - let [] AssemblyFileVersion = "1.5.12" diff --git a/src/SQLProvider.FireBird.Runtime/AssemblyInfo.fs b/src/SQLProvider.FireBird.Runtime/AssemblyInfo.fs deleted file mode 100644 index 4ec06d3c..00000000 --- a/src/SQLProvider.FireBird.Runtime/AssemblyInfo.fs +++ /dev/null @@ -1,17 +0,0 @@ -// Auto-Generated by FAKE; do not edit -namespace System -open System.Reflection - -[] -[] -[] -[] -[] -do () - -module internal AssemblyVersionInformation = - let [] AssemblyTitle = "SQLProvider.FireBird.Runtime" - let [] AssemblyProduct = "SQLProvider" - let [] AssemblyDescription = "Type providers for FireBird database access." - let [] AssemblyVersion = "1.5.12" - let [] AssemblyFileVersion = "1.5.12" diff --git a/src/SQLProvider.Firebird.Runtime/AssemblyInfo.fs b/src/SQLProvider.Firebird.Runtime/AssemblyInfo.fs index 4ec06d3c..d3d25113 100644 --- a/src/SQLProvider.Firebird.Runtime/AssemblyInfo.fs +++ b/src/SQLProvider.Firebird.Runtime/AssemblyInfo.fs @@ -2,16 +2,16 @@ namespace System open System.Reflection -[] +[] [] -[] +[] [] [] do () module internal AssemblyVersionInformation = - let [] AssemblyTitle = "SQLProvider.FireBird.Runtime" + let [] AssemblyTitle = "SQLProvider.Firebird.Runtime" let [] AssemblyProduct = "SQLProvider" - let [] AssemblyDescription = "Type providers for FireBird database access." + let [] AssemblyDescription = "Type providers for Firebird database access." let [] AssemblyVersion = "1.5.12" let [] AssemblyFileVersion = "1.5.12" diff --git a/src/SQLProvider.Firebird.Runtime/paket.template b/src/SQLProvider.Firebird.Runtime/paket.template index e31a4d4b..07893c1a 100644 --- a/src/SQLProvider.Firebird.Runtime/paket.template +++ b/src/SQLProvider.Firebird.Runtime/paket.template @@ -1,8 +1,8 @@ type file id - SQLProvider.FireBird + SQLProvider.Firebird title - SQLProvider.FireBird + SQLProvider.Firebird owners "Ross McKinlay, Colin Bull, Tuomas Hietanen" authors @@ -32,7 +32,7 @@ files ../../bin/firebird/typeproviders/fsharp41/netstandard2.0/**/*.dll ==> typeproviders/fsharp41/netstandard2.0 references FSharp.Data.SqlProvider.Common.dll - FSharp.Data.SqlProvider.FireBird.dll + FSharp.Data.SqlProvider.Firebird.dll dependencies FSharp.Core >= 8.0.301 Newtonsoft.Json >= 13.0.1 diff --git a/tests/SqlProvider.Tests/scripts/FirebirdTests.fsx b/tests/SqlProvider.Tests/scripts/FirebirdTests.fsx index 0bb2b8d8..e093adbd 100644 --- a/tests/SqlProvider.Tests/scripts/FirebirdTests.fsx +++ b/tests/SqlProvider.Tests/scripts/FirebirdTests.fsx @@ -19,7 +19,7 @@ let connectionString3 = @" Data Source=localhost; port=" + port + ";initial cata [] let resolutionPath = __SOURCE_DIRECTORY__ + "/../../../packages/tests/FirebirdSql.Data.FirebirdClient/lib/net452" -type HR = FSharp.Data.Sql.FireBird.SqlDataProvider +type HR = FSharp.Data.Sql.Firebird.SqlDataProvider let ctx = HR.GetDataContext() FSharp.Data.Sql.Common.QueryEvents.SqlQueryEvent |> Event.add (printfn "Executing SQL: %O") @@ -27,7 +27,7 @@ let processId = System.Diagnostics.Process.GetCurrentProcess().Id; //*************** quoted table names *********** //just get the single existing record -type HRCamelCase = FSharp.Data.Sql.FireBird.SqlDataProvider +type HRCamelCase = FSharp.Data.Sql.Firebird.SqlDataProvider let ctxCamelCase = HRCamelCase.GetDataContext() let cc = query { From 42d1f446a78a12da034cf9110f8d0079a6a6bb70 Mon Sep 17 00:00:00 2001 From: Tom Date: Wed, 27 Aug 2025 02:10:09 +0100 Subject: [PATCH 4/4] 1.5.13 --- .paket/Paket.Restore.targets | 9 +++++++-- docs/RELEASE_NOTES.md | 2 +- src/SQLProvider.Common/AssemblyInfo.fs | 8 ++++---- src/SQLProvider.DuckDb.Runtime/AssemblyInfo.fs | 8 ++++---- src/SQLProvider.Firebird.Runtime/AssemblyInfo.fs | 8 ++++---- src/SQLProvider.MsAccess.Runtime/AssemblyInfo.fs | 8 ++++---- src/SQLProvider.MySql.Runtime/AssemblyInfo.fs | 8 ++++---- src/SQLProvider.MySqlConnector.Runtime/AssemblyInfo.fs | 8 ++++---- src/SQLProvider.Odbc.Runtime/AssemblyInfo.fs | 2 +- src/SQLProvider.Oracle.Runtime/AssemblyInfo.fs | 8 ++++---- src/SQLProvider.PostgreSql.DesignTime/AssemblyInfo.fs | 8 ++++---- src/SQLProvider.PostgreSql.Runtime/AssemblyInfo.fs | 8 ++++---- src/SQLProvider.Postgresql.Runtime/AssemblyInfo.fs | 8 ++++---- src/SQLProvider.SQLite.Runtime/AssemblyInfo.fs | 8 ++++---- 14 files changed, 53 insertions(+), 48 deletions(-) diff --git a/.paket/Paket.Restore.targets b/.paket/Paket.Restore.targets index bbeec153..17aeb635 100644 --- a/.paket/Paket.Restore.targets +++ b/.paket/Paket.Restore.targets @@ -235,14 +235,15 @@ $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',').Length) $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[0]) $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[1]) + $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[2]) $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[4]) $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[5]) $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[6]) $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[7]) $([System.String]::Copy('%(PaketReferencesFileLines.Identity)').Split(',')[8]) - - %(PaketReferencesFileLinesInfo.PackageVersion) + + %(PaketReferencesFileLinesInfo.PackageVersion) All runtime $(ExcludeAssets);contentFiles @@ -252,6 +253,10 @@ true + + + %(PaketReferencesFileLinesInfo.PackageVersion) + diff --git a/docs/RELEASE_NOTES.md b/docs/RELEASE_NOTES.md index df346942..e95a29f4 100644 --- a/docs/RELEASE_NOTES.md +++ b/docs/RELEASE_NOTES.md @@ -1,4 +1,4 @@ -### 1.5.12 - 21.07.2025 +### 1.5.13 - 21.07.2025 * MapTo fix on special cases where database is missing fields of MapTo FSharp record target. ### 1.5.11 - 24.06.2025 diff --git a/src/SQLProvider.Common/AssemblyInfo.fs b/src/SQLProvider.Common/AssemblyInfo.fs index 5b8bc159..bf0fa3c6 100644 --- a/src/SQLProvider.Common/AssemblyInfo.fs +++ b/src/SQLProvider.Common/AssemblyInfo.fs @@ -5,13 +5,13 @@ open System.Reflection [] [] [] -[] -[] +[] +[] do () module internal AssemblyVersionInformation = let [] AssemblyTitle = "SQLProvider.Common" let [] AssemblyProduct = "SQLProvider" let [] AssemblyDescription = "Type provider for SQL database access, common library" - let [] AssemblyVersion = "1.5.12" - let [] AssemblyFileVersion = "1.5.12" + let [] AssemblyVersion = "1.5.13" + let [] AssemblyFileVersion = "1.5.13" diff --git a/src/SQLProvider.DuckDb.Runtime/AssemblyInfo.fs b/src/SQLProvider.DuckDb.Runtime/AssemblyInfo.fs index 6e66b703..923cad9d 100644 --- a/src/SQLProvider.DuckDb.Runtime/AssemblyInfo.fs +++ b/src/SQLProvider.DuckDb.Runtime/AssemblyInfo.fs @@ -5,13 +5,13 @@ open System.Reflection [] [] [] -[] -[] +[] +[] do () module internal AssemblyVersionInformation = let [] AssemblyTitle = "SQLProvider.DuckDb.Runtime" let [] AssemblyProduct = "SQLProvider" let [] AssemblyDescription = "Type providers for DuckDb database access." - let [] AssemblyVersion = "1.5.12" - let [] AssemblyFileVersion = "1.5.12" + let [] AssemblyVersion = "1.5.13" + let [] AssemblyFileVersion = "1.5.13" diff --git a/src/SQLProvider.Firebird.Runtime/AssemblyInfo.fs b/src/SQLProvider.Firebird.Runtime/AssemblyInfo.fs index d3d25113..6460b8f5 100644 --- a/src/SQLProvider.Firebird.Runtime/AssemblyInfo.fs +++ b/src/SQLProvider.Firebird.Runtime/AssemblyInfo.fs @@ -5,13 +5,13 @@ open System.Reflection [] [] [] -[] -[] +[] +[] do () module internal AssemblyVersionInformation = let [] AssemblyTitle = "SQLProvider.Firebird.Runtime" let [] AssemblyProduct = "SQLProvider" let [] AssemblyDescription = "Type providers for Firebird database access." - let [] AssemblyVersion = "1.5.12" - let [] AssemblyFileVersion = "1.5.12" + let [] AssemblyVersion = "1.5.13" + let [] AssemblyFileVersion = "1.5.13" diff --git a/src/SQLProvider.MsAccess.Runtime/AssemblyInfo.fs b/src/SQLProvider.MsAccess.Runtime/AssemblyInfo.fs index 501ace49..5d8c5a9c 100644 --- a/src/SQLProvider.MsAccess.Runtime/AssemblyInfo.fs +++ b/src/SQLProvider.MsAccess.Runtime/AssemblyInfo.fs @@ -5,13 +5,13 @@ open System.Reflection [] [] [] -[] -[] +[] +[] do () module internal AssemblyVersionInformation = let [] AssemblyTitle = "SQLProvider.MsAccess.Runtime" let [] AssemblyProduct = "SQLProvider" let [] AssemblyDescription = "Type providers for Microsoft Access database access." - let [] AssemblyVersion = "1.5.12" - let [] AssemblyFileVersion = "1.5.12" + let [] AssemblyVersion = "1.5.13" + let [] AssemblyFileVersion = "1.5.13" diff --git a/src/SQLProvider.MySql.Runtime/AssemblyInfo.fs b/src/SQLProvider.MySql.Runtime/AssemblyInfo.fs index f1cac73a..be06873a 100644 --- a/src/SQLProvider.MySql.Runtime/AssemblyInfo.fs +++ b/src/SQLProvider.MySql.Runtime/AssemblyInfo.fs @@ -5,13 +5,13 @@ open System.Reflection [] [] [] -[] -[] +[] +[] do () module internal AssemblyVersionInformation = let [] AssemblyTitle = "SQLProvider.MySql.Runtime" let [] AssemblyProduct = "SQLProvider" let [] AssemblyDescription = "Type providers for MySQL database and MariaDB database access." - let [] AssemblyVersion = "1.5.12" - let [] AssemblyFileVersion = "1.5.12" + let [] AssemblyVersion = "1.5.13" + let [] AssemblyFileVersion = "1.5.13" diff --git a/src/SQLProvider.MySqlConnector.Runtime/AssemblyInfo.fs b/src/SQLProvider.MySqlConnector.Runtime/AssemblyInfo.fs index 41a09316..57f92c2c 100644 --- a/src/SQLProvider.MySqlConnector.Runtime/AssemblyInfo.fs +++ b/src/SQLProvider.MySqlConnector.Runtime/AssemblyInfo.fs @@ -5,13 +5,13 @@ open System.Reflection [] [] [] -[] -[] +[] +[] do () module internal AssemblyVersionInformation = let [] AssemblyTitle = "SQLProvider.MySqlConnector.Runtime" let [] AssemblyProduct = "SQLProvider" let [] AssemblyDescription = "Type providers for MySQL database and MariaDB database access via MySqlConnector." - let [] AssemblyVersion = "1.5.12" - let [] AssemblyFileVersion = "1.5.12" + let [] AssemblyVersion = "1.5.13" + let [] AssemblyFileVersion = "1.5.13" diff --git a/src/SQLProvider.Odbc.Runtime/AssemblyInfo.fs b/src/SQLProvider.Odbc.Runtime/AssemblyInfo.fs index 497002cd..6650c0ba 100644 --- a/src/SQLProvider.Odbc.Runtime/AssemblyInfo.fs +++ b/src/SQLProvider.Odbc.Runtime/AssemblyInfo.fs @@ -5,7 +5,7 @@ open System.Reflection [] [] [] -[] +[] [] do () diff --git a/src/SQLProvider.Oracle.Runtime/AssemblyInfo.fs b/src/SQLProvider.Oracle.Runtime/AssemblyInfo.fs index d28ff3f1..67206485 100644 --- a/src/SQLProvider.Oracle.Runtime/AssemblyInfo.fs +++ b/src/SQLProvider.Oracle.Runtime/AssemblyInfo.fs @@ -5,13 +5,13 @@ open System.Reflection [] [] [] -[] -[] +[] +[] do () module internal AssemblyVersionInformation = let [] AssemblyTitle = "SQLProvider.Oracle.Runtime" let [] AssemblyProduct = "SQLProvider" let [] AssemblyDescription = "Type providers for Oracle database access." - let [] AssemblyVersion = "1.5.12" - let [] AssemblyFileVersion = "1.5.12" + let [] AssemblyVersion = "1.5.13" + let [] AssemblyFileVersion = "1.5.13" diff --git a/src/SQLProvider.PostgreSql.DesignTime/AssemblyInfo.fs b/src/SQLProvider.PostgreSql.DesignTime/AssemblyInfo.fs index 2a7ec6c7..f9d75356 100644 --- a/src/SQLProvider.PostgreSql.DesignTime/AssemblyInfo.fs +++ b/src/SQLProvider.PostgreSql.DesignTime/AssemblyInfo.fs @@ -5,13 +5,13 @@ open System.Reflection [] [] [] -[] -[] +[] +[] do () module internal AssemblyVersionInformation = let [] AssemblyTitle = "SQLProvider.PostgreSql.DesignTime" let [] AssemblyProduct = "SQLProvider" let [] AssemblyDescription = "Type providers for PostgreSql database access." - let [] AssemblyVersion = "1.5.12" - let [] AssemblyFileVersion = "1.5.12" + let [] AssemblyVersion = "1.5.13" + let [] AssemblyFileVersion = "1.5.13" diff --git a/src/SQLProvider.PostgreSql.Runtime/AssemblyInfo.fs b/src/SQLProvider.PostgreSql.Runtime/AssemblyInfo.fs index feccc678..61dddc96 100644 --- a/src/SQLProvider.PostgreSql.Runtime/AssemblyInfo.fs +++ b/src/SQLProvider.PostgreSql.Runtime/AssemblyInfo.fs @@ -5,13 +5,13 @@ open System.Reflection [] [] [] -[] -[] +[] +[] do () module internal AssemblyVersionInformation = let [] AssemblyTitle = "SQLProvider.PostgreSql.Runtime" let [] AssemblyProduct = "SQLProvider" let [] AssemblyDescription = "Type providers for PostgreSql database access." - let [] AssemblyVersion = "1.5.12" - let [] AssemblyFileVersion = "1.5.12" + let [] AssemblyVersion = "1.5.13" + let [] AssemblyFileVersion = "1.5.13" diff --git a/src/SQLProvider.Postgresql.Runtime/AssemblyInfo.fs b/src/SQLProvider.Postgresql.Runtime/AssemblyInfo.fs index feccc678..61dddc96 100644 --- a/src/SQLProvider.Postgresql.Runtime/AssemblyInfo.fs +++ b/src/SQLProvider.Postgresql.Runtime/AssemblyInfo.fs @@ -5,13 +5,13 @@ open System.Reflection [] [] [] -[] -[] +[] +[] do () module internal AssemblyVersionInformation = let [] AssemblyTitle = "SQLProvider.PostgreSql.Runtime" let [] AssemblyProduct = "SQLProvider" let [] AssemblyDescription = "Type providers for PostgreSql database access." - let [] AssemblyVersion = "1.5.12" - let [] AssemblyFileVersion = "1.5.12" + let [] AssemblyVersion = "1.5.13" + let [] AssemblyFileVersion = "1.5.13" diff --git a/src/SQLProvider.SQLite.Runtime/AssemblyInfo.fs b/src/SQLProvider.SQLite.Runtime/AssemblyInfo.fs index 3e44fbd8..404789d3 100644 --- a/src/SQLProvider.SQLite.Runtime/AssemblyInfo.fs +++ b/src/SQLProvider.SQLite.Runtime/AssemblyInfo.fs @@ -5,13 +5,13 @@ open System.Reflection [] [] [] -[] -[] +[] +[] do () module internal AssemblyVersionInformation = let [] AssemblyTitle = "SQLProvider.SQLite.Runtime" let [] AssemblyProduct = "SQLProvider" let [] AssemblyDescription = "Type providers for SQLite database access." - let [] AssemblyVersion = "1.5.12" - let [] AssemblyFileVersion = "1.5.12" + let [] AssemblyVersion = "1.5.13" + let [] AssemblyFileVersion = "1.5.13"