Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qc1jF-00Dd8Z-IA for pgsql-hackers@arkaria.postgresql.org; Fri, 01 Sep 2023 10:50:17 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.94.2) (envelope-from ) id 1qc1jE-00DnWY-4U for pgsql-hackers@arkaria.postgresql.org; Fri, 01 Sep 2023 10:50:15 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qc1jD-00DnW7-QT for pgsql-hackers@lists.postgresql.org; Fri, 01 Sep 2023 10:50:15 +0000 Received: from relay1-d.mail.gandi.net ([217.70.183.193]) by magus.postgresql.org with esmtps (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 (Exim 4.94.2) (envelope-from ) id 1qc1jA-002KFa-OK for pgsql-hackers@lists.postgresql.org; Fri, 01 Sep 2023 10:50:14 +0000 Received: by mail.gandi.net (Postfix) with ESMTPSA id 7DD73240007; Fri, 1 Sep 2023 10:50:09 +0000 (UTC) Message-ID: <7d44dade-ff31-5eef-80ac-78ed838066f6@postgresfriends.org> Date: Fri, 1 Sep 2023 12:50:08 +0200 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.13.0 Subject: Re: SQL:2011 application time Content-Language: en-US To: Peter Eisentraut , Paul Jungwirth Cc: Corey Huinker , PostgreSQL Hackers References: <5650d77a-1d73-fd8d-4410-8e97dbeff572@illuminatedcomputing.com> <21964319-46e5-3e47-217b-6ac4169bdf13@enterprisedb.com> <27361388-f5ab-ea36-ea35-41d68a90e60d@illuminatedcomputing.com> <152e4c2c-36b4-bdc0-1b62-e9f9e8b68adc@enterprisedb.com> <251B44D1-D3E0-47E4-AB9D-4A848EDB495E@yesql.se> <1c674adf-4114-e8d8-cec7-ac10e2f424c7@enterprisedb.com> <831f17ba-ff36-1380-a475-a7cd2c65a89c@enterprisedb.com> <6f010a6e-8e20-658b-dc05-dc9033a694da@eisentraut.org> From: Vik Fearing In-Reply-To: <6f010a6e-8e20-658b-dc05-dc9033a694da@eisentraut.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-GND-Sasl: vik@postgresfriends.org List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Archived-At: Precedence: bulk On 9/1/23 11:30, Peter Eisentraut wrote: > 1) If I write UNIQUE (a, b, c WITHOUT OVERLAPS), does the WITHOUT > OVERLAPS clause attach to the last column, or to the whole column list? > In the SQL standard, you can only have one period and it has to be > listed last, so this question does not arise.  But here we are building > a more general facility to then build the SQL facility on top of.  So I > think it doesn't make sense that the range column must be last or that > there can only be one.  Also, your implementation requires at least one > non-overlaps column, which also seems like a confusing restriction. > > I think the WITHOUT OVERLAPS clause should be per-column, so that > something like UNIQUE (a WITHOUT OVERLAPS, b, c WITHOUT OVERLAPS) would > be possible.  Then the WITHOUT OVERLAPS clause would directly correspond > to the choice between equality or overlaps operator per column. > > An alternative interpretation would be that WITHOUT OVERLAPS applies to > the whole column list, and we would take it to mean, for any range > column, use the overlaps operator, for any non-range column, use the > equals operator.  But I think this would be confusing and would prevent > the case of using the equality operator for some ranges and the overlaps > operator for some other ranges in the same key. I prefer the first option. That is: WITHOUT OVERLAPS applies only to the column or expression it is attached to, and need not be last in line. -- Vik Fearing