Files
trading_card_games/sql/31130_tri_TCG_MTG_Card.sql
2026-01-28 22:05:35 +00:00

496 lines
22 KiB
PL/PgSQL

CREATE OR REPLACE FUNCTION tcg.public.FN_before_insert_TCG_MTG_Card()
RETURNS TRIGGER AS $$
BEGIN
NEW.created_on = CURRENT_TIMESTAMP;
NEW.updated_last_on = CURRENT_TIMESTAMP;
IF NEW.change_set_id IS NULL THEN
RAISE EXCEPTION 'Change Set ID must be provided.';
END IF;
RETURN NEW;
END;
$$ LANGUAGE plpgsql
;
CREATE OR REPLACE FUNCTION tcg.public.FN_before_update_TCG_MTG_Card()
RETURNS TRIGGER AS $$
BEGIN
NEW.updated_last_on = CURRENT_TIMESTAMP;
IF OLD.change_set_id IS NOT DISTINCT FROM NEW.change_set_id THEN
RAISE EXCEPTION 'New Change Set ID must be provided.';
END IF;
INSERT INTO tcg.public.TCG_MTG_Card_Audit (
card_id
, name_field
, value_prev
, value_new
, change_set_id
)
-- Changed all_parts
SELECT NEW.card_id, 'all_parts', OLD.all_parts, NEW.all_parts, NEW.change_set_id
WHERE OLD.all_parts IS NOT DISTINCT FROM NEW.all_parts
UNION
-- Changed arena_id
SELECT NEW.card_id, 'arena_id', CAST(OLD.arena_id AS VARCHAR), CAST(NEW.arena_id AS VARCHAR), NEW.change_set_id
WHERE OLD.arena_id IS NOT DISTINCT FROM NEW.arena_id
UNION
-- Changed artist
SELECT NEW.card_id, 'artist', OLD.artist, NEW.artist, NEW.change_set_id
WHERE OLD.artist IS NOT DISTINCT FROM NEW.artist
UNION
-- Changed artist_ids
SELECT NEW.card_id, 'artist_ids', OLD.artist_ids, NEW.artist_ids, NEW.change_set_id
WHERE OLD.artist_ids IS NOT DISTINCT FROM NEW.artist_ids
UNION
-- Changed booster
SELECT NEW.card_id, 'booster', OLD.booster::TEXT, NEW.booster::TEXT, NEW.change_set_id
WHERE OLD.booster IS NOT DISTINCT FROM NEW.booster
UNION
-- Changed border_color
SELECT NEW.card_id, 'border_color', OLD.border_color, NEW.border_color, NEW.change_set_id
WHERE OLD.border_color IS NOT DISTINCT FROM NEW.border_color
UNION
-- Changed card_back_id
SELECT NEW.card_id, 'card_back_id', OLD.card_back_id, NEW.card_back_id, NEW.change_set_id
WHERE OLD.card_back_id IS NOT DISTINCT FROM NEW.card_back_id
UNION
-- Changed cmc
SELECT NEW.card_id, 'cmc', CAST(OLD.cmc AS VARCHAR), CAST(NEW.cmc AS VARCHAR), NEW.change_set_id
WHERE OLD.cmc IS NOT DISTINCT FROM NEW.cmc
UNION
-- Changed collector_number
SELECT NEW.card_id, 'collector_number', OLD.collector_number, NEW.collector_number, NEW.change_set_id
WHERE OLD.collector_number IS NOT DISTINCT FROM NEW.collector_number
UNION
-- Changed color_identity
SELECT NEW.card_id, 'color_identity', OLD.color_identity, NEW.color_identity, NEW.change_set_id
WHERE OLD.color_identity IS NOT DISTINCT FROM NEW.color_identity
UNION
-- Changed colors
SELECT NEW.card_id, 'colors', OLD.colors, NEW.colors, NEW.change_set_id
WHERE OLD.colors IS NOT DISTINCT FROM NEW.colors
UNION
-- Changed content_warning
SELECT NEW.card_id, 'content_warning', OLD.content_warning::TEXT, NEW.content_warning::TEXT, NEW.change_set_id
WHERE OLD.content_warning IS NOT DISTINCT FROM NEW.content_warning
UNION
-- Changed digital
SELECT NEW.card_id, 'digital', OLD.digital::TEXT, NEW.digital::TEXT, NEW.change_set_id
WHERE OLD.digital IS NOT DISTINCT FROM NEW.digital
UNION
-- Changed edhrec_rank
SELECT NEW.card_id, 'edhrec_rank', CAST(OLD.edhrec_rank AS VARCHAR), CAST(NEW.edhrec_rank AS VARCHAR), NEW.change_set_id
WHERE OLD.edhrec_rank IS NOT DISTINCT FROM NEW.edhrec_rank
UNION
-- Changed finishes
SELECT NEW.card_id, 'finishes', OLD.finishes, NEW.finishes, NEW.change_set_id
WHERE OLD.finishes IS NOT DISTINCT FROM NEW.finishes
UNION
-- Changed flavor_name
SELECT NEW.card_id, 'flavor_name', OLD.flavor_name, NEW.flavor_name, NEW.change_set_id
WHERE OLD.flavor_name IS NOT DISTINCT FROM NEW.flavor_name
UNION
-- Changed flavor_text
SELECT NEW.card_id, 'flavor_text', OLD.flavor_text, NEW.flavor_text, NEW.change_set_id
WHERE OLD.flavor_text IS NOT DISTINCT FROM NEW.flavor_text
UNION
-- Changed foil
SELECT NEW.card_id, 'foil', OLD.foil::TEXT, NEW.foil::TEXT, NEW.change_set_id
WHERE OLD.foil IS NOT DISTINCT FROM NEW.foil
UNION
-- Changed frame
SELECT NEW.card_id, 'frame', OLD.frame, NEW.frame, NEW.change_set_id
WHERE OLD.frame IS NOT DISTINCT FROM NEW.frame
UNION
-- Changed full_art
SELECT NEW.card_id, 'full_art', OLD.full_art::TEXT, NEW.full_art::TEXT, NEW.change_set_id
WHERE OLD.full_art IS NOT DISTINCT FROM NEW.full_art
UNION
-- Changed game_changer
SELECT NEW.card_id, 'game_changer', OLD.game_changer::TEXT, NEW.game_changer::TEXT, NEW.change_set_id
WHERE OLD.game_changer IS NOT DISTINCT FROM NEW.game_changer
UNION
-- Changed games
SELECT NEW.card_id, 'games', OLD.games, NEW.games, NEW.change_set_id
WHERE OLD.games IS NOT DISTINCT FROM NEW.games
UNION
-- Changed hand_modifier
SELECT NEW.card_id, 'hand_modifier', OLD.hand_modifier, NEW.hand_modifier, NEW.change_set_id
WHERE OLD.hand_modifier IS NOT DISTINCT FROM NEW.hand_modifier
UNION
-- Changed highres_image
SELECT NEW.card_id, 'highres_image', OLD.highres_image::TEXT, NEW.highres_image::TEXT, NEW.change_set_id
WHERE OLD.highres_image IS NOT DISTINCT FROM NEW.highres_image
UNION
-- Changed id
SELECT NEW.card_id, 'id', CAST(OLD.id AS VARCHAR), CAST(NEW.id AS VARCHAR), NEW.change_set_id
WHERE OLD.id IS NOT DISTINCT FROM NEW.id
UNION
-- Changed image_status
SELECT NEW.card_id, 'image_status', OLD.image_status, NEW.image_status, NEW.change_set_id
WHERE OLD.image_status IS NOT DISTINCT FROM NEW.image_status
UNION
-- Changed image_uri_art_crop
SELECT NEW.card_id, 'image_uri_art_crop', OLD.image_uri_art_crop, NEW.image_uri_art_crop, NEW.change_set_id
WHERE OLD.image_uri_art_crop IS NOT DISTINCT FROM NEW.image_uri_art_crop
UNION
-- Changed image_uri_border_crop
SELECT NEW.card_id, 'image_uri_border_crop', OLD.image_uri_border_crop, NEW.image_uri_border_crop, NEW.change_set_id
WHERE OLD.image_uri_border_crop IS NOT DISTINCT FROM NEW.image_uri_border_crop
UNION
-- Changed image_uri_large
SELECT NEW.card_id, 'image_uri_large', OLD.image_uri_large, NEW.image_uri_large, NEW.change_set_id
WHERE OLD.image_uri_large IS NOT DISTINCT FROM NEW.image_uri_large
UNION
-- Changed image_uri_normal
SELECT NEW.card_id, 'image_uri_normal', OLD.image_uri_normal, NEW.image_uri_normal, NEW.change_set_id
WHERE OLD.image_uri_normal IS NOT DISTINCT FROM NEW.image_uri_normal
UNION
-- Changed image_uri_png
SELECT NEW.card_id, 'image_uri_png', OLD.image_uri_png, NEW.image_uri_png, NEW.change_set_id
WHERE OLD.image_uri_png IS NOT DISTINCT FROM NEW.image_uri_png
UNION
-- Changed image_uri_small
SELECT NEW.card_id, 'image_uri_small', OLD.image_uri_small, NEW.image_uri_small, NEW.change_set_id
WHERE OLD.image_uri_small IS NOT DISTINCT FROM NEW.image_uri_small
UNION
-- Changed keywords
SELECT NEW.card_id, 'keywords', OLD.keywords, NEW.keywords, NEW.change_set_id
WHERE OLD.keywords IS NOT DISTINCT FROM NEW.keywords
UNION
-- Changed lang
SELECT NEW.card_id, 'lang', OLD.lang, NEW.lang, NEW.change_set_id
WHERE OLD.lang IS NOT DISTINCT FROM NEW.lang
UNION
-- Changed layout
SELECT NEW.card_id, 'layout', OLD.layout, NEW.layout, NEW.change_set_id
WHERE OLD.layout IS NOT DISTINCT FROM NEW.layout
UNION
-- Changed legal_alchemy
SELECT NEW.card_id, 'legal_alchemy', OLD.legal_alchemy::TEXT, NEW.legal_alchemy::TEXT, NEW.change_set_id
WHERE OLD.legal_alchemy IS NOT DISTINCT FROM NEW.legal_alchemy
UNION
-- Changed legal_brawl
SELECT NEW.card_id, 'legal_brawl', OLD.legal_brawl::TEXT, NEW.legal_brawl::TEXT, NEW.change_set_id
WHERE OLD.legal_brawl IS NOT DISTINCT FROM NEW.legal_brawl
UNION
-- Changed legal_commander
SELECT NEW.card_id, 'legal_commander', OLD.legal_commander::TEXT, NEW.legal_commander::TEXT, NEW.change_set_id
WHERE OLD.legal_commander IS NOT DISTINCT FROM NEW.legal_commander
UNION
-- Changed legal_duel
SELECT NEW.card_id, 'legal_duel', OLD.legal_duel::TEXT, NEW.legal_duel::TEXT, NEW.change_set_id
WHERE OLD.legal_duel IS NOT DISTINCT FROM NEW.legal_duel
UNION
-- Changed legal_future
SELECT NEW.card_id, 'legal_future', OLD.legal_future::TEXT, NEW.legal_future::TEXT, NEW.change_set_id
WHERE OLD.legal_future IS NOT DISTINCT FROM NEW.legal_future
UNION
-- Changed legal_gladiator
SELECT NEW.card_id, 'legal_gladiator', OLD.legal_gladiator::TEXT, NEW.legal_gladiator::TEXT, NEW.change_set_id
WHERE OLD.legal_gladiator IS NOT DISTINCT FROM NEW.legal_gladiator
UNION
-- Changed legal_historic
SELECT NEW.card_id, 'legal_historic', OLD.legal_historic::TEXT, NEW.legal_historic::TEXT, NEW.change_set_id
WHERE OLD.legal_historic IS NOT DISTINCT FROM NEW.legal_historic
UNION
-- Changed legal_legacy
SELECT NEW.card_id, 'legal_legacy', OLD.legal_legacy::TEXT, NEW.legal_legacy::TEXT, NEW.change_set_id
WHERE OLD.legal_legacy IS NOT DISTINCT FROM NEW.legal_legacy
UNION
-- Changed legal_modern
SELECT NEW.card_id, 'legal_modern', OLD.legal_modern::TEXT, NEW.legal_modern::TEXT, NEW.change_set_id
WHERE OLD.legal_modern IS NOT DISTINCT FROM NEW.legal_modern
UNION
-- Changed legal_oathbreaker
SELECT NEW.card_id, 'legal_oathbreaker', OLD.legal_oathbreaker::TEXT, NEW.legal_oathbreaker::TEXT, NEW.change_set_id
WHERE OLD.legal_oathbreaker IS NOT DISTINCT FROM NEW.legal_oathbreaker
UNION
-- Changed legal_oldschool
SELECT NEW.card_id, 'legal_oldschool', OLD.legal_oldschool::TEXT, NEW.legal_oldschool::TEXT, NEW.change_set_id
WHERE OLD.legal_oldschool IS NOT DISTINCT FROM NEW.legal_oldschool
UNION
-- Changed legal_pauper
SELECT NEW.card_id, 'legal_pauper', OLD.legal_pauper::TEXT, NEW.legal_pauper::TEXT, NEW.change_set_id
WHERE OLD.legal_pauper IS NOT DISTINCT FROM NEW.legal_pauper
UNION
-- Changed legal_paupercommander
SELECT NEW.card_id, 'legal_paupercommander', OLD.legal_paupercommander::TEXT, NEW.legal_paupercommander::TEXT, NEW.change_set_id
WHERE OLD.legal_paupercommander IS NOT DISTINCT FROM NEW.legal_paupercommander
UNION
-- Changed legal_penny
SELECT NEW.card_id, 'legal_penny', OLD.legal_penny::TEXT, NEW.legal_penny::TEXT, NEW.change_set_id
WHERE OLD.legal_penny IS NOT DISTINCT FROM NEW.legal_penny
UNION
-- Changed legal_pioneer
SELECT NEW.card_id, 'legal_pioneer', OLD.legal_pioneer::TEXT, NEW.legal_pioneer::TEXT, NEW.change_set_id
WHERE OLD.legal_pioneer IS NOT DISTINCT FROM NEW.legal_pioneer
UNION
-- Changed legal_predh
SELECT NEW.card_id, 'legal_predh', OLD.legal_predh::TEXT, NEW.legal_predh::TEXT, NEW.change_set_id
WHERE OLD.legal_predh IS NOT DISTINCT FROM NEW.legal_predh
UNION
-- Changed legal_premodern
SELECT NEW.card_id, 'legal_premodern', OLD.legal_premodern::TEXT, NEW.legal_premodern::TEXT, NEW.change_set_id
WHERE OLD.legal_premodern IS NOT DISTINCT FROM NEW.legal_premodern
UNION
-- Changed legal_standard
SELECT NEW.card_id, 'legal_standard', OLD.legal_standard::TEXT, NEW.legal_standard::TEXT, NEW.change_set_id
WHERE OLD.legal_standard IS NOT DISTINCT FROM NEW.legal_standard
UNION
-- Changed legal_standardbrawl
SELECT NEW.card_id, 'legal_standardbrawl', OLD.legal_standardbrawl::TEXT, NEW.legal_standardbrawl::TEXT, NEW.change_set_id
WHERE OLD.legal_standardbrawl IS NOT DISTINCT FROM NEW.legal_standardbrawl
UNION
-- Changed legal_timeless
SELECT NEW.card_id, 'legal_timeless', OLD.legal_timeless::TEXT, NEW.legal_timeless::TEXT, NEW.change_set_id
WHERE OLD.legal_timeless IS NOT DISTINCT FROM NEW.legal_timeless
UNION
-- Changed legal_vintage
SELECT NEW.card_id, 'legal_vintage', OLD.legal_vintage::TEXT, NEW.legal_vintage::TEXT, NEW.change_set_id
WHERE OLD.legal_vintage IS NOT DISTINCT FROM NEW.legal_vintage
UNION
-- Changed life_modifier
SELECT NEW.card_id, 'life_modifier', OLD.life_modifier, NEW.life_modifier, NEW.change_set_id
WHERE OLD.life_modifier IS NOT DISTINCT FROM NEW.life_modifier
UNION
-- Changed loyalty
SELECT NEW.card_id, 'loyalty', OLD.loyalty, NEW.loyalty, NEW.change_set_id
WHERE OLD.loyalty IS NOT DISTINCT FROM NEW.loyalty
UNION
-- Changed mana_cost
SELECT NEW.card_id, 'mana_cost', OLD.mana_cost, NEW.mana_cost, NEW.change_set_id
WHERE OLD.mana_cost IS NOT DISTINCT FROM NEW.mana_cost
UNION
-- Changed mtgo_id
SELECT NEW.card_id, 'mtgo_id', CAST(OLD.mtgo_id AS VARCHAR), CAST(NEW.mtgo_id AS VARCHAR), NEW.change_set_id
WHERE OLD.mtgo_id IS NOT DISTINCT FROM NEW.mtgo_id
UNION
-- Changed multiverse_ids
SELECT NEW.card_id, 'multiverse_ids', OLD.multiverse_ids, NEW.multiverse_ids, NEW.change_set_id
WHERE OLD.multiverse_ids IS NOT DISTINCT FROM NEW.multiverse_ids
UNION
-- Changed name
SELECT NEW.card_id, 'name', OLD.name, NEW.name, NEW.change_set_id
WHERE OLD.name IS NOT DISTINCT FROM NEW.name
UNION
-- Changed nonfoil
SELECT NEW.card_id, 'nonfoil', OLD.nonfoil::TEXT, NEW.nonfoil::TEXT, NEW.change_set_id
WHERE OLD.nonfoil IS NOT DISTINCT FROM NEW.nonfoil
UNION
-- Changed oracle_id
SELECT NEW.card_id, 'oracle_id', CAST(OLD.oracle_id AS VARCHAR), CAST(NEW.oracle_id AS VARCHAR), NEW.change_set_id
WHERE OLD.oracle_id IS NOT DISTINCT FROM NEW.oracle_id
UNION
-- Changed oracle_text
SELECT NEW.card_id, 'oracle_text', OLD.oracle_text, NEW.oracle_text, NEW.change_set_id
WHERE OLD.oracle_text IS NOT DISTINCT FROM NEW.oracle_text
UNION
-- Changed oversized
SELECT NEW.card_id, 'oversized', OLD.oversized::TEXT, NEW.oversized::TEXT, NEW.change_set_id
WHERE OLD.oversized IS NOT DISTINCT FROM NEW.oversized
UNION
-- Changed penny_rank
SELECT NEW.card_id, 'penny_rank', CAST(OLD.penny_rank AS VARCHAR), CAST(NEW.penny_rank AS VARCHAR), NEW.change_set_id
WHERE OLD.penny_rank IS NOT DISTINCT FROM NEW.penny_rank
UNION
-- Changed power
SELECT NEW.card_id, 'power', OLD.power, NEW.power, NEW.change_set_id
WHERE OLD.power IS NOT DISTINCT FROM NEW.power
UNION
-- Changed preview_date
SELECT NEW.card_id, 'preview_date', TO_CHAR(OLD.preview_date, 'YYYY-MM-DD'), TO_CHAR(NEW.preview_date, 'YYYY-MM-DD'), NEW.change_set_id
WHERE OLD.preview_date IS NOT DISTINCT FROM NEW.preview_date
UNION
-- Changed preview_source
SELECT NEW.card_id, 'preview_source', OLD.preview_source, NEW.preview_source, NEW.change_set_id
WHERE OLD.preview_source IS NOT DISTINCT FROM NEW.preview_source
UNION
-- Changed preview_source_uri
SELECT NEW.card_id, 'preview_source_uri', OLD.preview_source_uri, NEW.preview_source_uri, NEW.change_set_id
WHERE OLD.preview_source_uri IS NOT DISTINCT FROM NEW.preview_source_uri
UNION
-- Changed price_eur
SELECT NEW.card_id, 'price_eur', CAST(OLD.price_eur AS VARCHAR), CAST(NEW.price_eur AS VARCHAR), NEW.change_set_id
WHERE OLD.price_eur IS NOT DISTINCT FROM NEW.price_eur
UNION
-- Changed price_eur_foil
SELECT NEW.card_id, 'price_eur_foil', CAST(OLD.price_eur_foil AS VARCHAR), CAST(NEW.price_eur_foil AS VARCHAR), NEW.change_set_id
WHERE OLD.price_eur_foil IS NOT DISTINCT FROM NEW.price_eur_foil
UNION
-- Changed price_tix
SELECT NEW.card_id, 'price_tix', CAST(OLD.price_tix AS VARCHAR), CAST(NEW.price_tix AS VARCHAR), NEW.change_set_id
WHERE OLD.price_tix IS NOT DISTINCT FROM NEW.price_tix
UNION
-- Changed price_usd
SELECT NEW.card_id, 'price_usd', CAST(OLD.price_usd AS VARCHAR), CAST(NEW.price_usd AS VARCHAR), NEW.change_set_id
WHERE OLD.price_usd IS NOT DISTINCT FROM NEW.price_usd
UNION
-- Changed price_usd_etched
SELECT NEW.card_id, 'price_usd_etched', CAST(OLD.price_usd_etched AS VARCHAR), CAST(NEW.price_usd_etched AS VARCHAR), NEW.change_set_id
WHERE OLD.price_usd_etched IS NOT DISTINCT FROM NEW.price_usd_etched
UNION
-- Changed price_usd_foil
SELECT NEW.card_id, 'price_usd_foil', CAST(OLD.price_usd_foil AS VARCHAR), CAST(NEW.price_usd_foil AS VARCHAR), NEW.change_set_id
WHERE OLD.price_usd_foil IS NOT DISTINCT FROM NEW.price_usd_foil
UNION
-- Changed printed_name
SELECT NEW.card_id, 'printed_name', OLD.printed_name, NEW.printed_name, NEW.change_set_id
WHERE OLD.printed_name IS NOT DISTINCT FROM NEW.printed_name
UNION
-- Changed printed_text
SELECT NEW.card_id, 'printed_text', OLD.printed_text, NEW.printed_text, NEW.change_set_id
WHERE OLD.printed_text IS NOT DISTINCT FROM NEW.printed_text
UNION
-- Changed printed_type_line
SELECT NEW.card_id, 'printed_type_line', OLD.printed_type_line, NEW.printed_type_line, NEW.change_set_id
WHERE OLD.printed_type_line IS NOT DISTINCT FROM NEW.printed_type_line
UNION
-- Changed prints_search_uri
SELECT NEW.card_id, 'printed_search_uri', OLD.printed_search_uri, NEW.printed_search_uri, NEW.change_set_id
WHERE OLD.printed_search_uri IS NOT DISTINCT FROM NEW.printed_search_uri
UNION
-- Changed produced_mana
SELECT NEW.card_id, 'produced_mana', OLD.produced_mana, NEW.produced_mana, NEW.change_set_id
WHERE OLD.produced_mana IS NOT DISTINCT FROM NEW.produced_mana
UNION
-- Changed promo
SELECT NEW.card_id, 'promo', OLD.promo::TEXT, NEW.promo::TEXT, NEW.change_set_id
WHERE OLD.promo IS NOT DISTINCT FROM NEW.promo
UNION
-- Changed purchase_cardhoarder
SELECT NEW.card_id, 'purchase_cardhoarder', OLD.purchase_cardhoarder, NEW.purchase_cardhoarder, NEW.change_set_id
WHERE OLD.purchase_cardhoarder IS NOT DISTINCT FROM NEW.purchase_cardhoarder
UNION
-- Changed purchase_cardmarket
SELECT NEW.card_id, 'purchase_cardmarket', OLD.purchase_cardmarket, NEW.purchase_cardmarket, NEW.change_set_id
WHERE OLD.purchase_cardmarket IS NOT DISTINCT FROM NEW.purchase_cardmarket
UNION
-- Changed purchase_tcgplayer
SELECT NEW.card_id, 'purchase_tcgplayer', OLD.purchase_tcgplayer, NEW.purchase_tcgplayer, NEW.change_set_id
WHERE OLD.purchase_tcgplayer IS NOT DISTINCT FROM NEW.purchase_tcgplayer
UNION
-- Changed rarity
SELECT NEW.card_id, 'rarity', OLD.rarity, NEW.rarity, NEW.change_set_id
WHERE OLD.rarity IS NOT DISTINCT FROM NEW.rarity
UNION
-- Changed released_at
SELECT NEW.card_id, 'released_at', TO_CHAR(OLD.released_at, 'YYYY-MM-DD'), TO_CHAR(NEW.released_at, 'YYYY-MM-DD'), NEW.change_set_id
WHERE OLD.released_at IS NOT DISTINCT FROM NEW.released_at
UNION
-- Changed reprint
SELECT NEW.card_id, 'reprint', OLD.reprint::TEXT, NEW.reprint::TEXT, NEW.change_set_id
WHERE OLD.reprint IS NOT DISTINCT FROM NEW.reprint
UNION
-- Changed reserved
SELECT NEW.card_id, 'reserved', OLD.reserved::TEXT, NEW.reserved::TEXT, NEW.change_set_id
WHERE OLD.reserved IS NOT DISTINCT FROM NEW.reserved
UNION
-- Changed rulings_uri
SELECT NEW.card_id, 'rulings_uri', OLD.rulings_uri, NEW.rulings_uri, NEW.change_set_id
WHERE OLD.rulings_uri IS NOT DISTINCT FROM NEW.rulings_uri
UNION
-- Changed scryfall_set_uri
SELECT NEW.card_id, 'scryfall_set_uri', OLD.scryfall_set_uri, NEW.scryfall_set_uri, NEW.change_set_id
WHERE OLD.scryfall_set_uri IS NOT DISTINCT FROM NEW.scryfall_set_uri
UNION
-- Changed scryfall_uri
SELECT NEW.card_id, 'scryfall_uri', OLD.scryfall_uri, NEW.scryfall_uri, NEW.change_set_id
WHERE OLD.scryfall_uri IS NOT DISTINCT FROM NEW.scryfall_uri
UNION
-- Changed security_stamp
SELECT NEW.card_id, 'security_stamp', OLD.security_stamp, NEW.security_stamp, NEW.change_set_id
WHERE OLD.security_stamp IS NOT DISTINCT FROM NEW.security_stamp
UNION
-- Changed set
SELECT NEW.card_id, 'set', OLD.set, NEW.set, NEW.change_set_id
WHERE OLD.set IS NOT DISTINCT FROM NEW.set
UNION
-- Changed set_id
SELECT NEW.card_id, 'set_id', CAST(OLD.set_id AS VARCHAR), CAST(NEW.set_id AS VARCHAR), NEW.change_set_id
WHERE OLD.set_id IS NOT DISTINCT FROM NEW.set_id
UNION
-- Changed set_name
SELECT NEW.card_id, 'set_name', OLD.set_name, NEW.set_name, NEW.change_set_id
WHERE OLD.set_name IS NOT DISTINCT FROM NEW.set_name
UNION
-- Changed set_search_uri
SELECT NEW.card_id, 'set_search_uri', OLD.set_search_uri, NEW.set_search_uri, NEW.change_set_id
WHERE OLD.set_search_uri IS NOT DISTINCT FROM NEW.set_search_uri
UNION
-- Changed set_type
SELECT NEW.card_id, 'set_type', OLD.set_type, NEW.set_type, NEW.change_set_id
WHERE OLD.set_type IS NOT DISTINCT FROM NEW.set_type
UNION
-- Changed set_uri
SELECT NEW.card_id, 'set_uri', OLD.set_uri, NEW.set_uri, NEW.change_set_id
WHERE OLD.set_uri IS NOT DISTINCT FROM NEW.set_uri
UNION
-- Changed story_spotlight
SELECT NEW.card_id, 'story_spotlight', OLD.story_spotlight::TEXT, NEW.story_spotlight::TEXT, NEW.change_set_id
WHERE OLD.story_spotlight IS NOT DISTINCT FROM NEW.story_spotlight
UNION
-- Changed tcgplayer_id
SELECT NEW.card_id, 'tcgplayer_id', CAST(OLD.tcgplayer_id AS VARCHAR), CAST(NEW.tcgplayer_id AS VARCHAR), NEW.change_set_id
WHERE OLD.tcgplayer_id IS NOT DISTINCT FROM NEW.tcgplayer_id
UNION
-- Changed textless
SELECT NEW.card_id, 'textless', OLD.textless::TEXT, NEW.textless::TEXT, NEW.change_set_id
WHERE OLD.textless IS NOT DISTINCT FROM NEW.textless
UNION
-- Changed toughness
SELECT NEW.card_id, 'toughness', OLD.toughness, NEW.toughness, NEW.change_set_id
WHERE OLD.toughness IS NOT DISTINCT FROM NEW.toughness
UNION
-- Changed type_line
SELECT NEW.card_id, 'type_line', OLD.type_line, NEW.type_line, NEW.change_set_id
WHERE OLD.type_line IS NOT DISTINCT FROM NEW.type_line
UNION
-- Changed uri
SELECT NEW.card_id, 'uri', OLD.uri, NEW.uri, NEW.change_set_id
WHERE OLD.uri IS NOT DISTINCT FROM NEW.uri
UNION
-- Changed uri_edhrec
SELECT NEW.card_id, 'uri_edhrec', OLD.uri_edhrec, NEW.uri_edhrec, NEW.change_set_id
WHERE OLD.uri_edhrec IS NOT DISTINCT FROM NEW.uri_edhrec
UNION
-- Changed uri_gatherer
SELECT NEW.card_id, 'uri_gatherer', OLD.uri_gatherer, NEW.uri_gatherer, NEW.change_set_id
WHERE OLD.uri_gatherer IS NOT DISTINCT FROM NEW.uri_gatherer
UNION
-- Changed uri_tcgplayer_infinite_articles
SELECT NEW.card_id, 'uri_tcgplayer_infinite_articles', OLD.uri_tcgplayer_infinite_articles, NEW.uri_tcgplayer_infinite_articles, NEW.change_set_id
WHERE OLD.uri_tcgplayer_infinite_articles IS NOT DISTINCT FROM NEW.uri_tcgplayer_infinite_articles
UNION
-- Changed uri_tcgplayer_infinite_decks
SELECT NEW.card_id, 'uri_tcgplayer_infinite_decks', OLD.uri_tcgplayer_infinite_decks, NEW.uri_tcgplayer_infinite_decks, NEW.change_set_id
WHERE OLD.uri_tcgplayer_infinite_decks IS NOT DISTINCT FROM NEW.uri_tcgplayer_infinite_decks
UNION
-- Changed variation
SELECT NEW.card_id, 'variation', OLD.variation::TEXT, NEW.variation::TEXT, NEW.change_set_id
WHERE OLD.variation IS NOT DISTINCT FROM NEW.variation
UNION
-- Changed active
SELECT NEW.card_id, 'active', OLD.active::TEXT, NEW.active::TEXT, NEW.change_set_id
WHERE OLD.active IS NOT DISTINCT FROM NEW.active
;
RETURN NEW;
END;
$$ LANGUAGE plpgsql
;
CREATE TRIGGER TRI_before_insert_TCG_MTG_Card
BEFORE INSERT ON tcg.public.TCG_MTG_Card
FOR EACH ROW
EXECUTE FUNCTION tcg.public.FN_before_insert_TCG_MTG_Card()
;
CREATE TRIGGER TRI_before_update_TCG_MTG_Card
BEFORE UPDATE ON tcg.public.TCG_MTG_Card
FOR EACH ROW
EXECUTE FUNCTION tcg.public.FN_before_update_TCG_MTG_Card()
;