agora inbox for [email protected]
help / color / mirror / Atom feed[PATCH v3 3/3] Replace matview WITH OLD DATA
97+ messages / 3 participants
[nested] [flat]
* [PATCH v3 3/3] Replace matview WITH OLD DATA
@ 2024-07-26 21:33 Erik Wienhold <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Erik Wienhold @ 2024-07-26 21:33 UTC (permalink / raw)
---
.../sgml/ref/create_materialized_view.sgml | 16 +++++++++--
src/backend/commands/createas.c | 26 +++++++++++------
src/backend/parser/gram.y | 16 +++++++++++
src/include/nodes/primnodes.h | 1 +
src/test/regress/expected/matview.out | 28 +++++++++++++++++++
src/test/regress/sql/matview.sql | 15 ++++++++++
6 files changed, 90 insertions(+), 12 deletions(-)
diff --git a/doc/src/sgml/ref/create_materialized_view.sgml b/doc/src/sgml/ref/create_materialized_view.sgml
index b5a8e3441a..65633b8bfa 100644
--- a/doc/src/sgml/ref/create_materialized_view.sgml
+++ b/doc/src/sgml/ref/create_materialized_view.sgml
@@ -27,7 +27,7 @@ CREATE [ OR REPLACE ] MATERIALIZED VIEW [ IF NOT EXISTS ] <replaceable>table_nam
[ WITH ( <replaceable class="parameter">storage_parameter</replaceable> [= <replaceable class="parameter">value</replaceable>] [, ... ] ) ]
[ TABLESPACE <replaceable class="parameter">tablespace_name</replaceable> ]
AS <replaceable>query</replaceable>
- [ WITH [ NO ] DATA ]
+ [ WITH [ NO | OLD ] DATA ]
</synopsis>
</refsynopsisdiv>
@@ -37,7 +37,8 @@ CREATE [ OR REPLACE ] MATERIALIZED VIEW [ IF NOT EXISTS ] <replaceable>table_nam
<para>
<command>CREATE MATERIALIZED VIEW</command> defines a materialized view of
a query. The query is executed and used to populate the view at the time
- the command is issued (unless <command>WITH NO DATA</command> is used) and may be
+ the command is issued (unless <command>WITH NO DATA</command> or
+ <command>WITH OLD DATA</command> is used) and may be
refreshed later using <command>REFRESH MATERIALIZED VIEW</command>.
</para>
@@ -160,7 +161,7 @@ CREATE [ OR REPLACE ] MATERIALIZED VIEW [ IF NOT EXISTS ] <replaceable>table_nam
</varlistentry>
<varlistentry>
- <term><literal>WITH [ NO ] DATA</literal></term>
+ <term><literal>WITH [ NO | OLD ] DATA</literal></term>
<listitem>
<para>
This clause specifies whether or not the materialized view should be
@@ -168,6 +169,15 @@ CREATE [ OR REPLACE ] MATERIALIZED VIEW [ IF NOT EXISTS ] <replaceable>table_nam
flagged as unscannable and cannot be queried until <command>REFRESH
MATERIALIZED VIEW</command> is used.
</para>
+
+ <para>
+ The form <command>WITH OLD DATA</command> keeps the already stored data
+ when replacing an existing materialized view to keep it populated. For
+ newly created materialized views, this has the same effect as
+ <command>WITH DATA</command>. Use this form if you want to use
+ <command>REFRESH MATERIALIZED VIEW CONCURRENTLY</command> as it requires
+ a populated materialized view.
+ </para>
</listitem>
</varlistentry>
diff --git a/src/backend/commands/createas.c b/src/backend/commands/createas.c
index e4ed3748f9..96e7b81966 100644
--- a/src/backend/commands/createas.c
+++ b/src/backend/commands/createas.c
@@ -331,18 +331,26 @@ ExecCreateTableAs(ParseState *pstate, CreateTableAsStmt *stmt,
/* An existing materialized view can be replaced. */
if (is_matview && into->replace)
{
- RefreshMatViewStmt *refresh;
-
/* Change the relation to match the new query and other options. */
- (void) create_ctas_nodata(query->targetList, into);
+ address = create_ctas_nodata(query->targetList, into);
- /* Refresh the materialized view with a fake statement. */
- refresh = makeNode(RefreshMatViewStmt);
- refresh->relation = into->rel;
- refresh->skipData = into->skipData;
- refresh->concurrent = false;
+ /*
+ * Refresh the materialized view with a fake statement unless we
+ * must keep the old data.
+ */
+ if (!into->keepData)
+ {
+ RefreshMatViewStmt *refresh;
+
+ refresh = makeNode(RefreshMatViewStmt);
+ refresh->relation = into->rel;
+ refresh->skipData = into->skipData;
+ refresh->concurrent = false;
+
+ address = ExecRefreshMatView(refresh, NULL, NULL);
+ }
- return ExecRefreshMatView(refresh, NULL, NULL);
+ return address;
}
return InvalidObjectAddress;
diff --git a/src/backend/parser/gram.y b/src/backend/parser/gram.y
index 4b939ea7ca..e45ebb24f8 100644
--- a/src/backend/parser/gram.y
+++ b/src/backend/parser/gram.y
@@ -4808,6 +4808,22 @@ CreateMatViewStmt:
$7->replace = true;
$$ = (Node *) ctas;
}
+ | CREATE OR REPLACE OptNoLog MATERIALIZED VIEW create_mv_target AS SelectStmt WITH OLD DATA_P
+ {
+ CreateTableAsStmt *ctas = makeNode(CreateTableAsStmt);
+
+ ctas->query = $9;
+ ctas->into = $7;
+ ctas->objtype = OBJECT_MATVIEW;
+ ctas->is_select_into = false;
+ ctas->if_not_exists = false;
+ /* cram additional flags into the IntoClause */
+ $7->rel->relpersistence = $4;
+ $7->skipData = false;
+ $7->keepData = true;
+ $7->replace = true;
+ $$ = (Node *) ctas;
+ }
;
create_mv_target:
diff --git a/src/include/nodes/primnodes.h b/src/include/nodes/primnodes.h
index 4b0ee5d10d..ae84cb522e 100644
--- a/src/include/nodes/primnodes.h
+++ b/src/include/nodes/primnodes.h
@@ -168,6 +168,7 @@ typedef struct IntoClause
/* materialized view's SELECT query */
Node *viewQuery pg_node_attr(query_jumble_ignore);
bool skipData; /* true for WITH NO DATA */
+ bool keepData; /* true for WITH OLD DATA */
bool replace; /* replace existing matview? */
} IntoClause;
diff --git a/src/test/regress/expected/matview.out b/src/test/regress/expected/matview.out
index cefd0d442c..47dfd88bff 100644
--- a/src/test/regress/expected/matview.out
+++ b/src/test/regress/expected/matview.out
@@ -751,6 +751,23 @@ SELECT * FROM mvtest_replace;
3
(1 row)
+-- replace query but keep old data
+CREATE OR REPLACE MATERIALIZED VIEW mvtest_replace AS
+ SELECT 5 AS a
+ WITH OLD DATA;
+SELECT * FROM mvtest_replace;
+ a
+---
+ 3
+(1 row)
+
+REFRESH MATERIALIZED VIEW mvtest_replace;
+SELECT * FROM mvtest_replace;
+ a
+---
+ 5
+(1 row)
+
-- add column
CREATE OR REPLACE MATERIALIZED VIEW mvtest_replace AS
SELECT 4 AS a, 1 b;
@@ -905,3 +922,14 @@ ERROR: syntax error at or near "NOT"
LINE 1: CREATE OR REPLACE MATERIALIZED VIEW IF NOT EXISTS mvtest_rep...
^
DROP MATERIALIZED VIEW mvtest_replace;
+-- Create new matview WITH OLD DATA. This populates the new matview as if
+-- WITH DATA had been specified.
+CREATE OR REPLACE MATERIALIZED VIEW mvtest_replace AS
+ SELECT 17 AS a
+ WITH OLD DATA;
+SELECT * FROM mvtest_replace;
+ a
+----
+ 17
+(1 row)
+
diff --git a/src/test/regress/sql/matview.sql b/src/test/regress/sql/matview.sql
index c12f0243c9..b268237c24 100644
--- a/src/test/regress/sql/matview.sql
+++ b/src/test/regress/sql/matview.sql
@@ -338,6 +338,14 @@ SELECT * FROM mvtest_replace; -- error: not populated
REFRESH MATERIALIZED VIEW mvtest_replace;
SELECT * FROM mvtest_replace;
+-- replace query but keep old data
+CREATE OR REPLACE MATERIALIZED VIEW mvtest_replace AS
+ SELECT 5 AS a
+ WITH OLD DATA;
+SELECT * FROM mvtest_replace;
+REFRESH MATERIALIZED VIEW mvtest_replace;
+SELECT * FROM mvtest_replace;
+
-- add column
CREATE OR REPLACE MATERIALIZED VIEW mvtest_replace AS
SELECT 4 AS a, 1 b;
@@ -422,3 +430,10 @@ CREATE OR REPLACE MATERIALIZED VIEW IF NOT EXISTS mvtest_replace AS
SELECT 1 AS a;
DROP MATERIALIZED VIEW mvtest_replace;
+
+-- Create new matview WITH OLD DATA. This populates the new matview as if
+-- WITH DATA had been specified.
+CREATE OR REPLACE MATERIALIZED VIEW mvtest_replace AS
+ SELECT 17 AS a
+ WITH OLD DATA;
+SELECT * FROM mvtest_replace;
--
2.46.0
--muysnh7l3kienazz--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 06:31 Bertrand Drouvot <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 06:31 UTC (permalink / raw)
Multiplying by 0.001 can produce trailing-digit noise in displayed
values (for example 0.009000000000000001 instead of 0.009, should extra_float_digits
not being set to 0) because 0.001 cannot be represented exactly in binary floating
point.
Use division by 1000.0 instead as it is the most common way to deal with such
computation in the code tree.
Author: Bertrand Drouvot <[email protected]>
---
src/backend/utils/adt/pgstatfuncs.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
100.0% src/backend/utils/adt/
diff --git a/src/backend/utils/adt/pgstatfuncs.c b/src/backend/utils/adt/pgstatfuncs.c
index 6f9c9c72de5..1e5f8293b28 100644
--- a/src/backend/utils/adt/pgstatfuncs.c
+++ b/src/backend/utils/adt/pgstatfuncs.c
@@ -1457,7 +1457,7 @@ pgstat_get_io_time_index(IOOp io_op)
static inline double
pg_stat_us_to_ms(PgStat_Counter val_ms)
{
- return val_ms * (double) 0.001;
+ return (double) val_ms / 1000.0;
}
/*
--
2.34.1
--TXuqZKQhWXLuSKvO--
^ permalink raw reply [nested|flat] 97+ messages in thread
* Fix floating-point noise in pg_stat_us_to_ms()
@ 2026-06-29 07:02 Bertrand Drouvot <[email protected]>
2026-07-01 09:05 ` Re: Fix floating-point noise in pg_stat_us_to_ms() John Naylor <[email protected]>
0 siblings, 1 reply; 97+ messages in thread
From: Bertrand Drouvot @ 2026-06-29 07:02 UTC (permalink / raw)
To: [email protected]
Hi hackers,
while reviewing [1], I noticed that the IO timings displayed in pg_stat_io can
produce floating-point noise like:
postgres=# select read_time from pg_stat_io where read_time > 0;
read_time
---------------------
2.2640000000000002
0.08700000000000001
That's because 0.001 cannot be represented exactly in binary floating
point. I think this output looks weird, even if understandable. Note that with
extra_float_digits set to 0 you don't see the noise (but 1 is the default).
The attached patch changes pg_stat_us_to_ms() so that it uses a division
by 1000.0 instead as it's correctly rounded, see for example:
postgres=# SELECT (9 * 0.001::float8)::text;
text
----------------------
0.009000000000000001
(1 row)
postgres=# SELECT (9::float8 / 1000.0)::text;
text
-------
0.009
(1 row)
Given that / 1000.0 is the most common way to do this kind of computation in the
code tree, I think that it makes sense to update pg_stat_us_to_ms() to do so.
Thoughts?
[1]: https://www.postgresql.org/message-id/akH0SxXlXPNjD%2BR5%40bdtpg
Regards,
--
Bertrand Drouvot
PostgreSQL Contributors Team
RDS Open Source Databases
Amazon Web Services: https://aws.amazon.com
^ permalink raw reply [nested|flat] 97+ messages in thread
* Re: Fix floating-point noise in pg_stat_us_to_ms()
2026-06-29 07:02 Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
@ 2026-07-01 09:05 ` John Naylor <[email protected]>
2026-07-02 06:38 ` Re: Fix floating-point noise in pg_stat_us_to_ms() John Naylor <[email protected]>
0 siblings, 1 reply; 97+ messages in thread
From: John Naylor @ 2026-07-01 09:05 UTC (permalink / raw)
To: Bertrand Drouvot <[email protected]>; +Cc: [email protected]
On Mon, Jun 29, 2026 at 2:02 PM Bertrand Drouvot
<[email protected]> wrote:
>
> Hi hackers,
>
> while reviewing [1], I noticed that the IO timings displayed in pg_stat_io can
> produce floating-point noise like:
>
> postgres=# select read_time from pg_stat_io where read_time > 0;
> read_time
> ---------------------
> 2.2640000000000002
> 0.08700000000000001
>
> That's because 0.001 cannot be represented exactly in binary floating
> point. I think this output looks weird, even if understandable. Note that with
> extra_float_digits set to 0 you don't see the noise (but 1 is the default).
Yes, multiplying by that constant also multiplies the rounding error.
> Given that / 1000.0 is the most common way to do this kind of computation in the
> code tree, I think that it makes sense to update pg_stat_us_to_ms() to do so.
+1, I'll take care of this.
--
John Naylor
Amazon Web Services
^ permalink raw reply [nested|flat] 97+ messages in thread
* Re: Fix floating-point noise in pg_stat_us_to_ms()
2026-06-29 07:02 Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-07-01 09:05 ` Re: Fix floating-point noise in pg_stat_us_to_ms() John Naylor <[email protected]>
@ 2026-07-02 06:38 ` John Naylor <[email protected]>
0 siblings, 0 replies; 97+ messages in thread
From: John Naylor @ 2026-07-02 06:38 UTC (permalink / raw)
To: Bertrand Drouvot <[email protected]>; +Cc: [email protected]
On Wed, Jul 1, 2026 at 4:05 PM John Naylor <[email protected]> wrote:
>
> On Mon, Jun 29, 2026 at 2:02 PM Bertrand Drouvot
> <[email protected]> wrote:
> > Given that / 1000.0 is the most common way to do this kind of computation in the
> > code tree, I think that it makes sense to update pg_stat_us_to_ms() to do so.
>
> +1, I'll take care of this.
Pushed.
--
John Naylor
Amazon Web Services
^ permalink raw reply [nested|flat] 97+ messages in thread
end of thread, other threads:[~2026-07-02 06:38 UTC | newest]
Thread overview: 97+ messages (download: mbox mbox.gz follow: Atom feed)
-- links below jump to the message on this page --
2024-07-26 21:33 [PATCH v3 3/3] Replace matview WITH OLD DATA Erik Wienhold <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 06:31 [PATCH v1] Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-06-29 07:02 Fix floating-point noise in pg_stat_us_to_ms() Bertrand Drouvot <[email protected]>
2026-07-01 09:05 ` Re: Fix floating-point noise in pg_stat_us_to_ms() John Naylor <[email protected]>
2026-07-02 06:38 ` Re: Fix floating-point noise in pg_stat_us_to_ms() John Naylor <[email protected]>
This inbox is served by agora; see mirroring instructions
for how to clone and mirror all data and code used for this inbox