@@ -405,8 +405,11 @@ DECLARE
405
405
clean_cron jsonb;
406
406
Ninteger ;
407
407
nametext ;
408
+ updatePrevboolean ;
408
409
BEGIN
409
410
411
+ updatePrev := true;
412
+
410
413
IF NOT params?' cron' AND NOT params?' rule' AND NOT params?' date' AND NOT params?' dates' THEN
411
414
RAISE EXCEPTION' There is no information about job' ' s schedule'
412
415
USING HINT= ' Use' ' cron' ' - cron string,' ' rule' ' - json to set schedule rules or' ' date' ' and' ' dates' ' to set exact date(s)' ;
@@ -416,13 +419,11 @@ BEGIN
416
419
EXECUTE' SELECT cron2jsontext($1::cstring)::jsonb'
417
420
INTO cron
418
421
USING params- >> ' cron' ;
419
- IF prevIS NOT NULL THEN
420
- cron := prev|| cron;
421
- END IF;
422
422
END IF;
423
423
424
424
IF params?' rule' THEN
425
425
rule := params- > ' rule' ;
426
+ updatePrev := false;
426
427
END IF;
427
428
428
429
cron := coalesce(cron,' {}' ::jsonb)|| coalesce(rule,' {}' ::jsonb);
@@ -448,6 +449,10 @@ BEGIN
448
449
cron := cron|| jsonb_build_object(' dates' , array_to_json(dates));
449
450
END IF;
450
451
452
+ IF updatePrevAND prevIS NOT NULL THEN
453
+ cron := prev|| cron;
454
+ END IF;
455
+
451
456
clean_cron := ' {}' ::jsonb;
452
457
FOR nameIN SELECT * FROM unnest(' {dates, crontab, onstart, days, hours, wdays, months, minutes}' ::text [])
453
458
LOOP