Files
lancedb/nodejs/__test__
Wyatt Alt f5e589bbe0 feat: define a materialized view by its query, with UNNEST for table-valued Functions
A view definition was a structured record under a `kind` tag, one kind
per query shape, and a Function returning `list<struct>` was about to
add a third. That names shapes instead of describing a relation.

A materialized view is now a relation defined by a query, stored as one
canonical SQL string under a format number:

    SELECT columns FROM [ns.]table [, UNNEST(column) AS alias]
      [WHERE predicate] [LIMIT n]

Any other clause is refused at parse time. Older readers report the view
as unrefreshable, the pre-format layouts still read, and a legacy view is
rewritten on its next refresh that commits, rebuilt only where its raw
text meant something else under lance's parser.

UNNEST is the first operator past project and filter: projections plan
against the source with the list column replaced by its element under
the alias, and refresh unnests, filters and projects each batch itself.
Row ids repeat per element, so eviction and incremental append are
unchanged. A limit is refused with UNNEST: a scan limit counts source rows.
2026-09-17 03:38:29 +00:00
..
2025-01-29 08:27:07 -08:00