Add PL/pg SQL (without test support)

This commit is contained in:
GradedJestRisk committed 2019-12-18 20:29:45 +01:00
1 parent de18a0a661
commit 191926ce68
4 files changed
+117

No files matched your search

+80
View File
@@ -0,0 +1,80 @@
CREATE OR REPLACE PROCEDURE public.update_quality()
LANGUAGE plpgsql
AS $$
DECLARE
rec_item RECORD;
cur_items CURSOR FOR SELECT * FROM item;
BEGIN
OPEN cur_items;
LOOP
FETCH cur_items INTO rec_item;
EXIT WHEN NOT FOUND;
IF (rec_item.name <> 'Aged Brie' AND rec_item.name <> 'Backstage passes to a TAFKAL80ETC concert') THEN
IF (rec_item.quality > 0) THEN
IF (rec_item.name <> 'Sulfuras, Hand of Ragnaros') THEN
rec_item.quality = rec_item.quality - 1;
END IF;
END IF;
ELSE
IF (rec_item.quality < 50) THEN
rec_item.quality = rec_item.quality + 1;
IF (rec_item.name = 'Backstage passes to a TAFKAL80ETC concert') THEN
IF (rec_item.sellIn < 11) THEN
IF (rec_item.quality < 50) THEN
rec_item.quality = rec_item.quality + 1;
END IF;
END IF;
IF (rec_item.sellIn < 6) THEN
IF (rec_item.quality < 50) THEN
rec_item.quality = rec_item.quality + 1;
END IF;
END IF;
END IF;
END IF;
END IF;
IF (rec_item.name <> 'Sulfuras, Hand of Ragnaros') THEN
rec_item.sellIn = rec_item.sellIn - 1;
END IF;
IF (rec_item.sellIn < 0) THEN
IF (rec_item.name <> 'Aged Brie') THEN
IF (rec_item.name <> 'Backstage passes to a TAFKAL80ETC concert') THEN
IF (rec_item.quality > 0) THEN
IF (rec_item.name <> 'Sulfuras, Hand of Ragnaros') THEN
rec_item.quality = rec_item.quality - 1;
END IF;
END IF;
ELSE
rec_item.quality = rec_item.quality - rec_item.quality;
END IF;
ELSE
IF (rec_item.quality < 50) THEN
rec_item.quality = rec_item.quality + 1;
END IF;
END IF;
END IF;
UPDATE item
SET
quality = rec_item.quality,
sellIn = rec_item.sellIn
WHERE
name = rec_item.name;
END LOOP;
CLOSE cur_items;
COMMIT;
END;
$$