From cd7206b2abba74fd6e23fcfcf566afdb83ee613d Mon Sep 17 00:00:00 2001
From: "Vadim B. Mikheev" <vadim4o@yahoo.com>
Date: Thu, 24 Apr 1997 15:41:37 +0000
Subject: [PATCH] Enable to set _cpu_page_wight_ & _cpu_index_page_wight_ via
 SET cost_heap(cost_index) TO ...

---
 src/backend/tcop/variable.c | 55 ++++++++++++++++++++++++++++++++++++-
 1 file changed, 54 insertions(+), 1 deletion(-)

diff --git a/src/backend/tcop/variable.c b/src/backend/tcop/variable.c
index 20006dc4b41..ca3339b0326 100644
--- a/src/backend/tcop/variable.c
+++ b/src/backend/tcop/variable.c
@@ -2,7 +2,7 @@
  * Routines for handling of 'SET var TO', 'SHOW var' and 'RESET var'
  * statements.
  *
- * $Id: variable.c,v 1.5 1997/04/23 06:09:36 vadim Exp $
+ * $Id: variable.c,v 1.6 1997/04/24 15:41:37 vadim Exp $
  *
  */
 
@@ -11,6 +11,11 @@
 #include "postgres.h"
 #include "miscadmin.h"
 #include "tcop/variable.h"
+#include "utils/builtins.h"
+#include "optimizer/internal.h"
+
+extern Cost _cpu_page_wight_;
+extern Cost _cpu_index_page_wight_;
 
 /*-----------------------------------------------------------------------*/
 #if USE_EURODATES
@@ -64,6 +69,50 @@ static bool reset_null(const char *value)
 	return TRUE;
 	}
 	
+static bool parse_cost_heap (const char *value)
+{
+    float32 res = float4in ((char*)value);
+    
+    _cpu_page_wight_ = *res;
+    
+    return TRUE;
+}
+
+static bool show_cost_heap ()
+{
+
+    elog (NOTICE, "COST_HEAP is %f", _cpu_page_wight_);
+    return TRUE;
+}
+
+static bool reset_cost_heap ()
+{
+    _cpu_page_wight_ = _CPU_PAGE_WEIGHT_;
+    return TRUE;
+}
+
+static bool parse_cost_index (const char *value)
+{
+    float32 res = float4in ((char*)value);
+    
+    _cpu_index_page_wight_ = *res;
+    
+    return TRUE;
+}
+
+static bool show_cost_index ()
+{
+
+    elog (NOTICE, "COST_INDEX is %f", _cpu_index_page_wight_);
+    return TRUE;
+}
+
+static bool reset_cost_index ()
+{
+    _cpu_index_page_wight_ = _CPU_INDEX_PAGE_WEIGHT_;
+    return TRUE;
+}
+
 static bool parse_date(const char *value)
 	{
 	char tok[32];
@@ -149,6 +198,10 @@ struct VariableParsers
 	{
 		{ "datestyle",	parse_date,	show_date,	reset_date },
 		{ "timezone", 	parse_null,	show_null,	reset_null },
+		{ "cost_heap", 	parse_cost_heap,
+				show_cost_heap,	reset_cost_heap },
+		{ "cost_index",	parse_cost_index,
+				show_cost_index,	reset_cost_index },
 		{ NULL, NULL, NULL }
 	};
 
-- 
GitLab