summaryrefslogtreecommitdiff
path: root/src/include/commands/progress.h
diff options
context:
space:
mode:
authorRobert Haas <rhaas@postgresql.org>2016-03-15 13:31:18 -0400
committerRobert Haas <rhaas@postgresql.org>2016-03-15 13:32:56 -0400
commitc16dc1aca5e01e6acaadfcf38f5fc964a381dc62 (patch)
tree6fa736eac082c521a56151badea923c039ef806a /src/include/commands/progress.h
parent0e9b89986b7ced6daffdf14638a25a35c45423ff (diff)
Add simple VACUUM progress reporting.
There's a lot more that could be done here yet - in particular, this reports only very coarse-grained information about the index vacuuming phase - but even as it stands, the new pg_stat_progress_vacuum can tell you quite a bit about what a long-running vacuum is actually doing. Amit Langote and Robert Haas, based on earlier work by Vinayak Pokale and Rahila Syed.
Diffstat (limited to 'src/include/commands/progress.h')
-rw-r--r--src/include/commands/progress.h37
1 files changed, 37 insertions, 0 deletions
diff --git a/src/include/commands/progress.h b/src/include/commands/progress.h
new file mode 100644
index 00000000000..c48d23be2b4
--- /dev/null
+++ b/src/include/commands/progress.h
@@ -0,0 +1,37 @@
+/*-------------------------------------------------------------------------
+ *
+ * progress.h
+ * Constants used with the progress reporting facilities defined in
+ * pgstat.h. These are possibly interesting to extensions, so we
+ * expose them via this header file. Note that if you update these
+ * constants, you probably also need to update the views based on them
+ * in system_views.sql.
+ *
+ * Portions Copyright (c) 1996-2016, PostgreSQL Global Development Group
+ * Portions Copyright (c) 1994, Regents of the University of California
+ *
+ * src/include/commands/progress.h
+ *
+ *-------------------------------------------------------------------------
+ */
+#ifndef PROGRESS_H
+#define PROGRESS_H
+
+/* Progress parameters for (lazy) vacuum */
+#define PROGRESS_VACUUM_PHASE 0
+#define PROGRESS_VACUUM_TOTAL_HEAP_BLKS 1
+#define PROGRESS_VACUUM_HEAP_BLKS_SCANNED 2
+#define PROGRESS_VACUUM_HEAP_BLKS_VACUUMED 3
+#define PROGRESS_VACUUM_NUM_INDEX_VACUUMS 4
+#define PROGRESS_VACUUM_MAX_DEAD_TUPLES 5
+#define PROGRESS_VACUUM_NUM_DEAD_TUPLES 6
+
+/* Phases of vacuum (as advertised via PROGRESS_VACUUM_PHASE) */
+#define PROGRESS_VACUUM_PHASE_SCAN_HEAP 1
+#define PROGRESS_VACUUM_PHASE_VACUUM_INDEX 2
+#define PROGRESS_VACUUM_PHASE_VACUUM_HEAP 3
+#define PROGRESS_VACUUM_PHASE_INDEX_CLEANUP 4
+#define PROGRESS_VACUUM_PHASE_TRUNCATE 5
+#define PROGRESS_VACUUM_PHASE_FINAL_CLEANUP 6
+
+#endif