Files
database/migrations/archive/000.019.sql
T
Rikard BartholfandGitHub ddcbd0afb0 Archive old migrations (#426)
* Archive old migrations

* Fix invalid placement of migrations
2024-10-17 11:19:12 +02:00

46 lines
2.0 KiB
SQL

-- P5-358
DROP MATERIALIZED VIEW IF EXISTS v_esales_category_count;
CREATE MATERIALIZED VIEW v_esales_category_count
AS
SELECT id, locale_id, product_id, groupid, wallpapertype_id,
CASE
WHEN blacklist_id IS NULL AND visible = 1 AND browsable = 1 THEN true
ELSE false
END AS is_visible
FROM (
SELECT p.id,
locales.id AS locale_id,
pc.product_id,
groupid,
CASE groupid
WHEN 2 THEN NULL
ELSE wallpapertype_id
END AS wallpapertype_id,
(
SELECT id
FROM product_blacklist
WHERE product_id = pc.product_id
AND language_id = SUBSTR(locales.value, 1, 2)
AND territory_id = SUBSTR(locales.value, 4)
AND (group_id = groupid OR group_id IS NULL)
) blacklist_id,
visible,
browsable
FROM categories p
JOIN categories c ON c.lft >= p.lft AND c.rgt <= p.rgt
JOIN product_category pc ON c.id = pc.category_id
JOIN (
SELECT productid,
groupid
FROM "product-printproducts"
) pp ON pc.product_id = pp.productid
JOIN (SELECT productid, visible, browsable FROM "product-products") prod ON pc.product_id = prod.productid
LEFT JOIN product_wallpapertypes pw ON pc.product_id = pw.product_id,
locales
) main
GROUP BY id, locale_id, product_id, groupid, wallpapertype_id, visible, browsable, blacklist_id;
-- DROP INDEX public.v_esales_category_count_id_idx;
CREATE UNIQUE INDEX v_esales_category_count_id_idx
ON v_esales_category_count (id, locale_id, product_id, groupid, wallpapertype_id);