Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1aaZZJ-0007jG-Fx for pgsql-hackers@arkaria.postgresql.org; Tue, 01 Mar 2016 01:57:45 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.84) (envelope-from ) id 1aaZZI-0004bZ-2Y for pgsql-hackers@arkaria.postgresql.org; Tue, 01 Mar 2016 01:57:44 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1aaZXx-00036f-NQ for pgsql-hackers@postgresql.org; Tue, 01 Mar 2016 01:56:21 +0000 Received: from mail-bl2on0076.outbound.protection.outlook.com ([65.55.169.76] helo=na01-bl2-obe.outbound.protection.outlook.com) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84) (envelope-from ) id 1aaZXp-0007bc-NN for pgsql-hackers@postgresql.org; Tue, 01 Mar 2016 01:56:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=BlueTreble.onmicrosoft.com; s=selector1-bluetreble-com; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=Xlz2NxQAXtGaV91xQPc1KrsiI8upXlUngkTlCXt0p/8=; b=bA4erE0dX/AB0vwtwTAM4p0eFNhomL7d+Ht+MekYXCjG6IY7Bwudkr0d3bcsS+lK/oFNPbh3EbCaW8ZENNTb2OhzHSsrZeqP82kgzJ9GlfISquJRTXPJZjGNHnMnQBuFuXQgUJ2y3qJ51MDpta1wvBlPKEDQXCorvj++3yW/qFQ= Authentication-Results: postgresql.org; dkim=none (message not signed) header.d=none;postgresql.org; dmarc=none action=none header.from=BlueTreble.com; Received: from decina.local (70.113.16.71) by CY1PR11MB0684.namprd11.prod.outlook.com (10.163.236.22) with Microsoft SMTP Server (TLS) id 15.1.415.20; Tue, 1 Mar 2016 01:56:10 +0000 Subject: Re: dealing with extension dependencies that aren't quite 'e' To: Abhijit Menon-Sen , References: <18108.1452869354@sss.pgh.pa.us> <20160115170826.GA28307@toroid.org> <20160116144818.GA17401@toroid.org> <58C7A345-193B-4813-A7AA-4B78358313D6@gmail.com> <20160118053819.GA18576@toroid.org> <20160301012745.GA11489@toroid.org> From: Jim Nasby Message-ID: <56D4F6B7.8010200@BlueTreble.com> Date: Mon, 29 Feb 2016 19:56:07 -0600 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:38.0) Gecko/20100101 Thunderbird/38.6.0 MIME-Version: 1.0 In-Reply-To: <20160301012745.GA11489@toroid.org> Content-Type: text/plain; charset="windows-1252"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [70.113.16.71] X-ClientProxiedBy: BLUPR11CA0022.namprd11.prod.outlook.com (10.141.240.32) To CY1PR11MB0684.namprd11.prod.outlook.com (25.163.236.22) X-Microsoft-Exchange-Diagnostics: 1;CY1PR11MB0684;2:0xManIBFPfzeHdlRnugSYrodogUJQ/iwtUZLqVwCVazI+oWnc+arM3NvLD6e9dabs8+d6FtVo8UIhJRhFoKOJpOr+sAyBj0B+Gb5BpRQsJK9neSs6xe4orepss4K+sO+kR8xDWc/i7QgQ3WFFqf7wA==;3:qG5cAcN1OxSSWrfHHdeeX6Gs4SQo9J9Et600Xp2l6pikfRDILbOSXNg/OmJxvKJuaIdlT0e1C3DDo0b1aMkGc0RaN8pn/nMyUj6cEFr0UEhcTzigDtnga3XqS/bctiOg;25:cj1DEzFqcseawJS43ZwcqevTmg20Rkmy0gs5mxOATc6eM3GzJEGcx4OfUqBQ4WnGdHIUxPtNDvojE6w1h8WF6EriCFRWplcuTNO/abt753syaCMpKUTbymE57FfAj04n0S+NJFgns4MkaH8COKTxbuvydaejj5LGYQKcjQmEV2XA8OsttOqfnLf/Mpv6JUja+1j0uIfk5+YFwSSREIiE96vNae1my9F/506N1aKwp4dlfPnaR2WNAkqHvciog+IehTTBC6+MvFAlQcaP3wueQNqI8y2YgKqk2PD8SijKncnT0pdXONJ5JxtofNUODQo2KNZJhosWICbLLNA0QpUkHQ== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:CY1PR11MB0684; X-MS-Office365-Filtering-Correlation-Id: 9ca1da40-c022-4066-c6e5-08d34174a971 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001);SRVR:CY1PR11MB0684;BCL:0;PCL:0;RULEID:;SRVR:CY1PR11MB0684; X-Microsoft-Exchange-Diagnostics: 1;CY1PR11MB0684;4:MeA7XqnfCdJXc/LZyYBcf2vFDdNU9K/RvcVz/3iHLkUyqq5AVEKheU8meDTRMdf5jHqXc/xnPkDr8zK9DLCWYEdUcSv1YsnKCiT8GnswgzqxaubC1vJDnjiYe5lpv2bwEAYrcJQxaUttyGxjhKHpoOOOfjD1AM5zRt/A37dZRvhG/DCUkNd3RblT+hMMvwsHViz/xrjsbSDI65b0sx8LIloanO9SP6o9+Yk9HrxrXAm+OH3IjX1bw0LNJXfrZH0zUq6ZYPxh1HyeyZ7FU9b4YrWRqy9G9FUCY1/lzeanSzflyBVke0YM+93LP9kzbJ7lF//87QtLjUm3IkyjhU33OqXpqFoXDAjq8HJ1z7zNNIn2DCuEuohHK1tUgy6tDUE6 X-Forefront-PRVS: 086831DFB4 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10009020)(4630300001)(6009001)(479174004)(24454002)(377454003)(2950100001)(15975445007)(2906002)(77096005)(107886002)(87266999)(50986999)(54356999)(3846002)(93886004)(76176999)(59896002)(5004730100002)(5001960100003)(81156008)(50466002)(586003)(80316001)(92566002)(36756003)(83506001)(87976001)(42186005)(40100003)(33656002)(1096002)(122386002)(189998001)(86362001)(23746002)(64126003)(5008740100001)(2870700001)(19580395003)(4001350100001)(5001770100001)(6116002)(66066001)(85282002)(18886065003);DIR:OUT;SFP:1101;SCL:1;SRVR:CY1PR11MB0684;H:decina.local;FPR:;SPF:None;MLV:sfv;LANG:en; X-Microsoft-Exchange-Diagnostics: =?Windows-1252?Q?1;CY1PR11MB0684;23:WeoW6RFNarcKwPUOULmk9nNqbH0vQNvt8xe+p?= =?Windows-1252?Q?iwT5NKNy6eKBdoI40TqtFMO6AUK3vVpkabegeR+sfSkQ4UP0a/P2hJ0H?= =?Windows-1252?Q?tCWuvnoe78WSSX/LCsKGRQ8ZVsFS+Nk4fib5xR5z6l0YYfi4ZJT+hx/T?= =?Windows-1252?Q?WoSY3hfOm330EQViXgx/GNznEBcvMfQxZRykplgNSw4FZgN5AxZS208w?= =?Windows-1252?Q?MI/pSvzYCNPV7d3GWEEZsUtQOnpnQbzY+FogGt7exe8w7gunn1atHEFi?= =?Windows-1252?Q?hT19dh2mvNVUTXZ0GAwAtRgtuZmldovxNe5kN8vqIrQukSfFtHieZdEi?= =?Windows-1252?Q?QO7t77VCm1WWjiIoyaoOSGbIE0BqivUKNagxHg+FNP0k2z2vUukNwI3b?= =?Windows-1252?Q?7NReKUYT9eny2O6YZlE6nCYmVyLJ+JmE+JJAO0fQD1ER9hBNw+Iaatdy?= =?Windows-1252?Q?uUqwgpGItI3v/5YFUzbEtoHGg5DzMzTydr5dCIot5Lrt++63Ro99G4RQ?= =?Windows-1252?Q?phy90IaaW5egsCZ5+BvYiIN3NwNVyeZ8FUm/vDy6oRY/J/dOjB1WipTo?= =?Windows-1252?Q?A84ECAQr1lICzTkDpy3qbltSaUCC5cVes3tKIGXmNE750WnXK4LF05lQ?= =?Windows-1252?Q?Yjl4d34xF4HyJqExbph2xjh2UXs0u8KhY9IiMXDoC3JQLGA7fqd17OY0?= =?Windows-1252?Q?5/Irdi8XSAYT2Mb7r1PZPo19esS4YDQ4h/8nmladPyySnkorgI3EdFHv?= =?Windows-1252?Q?9SfY1Us7iPyc5TWNfGMXHoN4HpOCbseqP1UAlv/MAC+eGCIly0FBDaHt?= =?Windows-1252?Q?BgFu3/CcqdHjQ75aZ7iyGXDRKPpKwIA/s2tSFjOKOCczpGrLCNjs7adQ?= =?Windows-1252?Q?0lu1L6Gagl2LKK5ggtdjvS5TI2wuwuOLXzvFJ+rU+VmVWe+ZkX7dj0yD?= =?Windows-1252?Q?Bi4BCvpHvV5gijcZE8cLEGmcZ4lprr1KlMQTYPkItqKXhdGBrvy+ZAx7?= =?Windows-1252?Q?Xb8D7svDzEIWPBIKNUQDf2i9hW7VGsoq147wt5FMUo2cJrE7RCPAVK6Y?= =?Windows-1252?Q?O4ISs0CShmDIjc2RJojO1TxKmXIBxEAGU4HLoVfC5C4ah8X5cca4e2I8?= =?Windows-1252?Q?Slb549GgLyUHHubr66Mnbx42b5Hc2XwWhpshvEFv8Vl+xX/I2W1pXqMo?= =?Windows-1252?Q?L6hSsYCCRHwB7AN4Ywgy/0slesVPxEfb1jL/0SitQ91bac0ezDAZahgx?= =?Windows-1252?Q?K2qeNhKg1xlJtHzliftTjwh8ddbpDUSK2Dj0wjewB6AVrUismK7eirLd?= =?Windows-1252?Q?Ew+?= X-Microsoft-Exchange-Diagnostics: 1;CY1PR11MB0684;5:W4H9tf08sSASYgVu3U2JSLSv2y99Pr178ga/Fn7J+nAVxLtgyzA85NSzh5pXbdtMLQvepsPpZ6NwgqD0Eii4JHWFT+202BUEkantqmzZRiVX9CUDB0NkRU8BksZkgab9OeHKqGMaVnsFkakUGKw6Aw==;24:m0l7BqY9OYzNswo63b62tQKdyJq8y/VUBpiZzShFbF7kYH5QIpbNZCova4POxKzjhFUyP4XfrlEKEi39gzFKVI39AlJrTf1AHRrCw32pZaQ= SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: bluetreble.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Mar 2016 01:56:10.0127 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY1PR11MB0684 X-Pg-Spam-Score: -1.8 (-) List-Archive: List-Help: List-ID: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: X-Mailing-List: pgsql-hackers Precedence: bulk Sender: pgsql-hackers-owner@postgresql.org On 2/29/16 7:27 PM, Abhijit Menon-Sen wrote: > 1. This adds the 'x'/DEPENDENCY_AUTO_EXTENSION type. > 2. This adds an 'ALTER FUNCTION … ADD DEPENDENT FUNCTION …' command. > > I split up the two because we may want the new dependency type without > going to the trouble of adding a new command. Maybe extension authors > should just insert an 'x' row into pg_depend directly? I don't see why this would be limited to just functions. I could certainly see an extension that creates ease-of-use views that depend on the extension, or tables that have triggers that .... Am I missing something? > I was inclined to implement it using ALTER FUNCTION, but AlterFunction() > is focused on altering the pg_proc entry for a function, so the new code > didn't fit. Ultimately, ExecAlterExtensionContentsStmt() was the closest > match, so that's where I did it. Maybe the better way to handle this would be through ALTER EXTENSION? Given the audience for this, I think it'd probably be OK to just provide a function that does this, instead of DDL. I'd be concerned about asking users to do raw inserts though. pg_depends isn't the easiest thing to grok so I suspect there'd be a lot of problems with that, resulting in more raw DML to try and fix things, resulting in pg_depend getting completely screwed up... -- Jim Nasby, Data Architect, Blue Treble Consulting, Austin TX Experts in Analytics, Data Architecture and PostgreSQL Data in Trouble? Get it in Treble! http://BlueTreble.com -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers