Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1XohOX-0001Nf-0m for pgsql-hackers@arkaria.postgresql.org; Wed, 12 Nov 2014 23:32:13 +0000 Received: from localhost ([127.0.0.1] helo=postgresql.org) by malur.postgresql.org with smtp (Exim 4.80) (envelope-from ) id 1XohOW-0000Ai-DJ for pgsql-hackers@arkaria.postgresql.org; Wed, 12 Nov 2014 23:32:12 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1XohOU-00007u-Cl for pgsql-hackers@postgresql.org; Wed, 12 Nov 2014 23:32:10 +0000 Received: from mail-by2on0696.outbound.protection.outlook.com ([2a01:111:f400:fc0c::696] helo=na01-by2-obe.outbound.protection.outlook.com) by magus.postgresql.org with esmtp (Exim 4.80) (envelope-from ) id 1XohOP-0002Pv-3G for pgsql-hackers@postgresql.org; Wed, 12 Nov 2014 23:32:09 +0000 Received: from decina.attlocal.net (2602:306:ce8b:3460:38f1:e6ec:d5ff:1bd3) by BN3PR11MB0179.namprd11.prod.outlook.com (25.160.185.17) with Microsoft SMTP Server (TLS) id 15.1.16.15; Wed, 12 Nov 2014 23:31:55 +0000 Message-ID: <5463EDE4.20902@BlueTreble.com> Date: Wed, 12 Nov 2014 17:31:48 -0600 From: Jim Nasby User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.9; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Robert Haas , Tom Lane CC: Amit Langote , Andres Freund , Alvaro Herrera , Bruce Momjian , Pg Hackers Subject: Re: On partitioning References: <20140829155607.GF7705@eldon.alvh.no-ip.org> <20141013192755.GC21267@momjian.us> <20141013193838.GZ7043@eldon.alvh.no-ip.org> <20141013194317.GF21267@momjian.us> <010801cff1ba$f3f16b90$dbd442b0$@lab.ntt.co.jp> <20141027092933.GU1791@alvin.alvh.no-ip.org> <20141027114421.GA31497@awork2.anarazel.de> <01b001cff270$d470b990$7d522cb0$@lab.ntt.co.jp> <20141028100629.GE2639@awork2.anarazel.de> <053501cffa30$ecdf8700$c69e9500$@lab.ntt.co.jp> <066501cffd52$3d919390$b8b4bab0$@lab.ntt.co.jp> <30799.1415830015@sss.pgh.pa.us> In-Reply-To: Content-Type: text/plain; charset="UTF-8"; format=flowed Content-Transfer-Encoding: 7bit X-Originating-IP: [2602:306:ce8b:3460:38f1:e6ec:d5ff:1bd3] X-ClientProxiedBy: BLUPR02CA024.namprd02.prod.outlook.com (25.160.23.142) To BN3PR11MB0179.namprd11.prod.outlook.com (25.160.185.17) X-Microsoft-Antispam: UriScan:; X-Microsoft-Antispam: BCL:0;PCL:0;RULEID:;SRVR:BN3PR11MB0179; X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:;SRVR:BN3PR11MB0179; X-Forefront-PRVS: 03932714EB X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(199003)(24454002)(51704005)(189002)(377454003)(479174003)(65956001)(20776003)(97736003)(42186005)(65806001)(95666004)(47776003)(64706001)(23676002)(99396003)(120916001)(92566001)(92726001)(64126003)(31966008)(86362001)(122386002)(33656002)(36756003)(15202345003)(101416001)(102836001)(50466002)(93886004)(4396001)(69596002)(19580395003)(53416004)(87976001)(21056001)(83506001)(107046002)(40100003)(105586002)(106356001)(76176999)(65816999)(77156002)(77096003)(62966003)(81156004)(54356999)(50986999)(46102003)(15975445006)(3826002)(85282002)(336755003)(18886065003); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR11MB0179; H:decina.attlocal.net; FPR:; MLV:nov; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: bluetreble.com does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jim.Nasby@bluetreble.com; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:;SRVR:BN3PR11MB0179; X-OriginatorOrg: bluetreble.com X-Pg-Spam-Score: -1.9 (-) 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 11/12/14, 5:27 PM, Robert Haas wrote: >>> Maybe as anyarray, but I think pg_node_tree >>> >>might even be better. That can also represent data of some arbitrary >>> >>type, but it doesn't enforce that everything is uniform. >> > >> >Of course, the more general you make it, the more likely that it'll be >> >impossible to optimize well. > The point for me is just that range and list partitioning probably > need different structure, and hash partitioning, if we want to support > that, needs something else again. Range partitioning needs an array > of partition boundaries and an array of child OIDs. List partitioning > needs an array of specific values and a child table OID for each. > Hash partitioning needs something probably quite different. We might > be able to do it as a pair of arrays - one of type anyarray and one of > type OID - and meet all needs that way. Another issue is I don't know that we could support multi-key partitions with something like an anyarray. Perhaps that's OK as a first pass, but I expect it'll be one of the next things folks ask for. -- Jim Nasby, Data Architect, Blue Treble Consulting 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