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

Appearance settings

Commit 8018ffb

Browse filesBrowse files
committed
Generate pg_stat_get*() functions for databases using macros
The same code pattern is repeated 21 times for int64 counters (0 for missing entry) and 5 times for doubles (0 for missing entry) on database entries. This code is switched to use macros for the basic code instead, shaving a few hundred lines of originally-duplicated code patterns. The function names remain the same, but some fields of PgStat_StatDBEntry have to be renamed to cope with the new style. This is in the same spirit as 83a1a1b. Author: Michael Paquier Reviewed-by: Nathan Bossart, Bertrand Drouvot Discussion: https://postgr.es/m/Y46stlxQ2LQE20Na@paquier.xyz
1 parent 79f7c48 commit 8018ffb
Copy full SHA for 8018ffb

File tree

4 files changed

+169
-447
lines changed
Filter options

4 files changed

+169
-447
lines changed

‎src/backend/utils/activity/pgstat_database.c

Copy file name to clipboardExpand all lines: src/backend/utils/activity/pgstat_database.c
+47-47Lines changed: 47 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -98,19 +98,19 @@ pgstat_report_recovery_conflict(int reason)
9898
*/
9999
break;
100100
case PROCSIG_RECOVERY_CONFLICT_TABLESPACE:
101-
dbentry->n_conflict_tablespace++;
101+
dbentry->conflict_tablespace++;
102102
break;
103103
case PROCSIG_RECOVERY_CONFLICT_LOCK:
104-
dbentry->n_conflict_lock++;
104+
dbentry->conflict_lock++;
105105
break;
106106
case PROCSIG_RECOVERY_CONFLICT_SNAPSHOT:
107-
dbentry->n_conflict_snapshot++;
107+
dbentry->conflict_snapshot++;
108108
break;
109109
case PROCSIG_RECOVERY_CONFLICT_BUFFERPIN:
110-
dbentry->n_conflict_bufferpin++;
110+
dbentry->conflict_bufferpin++;
111111
break;
112112
case PROCSIG_RECOVERY_CONFLICT_STARTUP_DEADLOCK:
113-
dbentry->n_conflict_startup_deadlock++;
113+
dbentry->conflict_startup_deadlock++;
114114
break;
115115
}
116116
}
@@ -127,7 +127,7 @@ pgstat_report_deadlock(void)
127127
return;
128128

129129
dbent = pgstat_prep_database_pending(MyDatabaseId);
130-
dbent->n_deadlocks++;
130+
dbent->deadlocks++;
131131
}
132132

133133
/*
@@ -150,7 +150,7 @@ pgstat_report_checksum_failures_in_db(Oid dboid, int failurecount)
150150
pgstat_get_entry_ref_locked(PGSTAT_KIND_DATABASE, dboid, InvalidOid, false);
151151

152152
sharedent = (PgStatShared_Database *) entry_ref->shared_stats;
153-
sharedent->stats.n_checksum_failures += failurecount;
153+
sharedent->stats.checksum_failures += failurecount;
154154
sharedent->stats.last_checksum_failure = GetCurrentTimestamp();
155155

156156
pgstat_unlock_entry(entry_ref);
@@ -177,8 +177,8 @@ pgstat_report_tempfile(size_t filesize)
177177
return;
178178

179179
dbent = pgstat_prep_database_pending(MyDatabaseId);
180-
dbent->n_temp_bytes += filesize;
181-
dbent->n_temp_files++;
180+
dbent->temp_bytes += filesize;
181+
dbent->temp_files++;
182182
}
183183

184184
/*
@@ -195,7 +195,7 @@ pgstat_report_connect(Oid dboid)
195195
pgLastSessionReportTime = MyStartTimestamp;
196196

197197
dbentry = pgstat_prep_database_pending(MyDatabaseId);
198-
dbentry->n_sessions++;
198+
dbentry->sessions++;
199199
}
200200

201201
/*
@@ -218,13 +218,13 @@ pgstat_report_disconnect(Oid dboid)
218218
/* we don't collect these */
219219
break;
220220
case DISCONNECT_CLIENT_EOF:
221-
dbentry->n_sessions_abandoned++;
221+
dbentry->sessions_abandoned++;
222222
break;
223223
case DISCONNECT_FATAL:
224-
dbentry->n_sessions_fatal++;
224+
dbentry->sessions_fatal++;
225225
break;
226226
case DISCONNECT_KILLED:
227-
dbentry->n_sessions_killed++;
227+
dbentry->sessions_killed++;
228228
break;
229229
}
230230
}
@@ -274,10 +274,10 @@ pgstat_update_dbstats(TimestampTz ts)
274274
* Accumulate xact commit/rollback and I/O timings to stats entry of the
275275
* current database.
276276
*/
277-
dbentry->n_xact_commit += pgStatXactCommit;
278-
dbentry->n_xact_rollback += pgStatXactRollback;
279-
dbentry->n_block_read_time += pgStatBlockReadTime;
280-
dbentry->n_block_write_time += pgStatBlockWriteTime;
277+
dbentry->xact_commit += pgStatXactCommit;
278+
dbentry->xact_rollback += pgStatXactRollback;
279+
dbentry->blk_read_time += pgStatBlockReadTime;
280+
dbentry->blk_write_time += pgStatBlockWriteTime;
281281

