-----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

Reply via email to