Incremental Update 11
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:
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.