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 1nA6MI-00026J-Bt for pgsql-hackers@arkaria.postgresql.org; Wed, 19 Jan 2022 08:30:22 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1nA6MH-00041y-7D for pgsql-hackers@arkaria.postgresql.org; Wed, 19 Jan 2022 08:30:21 +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 1nA6MG-0003ys-Rz for pgsql-hackers@lists.postgresql.org; Wed, 19 Jan 2022 08:30:20 +0000 Received: from wout4-smtp.messagingengine.com ([64.147.123.20]) by makus.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1nA6MD-0002pp-JQ for pgsql-hackers@postgresql.org; Wed, 19 Jan 2022 08:30:19 +0000 Received: from compute5.internal (compute5.nyi.internal [10.202.2.45]) by mailout.west.internal (Postfix) with ESMTP id 5F0C43202057 for ; Wed, 19 Jan 2022 03:30:15 -0500 (EST) Received: from mailfrontend2 ([10.202.2.163]) by compute5.internal (MEProxy); Wed, 19 Jan 2022 03:30:15 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=Ob6iQ+ JGTz9wtqoHZuPEqSBIJgRcjZMtuO9Rf3HCUwc=; b=YJXQhmHlvj/8IPTmyAe3bD hmk3OcDfUTVXNvWRx1TxOUlvBdwUoIGOB3QB2b1NO3Y045UJGBEKM3HYHAYfqwAz ttcgtffJv1cqyHHXgxvDdUmYX6zRMq5vrMvcYIkXoS4SiG6ca6QNB5582G3TWPFw yTbZAGz7i7Ergs9CxsOfPaJ4egJIG1SFyHnCbJ6rzKcDBQaCrQVd5/lay7lHF1ye Rmaox+cR/UKgLYIhbEFUA04tD94df7YGhQbjLpOrW7W/9WzzmxSLnQBP+D5Cb4El CwLWzchhkyzvJxOT6FyDAfeePN0sBTROLMm9VtgIVoJkaJ6HIXS+YSeV9jOX7sfA == X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvvddrudeggdduudelucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefkffggfgfhuffvtgfgsehtjeertd dtfeejnecuhfhrohhmpefrvghtvghrucfgihhsvghnthhrrghuthcuoehpvghtvghrrdgv ihhsvghnthhrrghuthesvghnthgvrhhprhhishgvuggsrdgtohhmqeenucggtffrrghtth gvrhhnpeegfeevtdevffffffetleduhefghfejiedtvdehleeghfelgfehveektdduteff teenucffohhmrghinhepphhoshhtghhrvghsqhhlrdhorhhgnecuvehluhhsthgvrhfuih iivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepphgvthgvrhdrvghishgvnhhtrhgr uhhtsegvnhhtvghrphhrihhsvggusgdrtghomh X-ME-Proxy: Received: by mail.messagingengine.com (Postfix) with ESMTPA for ; Wed, 19 Jan 2022 03:30:13 -0500 (EST) Message-ID: <5fd19680-c0db-e9ea-eae6-971a369b4233@enterprisedb.com> Date: Wed, 19 Jan 2022 09:30:11 +0100 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:91.0) Gecko/20100101 Thunderbird/91.5.0 Content-Language: en-US From: Peter Eisentraut Subject: btree_gist into core? To: pgsql-hackers Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk To use exclusion constraints in practice, you often need to install the btree_gist extension, so that you can combine for example a range type check and normal scalar key columns into one constraint. The currently proposed "application time" feature [0] (also known more generally as temporal database) is in many ways essentially an SQL-syntax wrapper around typical use cases involving ranges, multiranges, and exclusion constraints. As such, it also needs btree_gist installed in most (all?) cases. I have argued over in that thread that it would be weird to have a built-in SQL feature that relied on an extension to work at all. So I think the way forward would be to move btree_gist into core, and I'm starting this new thread here to give this topic a bit more attention. So, first of all, would people agree with this course of action? I don't have a lot of experience with this module, so I don't know if there are any lingering concerns about whether it is mature enough as a built-in feature. If we were to do it, then additional discussions could be had about how to arrange the code. I suspect we wouldn't just want to copy the files as is under utils/adt/, since that's a lot of files. There are also of course questions about how to smoothly arrange upgrades from extensions to the built-in situations. Thoughts? [0]: https://www.postgresql.org/message-id/flat/CA+renyUApHgSZF9-nd-a0+OPGharLQLO=mDHcY4_qQ0+noCUVg@mail.gmail.com