Incremental Update 11

Incremental Update 11

Gerd Zellweger
Gerd ZellwegerHead of Engineering / Co-Founder
| November 29, 2024

Today, we’re happy to announce the release of feldera v0.31! This update brings two powerful new features to the table, and we’re eager to share the details with you.

Recursion in SQL

A highly anticipated feature has finally landed in Feldera SQL: recursive queries. This addition unlocks an entirely new class of algorithms that you can now express in Feldera. As with everything we build, recursive queries are evaluated incrementally, leveraging the full power of our DBSP engine.

Why Recursive Queries Matter

Recursive queries are a game-changer for solving problems like hierarchical data traversal, graph algorithms, and dynamic computations. With Feldera, you can now define these queries in a way that is both intuitive and powerful.

Here’s an example of a recursive query that computes the first 45 Fibonacci numbers:

create table input(x int); -- insert something here to trigger recursive evaluation
create recursive view fibonacci(n int not null, value int not null);

create view fibonacci as
(
    -- Base case: first two Fibonacci numbers
    select 0 as n, 0 as value
    union all
    select 1 as n, 1 as value
)
union all
(
    -- Compute F(n)=F(n-1)+F(n-2)
    select
        curr.n + 1 as n,
        (prev.value + curr.value) as value
    from fibonacci as curr
    join fibonacci as prev
    on prev.n = curr.n - 1
    where curr.n <= 45
);

Simplified Syntax for Recursion

Writing recursive queries in Feldera SQL is refreshingly straightforward. Using the new CREATE RECURSIVE VIEW syntax, you can define and reference recursive views without the complexities of standard SQL’s Common Table Expressions (CTEs). This approach avoids the nested and confusing syntax typical in other systems.

You can learn more about recursive queries in our docs, but the best part for me is how little restrictions we have: Feldera's recursion supports definitions involving multiple recursive views and accepts all SQL in them (with the one exception of window functions (OVER) that we don't yet support).

New UI User Experience

In August, we introduced a new UI (Incremental Update 3), designed to be minimalistic while gathering user feedback. With v0.31, the web console has undergone significant UX and design improvements, making it more polished and user-friendly. Here’s a screenshot of the updated design in action, featuring the Fibonacci program from above:

Screenshot of the revamped Feldera Webconsole in v0.31

These changes are just the beginning. Expect even more enhancements in upcoming releases.

Try It Live and Share Your Feedback

You can explore all the new features of feldera v0.31 right now on try.feldera.com. We’d love to hear your thoughts on the new UI, recursive queries and also our newly added support for fault tolerant pipelines to the enterprise edition (you can read more about it in our announcement blog post). If you have an exciting recursive use case in mind, let us know on Discord or in the Community Slack!

Other articles you may like

Incremental Update 6 at Feldera

We’re excited to announce the release of v0.26, which represents a significant step forward for Feldera. This release includes over 200 commits, adding 25,000 lines of new code and documentation. Let's dive into the highlights!

Database computations on Z-sets

How can Z-sets be used to implement database computations

Incremental Update 5 at Feldera

A quick overview of what's new in v0.25.