Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit659e534

Browse files
committed
Fix union for pgstat message types
The message type for temp files and for checksum failures were missingfrom the union. Due to the coding style used there was no compiler errorwhen this happend. So change the code to actively use the union therebyproducing a compiler error if the same mistake happens again, suggestedby Tom Lane.Author: Julien RouhaudReported-By: Tomas VondraDiscussion:https://postgr.es/m/20190430163328.zd4rrlnbvgaqlcdz@development
1 parent809c9b4 commit659e534

File tree

2 files changed

+25
-20
lines changed

2 files changed

+25
-20
lines changed

‎src/backend/postmaster/pgstat.c

Lines changed: 22 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -4477,80 +4477,83 @@ PgstatCollectorMain(int argc, char *argv[])
44774477
break;
44784478

44794479
casePGSTAT_MTYPE_INQUIRY:
4480-
pgstat_recv_inquiry((PgStat_MsgInquiry*)&msg,len);
4480+
pgstat_recv_inquiry(&msg.msg_inquiry,len);
44814481
break;
44824482

44834483
casePGSTAT_MTYPE_TABSTAT:
4484-
pgstat_recv_tabstat((PgStat_MsgTabstat*)&msg,len);
4484+
pgstat_recv_tabstat(&msg.msg_tabstat,len);
44854485
break;
44864486

44874487
casePGSTAT_MTYPE_TABPURGE:
4488-
pgstat_recv_tabpurge((PgStat_MsgTabpurge*)&msg,len);
4488+
pgstat_recv_tabpurge(&msg.msg_tabpurge,len);
44894489
break;
44904490

44914491
casePGSTAT_MTYPE_DROPDB:
4492-
pgstat_recv_dropdb((PgStat_MsgDropdb*)&msg,len);
4492+
pgstat_recv_dropdb(&msg.msg_dropdb,len);
44934493
break;
44944494

44954495
casePGSTAT_MTYPE_RESETCOUNTER:
4496-
pgstat_recv_resetcounter((PgStat_MsgResetcounter*)&msg,
4497-
len);
4496+
pgstat_recv_resetcounter(&msg.msg_resetcounter,len);
44984497
break;
44994498

45004499
casePGSTAT_MTYPE_RESETSHAREDCOUNTER:
45014500
pgstat_recv_resetsharedcounter(
4502-
(PgStat_MsgResetsharedcounter*)&msg,
4501+
&msg.msg_resetsharedcounter,
45034502
len);
45044503
break;
45054504

45064505
casePGSTAT_MTYPE_RESETSINGLECOUNTER:
45074506
pgstat_recv_resetsinglecounter(
4508-
(PgStat_MsgResetsinglecounter*)&msg,
4507+
&msg.msg_resetsinglecounter,
45094508
len);
45104509
break;
45114510

45124511
casePGSTAT_MTYPE_AUTOVAC_START:
4513-
pgstat_recv_autovac((PgStat_MsgAutovacStart*)&msg,len);
4512+
pgstat_recv_autovac(&msg.msg_autovacuum_start,len);
45144513
break;
45154514

45164515
casePGSTAT_MTYPE_VACUUM:
4517-
pgstat_recv_vacuum((PgStat_MsgVacuum*)&msg,len);
4516+
pgstat_recv_vacuum(&msg.msg_vacuum,len);
45184517
break;
45194518

45204519
casePGSTAT_MTYPE_ANALYZE:
4521-
pgstat_recv_analyze((PgStat_MsgAnalyze*)&msg,len);
4520+
pgstat_recv_analyze(&msg.msg_analyze,len);
45224521
break;
45234522

45244523
casePGSTAT_MTYPE_ARCHIVER:
4525-
pgstat_recv_archiver((PgStat_MsgArchiver*)&msg,len);
4524+
pgstat_recv_archiver(&msg.msg_archiver,len);
45264525
break;
45274526

45284527
casePGSTAT_MTYPE_BGWRITER:
4529-
pgstat_recv_bgwriter((PgStat_MsgBgWriter*)&msg,len);
4528+
pgstat_recv_bgwriter(&msg.msg_bgwriter,len);
45304529
break;
45314530

45324531
casePGSTAT_MTYPE_FUNCSTAT:
4533-
pgstat_recv_funcstat((PgStat_MsgFuncstat*)&msg,len);
4532+
pgstat_recv_funcstat(&msg.msg_funcstat,len);
45344533
break;
45354534

45364535
casePGSTAT_MTYPE_FUNCPURGE:
4537-
pgstat_recv_funcpurge((PgStat_MsgFuncpurge*)&msg,len);
4536+
pgstat_recv_funcpurge(&msg.msg_funcpurge,len);
45384537
break;
45394538

45404539
casePGSTAT_MTYPE_RECOVERYCONFLICT:
4541-
pgstat_recv_recoveryconflict((PgStat_MsgRecoveryConflict*)&msg,len);
4540+
pgstat_recv_recoveryconflict(
4541+
&msg.msg_recoveryconflict,
4542+
len);
45424543
break;
45434544

45444545
casePGSTAT_MTYPE_DEADLOCK:
4545-
pgstat_recv_deadlock((PgStat_MsgDeadlock*)&msg,len);
4546+
pgstat_recv_deadlock(&msg.msg_deadlock,len);
45464547
break;
45474548

45484549
casePGSTAT_MTYPE_TEMPFILE:
4549-
pgstat_recv_tempfile((PgStat_MsgTempFile*)&msg,len);
4550+
pgstat_recv_tempfile(&msg.msg_tempfile,len);
45504551
break;
45514552

45524553
casePGSTAT_MTYPE_CHECKSUMFAILURE:
4553-
pgstat_recv_checksum_failure((PgStat_MsgChecksumFailure*)&msg,len);
4554+
pgstat_recv_checksum_failure(
4555+
&msg.msg_checksumfailure,
4556+
len);
45544557
break;
45554558

45564559
default:

‎src/include/pgstat.h

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -560,7 +560,7 @@ typedef union PgStat_Msg
560560
PgStat_MsgResetcountermsg_resetcounter;
561561
PgStat_MsgResetsharedcountermsg_resetsharedcounter;
562562
PgStat_MsgResetsinglecountermsg_resetsinglecounter;
563-
PgStat_MsgAutovacStartmsg_autovacuum;
563+
PgStat_MsgAutovacStartmsg_autovacuum_start;
564564
PgStat_MsgVacuummsg_vacuum;
565565
PgStat_MsgAnalyzemsg_analyze;
566566
PgStat_MsgArchivermsg_archiver;
@@ -569,6 +569,8 @@ typedef union PgStat_Msg
569569
PgStat_MsgFuncpurgemsg_funcpurge;
570570
PgStat_MsgRecoveryConflictmsg_recoveryconflict;
571571
PgStat_MsgDeadlockmsg_deadlock;
572+
PgStat_MsgTempFilemsg_tempfile;
573+
PgStat_MsgChecksumFailuremsg_checksumfailure;
572574
}PgStat_Msg;
573575

574576

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp