pá 24. 1. 2020 v 9:39 odesílatel Konstantin Knizhnik < k.knizh...@postgrespro.ru> napsal:
> > > On 23.01.2020 23:47, Robert Haas wrote: > > On Sat, Jan 11, 2020 at 8:51 PM Tomas Vondra > > <tomas.von...@2ndquadrant.com> wrote: > >> I proposed just ignoring those new indexes because it seems much simpler > >> than alternative solutions that I can think of, and it's not like those > >> other solutions don't have other issues. > > +1. > > > >> For example, I've looked at the "on demand" building as implemented in > >> global_private_temp-8.patch, I kinda doubt adding a bunch of index build > >> calls into various places in index code seems somewht suspicious. > > +1. I can't imagine that's a safe or sane thing to do. > > > > As far as you know there are two versions of GTT implementations now. > And we are going to merge them into single patch. > But there are some principle question concerning provided functionality > which has to be be discussed: > should we prohibit DDL on GTT if there are more than one sessions using > it. It includes creation/dropping indexes, dropping table, altering > table... > > If the answer is "yes", then the question whether to populate new > indexes with data is no relevant at all, because such situation will not > be possible. > But in this case we will get incompatible behavior with normal > (permanent) tables and it seems to be very inconvenient from DBA point > of view: > it will be necessary to enforce all clients to close their sessions to > perform some DDL manipulations with GTT. > Some DDLs will be very difficult to implement if GTT is used by more > than one backend, for example altering table schema. > > My current solution is to allow creation/droping index on GTT and > dropping table itself, while prohibit alter schema at all for GTT. > Wenjing's approach is to prohibit any DDL if GTT is used by more than > one backend. > When I create index on GTT in one session, then I don't expect creating same index in all other sessions that uses same GTT. But I can imagine to creating index on GTT enforces index in current session, and for other sessions this index will be invalid to end of session. Regards Pavel > > -- > Konstantin Knizhnik > Postgres Professional: http://www.postgrespro.com > The Russian Postgres Company > >