-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 05/29/2013 07:43 AM, Andres Freund wrote: > On 2013-05-29 07:35:42 -0700, Joe Conway wrote: >> On 05/29/2013 05:52 AM, Dimitri Fontaine wrote: >>> Andres Freund <and...@2ndquadrant.com> writes: >>>> On 2013-05-29 09:30:43 +0200, Dimitri Fontaine wrote: >>>>>> 2) How should we handle already installed extensions, >>>>>> which will still lack dependency records after this >>>>>> bugfix? >>>>> >>>>> I don't really see any other way here than providing an >>>>> upgrade script that will somehow re-attach those objects, >>>>> either by directly messing with pg_depends (that is, when >>>>> there's a systematic way to get the OIDs of the missing >>>>> RULEs), or by maybe doing a drop/create on the RULEs? >>>> >>>> Couldn't ALTER EXTENSION ... ADD ...; be brought up to speed >>>> to support this? >>> >>> I'll blame the Time Zone Difference Recovering. I felt like >>> missing something… >> >> Seems like the perfect idea, but is that something we would >> backpatch? > > Sounds better to me than manually fiddling with pg_depend... We > can't really drop and recreate the RULEs, there might be > dependencies preventing that.
OK, simple enough. New patch attached. I still need to do some testing to verify this does not break anything, but other than that, any complaints (including the notion of backpatching this back to 9.1)? Joe - -- Joe Conway credativ LLC: http://www.credativ.us Linux, PostgreSQL, and general Open Source Training, Service, Consulting, & 24x7 Support -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.11 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iQIcBAEBAgAGBQJRpoG2AAoJEDfy90M199hl3WYP/0xCtvVQKRwZ1hWS2xxVd7OU PFHfkX7/fLvEWi/ubra8VXexfjxO9cERLBQ5dMxxflq8sh3YHhNGLwa4TOthBzoA zmUUgS/d6EDt9ZipSlE+L9pV3r6gfZDfz0x5RRv3aIWxxW5yOXfp1umfL1l6AGpU e9uasllNhwOoY/voie6Aj9gSdtFMtAejXBQGsnUpj+JCITZPkRzxMfDBwTmbIPtT U4fiHzO3fbuwtoyvjZIdF6d1GJ8U0/oLGS4AFS9nq27GFTj1PlWjMgeEKku0Nqgx s4jIYNH/uczw9+RM8R+WF+934IcWJ47jGxQLaaS6Oog9egcbFXdjpoMjLkcaYcNb uR1RELh/C341QFHvJQjYiwBxfPwd9kAtGdfTp/wEGnhJ1TflbaVjrOqgoWvSn6Op emTOFhaGoAvCS2lgPhMxy2YwToKqYpiYQ8oaQQlcitG2JZaBX9X6ewFNkx2HKOrU bickTfzLaKggKC52AsOUY1zdJBJB8Tx+srZsIV3ipDOrdftzv4hFXpWo9il+NoLr zu4//jFmZsZXN/Y7xafnBkDWGxVizLohGVIkgTwsuaUtCjYAWPJpg7my6y3IXHfd NpaUvKgz430XTGwxem2ICLJmLeMhVOUVIQvsV4TVDRnR+db9rq9buu611iPKcsBz 30VxweOi2keQn8C+7I/1 =vij9 -----END PGP SIGNATURE-----
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y index 73c446a..47268db 100644 *** a/src/backend/parser/gram.y --- b/src/backend/parser/gram.y *************** AlterExtensionContentsStmt: *** 3729,3735 **** n->objargs = list_make1(makeString($9)); $$ = (Node *)n; } ! | ALTER EXTENSION name add_drop SCHEMA name { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = $3; --- 3729,3744 ---- n->objargs = list_make1(makeString($9)); $$ = (Node *)n; } ! | ALTER EXTENSION name add_drop RULE name ON any_name ! { ! AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); ! n->extname = $3; ! n->action = $4; ! n->objtype = OBJECT_RULE; ! n->objname = lappend($8, makeString($6)); ! $$ = (Node *)n; ! } ! | ALTER EXTENSION name add_drop SCHEMA name { AlterExtensionContentsStmt *n = makeNode(AlterExtensionContentsStmt); n->extname = $3; diff --git a/src/backend/rewrite/rewriteDefine.c b/src/backend/rewrite/rewriteDefine.c index cb59f13..c48c661 100644 *** a/src/backend/rewrite/rewriteDefine.c --- b/src/backend/rewrite/rewriteDefine.c *************** InsertRule(char *rulname, *** 181,186 **** --- 181,189 ---- DEPENDENCY_NORMAL); } + /* dependency on extension */ + recordDependencyOnCurrentExtension(&myself, is_update); + /* Post creation hook for new rule */ InvokeObjectPostCreateHook(RewriteRelationId, rewriteObjectId, 0);
-- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers