5cff0c8a2d
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>
89 lines
3.2 KiB
Diff
89 lines
3.2 KiB
Diff
From 8cf647f2995afbd594d67abb1e6556b97096a1c6 Mon Sep 17 00:00:00 2001
|
|
From: Sven Klemm <sven@timescale.com>
|
|
Date: Thu, 24 Sep 2020 04:42:45 +0200
|
|
Subject: [PATCH] Adjust hypertable expansion to PG13 changes
|
|
|
|
PG13 merges setup_append_rel_array into setup_simple_rel_arrays
|
|
which we use to build the append_rel_array.
|
|
|
|
https://github.com/postgres/postgres/commit/1661a40505
|
|
|
|
Signed-off-by: Maxim Kochetkov <fido_max@inbox.ru>
|
|
Fetch from: https://github.com/timescale/timescaledb/pull/2735/commits/e6e2711d8e00958cb0a35c23f4e81a75f273113a.patch
|
|
---
|
|
src/plan_expand_hypertable.c | 30 ++++++++++++++++++++++++++++--
|
|
1 file changed, 28 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/plan_expand_hypertable.c b/src/plan_expand_hypertable.c
|
|
index 2b99c93b..4baa1b4c 100644
|
|
--- a/src/plan_expand_hypertable.c
|
|
+++ b/src/plan_expand_hypertable.c
|
|
@@ -95,6 +95,24 @@ is_time_bucket_function(Expr *node)
|
|
return false;
|
|
}
|
|
|
|
+#if PG13_GE
|
|
+/* PG13 merged setup_append_rel_array with setup_simple_rel_arrays */
|
|
+static void
|
|
+setup_append_rel_array(PlannerInfo *root)
|
|
+{
|
|
+ root->append_rel_array =
|
|
+ repalloc(root->append_rel_array, root->simple_rel_array_size * sizeof(AppendRelInfo *));
|
|
+ ListCell *lc;
|
|
+ foreach (lc, root->append_rel_list)
|
|
+ {
|
|
+ AppendRelInfo *appinfo = lfirst_node(AppendRelInfo, lc);
|
|
+ int child_relid = appinfo->child_relid;
|
|
+
|
|
+ root->append_rel_array[child_relid] = appinfo;
|
|
+ }
|
|
+}
|
|
+#endif
|
|
+
|
|
/*
|
|
* Pre-check to determine if an expression is eligible for constification.
|
|
* A more thorough check is in constify_timestamptz_op_interval.
|
|
@@ -1146,7 +1164,6 @@ ts_plan_expand_hypertable_chunks(Hypertable *ht, PlannerInfo *root, RelOptInfo *
|
|
.join_conditions = NIL,
|
|
.propagate_conditions = NIL,
|
|
};
|
|
- Size old_rel_array_len;
|
|
Index first_chunk_index = 0;
|
|
#if PG12_GE
|
|
Index i;
|
|
@@ -1178,6 +1195,11 @@ ts_plan_expand_hypertable_chunks(Hypertable *ht, PlannerInfo *root, RelOptInfo *
|
|
propagate_join_quals(root, rel, &ctx);
|
|
|
|
inh_oids = get_chunk_oids(&ctx, root, rel, ht);
|
|
+
|
|
+ /* nothing to do here if we have no chunks and no data nodes */
|
|
+ if (list_length(inh_oids) + list_length(ht->data_nodes) == 0)
|
|
+ return;
|
|
+
|
|
oldrelation = table_open(parent_oid, NoLock);
|
|
|
|
/*
|
|
@@ -1185,7 +1207,10 @@ ts_plan_expand_hypertable_chunks(Hypertable *ht, PlannerInfo *root, RelOptInfo *
|
|
* children to them. We include potential data node rels we might need to
|
|
* create in case of a distributed hypertable.
|
|
*/
|
|
- old_rel_array_len = root->simple_rel_array_size;
|
|
+#if PG12_GE
|
|
+ expand_planner_arrays(root, list_length(inh_oids) + list_length(ht->data_nodes));
|
|
+#else
|
|
+ Size old_rel_array_len = root->simple_rel_array_size;
|
|
root->simple_rel_array_size += (list_length(inh_oids) + list_length(ht->data_nodes));
|
|
root->simple_rel_array =
|
|
repalloc(root->simple_rel_array, root->simple_rel_array_size * sizeof(RelOptInfo *));
|
|
@@ -1200,6 +1225,7 @@ ts_plan_expand_hypertable_chunks(Hypertable *ht, PlannerInfo *root, RelOptInfo *
|
|
memset(root->simple_rte_array + old_rel_array_len,
|
|
0,
|
|
list_length(inh_oids) * sizeof(*root->simple_rte_array));
|
|
+#endif
|
|
|
|
/* Adding partition info will make PostgreSQL consider the inheritance
|
|
* children as part of a partitioned relation. This will enable
|
|
--
|
|
2.29.2
|
|
|