mirror of
https://github.com/lancedb/lancedb.git
synced 2026-11-13 14:16:54 +00:00
fix: decode native SQL view metadata (#4785)
View APIs now read the native `name`, `query`, and `schema` columns
returned by `CREATE VIEW` and `DESCRIBE VIEW`. The schema JSON carries
the defining database and namespace; the requested namespace identifies
where the view lives. The unreleased JSON-envelope response is removed
without a compatibility fallback.
```python
view = db.create_view("adults", "SELECT name FROM people WHERE age >= 18")
view = db.describe_view("adults")
```
```sql
CREATE VIEW "adults" AS SELECT name FROM people WHERE age >= 18;
DESCRIBE VIEW "adults";
```
Both Python calls execute SQL through the query-backed job adapter and
wait on the resulting query. A job handle uses that query's `id` and
type `query`; reading metadata consumes its completed result rather than
resubmitting the DDL. Creation returns the definition from the creating
execution, with no extra describe request.
This commit is contained in:
@@ -30,10 +30,14 @@ FROM "documents" AS t1
|
||||
INNER JOIN "categories" AS t2 ON t1.ints = t2.ints
|
||||
```
|
||||
|
||||
The statement returns one UTF-8 `definition` column containing JSON with the
|
||||
view name, namespace, original query, default database and namespace, and its
|
||||
Arrow schema resolved at creation time. `DESCRIBE VIEW "recent_matches"`
|
||||
returns the same metadata shape. Anything the
|
||||
The statement returns one row with UTF-8 `name`, `query`, and `schema` columns.
|
||||
`query` contains the stored query, including any declared column aliases, and
|
||||
`schema` contains its Arrow schema as JSON. The schema metadata keys
|
||||
`lancedb::view::default_db` and `lancedb::view::default_namespace` identify the
|
||||
defining database and namespace. The root namespace is `public`; nested
|
||||
namespace components are separated by `$`.
|
||||
|
||||
`DESCRIBE VIEW "recent_matches"` returns the same metadata shape. Anything the
|
||||
[dialect](/sql/functions) supports can define one: joins, predicates,
|
||||
aggregates, window functions.
|
||||
|
||||
@@ -65,9 +69,8 @@ SHOW VIEWS
|
||||
SHOW VIEWS IN "analytics" WHERE name > 'previous_view' LIMIT 100
|
||||
```
|
||||
|
||||
`SHOW VIEWS` returns ascending `name` values and a nullable `location` column.
|
||||
Locations are populated only when the deployment exposes catalog locations.
|
||||
The `name` cursor is scoped to the selected namespace.
|
||||
`SHOW VIEWS` returns ascending `name` values. The `name` cursor is scoped to
|
||||
the selected namespace.
|
||||
|
||||
Object commands retain their small results in shared storage even when general
|
||||
query-result copying is disabled, so asynchronous polling can use any query node.
|
||||
|
||||
Reference in New Issue
Block a user