Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.84_2) (envelope-from ) id 1eYeA4-0007Aw-KF for pgsql-hackers@arkaria.postgresql.org; Mon, 08 Jan 2018 20:36: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 1eYeA3-0004fA-UR for pgsql-hackers@arkaria.postgresql.org; Mon, 08 Jan 2018 20:36:47 +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 1eYeA3-0004f0-Ky for pgsql-hackers@lists.postgresql.org; Mon, 08 Jan 2018 20:36:47 +0000 Received: from smtprelay0032.b.hostedemail.com ([64.98.42.32] 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 1eYeA0-0000qf-MQ for pgsql-hackers@postgresql.org; Mon, 08 Jan 2018 20:36:46 +0000 Received: from filter.hostedemail.com (10.5.19.248.rfc1918.com [10.5.19.248]) by smtprelay02.b.hostedemail.com (Postfix) with ESMTP id C1567D3817; Mon, 8 Jan 2018 20:36:42 +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:973:988:989:1260:1277:1311:1312:1313:1314:1345:1359:1437:1515:1516:1518:1519:1534:1541:1593:1594:1595:1596:1711:1730:1747:1777:1792:2393:2525:2560:2563:2682:2685:2828:2859:2933:2937:2939:2942:2945:2947:2951:2954:3022:3138:3139:3140:3141:3142:3353:3865:3866:3867:3868:3870:3871:3872:3873:3874:3934:3936:3938:3941:3944:3947:3950:3953:3956:3959:4250:4605:5007:6261:7903:8660:8694:9025:9121:10004:10394:10400:10450:10455:10848:11232:11658:11914:12663:13069:13148:13230:13311:13357:13439:13894:13895:14093:14097:14764:19904:19999:21080:21324:21433:21451:21627:30006:30012:30051:30054,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: year26_749feb40a0863 X-Filterd-Recvd-Size: 2893 Received: from alvin.alvh.no-ip.org (unknown [179.57.113.18]) (Authenticated sender: alvherre@alvh.no-ip.org) by omf11.b.hostedemail.com (Postfix) with ESMTPA; Mon, 8 Jan 2018 20:36:41 +0000 (UTC) Received: by alvin.alvh.no-ip.org (Postfix, from userid 1000) id EF7C5843; Mon, 8 Jan 2018 17:36:38 -0300 (-03) Date: Mon, 8 Jan 2018 17:36:38 -0300 From: Alvaro Herrera To: Jesper Pedersen Cc: Amit Langote , Robert Haas , David Rowley , Simon Riggs , Pg Hackers , Maksim Milyutin Subject: Re: [HACKERS] Proposal: Local indexes for partitioned table Message-ID: <20180108203638.6di3uo7r7vqfsvda@alvherre.pgsql> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <56399791-7fb6-0a80-8d24-3428fcdd96d3@redhat.com> User-Agent: NeoMutt/20170306-137-4415bd-dirty (1.8.0) List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk Jesper Pedersen wrote: > Maybe a warning for existing indexes on the same column(s), but with a > different type, should be emitted during ATTACH, e.g. > [detach one partition, replace index with a different one, attach > partition] > Of course, this could also fall under index maintenance and no warning > emitted. Docs have "Each partition is first checked to determine whether an > equivalent index already exists," so it is covered. Yeah, I'm of two minds about this also -- in the initial versions I had a code comment wondering exactly about having a hash index in a partition attached to a btree index on parent. As another example, having a documents table with two partitions (one "long term archival" and other "documents currently being messed with") you could have a text search index which is GIN in the former and GiST in the latter. There is a performance argument for doing it that way, so it's not merely academic. Anyway, while I think attaching an index that doesn't match the properties of the index on parent can be a useful feature, on the other hand it could be surprising (you end up losing an index because it was matched during attach that you didn't think was going to be matched). One idea would be to have a way to specify at ATTACH time what to do about indexes when they don't match exactly, but I think the user interface would be pretty messy: exactly how different do you want to allow the indexes to be? Is an index having one more column than the one in parent good enough? I think the answer to this is mostly a judgement call, and I'd rather not spend my time debating those. -- Álvaro Herrera https://www.2ndQuadrant.com/ PostgreSQL Development, 24x7 Support, Remote DBA, Training & Services