kumquat-buildroot/package/timescaledb/0005-Adjust-code-to-PG13-list-sort-changes.patch
Maxim Kochetkov 5cff0c8a2d package/timescaledb: bump to version 2.0.0
Add patches needed for compatibility with Postgresql 13, which are
still under review upstream.

Debug builds (BR2_ENABLE_DEBUG=y) fails because of warnings, so
disable WARNINGS_AS_ERRORS.

Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru>
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
2021-01-21 22:48:16 +01:00

60 lines
1.9 KiB
Diff

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