Skip to content

Commit 30e073c

Browse files
committed
Added link to retry setup for azure to release notes
1 parent 1895658 commit 30e073c

12 files changed

Lines changed: 174 additions & 1 deletion

docs/release-notes/2.12.0.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ This integration empowers teams already invested in Alibaba Cloud to adopt PBM b
2121

2222
### Ensure data upload to Azure Blob storage even during unstable network
2323

24-
You can now control the number of upload retries to Azure in PBM configuration. This enhancement ensures your data reaches its destination—even when the network is unstable or intermittent. By customizing retry behavior, you gain greater resilience and reliability in backup and sync workflows. It’s a simple way to reduce failed uploads and improve peace of mind.
24+
You can now [control the number of upload retries to Azure in PBM configuration](../details/azure.md#upload-retries). This enhancement ensures your data reaches its destination—even when the network is unstable or intermittent. By customizing retry behavior, you gain greater resilience and reliability in backup and sync workflows. It’s a simple way to reduce failed uploads and improve peace of mind.
2525

2626
### Native MinIO Support in PBM
2727

pg_cron-pg17-1.6.7.tar.gz

165 KB
Binary file not shown.

usr/pgsql-17/lib/pg_cron.so

357 KB
Binary file not shown.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
/* pg_cron--1.0--1.1.sql */
2+
3+
ALTER TABLE cron.job ADD COLUMN active boolean not null default 'true';
Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
DO $$
2+
BEGIN
3+
IF pg_catalog.current_database() OPERATOR(pg_catalog.<>) pg_catalog.current_setting('cron.database_name') AND pg_catalog.current_database() OPERATOR(pg_catalog.<>) 'contrib_regression' THEN
4+
RAISE EXCEPTION 'can only create extension in database %',
5+
pg_catalog.current_setting('cron.database_name')
6+
USING DETAIL = 'Jobs must be scheduled from the database configured in 'OPERATOR(pg_catalog.||)
7+
'cron.database_name, since the pg_cron background worker 'OPERATOR(pg_catalog.||)
8+
'reads job descriptions from this database.',
9+
HINT = pg_catalog.format('Add cron.database_name = ''%s'' in postgresql.conf 'OPERATOR(pg_catalog.||)
10+
'to use the current database.', pg_catalog.current_database());
11+
END IF;
12+
END;
13+
$$;
14+
15+
CREATE SCHEMA cron;
16+
CREATE SEQUENCE cron.jobid_seq;
17+
18+
CREATE TABLE cron.job (
19+
jobid bigint primary key default pg_catalog.nextval('cron.jobid_seq'),
20+
schedule text not null,
21+
command text not null,
22+
nodename text not null default 'localhost',
23+
nodeport int not null default pg_catalog.inet_server_port(),
24+
database text not null default pg_catalog.current_database(),
25+
username text not null default current_user
26+
);
27+
GRANT SELECT ON cron.job TO public;
28+
ALTER TABLE cron.job ENABLE ROW LEVEL SECURITY;
29+
CREATE POLICY cron_job_policy ON cron.job USING (username OPERATOR(pg_catalog.=) current_user);
30+
31+
CREATE FUNCTION cron.schedule(schedule text, command text)
32+
RETURNS bigint
33+
LANGUAGE C STRICT
34+
AS 'MODULE_PATHNAME', $$cron_schedule$$;
35+
COMMENT ON FUNCTION cron.schedule(text,text)
36+
IS 'schedule a pg_cron job';
37+
38+
CREATE FUNCTION cron.unschedule(job_id bigint)
39+
RETURNS bool
40+
LANGUAGE C STRICT
41+
AS 'MODULE_PATHNAME', $$cron_unschedule$$;
42+
COMMENT ON FUNCTION cron.unschedule(bigint)
43+
IS 'unschedule a pg_cron job';
44+
45+
CREATE FUNCTION cron.job_cache_invalidate()
46+
RETURNS trigger
47+
LANGUAGE C
48+
AS 'MODULE_PATHNAME', $$cron_job_cache_invalidate$$;
49+
COMMENT ON FUNCTION cron.job_cache_invalidate()
50+
IS 'invalidate job cache';
51+
52+
CREATE TRIGGER cron_job_cache_invalidate
53+
AFTER INSERT OR UPDATE OR DELETE OR TRUNCATE
54+
ON cron.job
55+
FOR STATEMENT EXECUTE PROCEDURE cron.job_cache_invalidate();
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
/* pg_cron--1.1--1.2.sql */
2+
3+
SELECT pg_catalog.pg_extension_config_dump('cron.job', '');
4+
SELECT pg_catalog.pg_extension_config_dump('cron.jobid_seq', '');
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
/* pg_cron--1.2--1.3.sql */
2+
3+
CREATE SEQUENCE cron.runid_seq;
4+
CREATE TABLE cron.job_run_details (
5+
jobid bigint,
6+
runid bigint primary key default pg_catalog.nextval('cron.runid_seq'),
7+
job_pid integer,
8+
database text,
9+
username text,
10+
command text,
11+
status text,
12+
return_message text,
13+
start_time timestamptz,
14+
end_time timestamptz
15+
);
16+
17+
GRANT SELECT ON cron.job_run_details TO public;
18+
GRANT DELETE ON cron.job_run_details TO public;
19+
ALTER TABLE cron.job_run_details ENABLE ROW LEVEL SECURITY;
20+
CREATE POLICY cron_job_run_details_policy ON cron.job_run_details USING (username OPERATOR(pg_catalog.=) current_user);
21+
22+
SELECT pg_catalog.pg_extension_config_dump('cron.job_run_details', '');
23+
SELECT pg_catalog.pg_extension_config_dump('cron.runid_seq', '');
24+
25+
ALTER TABLE cron.job ADD COLUMN jobname name;
26+
27+
CREATE UNIQUE INDEX jobname_username_idx ON cron.job (jobname, username);
28+
ALTER TABLE cron.job ADD CONSTRAINT jobname_username_uniq UNIQUE USING INDEX jobname_username_idx;
29+
30+
CREATE FUNCTION cron.schedule(job_name name, schedule text, command text)
31+
RETURNS bigint
32+
LANGUAGE C STRICT
33+
AS 'MODULE_PATHNAME', $$cron_schedule_named$$;
34+
COMMENT ON FUNCTION cron.schedule(name,text,text)
35+
IS 'schedule a pg_cron job';
36+
37+
CREATE FUNCTION cron.unschedule(job_name name)
38+
RETURNS bool
39+
LANGUAGE C STRICT
40+
AS 'MODULE_PATHNAME', $$cron_unschedule_named$$;
41+
COMMENT ON FUNCTION cron.unschedule(name)
42+
IS 'unschedule a pg_cron job';
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
/* pg_cron--1.3--1.4.sql */
2+
3+
/* cron_schedule_named expects job name to be text */
4+
DROP FUNCTION cron.schedule(name,text,text);
5+
CREATE FUNCTION cron.schedule(job_name text,
6+
schedule text,
7+
command text)
8+
RETURNS bigint
9+
LANGUAGE C
10+
AS 'MODULE_PATHNAME', $$cron_schedule_named$$;
11+
COMMENT ON FUNCTION cron.schedule(text,text,text)
12+
IS 'schedule a pg_cron job';
13+
14+
CREATE FUNCTION cron.alter_job(job_id bigint,
15+
schedule text default null,
16+
command text default null,
17+
database text default null,
18+
username text default null,
19+
active boolean default null)
20+
RETURNS void
21+
LANGUAGE C
22+
AS 'MODULE_PATHNAME', $$cron_alter_job$$;
23+
24+
COMMENT ON FUNCTION cron.alter_job(bigint,text,text,text,text,boolean)
25+
IS 'Alter the job identified by job_id. Any option left as NULL will not be modified.';
26+
27+
/* admin should decide whether alter_job is safe by explicitly granting execute */
28+
REVOKE ALL ON FUNCTION cron.alter_job(bigint,text,text,text,text,boolean) FROM public;
29+
30+
CREATE FUNCTION cron.schedule_in_database(job_name text,
31+
schedule text,
32+
command text,
33+
database text,
34+
username text default null,
35+
active boolean default 'true')
36+
RETURNS bigint
37+
LANGUAGE C
38+
AS 'MODULE_PATHNAME', $$cron_schedule_named$$;
39+
40+
COMMENT ON FUNCTION cron.schedule_in_database(text,text,text,text,text,boolean)
41+
IS 'schedule a pg_cron job';
42+
43+
/* admin should decide whether cron.schedule_in_database is safe by explicitly granting execute */
44+
REVOKE ALL ON FUNCTION cron.schedule_in_database(text,text,text,text,text,boolean) FROM public;
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
/* pg_cron--1.4--1.4-1.sql */
2+
3+
/*
4+
* pg_dump will read from these sequences. Grant everyone permission
5+
* to read from the sequence. That way, a user with usage on the cron
6+
* schema can also do pg_dump. This does not grant write/nextval
7+
* permission.
8+
*/
9+
GRANT SELECT ON SEQUENCE cron.jobid_seq TO public;
10+
GRANT SELECT ON SEQUENCE cron.runid_seq TO public;
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
ALTER TABLE cron.job ALTER COLUMN jobname TYPE text;
2+
3+
DROP FUNCTION cron.unschedule(name);
4+
CREATE FUNCTION cron.unschedule(job_name text)
5+
RETURNS bool
6+
LANGUAGE C STRICT
7+
AS 'MODULE_PATHNAME', $$cron_unschedule_named$$;
8+
COMMENT ON FUNCTION cron.unschedule(text)
9+
IS 'unschedule a pg_cron job';

0 commit comments

Comments
 (0)