WITH cte_pens_product AS MATERIALIZED
(
SELECT
products.id,
products."name",
products.pens_scheme_accum_stage_id AS scheme_id
FROM ourpension.contract_product_history history
INNER JOIN prod_line.pens_product products
ON products.id = history.pens_product_id
WHERE history.contract_id = 13549060
AND CURRENT_TIMESTAMP BETWEEN
history.begin_date
AND COALESCE(history.end_date, 'infinity')
LIMIT 1
)
SELECT
c.id,
cp.contract_id,
cp.initial_payment,
cp.current_payment,
cp.payment_frequency,
cp.contribution_ss,
cp.contribution_sr,
cp.contribution_account,
pp.id AS product_id
FROM ourpension.contract c
LEFT JOIN ourpension.contract_params cp
ON cp.contract_id = c.id
CROSS JOIN cte_pens_product pp
WHERE c.id = 13549060;