crate / crate/crate

SWAP TABLE or RENAME TO do not update relevant view queries

Open
#13,461 2 comments 0 reactions 0 assignees View on GitHub
complexity: no estimate feature: sql: ddl need refined description needs concrete use-case
Dominant language
Java
Stars
4.4k
Forks
616
Avg merge
14h 49m
Merged PRs (30d)
206

Description

### CrateDB version

latest master

### CrateDB setup information

_No response_

### Steps to Reproduce

```
// there are two issues (1) SWAP TABLE (2) RENAME TO:
(1)
cr> create table a (a int);
CREATE OK, 1 row affected (1.681 sec)
cr> create table b (b boolean);
CREATE OK, 1 row affected (1.698 sec)
cr> create view aview as select a+1 from a;
CREATE OK, 1 row affected (0.078 sec)
cr> alter cluster swap table a to b;
ALTER OK, 1 row affected (1.932 sec)
cr> select * from aview;
ColumnUnknownException[Column a unknown]

(2)
cr> drop view aview;
DROP OK, 1 row affected (0.076 sec)
cr> create view aview as select a+1 from b;
CREATE OK, 1 row affected (0.072 sec)
cr> alter table b rename to c;
ALTER OK, -1 rows affected (0.925 sec)
cr> select * from aview;
RelationUnknown[Relation 'b' unknown]
```

### Expected Result

Expect `SWAP TABLE` or `RENAME TO` to update the view queries accordingly such that the `selects` succeed without exceptions.

Postgres does update the view queries:
```
postgres=# create table s (s int);
CREATE TABLE
postgres=# create view sview as select * from s;
CREATE VIEW
postgres=# alter table s rename to s2;
ALTER TABLE
postgres=# \sv sview
CREATE OR REPLACE VIEW public.sview AS
SELECT s2.s
FROM s2
```

### Actual Result

Executing outdated view queries resulting in exceptions.

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.