summaryrefslogtreecommitdiff
path: root/src/backend/utils/adt/pgstatfuncs.c
AgeCommit message (Collapse)Author
2014-05-06pgindent run for 9.4Bruce Momjian
This includes removing tabs after periods in C comments, which was applied to back branches, so this change should not effect backpatching.
2014-04-01Fix bugs in manipulation of PgBackendStatus.st_clienthostname.Tom Lane
Initialization of this field was not being done according to the st_changecount protocol (it has to be done within the changecount increment range, not outside). And the test to see if the value should be reported as null was wrong. Noted while perusing uses of Port.remote_hostname. This was wrong from the introduction of this code (commit 4a25bc145), so back-patch to 9.1.
2014-02-25Show xid and xmin in pg_stat_activity and pg_stat_replication.Robert Haas
Christian Kruse, reviewed by Andres Freund and myself, with further minor adjustments by me.
2014-02-04Fix comparison of an array of characters with zero to compare with '\0' instead.Fujii Masao
Report from Andres Freund.
2014-01-29Add pg_stat_archiver statistics view.Fujii Masao
This view shows the statistics about the WAL archiver process's activity. Gabriele Bartolini, reviewed by Michael Paquier, refactored a bit by me.
2014-01-07Update copyright for 2014Bruce Momjian
Update all files in head, and files COPYRIGHT and legal.sgml in all back branches.
2013-12-27Fix misplaced right paren bugs in pgstatfuncs.c.Kevin Grittner
The bug would only show up if the C sockaddr structure contained zero in the first byte for a valid address; otherwise it would fail to fail, which is probably why it went unnoticed for so long. Patch submitted by Joel Jacobson after seeing an article by Andrey Karpov in which he reports finding this through static code analysis using PVS-Studio. While I was at it I moved a definition of a local variable referenced in the buggy code to a more local context. Backpatch to all supported branches.
2013-07-05Expose the estimation of number of changed tuples since last analyzeMagnus Hagander
This value, now pg_stat_all_tables.n_mod_since_analyze, was already tracked and used by autovacuum, but not exposed to the user. Mark Kirkwood, review by Laurenz Albe
2013-04-03Avoid updating our PgBackendStatus entry when track_activities is off.Tom Lane
The point of turning off track_activities is to avoid this reporting overhead, but a thinko in commit 4f42b546fd87a80be30c53a0f2c897acb826ad52 caused pgstat_report_activity() to perform half of its updates anyway. Fix that, and also make sure that we clear all the now-disabled fields when transitioning to the non-reporting state.
2013-01-01Update copyrights for 2013Bruce Momjian
Fully update git head, and update back branches in ./COPYRIGHT and legal.sgml files.
2012-08-30Split tuple struct defs from htup.h to htup_details.hAlvaro Herrera
This reduces unnecessary exposure of other headers through htup.h, which is very widely included by many files. I have chosen to move the function prototypes to the new file as well, because that means htup.h no longer needs to include tupdesc.h. In itself this doesn't have much effect in indirect inclusion of tupdesc.h throughout the tree, because it's also required by execnodes.h; but it's something to explore in the future, and it seemed best to do the htup.h change now while I'm busy with it.
2012-06-10Run pgindent on 9.2 source tree in preparation for first 9.3Bruce Momjian
commit-fest.
2012-04-30Converge all SQL-level statistics timing values to float8 milliseconds.Tom Lane
This patch adjusts the core statistics views to match the decision already taken for pg_stat_statements, that values representing elapsed time should be represented as float8 and measured in milliseconds. By using float8, we are no longer tied to a specific maximum precision of timing data. (Internally, it's still microseconds, but we could now change that without needing changes at the SQL level.) The columns affected are pg_stat_bgwriter.checkpoint_write_time pg_stat_bgwriter.checkpoint_sync_time pg_stat_database.blk_read_time pg_stat_database.blk_write_time pg_stat_user_functions.total_time pg_stat_user_functions.self_time pg_stat_xact_user_functions.total_time pg_stat_xact_user_functions.self_time The first four of these are new in 9.2, so there is no compatibility issue from changing them. The others require a release note comment that they are now double precision (and can show a fractional part) rather than bigint as before; also their underlying statistics functions now match the column definitions, instead of returning bigint microseconds.
2012-04-29Rename I/O timing statistics columns to blk_read_time and blk_write_time.Tom Lane
This seems more consistent with the pre-existing choices for names of other statistics columns. Rename assorted internal identifiers to match.
2012-04-05Publish checkpoint timing information to pg_stat_bgwriter.Robert Haas
Greg Smith, Peter Geoghegan, and Robert Haas
2012-04-05Expose track_iotiming data via the statistics collector.Robert Haas
Ants Aasma's original patch to add timing information for buffer I/O requests exposed this data at the relation level, which was judged too costly. I've here exposed it at the database level instead.
2012-01-26Add deadlock counter to pg_stat_databaseMagnus Hagander
Adds a counter that tracks number of deadlocks that occurred in each database to pg_stat_database. Magnus Hagander, reviewed by Jaime Casanova
2012-01-26Track temporary file count and size in pg_stat_databaseMagnus Hagander
Add counters for number and size of temporary files used for spill-to-disk queries for each database to the pg_stat_database view. Tomas Vondra, review by Magnus Hagander
2012-01-19Separate state from query string in pg_stat_activityMagnus Hagander
This separates the state (running/idle/idleintransaction etc) into it's own field ("state"), and leaves the query field containing just query text. The query text will now mean "current query" when a query is running and "last query" in other states. Accordingly,the field has been renamed from current_query to query. Since backwards compatibility was broken anyway to make that, the procpid field has also been renamed to pid - along with the same field in pg_stat_replication for consistency. Scott Mead and Magnus Hagander, review work from Greg Smith
2012-01-01Update copyright notices for year 2012.Bruce Momjian
2011-09-09Move Timestamp/Interval typedefs and basic macros into datatype/timestamp.h.Tom Lane
As per my recent proposal, this refactors things so that these typedefs and macros are available in a header that can be included in frontend-ish code. I also changed various headers that were undesirably including utils/timestamp.h to include datatype/timestamp.h instead. Unsurprisingly, this showed that half the system was getting utils/timestamp.h by way of xlog.h. No actual code changes here, just header refactoring.
2011-08-09Use clearer notation for getnameinfo() return handlingPeter Eisentraut
Writing if (getnameinfo(...)) handle_error(); reads quite strangely, so use something like if (getnameinfo(...) != 0) handle_error(); instead.
2011-07-03Mark pg_stat_reset_shared as strictMagnus Hagander
This is the proper fix for bug #6082 about pg_stat_reset_shared(NULL) causing a crash, and it reverts commit 79aa44536f3980d324f486504cde643ce23bf5c6 on head. The workaround of throwing an error from inside the function is left on backbranches (including 9.1) since this change requires a new initdb.
2011-06-29Protect pg_stat_reset_shared() against NULL inputMagnus Hagander
Per bug #6082, reported by Steve Haslam
2011-06-11Add C comment mentioning pg_stat_activity.procpid should have beenBruce Momjian
called 'pid'.
2011-04-10pgindent run before PG 9.1 beta 1.Bruce Momjian
2011-03-26Clean up cruft around collation initialization for tupdescs and scankeys.Tom Lane
I found actual bugs in GiST and plpgsql; the rest of this is cosmetic but meant to decrease the odds of future bugs of omission.
2011-02-17Add client_hostname field to pg_stat_activity.Robert Haas
Peter Eisentraut, reviewed by Steve Singer, Alvaro Herrera, and me.
2011-02-10Track last time for statistics reset on databases and bgwriterMagnus Hagander
Tracks one counter for each database, which is reset whenever the statistics for any individual object inside the database is reset, and one counter for the background writer. Tomas Vondra, reviewed by Greg Smith
2011-01-03Add views and functions to monitor hot standby query conflictsMagnus Hagander
Add the view pg_stat_database_conflicts and a column to pg_stat_database, and the underlying functions to provide the information.
2011-01-01Stamp copyrights for year 2011.Bruce Momjian
2010-11-15Add new buffers_backend_fsync field to pg_stat_bgwriter.Robert Haas
This new field counts the number of times that a backend which writes a buffer out to the OS must also fsync() it. This happens when the bgwriter fsync request queue is full, and is generally detrimental to performance, so it's good to know when it's happening. Along the way, log a new message at level DEBUG1 whenever we fail to hand off an fsync, so that the problem can also be seen in examination of log files (if the logging level is cranked up high enough). Greg Smith, with minor tweaks by me.
2010-09-20Remove cvs keywords from all files.Magnus Hagander
2010-08-21Add vacuum and analyze counters to pg_stat_*_tables views.Magnus Hagander
2010-08-08Add stats functions and views to provide access to a transaction's ownTom Lane
statistics counts. These numbers are being accumulated but haven't yet been transmitted to the collector (and won't be, until the transaction ends). For some purposes, though, it's handy to be able to look at them. Joel Jacobson, reviewed by Itagaki Takahiro
2010-02-26pgindent run for 9.0Bruce Momjian
2010-01-28Add functions to reset the statistics counter for a single table/index orMagnus Hagander
a single function.
2010-01-19Add pg_stat_reset_shared('bgwriter') to reset the cluster-wide sharedMagnus Hagander
statistics of the bgwriter. Greg Smith
2010-01-02Update copyright for the year 2010.Bruce Momjian
2009-11-29Make pg_stat_activity.application_name visible to all users, rather thanTom Lane
being hidden when current_query is. Relocate it to a column position more consistent with that behavior. Per discussion.
2009-11-28Add support for an application_name parameter, which is displayed inTom Lane
pg_stat_activity and recorded in log entries. Dave Page, reviewed by Andres Freund
2009-06-118.4 pgindent run, with new combined Linux/FreeBSD/MinGW typedef listBruce Momjian
provided by Andrew.
2009-01-01Update copyright for 2009.Bruce Momjian
2008-05-15Add support for tracking call counts and elapsed runtime for user-definedTom Lane
functions. Note that because this patch changes FmgrInfo, any external C functions you might be testing with 8.4 will need to be recompiled. Patch by Martin Pihlak, some editorialization by me (principally, removing tracking of getrusage() numbers)
2008-05-12Restructure some header files a bit, in particular heapam.h, by removing someAlvaro Herrera
unnecessary #include lines in it. Also, move some tuple routine prototypes and macros to htup.h, which allows removal of heapam.h inclusion from some .c files. For this to work, a new header file access/sysattr.h needed to be created, initially containing attribute numbers of system columns, for pg_dump usage. While at it, make contrib ltree, intarray and hstore header files more consistent with our header style.
2008-05-07Make the pg_stat_activity view call a SRF (pg_stat_get_activity())Magnus Hagander
instead of calling a bunch of individual functions. This function can also be called directly, taking a PID as an argument, to return only the data for a single PID.
2008-03-25Simplify and standardize conversions between TEXT datums and ordinary CTom Lane
strings. This patch introduces four support functions cstring_to_text, cstring_to_text_with_len, text_to_cstring, and text_to_cstring_buffer, and two macros CStringGetTextDatum and TextDatumGetCString. A number of existing macros that provided variants on these themes were removed. Most of the places that need to make such conversions now require just one function or macro call, in place of the multiple notational layers that used to be needed. There are no longer any direct calls of textout or textin, and we got most of the places that were using handmade conversions via memcpy (there may be a few still lurking, though). This commit doesn't make any serious effort to eliminate transient memory leaks caused by detoasting toasted text objects before they reach text_to_cstring. We changed PG_GETARG_TEXT_P to PG_GETARG_TEXT_PP in a few places where it was easy, but much more could be done. Brendan Jurd and Tom Lane
2008-01-01Update copyrights in source tree to 2008.Bruce Momjian
2007-11-15pgindent run for 8.3.Bruce Momjian
2007-09-25Just-in-time background writing strategy. This code avoids re-scanningTom Lane
buffers that cannot possibly need to be cleaned, and estimates how many buffers it should try to clean based on moving averages of recent allocation requests and density of reusable buffers. The patch also adds a couple more columns to pg_stat_bgwriter to help measure the effectiveness of the bgwriter. Greg Smith, building on his own work and ideas from several other people, in particular a much older patch from Itagaki Takahiro.