4 ms·
All objects update their reference after a renaming. If you rename a column, foreign keys referencing that column have the name updated.
by hashimotonomora 5y ago
All objects update their reference after a renaming. If you rename a column, foreign keys referencing that column have the name updated.
- giraffe_lady 5y agoI commented elsewhere that the view renaming thing was surprising to me, but when you put it like this it makes sense. The view references the oid or whatever, some internal representation I try to pretend doesn't exist. It's kind of surprising in some cases when I haven't seen it before (like views) but is consistent and the alternative would be a lot harder to work with.
- ziml77 5y agoIt definitely does make sense and it probably what most people expect if they've never worked with a database before. But coming from my experience with other databases (primarily MS SQL Server) it's a surprising difference. On me for not testing better, but it was some quick and dirty work in a quick and dirty environment that doesn't even have a dev instance.
- radiowave 5y agoOff the top of my head, the exception to this is functions (i.e. that you declare inside Postgres), because the function body is really just a piece of text, in any of a bunch of different languages. So if you have a function which refers to specific database objects that are being renamed, you'll also need to update the function definition with the new names.
- uhoh-itsmaciek 5y agoNote that SQL-standard bodies are supported as of 14 [1]: Allow SQL-language functions and procedures to use SQL-standard function bodies (Peter Eisentraut) Previously only string-literal function bodies were supported. When writing a function or procedure in SQL-standard syntax, the body is parsed immediately and stored as a parse tree. This allows better tracking of function dependencies, and can have security benefits. [1]: https://www.postgresql.org/docs/14/release-14.html https://www.postgresql.org/docs/14/release-14.html
- giraffe_lady 5y agocan you declare and modify string literal functions inside sql standard functions? if so that's form interpretation right, you could build a powerful lisp-style macro system that way I think.
- radiowave 5y agoAh, that's good news. Thanks.