mirror of
https://github.com/emilybache/GildedRose-Refactoring-Kata.git
synced 2026-10-14 18:15:41 +00:00
Add PL/pg SQL (without test support)
This commit is contained in:
1 parent
de18a0a661
commit
191926ce68
4 files changed
+117
No files matched your search
@@ -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;
|
||||
$$
|
||||
Reference in new issue
Block a user