Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitf53981a

Browse files
author
Vladimir Ershov
committed
fix set_attr
1 parenta0093a7 commitf53981a

File tree

1 file changed

+27
-12
lines changed

1 file changed

+27
-12
lines changed

‎pgpro_scheduler--2.0.sql

Lines changed: 27 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -338,7 +338,7 @@ LANGUAGE plpgsql set search_path FROM CURRENT;
338338
CREATEFUNCTION_possible_args() RETURNS jsonbAS
339339
$BODY$
340340
BEGIN
341-
RETURNjson_build_object(
341+
RETURNjsonb_build_object(
342342
'node','node name (default: master)',
343343
'name','job name',
344344
'comments','some comments on job',
@@ -437,9 +437,9 @@ BEGIN
437437
IF N>0 THEN
438438
EXECUTE'SELECT array_agg(lll) FROM (SELECT distinct(date_trunc(''min'', unnest::timestamp with time zone)) as lll FROM unnest($1) ORDER BY date_trunc(''min'', unnest::timestamp with time zone)) as Z'
439439
INTO dates USING dates;
440-
cron := COALESCE(cron,'{}'::jsonb)||json_build_object('dates', array_to_json(dates))::jsonb;
440+
cron := COALESCE(cron,'{}'::jsonb)||jsonb_build_object('dates', array_to_json(dates));
441441
END IF;
442-
442+
443443
clean_cron :='{}'::jsonb;
444444
FOR nameINSELECT*FROM unnest('{dates, crontab, onstart, days, hours, wdays, months, minutes}'::text[])
445445
LOOP
@@ -635,7 +635,7 @@ LANGUAGE plpgsql
635635
CREATEFUNCTIONcreate_job(crontext, commandtext, nodetext DEFAULTNULL) RETURNSintegerAS
636636
$BODY$
637637
BEGIN
638-
RETURN create_job(json_build_object('cron', cron,'command', command,'node', node)::jsonb);
638+
RETURN create_job(jsonb_build_object('cron', cron,'command', command,'node', node));
639639
END
640640
$BODY$
641641
LANGUAGE plpgsql
@@ -644,7 +644,7 @@ LANGUAGE plpgsql
644644
CREATEFUNCTIONcreate_job(dttimestamp with time zone, commandtext, nodetext DEFAULTNULL) RETURNSintegerAS
645645
$BODY$
646646
BEGIN
647-
RETURN create_job(json_build_object('date', dt::text,'command', command,'node', node)::jsonb);
647+
RETURN create_job(jsonb_build_object('date', dt::text,'command', command,'node', node));
648648
END
649649
$BODY$
650650
LANGUAGE plpgsql
@@ -653,7 +653,7 @@ LANGUAGE plpgsql
653653
CREATEFUNCTIONcreate_job(dtstimestamp with time zone[], commandtext, nodetext DEFAULTNULL) RETURNSintegerAS
654654
$BODY$
655655
BEGIN
656-
RETURN create_job(json_build_object('dates', array_to_json(dts),'command', command,'node', node)::jsonb);
656+
RETURN create_job(jsonb_build_object('dates', array_to_json(dts),'command', command,'node', node));
657657
END
658658
$BODY$
659659
LANGUAGE plpgsql
@@ -662,7 +662,7 @@ LANGUAGE plpgsql
662662
CREATEFUNCTIONcreate_job(crontext, commandstext[], nodetext DEFAULTNULL) RETURNSintegerAS
663663
$BODY$
664664
BEGIN
665-
RETURN create_job(json_build_object('cron', cron,'commands', array_to_json(commands),'node', node)::jsonb);
665+
RETURN create_job(jsonb_build_object('cron', cron,'commands', array_to_json(commands),'node', node));
666666
END
667667
$BODY$
668668
LANGUAGE plpgsql
@@ -671,7 +671,7 @@ LANGUAGE plpgsql
671671
CREATEFUNCTIONcreate_job(dttimestamp with time zone, commandstext[], nodetext DEFAULTNULL) RETURNSintegerAS
672672
$BODY$
673673
BEGIN
674-
RETURN create_job(json_build_object('date', dt::text,'commands', array_to_json(commands),'node', node)::jsonb);
674+
RETURN create_job(jsonb_build_object('date', dt::text,'commands', array_to_json(commands),'node', node));
675675
END
676676
$BODY$
677677
LANGUAGE plpgsql
@@ -680,7 +680,7 @@ LANGUAGE plpgsql
680680
CREATEFUNCTIONcreate_job(dtstimestamp with time zone[], commandstext[], nodetext DEFAULTNULL) RETURNSintegerAS
681681
$BODY$
682682
BEGIN
683-
RETURN create_job(json_build_object('dates', array_to_json(dts),'commands', array_to_json(commands),'node', node)::jsonb);
683+
RETURN create_job(jsonb_build_object('dates', array_to_json(dts),'commands', array_to_json(commands),'node', node));
684684
END
685685
$BODY$
686686
LANGUAGE plpgsql
@@ -796,14 +796,27 @@ $BODY$
796796
LANGUAGE plpgsql
797797
SECURITY DEFINERset search_pathFROM CURRENT;
798798

799+
CREATEFUNCTIONset_job_attribute(jobIdinteger, nametext, value jsonb) RETURNSbooleanAS
800+
$BODY$
801+
BEGIN
802+
IF name<>'rule' THEN
803+
RAISE EXCEPTION'key % cannot have a jsonb value. Only "rule" allowed', name;
804+
END IF;
805+
806+
RETURN set_job_attributes(jobId, jsonb_build_object(name, value));
807+
END
808+
$BODY$
809+
LANGUAGE plpgsql
810+
SECURITY DEFINERset search_pathFROM CURRENT;
811+
799812
CREATEFUNCTIONset_job_attribute(jobIdinteger, nametext, value anyarray) RETURNSbooleanAS
800813
$BODY$
801814
BEGIN
802815
IF name<>'dates'AND name<>'commands' THEN
803816
RAISE EXCEPTION'key % cannot have an array value. Only dates, commands allowed', name;
804817
END IF;
805818

806-
RETURN set_job_attributes(jobId,json_build_object(name, array_to_json(value))::jsonb);
819+
RETURN set_job_attributes(jobId,jsonb_build_object(name, array_to_json(value)));
807820
END
808821
$BODY$
809822
LANGUAGE plpgsql
@@ -815,9 +828,11 @@ DECLARE
815828
attrs jsonb;
816829
BEGIN
817830
IF name='dates'OR name='commands' THEN
818-
attrs := json_build_object(name, array_to_json(value::text[]));
831+
attrs := jsonb_build_object(name, array_to_json(value::text[]));
832+
ELSIF name='rule' THEN
833+
attrs := jsonb_build_object('rule', value::jsonb);
819834
ELSE
820-
attrs :=json_build_object(name, value);
835+
attrs :=jsonb_build_object(name, value);
821836
END IF;
822837
RETURN set_job_attributes(jobId, attrs);
823838
END

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp