From b47eeaaef16377bb55ba88ef78d05655703ab658 Mon Sep 17 00:00:00 2001
From: Stepan Neretin <sncfmgg@gmail.com>
Date: Tue, 11 Jun 2024 12:39:03 +0700
Subject: [PATCH v42 10/12] Implement Sorting Template for float8 Arrays

Introduce a sorting template for float8 arrays in geo_spgist.c to boost performance.
---
 src/backend/utils/adt/geo_spgist.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/src/backend/utils/adt/geo_spgist.c b/src/backend/utils/adt/geo_spgist.c
index 51378dca5b..cbd45b3933 100644
--- a/src/backend/utils/adt/geo_spgist.c
+++ b/src/backend/utils/adt/geo_spgist.c
@@ -100,6 +100,17 @@ compareDoubles(const void *a, const void *b)
 	return (x > y) ? 1 : -1;
 }
 
+ /*
+ * Instantiating a Sorting Template for float8 Arrays
+ * enhancing speed performance.
+ */
+#define ST_SORT sort_float8_arr
+#define ST_ELEMENT_TYPE float8
+#define ST_COMPARE(a, b) compareDoubles(a, b)
+#define ST_SCOPE static
+#define ST_DEFINE
+#include <lib/sort_template.h>
+
 typedef struct
 {
 	float8		low;
-- 
2.34.1

