v27-0003-renage-get_merged_range_bounds-args.patch

application/octet-stream

Filename: v27-0003-renage-get_merged_range_bounds-args.patch
Type: application/octet-stream
Part: 1
Message: Re: [HACKERS] advanced partition matching algorithm for partition-wise join

Patch

Same data as JSON: GET /api/v1/attachments/:id/patch the parsed metadata as JSON — format, series position, per-file stats; never the diff bytes. API reference →
Format: format-patch
Series: patch v27-0003
Subject: renage-get_merged_range_bounds-args
File+
src/backend/partitioning/partbounds.c 24 23
From 3674b909453e1f2cd85a4eff10b5279adaf79fe1 Mon Sep 17 00:00:00 2001
From: Amul Sul <amul.sul@enterprisedb.com>
Date: Thu, 14 Nov 2019 06:44:17 -0500
Subject: [PATCH 3/5] renage-get_merged_range_bounds-args

---
 src/backend/partitioning/partbounds.c | 47 ++++++++++++++-------------
 1 file changed, 24 insertions(+), 23 deletions(-)

diff --git a/src/backend/partitioning/partbounds.c b/src/backend/partitioning/partbounds.c
index 4aebc71ebb9..269b5c1f52f 100644
--- a/src/backend/partitioning/partbounds.c
+++ b/src/backend/partitioning/partbounds.c
@@ -183,12 +183,13 @@ static bool compare_range_partitions(int partnatts, FmgrInfo *partsupfuncs,
 						 PartitionRangeBound *lower_bound2,
 						 PartitionRangeBound *upper_bound2,
 						 int *ub_cmpval, int *lb_cmpval);
-static void get_merged_range_bounds(int partnatts, FmgrInfo *partsupfuncs,
+static void
+get_merged_range_bounds(int partnatts, FmgrInfo *partsupfuncs,
 						Oid *partcollations, JoinType jointype,
-						PartitionRangeBound *left_lb,
-						PartitionRangeBound *left_ub,
-						PartitionRangeBound *right_lb,
-						PartitionRangeBound *right_ub,
+						PartitionRangeBound *outer_lb,
+						PartitionRangeBound *outer_ub,
+						PartitionRangeBound *inner_lb,
+						PartitionRangeBound *inner_ub,
 						PartitionRangeBound *merged_lb,
 						PartitionRangeBound *merged_ub);
 static void add_merged_range_bounds(int partnatts, FmgrInfo *partsupfuncs,
@@ -3298,10 +3299,10 @@ compare_range_partitions(int partnatts, FmgrInfo *partsupfuncs,
 static void
 get_merged_range_bounds(int partnatts, FmgrInfo *partsupfuncs,
 						Oid *partcollations, JoinType jointype,
-						PartitionRangeBound *left_lb,
-						PartitionRangeBound *left_ub,
-						PartitionRangeBound *right_lb,
-						PartitionRangeBound *right_ub,
+						PartitionRangeBound *outer_lb,
+						PartitionRangeBound *outer_ub,
+						PartitionRangeBound *inner_lb,
+						PartitionRangeBound *inner_ub,
 						PartitionRangeBound *merged_lb,
 						PartitionRangeBound *merged_ub)
 {
@@ -3316,37 +3317,37 @@ get_merged_range_bounds(int partnatts, FmgrInfo *partsupfuncs,
 	{
 		case JOIN_LEFT:
 		case JOIN_ANTI:
-			*merged_ub = *left_ub;
-			*merged_lb = *left_lb;
+			*merged_ub = *outer_ub;
+			*merged_lb = *outer_lb;
 			break;
 
 		case JOIN_INNER:
 		case JOIN_SEMI:
 			if (compare_range_bounds(partnatts, partsupfuncs, partcollations,
-									 left_ub, right_ub) < 0)
-				*merged_ub = *left_ub;
+									 outer_ub, inner_ub) < 0)
+				*merged_ub = *outer_ub;
 			else
-				*merged_ub = *right_ub;
+				*merged_ub = *inner_ub;
 
 			if (compare_range_bounds(partnatts, partsupfuncs, partcollations,
-									 left_lb, right_lb) > 0)
-				*merged_lb = *left_lb;
+									 outer_lb, inner_lb) > 0)
+				*merged_lb = *outer_lb;
 			else
-				*merged_lb = *right_lb;
+				*merged_lb = *inner_lb;
 			break;
 
 		case JOIN_FULL:
 			if (compare_range_bounds(partnatts, partsupfuncs, partcollations,
-									 left_ub, right_ub) > 0)
-				*merged_ub = *left_ub;
+									 outer_ub, inner_ub) > 0)
+				*merged_ub = *outer_ub;
 			else
-				*merged_ub = *right_ub;
+				*merged_ub = *inner_ub;
 
 			if (compare_range_bounds(partnatts, partsupfuncs, partcollations,
-									 left_lb, right_lb) < 0)
-				*merged_lb = *left_lb;
+									 outer_lb, inner_lb) < 0)
+				*merged_lb = *outer_lb;
 			else
-				*merged_lb = *right_lb;
+				*merged_lb = *inner_lb;
 			break;
 
 		default:
-- 
2.18.0