diff options
author | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2008-08-01 13:16:09 +0000 |
---|---|---|
committer | Alvaro Herrera <alvherre@alvh.no-ip.org> | 2008-08-01 13:16:09 +0000 |
commit | e36e6b1cabfe9a1c59226d4767ca924b6ed74908 (patch) | |
tree | b9890c2de64fb0a835ed6fa462b7e91d8d6fcf53 /src/backend/tcop/postgres.c | |
parent | 26e6991a2d73bf5c5d93453447d472176f5a5f67 (diff) | |
download | postgresql-e36e6b1cabfe9a1c59226d4767ca924b6ed74908.tar.gz postgresql-e36e6b1cabfe9a1c59226d4767ca924b6ed74908.zip |
Add a few more DTrace probes to the backend.
Robert Lor
Diffstat (limited to 'src/backend/tcop/postgres.c')
-rw-r--r-- | src/backend/tcop/postgres.c | 22 |
1 files changed, 20 insertions, 2 deletions
diff --git a/src/backend/tcop/postgres.c b/src/backend/tcop/postgres.c index 242388f2cb0..132d33c5a9d 100644 --- a/src/backend/tcop/postgres.c +++ b/src/backend/tcop/postgres.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.554 2008/07/18 20:26:06 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/tcop/postgres.c,v 1.555 2008/08/01 13:16:09 alvherre Exp $ * * NOTES * this is the "main" module of the postgres backend and @@ -50,6 +50,8 @@ #include "miscadmin.h" #include "nodes/print.h" #include "optimizer/planner.h" +#include "pgstat.h" +#include "pg_trace.h" #include "parser/analyze.h" #include "parser/parser.h" #include "postmaster/autovacuum.h" @@ -70,7 +72,6 @@ #include "utils/snapmgr.h" #include "mb/pg_wchar.h" -#include "pgstat.h" extern int optind; extern char *optarg; @@ -551,6 +552,8 @@ pg_parse_query(const char *query_string) { List *raw_parsetree_list; + TRACE_POSTGRESQL_QUERY_PARSE_START(query_string); + if (log_parser_stats) ResetUsage(); @@ -572,6 +575,8 @@ pg_parse_query(const char *query_string) } #endif + TRACE_POSTGRESQL_QUERY_PARSE_DONE(query_string); + return raw_parsetree_list; } @@ -591,6 +596,8 @@ pg_analyze_and_rewrite(Node *parsetree, const char *query_string, Query *query; List *querytree_list; + TRACE_POSTGRESQL_QUERY_REWRITE_START(query_string); + /* * (1) Perform parse analysis. */ @@ -607,6 +614,8 @@ pg_analyze_and_rewrite(Node *parsetree, const char *query_string, */ querytree_list = pg_rewrite_query(query); + TRACE_POSTGRESQL_QUERY_REWRITE_DONE(query_string); + return querytree_list; } @@ -677,6 +686,8 @@ pg_plan_query(Query *querytree, int cursorOptions, ParamListInfo boundParams) if (querytree->commandType == CMD_UTILITY) return NULL; + TRACE_POSTGRESQL_QUERY_PLAN_START(); + if (log_planner_stats) ResetUsage(); @@ -711,6 +722,8 @@ pg_plan_query(Query *querytree, int cursorOptions, ParamListInfo boundParams) if (Debug_print_plan) elog_node_display(DEBUG1, "plan", plan, Debug_pretty_print); + TRACE_POSTGRESQL_QUERY_PLAN_DONE(); + return plan; } @@ -785,6 +798,7 @@ exec_simple_query(const char *query_string) bool isTopLevel; char msec_str[32]; + /* * Report query to various monitoring facilities. */ @@ -792,6 +806,8 @@ exec_simple_query(const char *query_string) pgstat_report_activity(query_string); + TRACE_POSTGRESQL_QUERY_START(query_string); + /* * We use save_log_statement_stats so ShowUsage doesn't report incorrect * results because ResetUsage wasn't called. @@ -1058,6 +1074,8 @@ exec_simple_query(const char *query_string) if (save_log_statement_stats) ShowUsage("QUERY STATISTICS"); + TRACE_POSTGRESQL_QUERY_DONE(query_string); + debug_query_string = NULL; } |