TGViewer
Cross Join - канал о разработке Cross Join - канал о разработке @crossjoin · 3.82K subscribers
Post #287 3.11K
По мотивам поста про хранение купонов с временем устаревания и ограничение unique . Оказывается в Postgres 17 планируется нововведение: к ключевым словам UNIQUE и PRIMARY KEY можно будет добавить WITHOUT OVERLAPS. И тогда, в случае, когда в ключ входит диапазон чего-то, то уникальность будет сравниваться не тупым сравнением, а оператором &&

Вот комит: https://git.postgresql.org/gitweb/?p=postgresql.git;a=commit;h=46a0cd4cefb4d9b462d8cc4df5e7ecdd190bea92

вот пример из него:


CREATE TABLE temporal_rng (
id integer,
valid_at daterange,
CONSTRAINT temporal_rng_pk PRIMARY KEY (id, valid_at WITHOUT OVERLAPS)
);


INSERT INTO temporal_rng VALUES
(1, '[2000-01-01,2001-01-01)');

INSERT INTO temporal_rng VALUES
(1, '[2001-01-01,2002-01-01)');

INSERT INTO temporal_rng VALUES
(2, '[2000-01-01,2001-01-01)');

-- запрос не пройдёт, так как перекается диапазон дат с первой строкой (для одного и того же id)
INSERT INTO temporal_rng VALUES
(1, '[2000-06-01,2001-01-01)');



Так что скоро это будет возможно без мудрёных хаков
Telegram Cross Join - канал о разработке Узнал сегодня небольшой хак из мира Postgres. Например, у вас есть таблица с купонами, и у купонов есть некая дата устаревания valid_until. Допустим, вам надо обеспечить такой констрейнт, чтобы у одного человека не было одновременно больше одного неустаревшего…
  • 🤝 13
  • 👍 4
More from @crossjoin
  1. Sep 29, 2026😱 Отправили свое резюме на 129 вакансий на хх, а в ответ тишина .. Думаете, что дело в ры…
  2. Sep 28, 2026Слышал недавно в каком-то подкасте мысль, что Haskell плохо подходит для вайбкодинга прост…
  3. Sep 26, 2026Антон Жиянов написал мини-книгу по Go-concurrency. Это что-то вроде плотного конспекта с и…
  4. Sep 22, 2026photo post
  5. Sep 14, 2026Поможем Руслану собрать фидбек. Проект некоммерческий 👆
  6. Sep 14, 2026AGBX (Agent Box) — небольшой open-source CLI для запуска Claude Code и Codex в изолированн…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →