Skip to content

Releases: JordanMarr/SqlHydra

SqlHydra.Cli v2.0.1 - Maintenance Release

04 Jun 18:36
Compare
Choose a tag to compare
  • Bug fix #57
  • Consolidates generated ColumnReader methods

v2.0.0 - SqlHydra.Cli

11 Apr 16:29
b1c89dc
Compare
Choose a tag to compare

New in v2.0

  • All generator tools have been consolidated into SqlHydra.Cli.
    • Note that this changes command line syntax from dotnet sqlhydra-npgsql to dotnet sqlhydra npgsql
  • SqlHydra.SqlServer, SqlHydra.Npgsql, SqlHydra.Sqlite and SqlHydra.Oracle tools have been deprecated on NuGet.
  • Support for net5.0 has been dropped (use the legacy tools if you still need it).
  • SqlHydra.Query has been updated to v2.0 to maintain parity with SqlHydra.Cli.

v1.2.1 correlated subquery support

11 Mar 05:21
Compare
Choose a tag to compare

New for v1.2.1:

SqlHydra.Query

SqlHydra CLI

  • Fixes issue #50 for the SqlHydra CLI generators.

v1.2.0 Table Declarations

05 Mar 01:33
Compare
Choose a tag to compare

SqlHydra v1.2.0 now generates a table declaration for each table, along with the generated table record.

For example, if you have a table, Sales.Person, it will now generate a table declaration, Sales.Person.
Behind the scenes in the generated code, this look like this:

module Sales =

    [<CLIMutable>]
    type Person = { FName: string; LName: string }
    
    let Person = SqlHydra.Query.Table.table<Person>

You can then use this in your queries:

  select {
      for p in Sales.Person do
      select p
  }

How to enable feature

Starting a new project

If running the sqlhydra CLI tool for the first time, you will be prompted to "Select a use case" with three options:

  • "SqlHydra.Query integration (default)"
  • "Other data library"
  • "Standalone"

This option will only be enabled if you choose "SqlHydra.Query integration (default)".

Upgrading from a previous version

If upgrading a previous version, you will need to manually edit your .toml file in your project folder to add table_declarations = true within the sqlhydra_query_integration section.

Example:

[general]
connection = "Data Source=TestData/AdventureWorksLT.db"
output = "Sqlite/AdventureWorksNet6.fs"
namespace = "Sqlite.AdventureWorksNet6"
cli_mutable = true
[sqlhydra_query_integration]
provider_db_type_attributes = true
table_declarations = true
[readers]
reader_type = "System.Data.Common.DbDataReader"
[filters]
include = [ "*" ]
exclude = [ "hr/*" ]

See .toml configuration docs for more details:

SqlHydra.Query v1.1.2

18 Feb 20:08
Compare
Choose a tag to compare

Adds support in select statement where clauses for reversing order of column/value. Previously, the table column/property always had to be on left side of the comparison:

  select {
      for a in addressTable do
      where (a.AddressID > 5)
  }

Now it can be on either side:

  select {
      for a in addressTable do
      where (5 < a.AddressID && a.AddressID <= 20)
  }

Thanks to @ntwilson for this improvement! 🎉

v1.1.1 - Simplified CLI wizard with "use cases"

17 Dec 04:46
Compare
Choose a tag to compare

v1.1.1 updates all the SqlHydra code generator tools to simplify the TOML configuration wizard that runs when a TOML file is not detected.
This update establishes three main "use cases" supported by SqlHydra.
Please see the updated TOML wiki page for more details:

https://github.com/JordanMarr/SqlHydra/wiki/TOML-Configuration#generating-toml-file

v1.1.0 / .NET 7 / Same Table Joins

13 Dec 03:03
Compare
Choose a tag to compare

SqlHydra.Query and SqlHydra.* (code gen)

  • All packages have been updated to v1.1.0
  • All packages support .NET 5, .NET 6 and now .NET 7

SqlHydra.Query

  • Same table joins are now supported.
    • Behind the scenes, all select queries now use table aliases instead of fully qualified table names (required to support same table joins).
  • inSchema function is no longer needed (now deprecated/obsolete because schema can be inferred from generated types parent module).
    • This makes it easier to specify your tables within your query instead of doing it ahead of time:
      select {
          for order in table<dbo.Orders> do
          select token
      }
  • Updated to SqlKata v2.4.0.

Thanks to @jwosty for his huge contributions toward the same table join feature!

Support for Implicit Conversions

30 Nov 05:26
Compare
Choose a tag to compare

SqlHydra.Query v1.0.5 adds support for F# implicit conversions in where expressions.

Example 1: Comparing a decimal value (p.ListPrice) with an int constant now works as expected:

select {
    for p in productTable do
    where (p.ListPrice > 5)
}

Example 2: Comparing a decimal option (p.Weight) with an int constant now works as expected:

select {
    for p in productTable do
    where (p.Weight = Some 5)
}

Thanks to aciq for his awesome pull request!

Npgsql Support for (more) Arrays

16 Nov 19:00
Compare
Choose a tag to compare

SqlHydra.Npgsql v1.0.5 adds adds support for arrays for the remaining PostgreSQL primitive data types, including:

  • boolean
  • smallint
  • integer
  • bigint
  • real
  • double precision
  • numeric
  • money
  • text
  • bit(1)
  • date
  • date without timezone
  • timestamp with time zone
  • time with time zone

Npgsql Support for Arrays

14 Nov 03:19
Compare
Choose a tag to compare

SqlHydra.Npgsql v1.0.4 adds support for text[] and integer[] columns.

There are other types that can support arrays, but I wanted to add the requested types first.
If you would like to see more array types added, please post an issue that we can use to come up with a more comprehensive list.