Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1edl0G-0000bY-M6 for pgsql-hackers@arkaria.postgresql.org; Mon, 22 Jan 2018 22:55:48 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1edl0G-0006oR-90 for pgsql-hackers@arkaria.postgresql.org; Mon, 22 Jan 2018 22:55:48 +0000 Received: from makus.postgresql.org ([2001:4800:1501:1::229]) by malur.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.84_2) (envelope-from ) id 1edl0F-0006oF-VK for pgsql-hackers@lists.postgresql.org; Mon, 22 Jan 2018 22:55:48 +0000 Received: from smtprelay0078.b.hostedemail.com ([64.98.42.78] helo=smtprelay.b.hostedemail.com) by makus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_CBC_SHA384:256) (Exim 4.89) (envelope-from ) id 1edl0D-0003kE-5k for pgsql-hackers@postgresql.org; Mon, 22 Jan 2018 22:55:46 +0000 Received: from filter.hostedemail.com (10.5.19.248.rfc1918.com [10.5.19.248]) by smtprelay05.b.hostedemail.com (Postfix) with ESMTP id 8B1F932B00E for ; Mon, 22 Jan 2018 22:55:43 +0000 (UTC) X-Session-Marker: 616C76686572726540616C76682E6E6F2D69702E6F7267 X-Spam-Summary: 50,0,0,,d41d8cd98f00b204,alvherre@alvh.no-ip.org,:,RULES_HIT:41:355:379:599:967:968:973:988:989:1260:1277:1311:1312:1313:1314:1345:1359:1381:1437:1515:1516:1518:1519:1534:1540:1593:1594:1595:1596:1711:1730:1747:1777:1792:2393:2525:2560:2563:2682:2685:2828:2859:2895:2911:2933:2937:2939:2942:2945:2947:2951:2954:3022:3138:3139:3140:3141:3142:3352:3865:3866:3867:3868:3870:3871:3872:3873:3874:3934:3936:3938:3941:3944:3947:3950:3953:3956:3959:4425:4605:5007:6261:9025:9121:10004:10394:10400:10848:11658:11914:12050:12296:13069:13095:13161:13229:13311:13357:13439:13894:13895:14764:21080:21433:21627:30054:30070,0,RBL:none,CacheIP:none,Bayesian:0.5,0.5,0.5,Netcheck:none,DomainCache:0,MSF:not bulk,SPF:,MSBL:0,DNSBL:none,Custom_rules:0:0:0,LFtime:2,LUA_SUMMARY:none X-HE-Tag: ducks20_6c167c57e3352 X-Filterd-Recvd-Size: 1783 Received: from alvin.alvh.no-ip.org (unknown [179.57.113.18]) (Authenticated sender: alvherre@alvh.no-ip.org) by omf06.b.hostedemail.com (Postfix) with ESMTPA for ; Mon, 22 Jan 2018 22:55:42 +0000 (UTC) Received: by alvin.alvh.no-ip.org (Postfix, from userid 1000) id 43D366A6; Mon, 22 Jan 2018 19:55:40 -0300 (-03) Date: Mon, 22 Jan 2018 19:55:40 -0300 From: Alvaro Herrera To: Pg Hackers Subject: Re: unique indexes on partitioned tables Message-ID: <20180122225540.javvbv6f53obw74n@alvherre.pgsql> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20180111210412.5k4xt3wkztazd67u@alvherre.pgsql> User-Agent: NeoMutt/20170306-137-4415bd-dirty (1.8.0) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk Version 4 of this patch, rebased on today's master. The main change is in dependency handling for the constraints: you now can't drop a constraint from a partition, if it's attached to a constraint in the parent (you can't drop indexes from under the constraints either, but that was true in previous versions too). Also some error message rewording. I added a bunch of additional tests. I implemented the dependencies using pg_depend entries. However, pg_constraint has the notion of "coninhcount" and "conislocal", so I update those values for the partition's pg_constraint row, because the error messages are nicer that way. We could remove those lines from the patch and the mechanics should be pretty much identical. I'll review the doc additions, per Simon upthread. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services