https://thoughtbot.com/blog/recurring-events-and-postgresql
Сделать рекурсивную (!) вьюху (!!) с джойном ON TRUE (!!!) внутри для работы с датами (!!!!)
Не, ну ладно, предположим, что ваш язык настолько плох, что вы не имеете инструмента для работаты с датами.
Пусть при этом вас не посещает идея сесть и сделать для этого gem (драгоценный камень, сцк) и прославиться.
Но что, сука, вот это такое? Зачем?
WITH RECURSIVE t(n) AS (
VALUES (1)
UNION ALL
SELECT n+1 FROM t WHERE n < 1000
) SELECT * FROM t
Это пишется в состоянии измененного сознания? Кто-то понимает что здесь происходит?
Давайте я вам расскажу что это. Это аналог вот такого запроса:
SELECT * FROM generate_series(1,1000) n;
generate_series - встроенная функция со времен, когда Стоунбрейкер в Принстоне учился.
И черт бы сним, что это минимум в 3 раза быстрее. Но кто хочет поддерживать этот код?
.... FROM t INNER JOIN recurring_events ON TRUE
Серьезно?! ON TRUE?!
Обычно, если нужен JOIN ON TRUE, то 9 из 10 что вы делаете что-то не так.
Автор этот статьи не джун. Это чувак со стажем работы 6 лет, где thoughtbot - пятая его компания. Бразилия, Швеция, UK.
Давайте я вам напомню как DHH (автор ROR) рассказывал, что ему не жалко лишние $500k в год, лишь бы в его конторе писали на руби: https://t.me/nosingularity/215
DHH, пес ты сутулый, из-за тебя мы сейчас имеем вот такое.
Если для получения дат вам требуется ORM и рекурсивные вьюхи, вы занимаетесь не своим делом.