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() ;