282282
if (pgstat_should_report_connstat())
283283
{
@@ -290,9 +290,9 @@ pgstat_update_dbstats(TimestampTz ts)
290290
*/
291291
TimestampDifference(pgLastSessionReportTime, ts, &secs, &usecs);
292292
pgLastSessionReportTime = ts;
293-
dbentry->total_session_time += (PgStat_Counter) secs * 1000000 + usecs;
294-
dbentry->total_active_time += pgStatActiveTime;
295-
dbentry->total_idle_in_xact_time += pgStatTransactionIdleTime;
293+
dbentry->session_time += (PgStat_Counter) secs * 1000000 + usecs;
294+
dbentry->active_time += pgStatActiveTime;
295+
dbentry->idle_in_transaction_time += pgStatTransactionIdleTime;
296296
}
297297

298298
pgStatXactCommit = 0;
@@ -370,44 +370,44 @@ pgstat_database_flush_cb(PgStat_EntryRef *entry_ref, bool nowait)
370370
#define PGSTAT_ACCUM_DBCOUNT(item) \
371371
(sharedent)->stats.item += (pendingent)->item
372372

373-
PGSTAT_ACCUM_DBCOUNT(n_xact_commit);
374-
PGSTAT_ACCUM_DBCOUNT(n_xact_rollback);
375-
PGSTAT_ACCUM_DBCOUNT(n_blocks_fetched);
376-
PGSTAT_ACCUM_DBCOUNT(n_blocks_hit);
373+
PGSTAT_ACCUM_DBCOUNT(xact_commit);
374+
PGSTAT_ACCUM_DBCOUNT(xact_rollback);
375+
PGSTAT_ACCUM_DBCOUNT(blocks_fetched);
376+
PGSTAT_ACCUM_DBCOUNT(blocks_hit);
377377

378-
PGSTAT_ACCUM_DBCOUNT(n_tuples_returned);
379-
PGSTAT_ACCUM_DBCOUNT(n_tuples_fetched);
380-
PGSTAT_ACCUM_DBCOUNT(n_tuples_inserted);
381-
PGSTAT_ACCUM_DBCOUNT(n_tuples_updated);
382-
PGSTAT_ACCUM_DBCOUNT(n_tuples_deleted);
378+
PGSTAT_ACCUM_DBCOUNT(tuples_returned);
379+
PGSTAT_ACCUM_DBCOUNT(tuples_fetched);
380+
PGSTAT_ACCUM_DBCOUNT(tuples_inserted);
381+
PGSTAT_ACCUM_DBCOUNT(tuples_updated);
382+
PGSTAT_ACCUM_DBCOUNT(tuples_deleted);
383383

384384
/* last_autovac_time is reported immediately */
385385
Assert(pendingent->last_autovac_time == 0);
386386

387-
PGSTAT_ACCUM_DBCOUNT(n_conflict_tablespace);
388-
PGSTAT_ACCUM_DBCOUNT(n_conflict_lock);
389-
PGSTAT_ACCUM_DBCOUNT(n_conflict_snapshot);
390-
PGSTAT_ACCUM_DBCOUNT(n_conflict_bufferpin);
391-
PGSTAT_ACCUM_DBCOUNT(n_conflict_startup_deadlock);
387+
PGSTAT_ACCUM_DBCOUNT(conflict_tablespace);
388+
PGSTAT_ACCUM_DBCOUNT(conflict_lock);
389+
PGSTAT_ACCUM_DBCOUNT(conflict_snapshot);
390+
PGSTAT_ACCUM_DBCOUNT(conflict_bufferpin);
391+
PGSTAT_ACCUM_DBCOUNT(conflict_startup_deadlock);
392392

