Re: posgres 12 bug (partitioned table)
От | Andres Freund |
---|---|
Тема | Re: posgres 12 bug (partitioned table) |
Дата | |
Msg-id | 20210421211239.o7j5cz4wjvlhwcam@alap3.anarazel.de обсуждение исходный текст |
Ответ на | Re: posgres 12 bug (partitioned table) (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: posgres 12 bug (partitioned table)
|
Список | pgsql-bugs |
Hi, On 2021-04-21 16:51:42 -0400, Tom Lane wrote: > Andres Freund <andres@anarazel.de> writes: > > On 2021-04-21 15:10:09 -0400, Tom Lane wrote: > >> So now I'm thinking the right thing to be working on is banning access > >> to system columns via partition parent tables (other than tableoid, > >> which ought to work). > > > And ctid, I assume? While I have some hope for generalizing the > > representation of tids at some point, I don't think it's realistic that > > we'd actually get rid of them anytime soon. > > Hmm, I'd have thought that ctid would be very high on the list of > things we don't want to assume are the same for all AMs. Admittedly, > refactoring that is going to be a large pain in the rear, but ... I don't really see us getting rid of something like ctid as a generic concept across AMs - there's just too many places that need a way to reference a specific tuple. However, I think we ought to change how much code outside of AMs know about what tids mean. And, although that's a significant lift on its own, we ought to make at least the generic representation variable width. > I see that it actually works right now because slot_getsysattr > special-cases both tableoid and ctid, but I have a hard time > believing that that's a long-term answer. Not fully responsive to this: I've previously wondered if we ought to handle tableoid at parse-analysis or expression simplification time instead of runtime. It's not really something that needs runtime evaluation. But it's also not clear it's worth changing anything... > > One could even imagine partition root specific system columns... > > Yeah. As I think about this, I recall a previous discussion where > we suggested that maybe partitioned tables could have a subset > of system columns, whereupon all their children would be required > to support (at least) those system columns. But that would have > to be user-controllable, so a lot of infrastructure would need to > be built for it. For the moment I'd be satisfied with a fixed > decision that only tableoid is treated that way. I don't really see a convincing usecase to add this kind of complication with the current set of columns. Outside of tableoid and ctid every use of system attributes was either wrong, or purely for debugging / introspection, where restricting it to actual tables doesn't seem like a problem. Greetings, Andres Freund
В списке pgsql-bugs по дате отправления: