remove the unneeded header file math.h in binaryheap.c

Started by liujinyang11 days ago5 messages
#1liujinyang
21043272@qq.com
1 attachment(s)

Hi Hackers,

I found in file binaryheap.c, file "math.h" was included, but it is uncessary, so I removed it 

and filing a patch to address the issue.

I have verified that, build is OK.

Please see the attachment and help review it.

thanks a lot!

liujinyang

Attachments:

v1-0001-remove-the-unneeded-header-file-math.h-in-binaryh.patchapplication/octet-stream; charset=utf-8; name=v1-0001-remove-the-unneeded-header-file-math.h-in-binaryh.patchDownload
From 8e2bc152ebef4a189a41508b6c3a65f5956695ef Mon Sep 17 00:00:00 2001
From: liujinyang <21043272@qq.com>
Date: Tue, 13 Jan 2026 13:34:37 +0800
Subject: [PATCH v1] remove the unneeded header file math.h in binaryheap.c

math.h was inlcuded in binaryheap.c, it is unnecessary, so remove it.

Author: liujinyang <21043272@qq.com>
---
 src/common/binaryheap.c | 1 -
 1 file changed, 1 deletion(-)

diff --git a/src/common/binaryheap.c b/src/common/binaryheap.c
index d2be882..df620c1 100644
--- a/src/common/binaryheap.c
+++ b/src/common/binaryheap.c
@@ -17,7 +17,6 @@
 #include "postgres.h"
 #endif
 
-#include <math.h>
 
 #ifdef FRONTEND
 #include "common/logging.h"
-- 
1.8.3.1

#2Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: liujinyang (#1)
Re: remove the unneeded header file math.h in binaryheap.c

On 2026-Jan-13, liujinyang wrote:

Hi Hackers,

I found in file binaryheap.c, file "math.h" was included, but it is uncessary, so I removed it&nbsp;
and filing a patch to address the issue.

Fun. This was already unnecessary at commit 7a2fe9bd0371 which
introduced the file. It seems Abhijit had that include in his first
version [1]/messages/by-id/20121114131112.GA27771@toroid.org because he was using floor(). Robert rewrote it later [2]/messages/by-id/CA+TgmobvR7XW9fjj2RNY7sKK-VAG5nahfai_zV51rHVLDNvaBg@mail.gmail.com
and replaced that with straight arithmetic, making the include
unnecessary, but forgot to remove it.

[1]: /messages/by-id/20121114131112.GA27771@toroid.org
[2]: /messages/by-id/CA+TgmobvR7XW9fjj2RNY7sKK-VAG5nahfai_zV51rHVLDNvaBg@mail.gmail.com

--
Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/

