Skip to content

0.8.11

Compare
Choose a tag to compare
@mk3008 mk3008 released this 01 Sep 12:14
· 52 commits to main since this release
5ebe9a6

Added the FluentTable class.
This class can manage queries by CTE name and alias name together.
This makes writing query processing much simpler.

Example

[Fact]
public void PhysicalTableTest()
{
    var tableA = FluentTable.Create("table_a", "a");

    var sq = new SelectQuery()
        .From(tableA)
        .SelectAll(tableA);

    var expect = """
        SELECT
            a.*
        FROM
            table_a AS a
        """;

    Assert.Equal(expect, sq.ToText());
}

[Fact]
public void SubQueryTest()
{
    var tableA = FluentTable.Create("select * from table_a", "a");

    var sq = new SelectQuery()
        .From(tableA)
        .SelectAll(tableA);

    var expect = """
        SELECT
            a.*
        FROM
            (
                SELECT
                    *
                FROM
                    table_a
            ) AS a
        """;

    Assert.Equal(expect, sq.ToText());
}

[Fact]
public void CteTest()
{
    var tableA = FluentTable.Create("select * from table_a", "cte_a", "a");

    var sq = new SelectQuery()
        .From(tableA)
        .SelectAll(tableA);

    var expect = """
        WITH
            cte_a AS (
                SELECT
                    *
                FROM
                    table_a
            )
        SELECT
            a.*
        FROM
            cte_a AS a
        """;

    Assert.Equal(expect, sq.ToText());
}

What's Changed

  • Update Carbunql.csproj by @mk3008 in #517
  • Update README.md by @mk3008 in #518
  • Improved filter search target by @mk3008 in #519
  • Enhanced override processing for selected columns by @mk3008 in #521
  • Enhancement: Added build method to SelectQuery class. by @mk3008 in #525
  • Enhancement: Added ReverseSign function by @mk3008 in #526
  • Enhancement: Changed target framework by @mk3008 in #528
  • Enhancement: Added FluentTable class by @mk3008 in #529

Full Changelog: 0.8.10...0.8.11