[BUG] Postgres error when changing column type of a table with dependant view
Nobody has claimed this yet.
Assessment
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Newbie friendliness
- 68/100
Research direction
Start with the schema-diff planning path used by the library and CLI, then reproduce the provided table-and-view change with pg-schema-diff plan and apply. Confirm the generated migration handles the dependent view before changing the column type and leaves the view available afterward.
Written by the indexing model from the issue text.
Description
Describe the bug**
When a table column's type is changed and a view depends on that column, pg-schema-diff generates ALTER TABLE ... ALTER COLUMN ... SET
DATA TYPE without first dropping the dependent view. Postgres rejects the migration:
ERROR: 0A000: cannot alter type of a column used by a view or rule
Expected behavior**
The view should be marked for recreation (dropped before, recreated after) whenever a column it depends on has its type altered, the same way it already is when a dependent column is deleted.
To Reproduce
- Start with a schema containing a table and a view selecting a column from it, e.g.:
CREATE TABLE foo (id int, val text);
CREATE VIEW foo_v AS SELECT id, val FROM foo; - Change the column type in the new schema:
CREATE TABLE foo (id int, val varchar(100));
CREATE VIEW foo_v AS SELECT id, val FROM foo; - Run pg-schema-diff plan and apply the generated SQL.
- The ALTER TABLE foo ALTER COLUMN val SET DATA TYPE varchar(100) statement fails with the error above.
Context
pg-schema-diff version: main (reproduces on current main)
pg-schema-diff usage: LIBRARY / CLI (both)
- Dominant language
- Go
- Stars
- 884
- Forks
- 82
- PR merge metrics
- No merged PRs in 30d
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from stripe/pg-schema-diff
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 76/100
stripe/pg-schema-diff#302 · 1 comment ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
stripe/pg-schema-diff#283 · 1 reaction ·
-
Difficulty 4/5 3-5 days Newbie friendliness 50/100
stripe/pg-schema-diff#301 ·
-
Is the repo active? Open
Difficulty 1/5 Under an hour Newbie friendliness 15/100
stripe/pg-schema-diff#289 · 7 reactions ·
-
Difficulty 3/5 1-2 days Newbie friendliness 76/100
stripe/pg-schema-diff#284 ·
All issues in stripe/pg-schema-diff
Similar issues
-
optimization optimization:agents-md-curator
Difficulty 2/5 1-3 hours Newbie friendliness 86/100
githubnext/gh-aw-cao#13143 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
blinklabs-io/bursa#904 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
yanet-platform/ipfw-go#129 ·
-
bug confmap/provider/googlesecretmanagerprovider needs triage
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
open-telemetry/opentelemetry-collector-contrib#51273 · 2 comments ·
-
bug: AI Gateway client filter lists "Unknown" twice when NULL and literal Unknown clients coexist Openbug
Difficulty 2/5 1-3 hours Newbie friendliness 90/100