R
Size: a a a
R
S
SELECT corporate_party.start_at - corporate_party.end_at as corpосновная сложность для меня в самом конце — вот тут
FROM "user_profile"
INNER JOIN "user_profile_corporate_party"
ON ("user_profile"."id" = "user_profile_corporate_party"."user_profile_id")
INNER JOIN "corporate_party" ON ("user_profile_corporate_party"."corporate_party_id" = "corporate_party"."id")
WHERE (("user_profile.id" = $1) AND ("corporate_party.start_at" >= $2) AND ("corporate_party.end_at" <= $3) AND
("corp" NOT IN ((SELECT end_at - start_at
FROM "vacation"
WHERE (("end_at" <= $4) AND ("start_at" >= $5) AND ("user_profile_id" = $6))))))
("corp" NOT IN ((SELECT end_at - start_at
FROM "vacation"
WHERE (("end_at" <= $4) AND ("start_at" >= $5) AND ("user_profile_id" = $6))))))
corp — это интервал, и подзапрос — тоже возвращает набор интервалов AS
R
AS
YS
("corporate_partystart_at" >= $2) как бы намекает, что нет...AS
YS
R
AS
YS
YS
AS
R
AS
YS
AS
YS
MATERIALIZED почти наверняка не было бы.YS
R