Description
Version
1.22.0
What happened?
I have to update the query that backs a materialized view.
To do this, I create a new temporary materialized view, view_2
, drop the old view, view_1
, and rename the temporary view to the old view's name.
I am renaming the temporary view using alter materialized view view_2 rename to view_1
.
When I run sqlc generate
, SQLC states that the view_1
does not exist, when in fact it does, it's just been renamed.
For context, I need to create a temporary materialized view, as dropping and recreating a materialized view will block all reads to the view. This is a two-step process, done in separate migrations. Postgres does not support updating a materialized view's query.
Relevant log output
# package db
query.sql:1:1: relation "view_1" does not exist
Database schema
create materialized view view_1 as select x.* from (values(1), (1), (1)) as x;
create materialized view view_2 as select x.* from (values(2), (2), (2)) as x;
drop materialized view view_1;
alter materialized view view_2 rename to view_1;
SQL queries
-- name: SelectView :many
select * from view_1;
Configuration
{
"version": "2",
"sql": [{
"schema": "schema.sql",
"queries": "query.sql",
"engine": "postgresql",
"gen": {
"go": {
"out": "db"
}
}
}]
}
Playground URL
https://play.sqlc.dev/p/f5ae38a7ec5718c27c64bbc03eccf3f118b68bfdf5d163a3f9caa4296cdfe5bb
What operating system are you using?
macOS
What database engines are you using?
PostgreSQL
What type of code are you generating?
Go