393-
PGSTAT_ACCUM_DBCOUNT(n_temp_bytes);
394-
PGSTAT_ACCUM_DBCOUNT(n_temp_files);
395-
PGSTAT_ACCUM_DBCOUNT(n_deadlocks);
393+
PGSTAT_ACCUM_DBCOUNT(temp_bytes);
394+
PGSTAT_ACCUM_DBCOUNT(temp_files);
395+
PGSTAT_ACCUM_DBCOUNT(deadlocks);
396396

397397
/* checksum failures are reported immediately */
398-
Assert(pendingent->n_checksum_failures == 0);
398+
Assert(pendingent->checksum_failures == 0);
399399
Assert(pendingent->last_checksum_failure == 0);
400400

401-
PGSTAT_ACCUM_DBCOUNT(n_block_read_time);
402-
PGSTAT_ACCUM_DBCOUNT(n_block_write_time);
401+
PGSTAT_ACCUM_DBCOUNT(blk_read_time);
402+
PGSTAT_ACCUM_DBCOUNT(blk_write_time);
403403

404-
PGSTAT_ACCUM_DBCOUNT(n_sessions);
405-
PGSTAT_ACCUM_DBCOUNT(total_session_time);
406-
PGSTAT_ACCUM_DBCOUNT(total_active_time);
407-
PGSTAT_ACCUM_DBCOUNT(total_idle_in_xact_time);
408-
PGSTAT_ACCUM_DBCOUNT(n_sessions_abandoned);
409-
PGSTAT_ACCUM_DBCOUNT(n_sessions_fatal);
410-
PGSTAT_ACCUM_DBCOUNT(n_sessions_killed);
404+
PGSTAT_ACCUM_DBCOUNT(sessions);
405+
PGSTAT_ACCUM_DBCOUNT(session_time);
406+
PGSTAT_ACCUM_DBCOUNT(active_time);
407+
PGSTAT_ACCUM_DBCOUNT(idle_in_transaction_time);
408+
PGSTAT_ACCUM_DBCOUNT(sessions_abandoned);
409+
PGSTAT_ACCUM_DBCOUNT(sessions_fatal);
410+
PGSTAT_ACCUM_DBCOUNT(sessions_killed);
411411
#undef PGSTAT_ACCUM_DBCOUNT
412412

413413
pgstat_unlock_entry(entry_ref);

‎src/backend/utils/activity/pgstat_relation.c

Copy file name to clipboardExpand all lines: src/backend/utils/activity/pgstat_relation.c
+7-7Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -819,13 +819,13 @@ pgstat_relation_flush_cb(PgStat_EntryRef *entry_ref, bool nowait)
819819

820820
/* The entry was successfully flushed, add the same to database stats */
821821
dbentry = pgstat_prep_database_pending(dboid);
822-
dbentry->n_tuples_returned += lstats->t_counts.t_tuples_returned;
823-
dbentry->n_tuples_fetched += lstats->t_counts.t_tuples_fetched;
824-
dbentry->n_tuples_inserted += lstats->t_counts.t_tuples_inserted;
825-
dbentry->n_tuples_updated += lstats->t_counts.t_tuples_updated;
826-
dbentry->n_tuples_deleted += lstats->t_counts.t_tuples_deleted;
827-
dbentry->n_blocks_fetched += lstats->t_counts.t_blocks_fetched;
828-
dbentry->n_blocks_hit += lstats->t_counts.t_blocks_hit;
822+
dbentry->tuples_returned += lstats->t_counts.t_tuples_returned;
823+
dbentry->tuples_fetched += lstats->t_counts.t_tuples_fetched;
824+
dbentry->tuples_inserted += lstats->t_counts.t_tuples_inserted;
825+
dbentry->tuples_updated += lstats->t_counts.t_tuples_updated;
826+
dbentry->tuples_deleted += lstats->t_counts.t_tuples_deleted;
827+
dbentry->blocks_fetched += lstats->t_counts.t_blocks_fetched;
828+
dbentry->blocks_hit += lstats->t_counts.t_blocks_hit;
829829

830830
return true;
831831
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.