#3liujinyang
21043272@qq.com
In reply to: Alvaro Herrera (#2)
Re: remove the unneeded header file math.h in binaryheap.c

Hi Alvora,&nbsp;
thanks for your review.
So wha't the next should I do for commit it, because this is my first patch.

Best Regards
liujinyang

原始邮件

发件人:Álvaro Herrera <alvherre@kurilemu.de&gt;
发件时间:2026年1月14日 01:18
收件人:liujinyang <21043272@qq.com&gt;
抄送:pgsql-hackers <pgsql-hackers@lists.postgresql.org&gt;
主题:Re: remove the unneeded header file math.h in binaryheap.c

On&nbsp;2026-Jan-13,&nbsp;liujinyang&nbsp;wrote:

&gt;&nbsp;Hi&nbsp;Hackers,
&gt;&nbsp;
&gt;&nbsp;I&nbsp;found&nbsp;in&nbsp;file&nbsp;binaryheap.c,&nbsp;file&nbsp;"math.h"&nbsp;was&nbsp;included,&nbsp;but&nbsp;it&nbsp;is&nbsp;uncessary,&nbsp;so&nbsp;I&nbsp;removed&nbsp;it&amp;nbsp;
&gt;&nbsp;and&nbsp;filing&nbsp;a&nbsp;patch&nbsp;to&nbsp;address&nbsp;the&nbsp;issue.

Fun.&nbsp;&nbsp;This&nbsp;was&nbsp;already&nbsp;unnecessary&nbsp;at&nbsp;commit&nbsp;7a2fe9bd0371&nbsp;which
introduced&nbsp;the&nbsp;file.&nbsp;&nbsp;It&nbsp;seems&nbsp;Abhijit&nbsp;had&nbsp;that&nbsp;include&nbsp;in&nbsp;his&nbsp;first
version&nbsp;[1]&nbsp;/messages/by-id/20121114131112.GA27771@toroid.org&amp;nbsp;&nbsp;because&nbsp;he&nbsp;was&nbsp;using&nbsp;floor().&nbsp;&nbsp;&nbsp;Robert&nbsp;rewrote&nbsp;it&nbsp;later&nbsp;[2]&nbsp;/messages/by-id/CA+TgmobvR7XW9fjj2RNY7sKK-VAG5nahfai_zV51rHVLDNvaBg@mail.gmail.com
and&nbsp;replaced&nbsp;that&nbsp;with&nbsp;straight&nbsp;arithmetic,&nbsp;making&nbsp;the&nbsp;include
unnecessary,&nbsp;but&nbsp;forgot&nbsp;to&nbsp;remove&nbsp;it.

[1]: &nbsp;/messages/by-id/20121114131112.GA27771@toroid.org&amp;nbsp;
[2]: &nbsp;/messages/by-id/CA+TgmobvR7XW9fjj2RNY7sKK-VAG5nahfai_zV51rHVLDNvaBg@mail.gmail.com

--&nbsp;
Álvaro&nbsp;Herrera&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;48°01'N&nbsp;7°57'E&nbsp;&nbsp;—&nbsp;&nbsp;https://www.EnterpriseDB.com/

#4Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: liujinyang (#3)
Re: remove the unneeded header file math.h in binaryheap.c

On 2026-01-15, liujinyang wrote:

Hi Alvora,
thanks for your review.
So wha't the next should I do for commit it, because this is my first patch.

Nothing. I'll push it soon, no worries.

In the future, if patches don't get committed in a day or so, you can add them to a commitfest so that they aren't forgotten -- see https://commitfest.postgresql.org.

--
Álvaro Herrera

#5Alvaro Herrera
alvherre@2ndquadrant.com
In reply to: Alvaro Herrera (#4)
1 attachment(s)
Re: remove the unneeded header file math.h in binaryheap.c

On 2026-Jan-15, Álvaro Herrera wrote:

On 2026-01-15, liujinyang wrote:

Hi Alvora,
thanks for your review.
So wha't the next should I do for commit it, because this is my first patch.

Nothing. I'll push it soon, no worries.

BTW how did you notice that the include wasn't necessary?

I looked around to see if there are more unnecessary inclusions of that
header and found a few candidates. Things still compile and pass tests
for me, but of course they may fail on other platforms.
https://cirrus-ci.com/build/4766393398198272

--
Álvaro Herrera 48°01'N 7°57'E — https://www.EnterpriseDB.com/

Attachments:

v2-0001-remove-include-math.h-where-not-needed.patchtext/x-diff; charset=utf-8Download
From 3cf61d304b9836c6e6c5cb86749ed812cc1b69e9 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=C3=81lvaro=20Herrera?= <alvherre@kurilemu.de>
Date: Thu, 15 Jan 2026 14:33:29 +0100
Subject: [PATCH v2] remove #include <math.h> where not needed

Discussion: https://postgr.es/m/tencent_6B302BFCAF6F010E00AB5C2C0ECB7AA3F205@qq.com
---
 contrib/btree_gist/btree_numeric.c        | 1 -
 contrib/btree_gist/btree_utils_var.c      | 1 -
 contrib/intarray/_intbig_gist.c           | 2 --
 contrib/ltree/_ltree_gist.c               | 2 --
 contrib/seg/segparse.y                    | 1 -
 src/backend/access/heap/vacuumlazy.c      | 2 --
 src/backend/access/transam/xlogrecovery.c | 1 -
 src/backend/access/transam/xlogwait.c     | 1 -
 src/backend/commands/define.c             | 1 -
 src/backend/executor/nodeBitmapHeapscan.c | 2 --
 src/backend/executor/nodeSubplan.c        | 2 --
 src/backend/lib/knapsack.c                | 1 -
 src/backend/nodes/readfuncs.c             | 2 --
 src/backend/optimizer/geqo/geqo_eval.c    | 1 -
 src/backend/optimizer/geqo/geqo_pool.c    | 1 -
 src/backend/optimizer/path/indxpath.c     | 2 --
 src/backend/optimizer/path/joinpath.c     | 2 --
 src/backend/optimizer/plan/createplan.c   | 2 --
 src/backend/optimizer/util/pathnode.c     | 2 --
 src/backend/statistics/mcv.c              | 2 --
 src/backend/utils/adt/numutils.c          | 1 -
 src/backend/utils/adt/tid.c               | 1 -
 src/common/binaryheap.c                   | 2 --
 src/include/utils/date.h                  | 2 --
 24 files changed, 37 deletions(-)

diff --git a/contrib/btree_gist/btree_numeric.c b/contrib/btree_gist/btree_numeric.c
index 052f27b0794..7ca097abb74 100644
--- a/contrib/btree_gist/btree_numeric.c
+++ b/contrib/btree_gist/btree_numeric.c
@@ -3,7 +3,6 @@
  */
 #include "postgres.h"
 
-#include <math.h>
 #include <float.h>
 
 #include "btree_gist.h"
diff --git a/contrib/btree_gist/btree_utils_var.c b/contrib/btree_gist/btree_utils_var.c
index 40e06ae4908..6847e4e54d5 100644
--- a/contrib/btree_gist/btree_utils_var.c
+++ b/contrib/btree_gist/btree_utils_var.c
@@ -3,7 +3,6 @@
  */
 #include "postgres.h"
 
-#include <math.h>
 #include <limits.h>
 #include <float.h>
 
diff --git a/contrib/intarray/_intbig_gist.c b/contrib/intarray/_intbig_gist.c
index 0afa8a73b68..6d6ff7413f9 100644
--- a/contrib/intarray/_intbig_gist.c
+++ b/contrib/intarray/_intbig_gist.c
@@ -3,8 +3,6 @@
  */
 #include "postgres.h"
 
-#include <math.h>
-
 #include "_int.h"
 #include "access/gist.h"
 #include "access/reloptions.h"
diff --git a/contrib/ltree/_ltree_gist.c b/contrib/ltree/_ltree_gist.c
index ceb92a6304d..6383b37e53f 100644
--- a/contrib/ltree/_ltree_gist.c
+++ b/contrib/ltree/_ltree_gist.c
@@ -7,8 +7,6 @@
  */
 #include "postgres.h"
 
-#include <math.h>
-
 #include "access/gist.h"
 #include "access/reloptions.h"
 #include "access/stratnum.h"
diff --git a/contrib/seg/segparse.y b/contrib/seg/segparse.y
index 0358ddb182c..a3dbd0cdbd6 100644
--- a/contrib/seg/segparse.y
+++ b/contrib/seg/segparse.y
@@ -4,7 +4,6 @@
 #include "postgres.h"
 
 #include <float.h>
-#include <math.h>
 
 #include "fmgr.h"
 #include "nodes/miscnodes.h"
diff --git a/src/backend/access/heap/vacuumlazy.c b/src/backend/access/heap/vacuumlazy.c
index 2086a577199..1fcb212ab3d 100644
--- a/src/backend/access/heap/vacuumlazy.c
+++ b/src/backend/access/heap/vacuumlazy.c
@@ -129,8 +129,6 @@
  */
 #include "postgres.h"
 
-#include <math.h>
-
 #include "access/genam.h"
 #include "access/heapam.h"
 #include "access/htup_details.h"
diff --git a/src/backend/access/transam/xlogrecovery.c b/src/backend/access/transam/xlogrecovery.c
index 0b5f871abe7..117d8d8bb6b 100644
--- a/src/backend/access/transam/xlogrecovery.c
+++ b/src/backend/access/transam/xlogrecovery.c
@@ -25,7 +25,6 @@
 #include "postgres.h"
 
 #include <ctype.h>
-#include <math.h>
 #include <time.h>
 #include <sys/stat.h>
 #include <sys/time.h>
diff --git a/src/backend/access/transam/xlogwait.c b/src/backend/access/transam/xlogwait.c
index cab7e5082dc..d286ff63123 100644
--- a/src/backend/access/transam/xlogwait.c
+++ b/src/backend/access/transam/xlogwait.c
@@ -47,7 +47,6 @@
 #include "postgres.h"
 
 #include <float.h>
-#include <math.h>
 
 #include "access/xlog.h"
 #include "access/xlogrecovery.h"
diff --git a/src/backend/commands/define.c b/src/backend/commands/define.c
index 8313431397f..4172cc9bacb 100644
--- a/src/backend/commands/define.c
+++ b/src/backend/commands/define.c
@@ -20,7 +20,6 @@
 #include "postgres.h"
 
 #include <ctype.h>
-#include <math.h>
 
 #include "catalog/namespace.h"
 #include "commands/defrem.h"
diff --git a/src/backend/executor/nodeBitmapHeapscan.c b/src/backend/executor/nodeBitmapHeapscan.c
index 2c68327cb29..c68c26cbf38 100644
--- a/src/backend/executor/nodeBitmapHeapscan.c
+++ b/src/backend/executor/nodeBitmapHeapscan.c
@@ -35,8 +35,6 @@
  */
 #include "postgres.h"
 
-#include <math.h>
-
 #include "access/relscan.h"
 #include "access/tableam.h"
 #include "access/visibilitymap.h"
diff --git a/src/backend/executor/nodeSubplan.c b/src/backend/executor/nodeSubplan.c
index 5e510c73926..8285c7101c2 100644
--- a/src/backend/executor/nodeSubplan.c
+++ b/src/backend/executor/nodeSubplan.c
@@ -26,8 +26,6 @@
  */
 #include "postgres.h"
 
-#include <math.h>
-
 #include "access/htup_details.h"
 #include "executor/executor.h"
 #include "executor/nodeSubplan.h"
diff --git a/src/backend/lib/knapsack.c b/src/backend/lib/knapsack.c
index 1a770b907ec..586f1881fd5 100644
--- a/src/backend/lib/knapsack.c
+++ b/src/backend/lib/knapsack.c
@@ -24,7 +24,6 @@
  */
 #include "postgres.h"
 
-#include <math.h>
 #include <limits.h>
 
 #include "lib/knapsack.h"
diff --git a/src/backend/nodes/readfuncs.c b/src/backend/nodes/readfuncs.c
index c11728c0f17..981ab9c34ef 100644
--- a/src/backend/nodes/readfuncs.c
+++ b/src/backend/nodes/readfuncs.c
@@ -26,8 +26,6 @@
  */
 #include "postgres.h"
 
-#include <math.h>
-
 #include "miscadmin.h"
 #include "nodes/bitmapset.h"
 #include "nodes/readfuncs.h"
diff --git a/src/backend/optimizer/geqo/geqo_eval.c b/src/backend/optimizer/geqo/geqo_eval.c
index db2332e2364..56ad3df98fa 100644
--- a/src/backend/optimizer/geqo/geqo_eval.c
+++ b/src/backend/optimizer/geqo/geqo_eval.c
@@ -23,7 +23,6 @@
 
 #include <float.h>
 #include <limits.h>
-#include <math.h>
 
 #include "optimizer/geqo.h"
 #include "optimizer/joininfo.h"
diff --git a/src/backend/optimizer/geqo/geqo_pool.c b/src/backend/optimizer/geqo/geqo_pool.c
index fc43406d0c1..f330c739d3d 100644
--- a/src/backend/optimizer/geqo/geqo_pool.c
+++ b/src/backend/optimizer/geqo/geqo_pool.c
@@ -25,7 +25,6 @@
 
 #include <float.h>
 #include <limits.h>
-#include <math.h>
 
 #include "optimizer/geqo_copy.h"
 #include "optimizer/geqo_pool.h"
diff --git a/src/backend/optimizer/path/indxpath.c b/src/backend/optimizer/path/indxpath.c
index 51b9d6677d3..29cb60d6b35 100644
--- a/src/backend/optimizer/path/indxpath.c
+++ b/src/backend/optimizer/path/indxpath.c
@@ -15,8 +15,6 @@
  */
 #include "postgres.h"
 
-#include <math.h>
-
 #include "access/stratnum.h"
 #include "access/sysattr.h"
 #include "access/transam.h"
diff --git a/src/backend/optimizer/path/joinpath.c b/src/backend/optimizer/path/joinpath.c
index 7a247493a39..36973eab3be 100644
--- a/src/backend/optimizer/path/joinpath.c
+++ b/src/backend/optimizer/path/joinpath.c
@@ -14,8 +14,6 @@
  */
 #include "postgres.h"
 
-#include <math.h>
-
 #include "executor/executor.h"
 #include "foreign/fdwapi.h"
 #include "nodes/nodeFuncs.h"
diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c
index af41ca69929..eb4806b084a 100644
--- a/src/backend/optimizer/plan/createplan.c
+++ b/src/backend/optimizer/plan/createplan.c
@@ -16,8 +16,6 @@
  */
 #include "postgres.h"
 
-#include <math.h>
-
 #include "access/sysattr.h"
 #include "catalog/pg_class.h"
 #include "foreign/fdwapi.h"
diff --git a/src/backend/optimizer/util/pathnode.c b/src/backend/optimizer/util/pathnode.c
index 2e9becf3116..0f12421bac0 100644
--- a/src/backend/optimizer/util/pathnode.c
+++ b/src/backend/optimizer/util/pathnode.c
@@ -14,8 +14,6 @@
  */
 #include "postgres.h"
 
-#include <math.h>
-
 #include "access/htup_details.h"
 #include "executor/nodeSetOp.h"
 #include "foreign/fdwapi.h"
diff --git a/src/backend/statistics/mcv.c b/src/backend/statistics/mcv.c
index 9749871b18e..e5ac422c1b4 100644
--- a/src/backend/statistics/mcv.c
+++ b/src/backend/statistics/mcv.c
@@ -14,8 +14,6 @@
  */
 #include "postgres.h"
 
-#include <math.h>
-
 #include "access/htup_details.h"
 #include "catalog/pg_statistic_ext.h"
 #include "catalog/pg_statistic_ext_data.h"
diff --git a/src/backend/utils/adt/numutils.c b/src/backend/utils/adt/numutils.c
index b35e381b0be..47c2e21e6b3 100644
--- a/src/backend/utils/adt/numutils.c
+++ b/src/backend/utils/adt/numutils.c
@@ -14,7 +14,6 @@
  */
 #include "postgres.h"
 
-#include <math.h>
 #include <limits.h>
 #include <ctype.h>
 
diff --git a/src/backend/utils/adt/tid.c b/src/backend/utils/adt/tid.c
index c627b385eec..07248b69e57 100644
--- a/src/backend/utils/adt/tid.c
+++ b/src/backend/utils/adt/tid.c
@@ -17,7 +17,6 @@
  */
 #include "postgres.h"
 
-#include <math.h>
 #include <limits.h>
 
 #include "access/sysattr.h"
diff --git a/src/common/binaryheap.c b/src/common/binaryheap.c
index d2be882e65c..78823ff00f8 100644
--- a/src/common/binaryheap.c
+++ b/src/common/binaryheap.c
@@ -17,8 +17,6 @@
 #include "postgres.h"
 #endif
 
-#include <math.h>
-
 #ifdef FRONTEND
 #include "common/logging.h"
 #endif
diff --git a/src/include/utils/date.h b/src/include/utils/date.h
index 1c5dfc94ee6..6063810891e 100644
--- a/src/include/utils/date.h
+++ b/src/include/utils/date.h
@@ -14,8 +14,6 @@
 #ifndef DATE_H
 #define DATE_H
 
-#include <math.h>
-
 #include "datatype/timestamp.h"
 #include "fmgr.h"
 #include "pgtime.h"
-- 
2.47.3