1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- From 4a149cb833dbb45507cd52e63707311e9642587c Mon Sep 17 00:00:00 2001
- From: Sven Klemm <sven@timescale.com>
- Date: Sat, 19 Sep 2020 23:20:37 +0200
- Subject: [PATCH] Adjust code to PG13 list sort changes
- PG13 changes the name of the list sorting function from list_qsort
- to list_sort. Additionally PG13 does in-place sort.
- https://github.com/postgres/postgres/commit/569ed7f483
- Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru>
- Fetch from: https://github.com/timescale/timescaledb/commit/13d8aac33b6fc5104c8ad1da816dc0d009fc13a7.patch
- ---
- src/bgw/scheduler.c | 15 ++++++++++++++-
- 1 file changed, 14 insertions(+), 1 deletion(-)
- diff --git a/src/bgw/scheduler.c b/src/bgw/scheduler.c
- index 2630ff9f..b9d1aa38 100644
- --- a/src/bgw/scheduler.c
- +++ b/src/bgw/scheduler.c
- @@ -530,10 +530,15 @@ ts_populate_scheduled_job_tuple(ScheduledBgwJob *sjob, Datum *values)
- #endif
-
- static int
- +#if PG13_LT
- cmp_next_start(const void *left, const void *right)
- {
- const ListCell *left_cell = *((ListCell **) left);
- const ListCell *right_cell = *((ListCell **) right);
- +#else
- +cmp_next_start(const ListCell *left_cell, const ListCell *right_cell)
- +{
- +#endif
- ScheduledBgwJob *left_sjob = lfirst(left_cell);
- ScheduledBgwJob *right_sjob = lfirst(right_cell);
-
- @@ -549,10 +554,18 @@ cmp_next_start(const void *left, const void *right)
- static void
- start_scheduled_jobs(register_background_worker_callback_type bgw_register)
- {
- + List *ordered_scheduled_jobs;
- ListCell *lc;
- Assert(CurrentMemoryContext == scratch_mctx);
- +
- /* Order jobs by increasing next_start */
- - List *ordered_scheduled_jobs = list_qsort(scheduled_jobs, cmp_next_start);
- +#if PG13_LT
- + ordered_scheduled_jobs = list_qsort(scheduled_jobs, cmp_next_start);
- +#else
- + /* PG13 does in-place sort */
- + ordered_scheduled_jobs = scheduled_jobs;
- + list_sort(ordered_scheduled_jobs, cmp_next_start);
- +#endif
-
- foreach (lc, ordered_scheduled_jobs)
- {
- --
- 2.29.2
|