Re: SQL:2011 application time
От | Vik Fearing |
---|---|
Тема | Re: SQL:2011 application time |
Дата | |
Msg-id | 7d44dade-ff31-5eef-80ac-78ed838066f6@postgresfriends.org обсуждение исходный текст |
Ответ на | Re: SQL:2011 application time (Peter Eisentraut <peter@eisentraut.org>) |
Ответы |
Re: SQL:2011 application time
|
Список | pgsql-hackers |
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
В списке pgsql-hackers по дате отправления: