Skip to content

Renaming a materialized view causes sqlc generate to fail #3371

Open
@JakeCapra

Description

@JakeCapra

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions