Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1on04q-0004c2-Nz for pgsql-hackers@arkaria.postgresql.org; Mon, 24 Oct 2022 16:13:24 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1on04p-0002qh-6F for pgsql-hackers@arkaria.postgresql.org; Mon, 24 Oct 2022 16:13:23 +0000 Received: from makus.postgresql.org ([2001:4800:3e1:1::229]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1on04o-0002qY-T0 for pgsql-hackers@lists.postgresql.org; Mon, 24 Oct 2022 16:13:22 +0000 Received: from out5-smtp.messagingengine.com ([66.111.4.29]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1on04l-0003gB-Tz for pgsql-hackers@lists.postgresql.org; Mon, 24 Oct 2022 16:13:21 +0000 Received: from compute2.internal (compute2.nyi.internal [10.202.2.46]) by mailout.nyi.internal (Postfix) with ESMTP id 40CCC5C0046; Mon, 24 Oct 2022 12:13:17 -0400 (EDT) Received: from mailfrontend1 ([10.202.2.162]) by compute2.internal (MEProxy); Mon, 24 Oct 2022 12:13:17 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:date:date:feedback-id:feedback-id:from:from :in-reply-to:in-reply-to:message-id:mime-version:reply-to:sender :subject:subject:to:to:x-me-proxy:x-me-proxy:x-me-sender :x-me-sender:x-sasl-enc; s=fm3; t=1666627997; x=1666714397; bh=3 Fc9TtWfEyx3gZD4wakHo72LsQizG1cd1UqFDephx54=; b=Sn9GABg6Hrvou2gda qaA7GEaoGKU3I2F1lUT/i+R+D2uwpNEWbO7DY1KNmpZYz2ohuidez3aPv4Vx8UNL W2CrTPX2lJr80EthgPTkNVMaQoV3NupUkrqdg3DIdovkmMaU6bIF3BUWvxvrZmGT TmwNTs45QsmK/QbZRRSHy76RHk1qo3F+7HP6x7+cEIcVdH/y8K+gGDMch1l2RvKn 2Gu5HwIXwR0HdpLsJHNUUbCP2B85t7CSvHbbErAHTDb0Z2BJvDklvab32NpulRKN 0AHg8Cf9dvV3Ql3nb2JX2GYZyPArxMC2OYflGuswK4CQ9HMRQa+sGSZXmoLrIvQh 1Ec+A== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvfedrgedtgedgleefucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnhhtshculddquddttddmne cujfgurhepfffhvfevuffkgggtugfgjgesthekredttddtjeenucfhrhhomheptehlvhgr rhhoucfjvghrrhgvrhgruceorghlvhhhvghrrhgvsegrlhhvhhdrnhhoqdhiphdrohhrgh eqnecuggftrfgrthhtvghrnhepvdektdffudfftdffffehfffhjeejhffgieeuueekjeek fffgudffhfduffffueevnecuffhomhgrihhnpegvnhhtvghrphhrihhsvggusgdrtghomh enucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegrlhhv hhgvrhhrvgesrghlvhhhrdhnohdqihhprdhorhhg X-ME-Proxy: Feedback-ID: ia2694551:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 24 Oct 2022 12:13:16 -0400 (EDT) Received: by perhan.alvh.no-ip.org (Postfix, from userid 1000) id 791BC85; Mon, 24 Oct 2022 18:13:17 +0200 (CEST) Date: Mon, 24 Oct 2022 18:13:17 +0200 From: Alvaro Herrera To: "Finnerty, Jim" Cc: Japin Li , Justin Pryzby , "pgsql-hackers@lists.postgresql.org" Subject: Re: parse partition strategy string in gram.y Message-ID: <20221024161317.3ywktkv2ghqpp4as@alvherre.pgsql> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <03B39DA5-53BB-4E8D-82D9-C5C601DB8F6E@amazon.com> List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 2022-Oct-24, Finnerty, Jim wrote: > Is there a reason why HASH partitioning does not currently support > range partition bounds, where the values in the partition bounds would > refer to the hashed value? Just lack of an implementation, I suppose. > The advantage of hash partition bounds is that they are not > domain-specific, as they are for ordinary RANGE partitions, but they > are more flexible than MODULUS/REMAINDER partition bounds. Well, modulus/remainder is what we have. If you have ideas for a different implementation, let's hear them. I suppose we would have to know about both the user interface and how it would internally, from two perspectives: how does tuple routing work (ie. how to match a tuple's values to a set of bound values), and how does partition pruning work (ie. how do partition bounds match a query's restriction clauses). -- Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/