Merge 'Initial pass on incremental view maintenance with DBSP' from Glauber Costa

Implement very basic views using DBSP
This is just the bare minimum that I needed to convince myself that this
 approach will work. The only views that we support are slices of the
 main table: no aggregations, no joins, no projections.
 * drop view is implemented.
 * view population is implemented.
 * deletes, inserts and updates are implemented.
 much like indexes before, a flag must be passed to enable views.

Closes #2530
This commit is contained in:
Pekka Enberg
2025-08-11 07:45:43 +03:00
26 changed files with 4517 additions and 77 deletions

View File

@@ -31,6 +31,7 @@ impl TempDatabase {
turso_core::OpenFlags::default(),
false,
enable_indexes,
false,
)
.unwrap();
Self { path, io, db }
@@ -56,6 +57,7 @@ impl TempDatabase {
flags,
false,
enable_indexes,
false,
)
.unwrap();
Self {
@@ -85,6 +87,7 @@ impl TempDatabase {
turso_core::OpenFlags::default(),
false,
enable_indexes,
false,
)
.unwrap();

View File

@@ -706,6 +706,7 @@ fn test_wal_bad_frame() -> anyhow::Result<()> {
turso_core::OpenFlags::default(),
false,
false,
false,
)
.unwrap();
let tmp_db = TempDatabase {