| From: | Noah Misch <noah(at)2ndQuadrant(dot)com> |
|---|---|
| To: | Robert Haas <robertmhaas(at)gmail(dot)com> |
| Cc: | Greg Stark <stark(at)mit(dot)edu>, Simon Riggs <simon(at)2ndquadrant(dot)com>, pgsql-hackers(at)postgresql(dot)org, heikki(dot)linnakangas(at)enterprisedb(dot)com |
| Subject: | Re: Make relation_openrv atomic wrt DDL |
| Date: | 2011-07-07 02:44:55 |
| Message-ID: | 20110707024454.GC1840@tornado.leadboat.com |
| Views: | Whole Thread | Raw Message | Download mbox | Resend email |
| Thread: | |
| Lists: | pgsql-hackers |
On Wed, Jul 06, 2011 at 08:35:55PM -0400, Robert Haas wrote:
> On Wed, Jul 6, 2011 at 6:32 PM, Noah Misch <noah(at)2ndquadrant(dot)com> wrote:
> > While a mere "LOCK bar.x" is sufficient to get a clean cutover with respect to
> > parsing, it fails to invalidate plans. To really cover all bases, you need
> > some no-op action that invalidates "bar.x". For actual practical use, I'd
> > recommend something like:
> >
> > BEGIN;
> > ALTER TABLE bar.x RENAME TO x0;
> > ALTER TABLE bar.x0 RENAME TO x;
> > CREATE TABLE foo.x ...
> > COMMIT;
> >
> > Probably worth making it more intuitive to DTRT here.
>
> Well, what would be really nice is if it just worked.
Yes.
> Care to submit an updated patch?
Attached. I made the counter 64 bits wide, handled the nothing-found case per
your idea, and improved a few comments cosmetically. I have not attempted to
improve the search_path interposition case. We can recommend the workaround
above, and doing better looks like an excursion much larger than the one
represented by this patch.
Thanks,
nm
| Attachment | Content-Type | Size |
|---|---|---|
| atomic-openrv-v4.patch | text/plain | 10.0 KB |
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Jeff Davis | 2011-07-07 03:08:58 | Re: Range Types, constructors, and the type system |
| Previous Message | Robert Haas | 2011-07-07 01:35:03 | Re: spinlock contention |