1
0
mirror of https://github.com/postgres/postgres.git synced 2025-07-28 23:42:10 +03:00

Use float8 datatype for percentiles in pg_walinspect stat functions

pg_walinspect uses datatype double (double precision floating point
number) for WAL stats percentile calculations and expose them via
float4 (single precision floating point number), which an unnecessary
loss of precision and confusing. Even though, it's harmless that way,
let's use float8 (double precision floating-point number) to be in
sync with what pg_walinspect does internally and what it exposes to
the users. This seems to be the pattern used elsewhere in the code.

Reported-by: Peter Eisentraut
Author: Bharath Rupireddy
Reviewed-by: Peter Eisentraut
Discussion: https://www.postgresql.org/message-id/36ee692b-232f-0484-ce94-dc39d82021ad%40enterprisedb.com
This commit is contained in:
Peter Eisentraut
2022-09-12 09:38:07 +02:00
parent 88f488319b
commit 57796a0f15
3 changed files with 20 additions and 20 deletions

View File

@ -80,13 +80,13 @@ CREATE FUNCTION pg_get_wal_stats(IN start_lsn pg_lsn,
IN per_record boolean DEFAULT false,
OUT "resource_manager/record_type" text,
OUT count int8,
OUT count_percentage float4,
OUT count_percentage float8,
OUT record_size int8,
OUT record_size_percentage float4,
OUT record_size_percentage float8,
OUT fpi_size int8,
OUT fpi_size_percentage float4,
OUT fpi_size_percentage float8,
OUT combined_size int8,
OUT combined_size_percentage float4
OUT combined_size_percentage float8
)
RETURNS SETOF record
AS 'MODULE_PATHNAME', 'pg_get_wal_stats'
@ -102,13 +102,13 @@ CREATE FUNCTION pg_get_wal_stats_till_end_of_wal(IN start_lsn pg_lsn,
IN per_record boolean DEFAULT false,
OUT "resource_manager/record_type" text,
OUT count int8,
OUT count_percentage float4,
OUT count_percentage float8,
OUT record_size int8,
OUT record_size_percentage float4,
OUT record_size_percentage float8,
OUT fpi_size int8,
OUT fpi_size_percentage float4,
OUT fpi_size_percentage float8,
OUT combined_size int8,
OUT combined_size_percentage float4
OUT combined_size_percentage float8
)
RETURNS SETOF record
AS 'MODULE_PATHNAME', 'pg_get_wal_stats_till_end_of_wal'

View File

@ -430,13 +430,13 @@ FillXLogStatsRow(const char *name,
values[i++] = CStringGetTextDatum(name);
values[i++] = Int64GetDatum(n);
values[i++] = Float4GetDatum(n_pct);
values[i++] = Float8GetDatum(n_pct);
values[i++] = Int64GetDatum(rec_len);
values[i++] = Float4GetDatum(rec_len_pct);
values[i++] = Float8GetDatum(rec_len_pct);
values[i++] = Int64GetDatum(fpi_len);
values[i++] = Float4GetDatum(fpi_len_pct);
values[i++] = Float8GetDatum(fpi_len_pct);
values[i++] = Int64GetDatum(tot_len);
values[i++] = Float4GetDatum(tot_len_pct);
values[i++] = Float8GetDatum(tot_len_pct);
Assert(i == ncols);
}