]> git.pld-linux.org Git - packages/mysql.git/blob - mysql-innodb_locks_held.patch
automake fix
[packages/mysql.git] / mysql-innodb_locks_held.patch
1 diff -ruN a/innobase/include/srv0srv.h b/innobase/include/srv0srv.h
2 --- a/innobase/include/srv0srv.h        Mon Jun 01 00:36:33 2009 -0700
3 +++ b/innobase/include/srv0srv.h        Mon Jun 01 00:36:41 2009 -0700
4 @@ -80,6 +80,8 @@
5  extern ulint   srv_log_file_size;
6  extern ulint   srv_log_buffer_size;
7  extern ulong   srv_flush_log_at_trx_commit;
8 +extern ulong   srv_show_locks_held;
9 +extern ulong   srv_show_verbose_locks;
10  
11  extern byte    srv_latin1_ordering[256];/* The sort order table of the latin1
12                                         character set */
13 diff -ruN a/innobase/lock/lock0lock.c b/innobase/lock/lock0lock.c
14 --- a/innobase/lock/lock0lock.c Mon Jun 01 00:36:33 2009 -0700
15 +++ b/innobase/lock/lock0lock.c Mon Jun 01 00:36:41 2009 -0700
16 @@ -4156,6 +4156,7 @@
17  #endif /* UNIV_SYNC_DEBUG */
18         }
19  
20 +       if ( srv_show_verbose_locks ) {
21         for (i = 0; i < lock_rec_get_n_bits(lock); i++) {
22  
23                 if (lock_rec_get_nth_bit(lock, i)) {
24 @@ -4173,6 +4174,7 @@
25                         putc('\n', file);
26                 }
27         }
28 +       } /* srv_show_verbose_locks */
29  
30         mtr_commit(&mtr);
31         if (UNIV_LIKELY_NULL(heap)) {
32 @@ -4338,7 +4340,7 @@
33                 }
34         }
35  
36 -       if (!srv_print_innodb_lock_monitor) {
37 +       if (!srv_print_innodb_lock_monitor && !srv_show_locks_held) {
38                 nth_trx++;
39                 goto loop;
40         }
41 @@ -4393,9 +4395,9 @@
42  
43         nth_lock++;
44  
45 -       if (nth_lock >= 10) {
46 +       if (nth_lock >= srv_show_locks_held) {
47                 fputs(
48 -               "10 LOCKS PRINTED FOR THIS TRX: SUPPRESSING FURTHER PRINTS\n",
49 +               "TOO MANY LOCKS PRINTED FOR THIS TRX: SUPPRESSING FURTHER PRINTS\n",
50                         file);
51         
52                 nth_trx++;
53 diff -ruN a/innobase/srv/srv0srv.c b/innobase/srv/srv0srv.c
54 --- a/innobase/srv/srv0srv.c    Mon Jun 01 00:36:33 2009 -0700
55 +++ b/innobase/srv/srv0srv.c    Mon Jun 01 00:36:41 2009 -0700
56 @@ -116,6 +116,8 @@
57  ulint  srv_log_file_size       = ULINT_MAX;    /* size in database pages */ 
58  ulint  srv_log_buffer_size     = ULINT_MAX;    /* size in database pages */ 
59  ulong  srv_flush_log_at_trx_commit = 1;
60 +ulint  srv_show_locks_held     = 10;
61 +ulint  srv_show_verbose_locks  = 0;
62  
63  byte   srv_latin1_ordering[256]        /* The sort order table of the latin1
64                                         character set. The following table is
65 @@ -1711,24 +1713,6 @@
66  
67         mutex_exit(&dict_foreign_err_mutex);
68  
69 -       lock_print_info_summary(file);
70 -       if (trx_start) {
71 -               long    t = ftell(file);
72 -               if (t < 0) {
73 -                       *trx_start = ULINT_UNDEFINED;
74 -               } else {
75 -                       *trx_start = (ulint) t;
76 -               }
77 -       }
78 -       lock_print_info_all_transactions(file);
79 -       if (trx_end) {
80 -               long    t = ftell(file);
81 -               if (t < 0) {
82 -                       *trx_end = ULINT_UNDEFINED;
83 -               } else {
84 -                       *trx_end = (ulint) t;
85 -               }
86 -       }
87         fputs("--------\n"
88                 "FILE I/O\n"
89                 "--------\n", file);
90 @@ -1822,6 +1806,25 @@
91         srv_n_rows_deleted_old = srv_n_rows_deleted;
92         srv_n_rows_read_old = srv_n_rows_read;
93  
94 +       lock_print_info_summary(file);
95 +       if (trx_start) {
96 +               long    t = ftell(file);
97 +               if (t < 0) {
98 +                       *trx_start = ULINT_UNDEFINED;
99 +               } else {
100 +                       *trx_start = (ulint) t;
101 +               }
102 +       }
103 +       lock_print_info_all_transactions(file);
104 +       if (trx_end) {
105 +               long    t = ftell(file);
106 +               if (t < 0) {
107 +                       *trx_end = ULINT_UNDEFINED;
108 +               } else {
109 +                       *trx_end = (ulint) t;
110 +               }
111 +       }
112 +
113    fputs("----------------------------\n"
114                        "END OF INNODB MONITOR OUTPUT\n"
115                 "============================\n", file);
116 diff -ruN a/libmysqld/set_var.cc b/libmysqld/set_var.cc
117 --- a/libmysqld/set_var.cc      Mon Jun 01 00:36:33 2009 -0700
118 +++ b/libmysqld/set_var.cc      Mon Jun 01 00:36:41 2009 -0700
119 @@ -831,6 +831,8 @@
120    &sys_innodb_thread_concurrency,
121    &sys_innodb_commit_concurrency,
122    &sys_innodb_flush_log_at_trx_commit,
123 +  &sys_innodb_show_locks_held,
124 +  &sys_innodb_show_verbose_locks,
125  #endif
126    &sys_trust_routine_creators,
127    &sys_trust_function_creators,
128 @@ -948,6 +950,8 @@
129    {"innodb_file_io_threads", (char*) &innobase_file_io_threads, SHOW_LONG },
130    {"innodb_file_per_table", (char*) &innobase_file_per_table, SHOW_MY_BOOL},
131    {sys_innodb_flush_log_at_trx_commit.name, (char*) &sys_innodb_flush_log_at_trx_commit, SHOW_SYS},
132 +  {sys_innodb_show_locks_held.name, (char*) &sys_innodb_show_locks_held, SHOW_SYS },
133 +  {sys_innodb_show_verbose_locks.name, (char*) &sys_innodb_show_verbose_locks, SHOW_SYS },
134    {"innodb_flush_method",    (char*) &innobase_unix_file_flush_method, SHOW_CHAR_PTR},
135    {"innodb_force_recovery", (char*) &innobase_force_recovery, SHOW_LONG },
136    {"innodb_lock_wait_timeout", (char*) &innobase_lock_wait_timeout, SHOW_LONG },
137 diff -ruN /dev/null b/patch_info/innodb_locks_held.info
138 --- /dev/null   Thu Jan 01 00:00:00 1970 +0000
139 +++ b/patch_info/innodb_locks_held.info Mon Jun 01 00:36:41 2009 -0700
140 @@ -0,0 +1,6 @@
141 +File=innodb_locks_held.patch
142 +Name=Add locks held, remove locked records in SHOW INNODB STATUS
143 +Version=1.0
144 +Author=Baron Schwartz <baron@xaprb.com>
145 +License=GPL
146 +Comment=Bug #29126 fix
147 diff -ruN a/sql/ha_innodb.h b/sql/ha_innodb.h
148 --- a/sql/ha_innodb.h   Mon Jun 01 00:36:33 2009 -0700
149 +++ b/sql/ha_innodb.h   Mon Jun 01 00:36:41 2009 -0700
150 @@ -243,6 +243,8 @@
151  extern ulong srv_enable_unsafe_group_commit;
152  extern uint srv_read_ahead;
153  extern uint srv_adaptive_checkpoint;
154 +extern ulong srv_show_locks_held;
155 +extern ulong srv_show_verbose_locks;
156  
157  /* An option to enable the fix for "Bug#43660 SHOW INDEXES/ANALYZE does
158  NOT update cardinality for indexes of InnoDB table". By default we are
159 diff -ruN a/sql/mysqld.cc b/sql/mysqld.cc
160 --- a/sql/mysqld.cc     Mon Jun 01 00:36:33 2009 -0700
161 +++ b/sql/mysqld.cc     Mon Jun 01 00:36:41 2009 -0700
162 @@ -5032,6 +5032,8 @@
163    OPT_INNODB_MAX_PURGE_LAG,
164    OPT_INNODB_FILE_IO_THREADS,
165    OPT_INNODB_LOCK_WAIT_TIMEOUT,
166 +  OPT_INNODB_SHOW_LOCKS_HELD,
167 +  OPT_INNODB_SHOW_VERBOSE_LOCKS,
168    OPT_INNODB_THREAD_CONCURRENCY,
169    OPT_INNODB_COMMIT_CONCURRENCY,
170    OPT_INNODB_FORCE_RECOVERY,
171 @@ -5379,6 +5381,14 @@
172     (gptr*) &srv_flush_log_at_trx_commit,
173     (gptr*) &srv_flush_log_at_trx_commit,
174     0, GET_ULONG, OPT_ARG,  1, 0, 2, 0, 0, 0},
175 +  {"innodb_show_locks_held", OPT_INNODB_SHOW_LOCKS_HELD,
176 +   "Number of locks held to print for each InnoDB transaction in SHOW INNODB STATUS.",
177 +   (gptr*) &srv_show_locks_held, (gptr*) &srv_show_locks_held,
178 +   0, GET_LONG, OPT_ARG, 10, 0, 1000, 0, 1, 0},
179 +  {"innodb_show_verbose_locks", OPT_INNODB_SHOW_VERBOSE_LOCKS,
180 +   "Whether to show records locked in SHOW INNODB STATUS.",
181 +   (gptr*) &srv_show_verbose_locks, (gptr*) &srv_show_verbose_locks,
182 +   0, GET_LONG, OPT_ARG, 0, 0, 1, 0, 1, 0},
183    {"innodb_flush_method", OPT_INNODB_FLUSH_METHOD,
184     "With which method to flush data.", (gptr*) &innobase_unix_file_flush_method,
185     (gptr*) &innobase_unix_file_flush_method, 0, GET_STR, REQUIRED_ARG, 0, 0, 0,
186 diff -ruN a/sql/set_var.cc b/sql/set_var.cc
187 --- a/sql/set_var.cc    Mon Jun 01 00:36:33 2009 -0700
188 +++ b/sql/set_var.cc    Mon Jun 01 00:36:41 2009 -0700
189 @@ -541,6 +541,12 @@
190  sys_var_enum   sys_innodb_adaptive_checkpoint("innodb_adaptive_checkpoint",
191                             &srv_adaptive_checkpoint,
192                             &innodb_adaptive_checkpoint_typelib, fix_innodb_adaptive_checkpoint);
193 +sys_var_long_ptr  sys_innodb_show_locks_held(
194 +                                        "innodb_show_locks_held",
195 +                                        &srv_show_locks_held);
196 +sys_var_long_ptr  sys_innodb_show_verbose_locks(
197 +                                        "innodb_show_verbose_locks",
198 +                                        &srv_show_verbose_locks);
199  sys_var_const_os_str_ptr sys_innodb_data_file_path("innodb_data_file_path", 
200                                                 &innobase_data_file_path);
201  sys_var_const_os_str_ptr sys_innodb_data_home_dir("innodb_data_home_dir", 
202 @@ -924,6 +930,8 @@
203    &sys_innodb_read_ahead,
204    &sys_innodb_enable_unsafe_group_commit,
205    &sys_innodb_adaptive_checkpoint,
206 +  &sys_innodb_show_locks_held,
207 +  &sys_innodb_show_verbose_locks,
208  #endif
209    &sys_trust_routine_creators,
210    &sys_trust_function_creators,
211 @@ -1041,6 +1049,8 @@
212    {"innodb_file_io_threads", (char*) &innobase_file_io_threads, SHOW_LONG },
213    {"innodb_file_per_table", (char*) &innobase_file_per_table, SHOW_MY_BOOL},
214    {sys_innodb_flush_log_at_trx_commit.name, (char*) &sys_innodb_flush_log_at_trx_commit, SHOW_SYS},
215 +  {sys_innodb_show_locks_held.name, (char*) &sys_innodb_show_locks_held, SHOW_SYS },
216 +  {sys_innodb_show_verbose_locks.name, (char*) &sys_innodb_show_verbose_locks, SHOW_SYS },
217    {"innodb_flush_method",    (char*) &innobase_unix_file_flush_method, SHOW_CHAR_PTR},
218    {"innodb_force_recovery", (char*) &innobase_force_recovery, SHOW_LONG },
219    {"innodb_lock_wait_timeout", (char*) &innobase_lock_wait_timeout, SHOW_LONG },
This page took 0.058117 seconds and 3 git commands to generate.