@pgpm/jobs 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (115) hide show
  1. package/LICENSE +22 -0
  2. package/Makefile +6 -0
  3. package/README.md +5 -0
  4. package/__tests__/__snapshots__/jobs.test.ts.snap +16 -0
  5. package/__tests__/jobs.test.ts +139 -0
  6. package/deploy/schemas/app_jobs/helpers/json_build_object_apply.sql +28 -0
  7. package/deploy/schemas/app_jobs/procedures/add_job.sql +65 -0
  8. package/deploy/schemas/app_jobs/procedures/add_scheduled_job.sql +66 -0
  9. package/deploy/schemas/app_jobs/procedures/complete_job.sql +32 -0
  10. package/deploy/schemas/app_jobs/procedures/complete_jobs.sql +19 -0
  11. package/deploy/schemas/app_jobs/procedures/do_notify.sql +16 -0
  12. package/deploy/schemas/app_jobs/procedures/fail_job.sql +41 -0
  13. package/deploy/schemas/app_jobs/procedures/get_job.sql +77 -0
  14. package/deploy/schemas/app_jobs/procedures/get_scheduled_job.sql +46 -0
  15. package/deploy/schemas/app_jobs/procedures/permanently_fail_jobs.sql +24 -0
  16. package/deploy/schemas/app_jobs/procedures/release_jobs.sql +34 -0
  17. package/deploy/schemas/app_jobs/procedures/release_scheduled_jobs.sql +26 -0
  18. package/deploy/schemas/app_jobs/procedures/reschedule_jobs.sql +26 -0
  19. package/deploy/schemas/app_jobs/procedures/run_scheduled_job.sql +67 -0
  20. package/deploy/schemas/app_jobs/schema.sql +7 -0
  21. package/deploy/schemas/app_jobs/tables/job_queues/grants/grant_select_insert_update_delete_to_administrator.sql +12 -0
  22. package/deploy/schemas/app_jobs/tables/job_queues/indexes/job_queues_locked_by_idx.sql +8 -0
  23. package/deploy/schemas/app_jobs/tables/job_queues/table.sql +12 -0
  24. package/deploy/schemas/app_jobs/tables/jobs/grants/grant_select_insert_update_delete_to_administrator.sql +12 -0
  25. package/deploy/schemas/app_jobs/tables/jobs/indexes/jobs_locked_by_idx.sql +8 -0
  26. package/deploy/schemas/app_jobs/tables/jobs/indexes/priority_run_at_id_idx.sql +8 -0
  27. package/deploy/schemas/app_jobs/tables/jobs/table.sql +26 -0
  28. package/deploy/schemas/app_jobs/tables/jobs/triggers/decrease_job_queue_count.sql +42 -0
  29. package/deploy/schemas/app_jobs/tables/jobs/triggers/increase_job_queue_count.sql +32 -0
  30. package/deploy/schemas/app_jobs/tables/jobs/triggers/notify_worker.sql +13 -0
  31. package/deploy/schemas/app_jobs/tables/jobs/triggers/timestamps.sql +20 -0
  32. package/deploy/schemas/app_jobs/tables/scheduled_jobs/grants/grant_select_insert_update_delete_to_administrator.sql +12 -0
  33. package/deploy/schemas/app_jobs/tables/scheduled_jobs/indexes/scheduled_jobs_locked_by_idx.sql +8 -0
  34. package/deploy/schemas/app_jobs/tables/scheduled_jobs/indexes/scheduled_jobs_priority_id_idx.sql +8 -0
  35. package/deploy/schemas/app_jobs/tables/scheduled_jobs/table.sql +26 -0
  36. package/deploy/schemas/app_jobs/tables/scheduled_jobs/triggers/notify_scheduled_job.sql +12 -0
  37. package/deploy/schemas/app_jobs/triggers/tg_add_job_with_fields.sql +50 -0
  38. package/deploy/schemas/app_jobs/triggers/tg_add_job_with_row.sql +26 -0
  39. package/deploy/schemas/app_jobs/triggers/tg_add_job_with_row_id.sql +26 -0
  40. package/deploy/schemas/app_jobs/triggers/tg_update_timestamps.sql +21 -0
  41. package/jest.config.js +15 -0
  42. package/launchql-jobs.control +8 -0
  43. package/launchql.plan +38 -0
  44. package/package.json +29 -0
  45. package/revert/schemas/app_jobs/helpers/json_build_object_apply.sql +7 -0
  46. package/revert/schemas/app_jobs/procedures/add_job.sql +7 -0
  47. package/revert/schemas/app_jobs/procedures/add_scheduled_job.sql +7 -0
  48. package/revert/schemas/app_jobs/procedures/complete_job.sql +7 -0
  49. package/revert/schemas/app_jobs/procedures/complete_jobs.sql +7 -0
  50. package/revert/schemas/app_jobs/procedures/do_notify.sql +7 -0
  51. package/revert/schemas/app_jobs/procedures/fail_job.sql +7 -0
  52. package/revert/schemas/app_jobs/procedures/get_job.sql +7 -0
  53. package/revert/schemas/app_jobs/procedures/get_scheduled_job.sql +7 -0
  54. package/revert/schemas/app_jobs/procedures/permanently_fail_jobs.sql +7 -0
  55. package/revert/schemas/app_jobs/procedures/release_jobs.sql +7 -0
  56. package/revert/schemas/app_jobs/procedures/release_scheduled_jobs.sql +7 -0
  57. package/revert/schemas/app_jobs/procedures/reschedule_jobs.sql +7 -0
  58. package/revert/schemas/app_jobs/procedures/run_scheduled_job.sql +7 -0
  59. package/revert/schemas/app_jobs/schema.sql +7 -0
  60. package/revert/schemas/app_jobs/tables/job_queues/grants/grant_select_insert_update_delete_to_administrator.sql +7 -0
  61. package/revert/schemas/app_jobs/tables/job_queues/indexes/job_queues_locked_by_idx.sql +7 -0
  62. package/revert/schemas/app_jobs/tables/job_queues/table.sql +7 -0
  63. package/revert/schemas/app_jobs/tables/jobs/grants/grant_select_insert_update_delete_to_administrator.sql +7 -0
  64. package/revert/schemas/app_jobs/tables/jobs/indexes/jobs_locked_by_idx.sql +7 -0
  65. package/revert/schemas/app_jobs/tables/jobs/indexes/priority_run_at_id_idx.sql +7 -0
  66. package/revert/schemas/app_jobs/tables/jobs/table.sql +7 -0
  67. package/revert/schemas/app_jobs/tables/jobs/triggers/decrease_job_queue_count.sql +7 -0
  68. package/revert/schemas/app_jobs/tables/jobs/triggers/increase_job_queue_count.sql +7 -0
  69. package/revert/schemas/app_jobs/tables/jobs/triggers/notify_worker.sql +5 -0
  70. package/revert/schemas/app_jobs/tables/jobs/triggers/timestamps.sql +9 -0
  71. package/revert/schemas/app_jobs/tables/scheduled_jobs/grants/grant_select_insert_update_delete_to_administrator.sql +7 -0
  72. package/revert/schemas/app_jobs/tables/scheduled_jobs/indexes/scheduled_jobs_locked_by_idx.sql +7 -0
  73. package/revert/schemas/app_jobs/tables/scheduled_jobs/indexes/scheduled_jobs_priority_id_idx.sql +7 -0
  74. package/revert/schemas/app_jobs/tables/scheduled_jobs/table.sql +7 -0
  75. package/revert/schemas/app_jobs/tables/scheduled_jobs/triggers/notify_scheduled_job.sql +8 -0
  76. package/revert/schemas/app_jobs/triggers/tg_add_job_with_fields.sql +7 -0
  77. package/revert/schemas/app_jobs/triggers/tg_add_job_with_row.sql +7 -0
  78. package/revert/schemas/app_jobs/triggers/tg_add_job_with_row_id.sql +5 -0
  79. package/revert/schemas/app_jobs/triggers/tg_update_timestamps.sql +7 -0
  80. package/sql/launchql-jobs--0.4.6.sql +658 -0
  81. package/verify/schemas/app_jobs/helpers/json_build_object_apply.sql +7 -0
  82. package/verify/schemas/app_jobs/procedures/add_job.sql +7 -0
  83. package/verify/schemas/app_jobs/procedures/add_scheduled_job.sql +7 -0
  84. package/verify/schemas/app_jobs/procedures/complete_job.sql +7 -0
  85. package/verify/schemas/app_jobs/procedures/complete_jobs.sql +7 -0
  86. package/verify/schemas/app_jobs/procedures/do_notify.sql +7 -0
  87. package/verify/schemas/app_jobs/procedures/fail_job.sql +7 -0
  88. package/verify/schemas/app_jobs/procedures/get_job.sql +7 -0
  89. package/verify/schemas/app_jobs/procedures/get_scheduled_job.sql +7 -0
  90. package/verify/schemas/app_jobs/procedures/permanently_fail_jobs.sql +7 -0
  91. package/verify/schemas/app_jobs/procedures/release_jobs.sql +7 -0
  92. package/verify/schemas/app_jobs/procedures/release_scheduled_jobs.sql +7 -0
  93. package/verify/schemas/app_jobs/procedures/reschedule_jobs.sql +7 -0
  94. package/verify/schemas/app_jobs/procedures/run_scheduled_job.sql +7 -0
  95. package/verify/schemas/app_jobs/schema.sql +7 -0
  96. package/verify/schemas/app_jobs/tables/job_queues/grants/grant_select_insert_update_delete_to_administrator.sql +10 -0
  97. package/verify/schemas/app_jobs/tables/job_queues/indexes/job_queues_locked_by_idx.sql +7 -0
  98. package/verify/schemas/app_jobs/tables/job_queues/table.sql +7 -0
  99. package/verify/schemas/app_jobs/tables/jobs/grants/grant_select_insert_update_delete_to_administrator.sql +10 -0
  100. package/verify/schemas/app_jobs/tables/jobs/indexes/jobs_locked_by_idx.sql +7 -0
  101. package/verify/schemas/app_jobs/tables/jobs/indexes/priority_run_at_id_idx.sql +7 -0
  102. package/verify/schemas/app_jobs/tables/jobs/table.sql +7 -0
  103. package/verify/schemas/app_jobs/tables/jobs/triggers/decrease_job_queue_count.sql +10 -0
  104. package/verify/schemas/app_jobs/tables/jobs/triggers/increase_job_queue_count.sql +10 -0
  105. package/verify/schemas/app_jobs/tables/jobs/triggers/notify_worker.sql +6 -0
  106. package/verify/schemas/app_jobs/tables/jobs/triggers/timestamps.sql +16 -0
  107. package/verify/schemas/app_jobs/tables/scheduled_jobs/grants/grant_select_insert_update_delete_to_administrator.sql +10 -0
  108. package/verify/schemas/app_jobs/tables/scheduled_jobs/indexes/scheduled_jobs_locked_by_idx.sql +7 -0
  109. package/verify/schemas/app_jobs/tables/scheduled_jobs/indexes/scheduled_jobs_priority_id_idx.sql +7 -0
  110. package/verify/schemas/app_jobs/tables/scheduled_jobs/table.sql +7 -0
  111. package/verify/schemas/app_jobs/tables/scheduled_jobs/triggers/notify_scheduled_job.sql +8 -0
  112. package/verify/schemas/app_jobs/triggers/tg_add_job_with_fields.sql +7 -0
  113. package/verify/schemas/app_jobs/triggers/tg_add_job_with_row.sql +7 -0
  114. package/verify/schemas/app_jobs/triggers/tg_add_job_with_row_id.sql +6 -0
  115. package/verify/schemas/app_jobs/triggers/tg_update_timestamps.sql +7 -0
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/procedures/get_job on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_function ('app_jobs.get_job');
6
+
7
+ ROLLBACK;
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/procedures/get_scheduled_job on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_function ('app_jobs.get_scheduled_job');
6
+
7
+ ROLLBACK;
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/procedures/permanently_fail_jobs on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_function ('app_jobs.permanently_fail_jobs');
6
+
7
+ ROLLBACK;
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/procedures/release_jobs on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_function ('app_jobs.release_jobs');
6
+
7
+ ROLLBACK;
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/procedures/release_scheduled_jobs on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_function ('app_jobs.release_scheduled_jobs');
6
+
7
+ ROLLBACK;
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/procedures/reschedule_jobs on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_function ('app_jobs.reschedule_jobs');
6
+
7
+ ROLLBACK;
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/procedures/run_scheduled_job on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_function ('app_jobs.run_scheduled_job');
6
+
7
+ ROLLBACK;
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/schema on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_schema ('app_jobs');
6
+
7
+ ROLLBACK;
@@ -0,0 +1,10 @@
1
+ -- Verify schemas/app_jobs/tables/job_queues/grants/grant_select_insert_update_delete_to_administrator on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT has_table_privilege('administrator', 'app_jobs.job_queues', 'SELECT');
6
+ SELECT has_table_privilege('administrator', 'app_jobs.job_queues', 'INSERT');
7
+ SELECT has_table_privilege('administrator', 'app_jobs.job_queues', 'UPDATE');
8
+ SELECT has_table_privilege('administrator', 'app_jobs.job_queues', 'DELETE');
9
+
10
+ ROLLBACK;
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/tables/job_queues/indexes/job_queues_locked_by_idx on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_index ('app_jobs.job_queues', 'job_queues_locked_by_idx');
6
+
7
+ ROLLBACK;
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/tables/job_queues/table on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_table ('app_jobs.job_queues');
6
+
7
+ ROLLBACK;
@@ -0,0 +1,10 @@
1
+ -- Verify schemas/app_jobs/tables/jobs/grants/grant_select_insert_update_delete_to_administrator on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT has_table_privilege('administrator', 'app_jobs.jobs', 'SELECT');
6
+ SELECT has_table_privilege('administrator', 'app_jobs.jobs', 'INSERT');
7
+ SELECT has_table_privilege('administrator', 'app_jobs.jobs', 'UPDATE');
8
+ SELECT has_table_privilege('administrator', 'app_jobs.jobs', 'DELETE');
9
+
10
+ ROLLBACK;
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/tables/jobs/indexes/jobs_locked_by_idx on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_index ('app_jobs.jobs', 'jobs_locked_by_idx');
6
+
7
+ ROLLBACK;
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/tables/jobs/indexes/priority_run_at_id_idx on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_index ('app_jobs.jobs', 'priority_run_at_id_idx');
6
+
7
+ ROLLBACK;
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/tables/jobs/table on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_table ('app_jobs.jobs');
6
+
7
+ ROLLBACK;
@@ -0,0 +1,10 @@
1
+ -- Verify schemas/app_jobs/tables/jobs/triggers/decrease_job_queue_count on pg
2
+ BEGIN;
3
+ SELECT
4
+ verify_function ('app_jobs.tg_decrease_job_queue_count');
5
+ SELECT
6
+ verify_trigger ('app_jobs.decrease_job_queue_count_on_delete');
7
+ SELECT
8
+ verify_trigger ('app_jobs.decrease_job_queue_count_on_update');
9
+ ROLLBACK;
10
+
@@ -0,0 +1,10 @@
1
+ -- Verify schemas/app_jobs/tables/jobs/triggers/increase_job_queue_count on pg
2
+ BEGIN;
3
+ SELECT
4
+ verify_function ('app_jobs.tg_increase_job_queue_count');
5
+ SELECT
6
+ verify_trigger ('app_jobs._500_increase_job_queue_count_on_insert');
7
+ SELECT
8
+ verify_trigger ('app_jobs._500_increase_job_queue_count_on_update');
9
+ ROLLBACK;
10
+
@@ -0,0 +1,6 @@
1
+ -- Verify schemas/app_jobs/tables/jobs/triggers/notify_worker on pg
2
+ BEGIN;
3
+ SELECT
4
+ verify_trigger ('app_jobs._900_notify_worker');
5
+ ROLLBACK;
6
+
@@ -0,0 +1,16 @@
1
+ -- Verify schemas/app_jobs/tables/jobs/triggers/timestamps on pg
2
+ BEGIN;
3
+ SELECT
4
+ created_at
5
+ FROM
6
+ app_jobs.jobs
7
+ LIMIT 1;
8
+ SELECT
9
+ updated_at
10
+ FROM
11
+ app_jobs.jobs
12
+ LIMIT 1;
13
+ SELECT
14
+ verify_trigger ('app_jobs._100_update_jobs_modtime_tg');
15
+ ROLLBACK;
16
+
@@ -0,0 +1,10 @@
1
+ -- Verify schemas/app_jobs/tables/scheduled_jobs/grants/grant_select_insert_update_delete_to_administrator on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT has_table_privilege('administrator', 'app_jobs.scheduled_jobs', 'SELECT');
6
+ SELECT has_table_privilege('administrator', 'app_jobs.scheduled_jobs', 'INSERT');
7
+ SELECT has_table_privilege('administrator', 'app_jobs.scheduled_jobs', 'UPDATE');
8
+ SELECT has_table_privilege('administrator', 'app_jobs.scheduled_jobs', 'DELETE');
9
+
10
+ ROLLBACK;
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/tables/scheduled_jobs/indexes/scheduled_jobs_locked_by_idx on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_index ('app_jobs.scheduled_jobs', 'scheduled_jobs_locked_by_idx');
6
+
7
+ ROLLBACK;
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/tables/scheduled_jobs/indexes/scheduled_jobs_priority_id_idx on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_index ('app_jobs.scheduled_jobs', 'scheduled_jobs_priority_id_idx');
6
+
7
+ ROLLBACK;
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/tables/scheduled_jobs/table on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_table ('app_jobs.scheduled_jobs');
6
+
7
+ ROLLBACK;
@@ -0,0 +1,8 @@
1
+ -- Verify schemas/app_jobs/tables/scheduled_jobs/triggers/notify_scheduled_job on pg
2
+
3
+ BEGIN;
4
+
5
+
6
+ SELECT verify_trigger ('app_jobs._900_notify_scheduled_job');
7
+
8
+ ROLLBACK;
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/triggers/tg_add_job_with_fields on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_function ('app_jobs.trigger_job_with_fields');
6
+
7
+ ROLLBACK;
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/triggers/tg_add_job_with_row on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_function ('app_jobs.tg_add_job_with_row');
6
+
7
+ ROLLBACK;
@@ -0,0 +1,6 @@
1
+ -- Verify schemas/app_jobs/triggers/tg_add_job_with_row_id on pg
2
+ BEGIN;
3
+ SELECT
4
+ verify_function ('app_jobs.tg_add_job_with_row_id');
5
+ ROLLBACK;
6
+
@@ -0,0 +1,7 @@
1
+ -- Verify schemas/app_jobs/triggers/tg_update_timestamps on pg
2
+
3
+ BEGIN;
4
+
5
+ SELECT verify_function ('app_jobs.tg_update_timestamps');
6
+
7
+ ROLLBACK;