Changes between Version 3 and Version 4 of AdvancedDatabaseDevelopment
- Timestamp:
- 05/28/26 04:13:31 (6 hours ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
AdvancedDatabaseDevelopment
v3 v4 13 13 {{{ 14 14 #!sql 15 CREATE OR REPLACE FUNCTION p etsitter_trg_booking_validation()15 CREATE OR REPLACE FUNCTION project.petsitter_trg_booking_validation() 16 16 RETURNS trigger 17 17 LANGUAGE plpgsql 18 18 AS $$ 19 19 BEGIN 20 IF NEW.date_from < now() THEN 20 -- Only prevent past dates when creating a NEW booking, not when updating an existing one 21 IF TG_OP = 'INSERT' AND NEW.date_from < now() THEN 21 22 RAISE EXCEPTION 'Cannot create a booking in the past (date_from=%)', NEW.date_from; 22 23 END IF; … … 47 48 BEFORE INSERT OR UPDATE ON project.bookings 48 49 FOR EACH ROW 49 EXECUTE FUNCTION p etsitter_trg_booking_validation();50 EXECUTE FUNCTION project.petsitter_trg_booking_validation(); 50 51 }}} 51 52 … … 64 65 {{{ 65 66 #!sql 66 CREATE OR REPLACE FUNCTION p etsitter_trg_review_integrity()67 CREATE OR REPLACE FUNCTION project.petsitter_trg_review_integrity() 67 68 RETURNS trigger 68 69 LANGUAGE plpgsql … … 93 94 BEFORE INSERT ON project.reviews 94 95 FOR EACH ROW 95 EXECUTE FUNCTION p etsitter_trg_review_integrity();96 EXECUTE FUNCTION project.petsitter_trg_review_integrity(); 96 97 97 98 -- Make reviews non-updateable 98 CREATE OR REPLACE FUNCTION p etsitter_trg_reviews_no_update()99 CREATE OR REPLACE FUNCTION project.petsitter_trg_reviews_no_update() 99 100 RETURNS trigger 100 101 LANGUAGE plpgsql … … 109 110 BEFORE UPDATE ON project.reviews 110 111 FOR EACH ROW 111 EXECUTE FUNCTION p etsitter_trg_reviews_no_update();112 EXECUTE FUNCTION project.petsitter_trg_reviews_no_update(); 112 113 }}} 113 114 … … 172 173 173 174 -- Stored procedure for clean up expired bookings 174 CREATE OR REPLACE PROCEDURE p etsitter_job_expire_pending_bookings()175 CREATE OR REPLACE PROCEDURE project.petsitter_job_expire_pending_bookings() 175 176 LANGUAGE plpgsql 176 177 AS $$ … … 195 196 {{{ 196 197 -- Schedule the job to run every hour 197 SELECT cron.schedule('petsitter_expire_bookings', '0 * * * *', $$CALL p etsitter_job_expire_pending_bookings();$$);198 SELECT cron.schedule('petsitter_expire_bookings', '0 * * * *', $$CALL project.petsitter_job_expire_pending_bookings();$$); 198 199 }}}
