-
Notifications
You must be signed in to change notification settings - Fork 849
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Restructure SQL API for policies and jobs
This moves the SQL definitions for policy and job APIs to their separate files to improve code structure. Previously, all of these user-visible API functions were located in the `bgw_scheduler.sql` file, mixing internal and public functions and APIs. To improved the structure, all API-related functions are now located in their own distinct SQL files that have the `_api.sql` file ending. Internal policy functions have been moved to `policy_internal.sql`.
- Loading branch information
Showing
5 changed files
with
105 additions
and
93 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,30 @@ | ||
-- This file and its contents are licensed under the Apache License 2.0. | ||
-- Please see the included NOTICE for copyright information and | ||
-- LICENSE-APACHE for a copy of the license. | ||
|
||
CREATE OR REPLACE FUNCTION add_job( | ||
proc REGPROC, | ||
schedule_interval INTERVAL, | ||
config JSONB DEFAULT NULL, | ||
initial_start TIMESTAMPTZ DEFAULT NULL, | ||
scheduled BOOL DEFAULT true | ||
) RETURNS INTEGER AS '@MODULE_PATHNAME@', 'ts_job_add' LANGUAGE C VOLATILE; | ||
|
||
CREATE OR REPLACE FUNCTION delete_job(job_id INTEGER) RETURNS VOID AS '@MODULE_PATHNAME@', 'ts_job_delete' LANGUAGE C VOLATILE STRICT; | ||
CREATE OR REPLACE PROCEDURE run_job(job_id INTEGER) AS '@MODULE_PATHNAME@', 'ts_job_run' LANGUAGE C; | ||
|
||
-- Returns the updated job schedule values | ||
CREATE OR REPLACE FUNCTION alter_job( | ||
job_id INTEGER, | ||
schedule_interval INTERVAL = NULL, | ||
max_runtime INTERVAL = NULL, | ||
max_retries INTEGER = NULL, | ||
retry_period INTERVAL = NULL, | ||
scheduled BOOL = NULL, | ||
config JSONB = NULL, | ||
next_start TIMESTAMPTZ = NULL, | ||
if_exists BOOL = FALSE | ||
) | ||
RETURNS TABLE (job_id INTEGER, schedule_interval INTERVAL, max_runtime INTERVAL, max_retries INTEGER, retry_period INTERVAL, scheduled BOOL, config JSONB, next_start TIMESTAMPTZ) | ||
AS '@MODULE_PATHNAME@', 'ts_job_alter' | ||
LANGUAGE C VOLATILE; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,53 @@ | ||
-- This file and its contents are licensed under the Apache License 2.0. | ||
-- Please see the included NOTICE for copyright information and | ||
-- LICENSE-APACHE for a copy of the license. | ||
|
||
-- Add a retention policy to a hypertable or continuous aggregate. | ||
-- The retention_window (typically an INTERVAL) determines the | ||
-- window beyond which data is dropped at the time | ||
-- of execution of the policy (e.g., '1 week'). Note that the retention | ||
-- window will always align with chunk boundaries, thus the window | ||
-- might be larger than the given one, but never smaller. In other | ||
-- words, some data beyond the retention window | ||
-- might be kept, but data within the window will never be deleted. | ||
CREATE OR REPLACE FUNCTION add_retention_policy( | ||
hypertable REGCLASS, | ||
retention_window "any", | ||
if_not_exists BOOL = false | ||
) | ||
RETURNS INTEGER AS '@MODULE_PATHNAME@', 'ts_policy_retention_add' | ||
LANGUAGE C VOLATILE STRICT; | ||
|
||
CREATE OR REPLACE FUNCTION remove_retention_policy(hypertable REGCLASS, if_exists BOOL = false) RETURNS VOID | ||
AS '@MODULE_PATHNAME@', 'ts_policy_retention_remove' | ||
LANGUAGE C VOLATILE STRICT; | ||
|
||
/* reorder policy */ | ||
CREATE OR REPLACE FUNCTION add_reorder_policy(hypertable REGCLASS, index_name NAME, if_not_exists BOOL = false) RETURNS INTEGER | ||
AS '@MODULE_PATHNAME@', 'ts_policy_reorder_add' | ||
LANGUAGE C VOLATILE STRICT; | ||
|
||
CREATE OR REPLACE FUNCTION remove_reorder_policy(hypertable REGCLASS, if_exists BOOL = false) RETURNS VOID | ||
AS '@MODULE_PATHNAME@', 'ts_policy_reorder_remove' | ||
LANGUAGE C VOLATILE STRICT; | ||
|
||
/* compression policy */ | ||
CREATE OR REPLACE FUNCTION add_compression_policy(hypertable REGCLASS, older_than "any", if_not_exists BOOL = false) | ||
RETURNS INTEGER | ||
AS '@MODULE_PATHNAME@', 'ts_policy_compression_add' | ||
LANGUAGE C VOLATILE STRICT; | ||
|
||
CREATE OR REPLACE FUNCTION remove_compression_policy(hypertable REGCLASS, if_exists BOOL = false) RETURNS BOOL | ||
AS '@MODULE_PATHNAME@', 'ts_policy_compression_remove' | ||
LANGUAGE C VOLATILE STRICT; | ||
|
||
/* continuous aggregates policy */ | ||
CREATE OR REPLACE FUNCTION add_continuous_aggregate_policy(continuous_aggregate REGCLASS, start_interval "any", end_interval "any", schedule_interval INTERVAL, if_not_exists BOOL = false) | ||
RETURNS INTEGER | ||
AS '@MODULE_PATHNAME@', 'ts_policy_refresh_cagg_add' | ||
LANGUAGE C VOLATILE; | ||
|
||
CREATE OR REPLACE FUNCTION remove_continuous_aggregate_policy(continuous_aggregate REGCLASS, if_not_exists BOOL = false) | ||
RETURNS VOID | ||
AS '@MODULE_PATHNAME@', 'ts_policy_refresh_cagg_remove' | ||
LANGUAGE C VOLATILE STRICT; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
-- This file and its contents are licensed under the Apache License 2.0. | ||
-- Please see the included NOTICE for copyright information and | ||
-- LICENSE-APACHE for a copy of the license. | ||
|
||
CREATE OR REPLACE PROCEDURE _timescaledb_internal.policy_retention(job_id INTEGER, config JSONB) | ||
AS '@MODULE_PATHNAME@', 'ts_policy_retention_proc' | ||
LANGUAGE C; | ||
|
||
CREATE OR REPLACE PROCEDURE _timescaledb_internal.policy_reorder(job_id INTEGER, config JSONB) | ||
AS '@MODULE_PATHNAME@', 'ts_policy_reorder_proc' | ||
LANGUAGE C; | ||
|
||
CREATE OR REPLACE PROCEDURE _timescaledb_internal.policy_compression(job_id INTEGER, config JSONB) | ||
AS '@MODULE_PATHNAME@', 'ts_policy_compression_proc' | ||
LANGUAGE C; | ||
|
||
CREATE OR REPLACE PROCEDURE _timescaledb_internal.policy_refresh_continuous_aggregate(job_id INTEGER, config JSONB) | ||
AS '@MODULE_PATHNAME@', 'ts_policy_refresh_cagg_proc' | ||
LANGUAGE C; |