summaryrefslogtreecommitdiffstats
path: root/docs/html/dbdoc.html
blob: b6cefe965d6d2253ecda0da84c6ef98a156dc55f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
<HTML
><HEAD
><TITLE
>MySQL Bugzilla Database Introduction</TITLE
><META
NAME="GENERATOR"
CONTENT="Modular DocBook HTML Stylesheet Version 1.61
"><LINK
REL="HOME"
TITLE="The Bugzilla Guide"
HREF="index.html"><LINK
REL="UP"
TITLE="The Bugzilla Database"
HREF="database.html"><LINK
REL="PREVIOUS"
TITLE="Database Schema Chart"
HREF="dbschema.html"><LINK
REL="NEXT"
TITLE="MySQL Permissions & Grant Tables"
HREF="granttables.html"></HEAD
><BODY
CLASS="SECTION"
BGCOLOR="#FFFFFF"
TEXT="#000000"
LINK="#0000FF"
VLINK="#840084"
ALINK="#0000FF"
><DIV
CLASS="NAVHEADER"
><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TH
COLSPAN="3"
ALIGN="center"
>The Bugzilla Guide</TH
></TR
><TR
><TD
WIDTH="10%"
ALIGN="left"
VALIGN="bottom"
><A
HREF="dbschema.html"
>Prev</A
></TD
><TD
WIDTH="80%"
ALIGN="center"
VALIGN="bottom"
>Appendix B. The Bugzilla Database</TD
><TD
WIDTH="10%"
ALIGN="right"
VALIGN="bottom"
><A
HREF="granttables.html"
>Next</A
></TD
></TR
></TABLE
><HR
ALIGN="LEFT"
WIDTH="100%"></DIV
><DIV
CLASS="SECTION"
><H1
CLASS="SECTION"
><A
NAME="DBDOC"
>B.2. MySQL Bugzilla Database Introduction</A
></H1
><P
CLASS="LITERALLAYOUT"
><br>
Contributor(s):&nbsp;&nbsp;Matthew&nbsp;P.&nbsp;Barnson&nbsp;(mbarnson@excitehome.net)<br>
<br>
Last&nbsp;update:&nbsp;May&nbsp;16,&nbsp;2000<br>
<br>
Changes:<br>
Version&nbsp;1.0:&nbsp;Initial&nbsp;public&nbsp;release&nbsp;(May&nbsp;16,&nbsp;2000)<br>
<br>
Maintainer:&nbsp;&nbsp;Matthew&nbsp;P.&nbsp;Barnson&nbsp;(mbarnson@excitehome.net)<br>
<br>
<br>
===<br>
Table&nbsp;Of&nbsp;Contents<br>
===<br>
<br>
FOREWORD<br>
INTRODUCTION<br>
THE&nbsp;BASICS<br>
THE&nbsp;TABLES<br>
THE&nbsp;DETAILS<br>
<br>
<br>
<br>
===<br>
FOREWORD<br>
===<br>
<br>
&nbsp;&nbsp;This&nbsp;information&nbsp;comes&nbsp;straight&nbsp;from&nbsp;my&nbsp;life.&nbsp;&nbsp;I&nbsp;was&nbsp;forced&nbsp;to&nbsp;learn&nbsp;how<br>
Bugzilla&nbsp;organizes&nbsp;database&nbsp;because&nbsp;of&nbsp;nitpicky&nbsp;requests&nbsp;from&nbsp;users&nbsp;for&nbsp;tiny<br>
changes&nbsp;in&nbsp;wording,&nbsp;rather&nbsp;than&nbsp;having&nbsp;people&nbsp;re-educate&nbsp;themselves&nbsp;or<br>
figure&nbsp;out&nbsp;how&nbsp;to&nbsp;work&nbsp;our&nbsp;procedures&nbsp;around&nbsp;the&nbsp;tool.&nbsp;&nbsp;It&nbsp;sucks,&nbsp;but&nbsp;it&nbsp;can<br>
and&nbsp;will&nbsp;happen&nbsp;to&nbsp;you,&nbsp;so&nbsp;learn&nbsp;how&nbsp;the&nbsp;schema&nbsp;works&nbsp;and&nbsp;deal&nbsp;with&nbsp;it&nbsp;when&nbsp;it<br>
comes.<br>
<br>
&nbsp;&nbsp;I'm&nbsp;sorry&nbsp;this&nbsp;version&nbsp;is&nbsp;plain&nbsp;text.&nbsp;&nbsp;I&nbsp;can&nbsp;whip&nbsp;this&nbsp;info&nbsp;out&nbsp;a&nbsp;lot&nbsp;faster<br>
if&nbsp;I'm&nbsp;not&nbsp;concerned&nbsp;about&nbsp;complex&nbsp;formatting.&nbsp;&nbsp;I'll&nbsp;get&nbsp;it&nbsp;into&nbsp;sgml&nbsp;for&nbsp;easy<br>
portability&nbsp;as&nbsp;time&nbsp;permits.<br>
<br>
&nbsp;&nbsp;The&nbsp;Bugzilla&nbsp;Database&nbsp;Schema&nbsp;has&nbsp;a&nbsp;home!&nbsp;&nbsp;In&nbsp;addition&nbsp;to&nbsp;availability&nbsp;via&nbsp;CVS<br>
and&nbsp;released&nbsp;versions&nbsp;2.12&nbsp;and&nbsp;higher&nbsp;of&nbsp;Bugzilla,&nbsp;you&nbsp;can&nbsp;find&nbsp;the&nbsp;latest&nbsp;&#38;<br>
greatest&nbsp;version&nbsp;of&nbsp;the&nbsp;Bugzilla&nbsp;Database&nbsp;Schema&nbsp;at<br>
http://www.trilobyte.net/barnsons/.&nbsp;This&nbsp;is&nbsp;a&nbsp;living&nbsp;document;&nbsp;please&nbsp;be&nbsp;sure<br>
you&nbsp;are&nbsp;up-to-date&nbsp;with&nbsp;the&nbsp;latest&nbsp;version&nbsp;before&nbsp;mirroring.<br>
<br>
&nbsp;&nbsp;The&nbsp;Bugzilla&nbsp;Database&nbsp;Schema&nbsp;is&nbsp;designed&nbsp;to&nbsp;provide&nbsp;vital&nbsp;information<br>
regarding&nbsp;the&nbsp;structure&nbsp;of&nbsp;the&nbsp;MySQL&nbsp;database.&nbsp;&nbsp;Where&nbsp;appropriate,&nbsp;this<br>
document&nbsp;will&nbsp;refer&nbsp;to&nbsp;URLs&nbsp;rather&nbsp;than&nbsp;including&nbsp;documents&nbsp;in&nbsp;their&nbsp;entirety<br>
to&nbsp;ensure&nbsp;completeness&nbsp;even&nbsp;should&nbsp;this&nbsp;paper&nbsp;become&nbsp;out&nbsp;of&nbsp;date.<br>
<br>
&nbsp;&nbsp;This&nbsp;document&nbsp;is&nbsp;not&nbsp;maintained&nbsp;by&nbsp;Netscape&nbsp;or&nbsp;Netscape&nbsp;employees,&nbsp;so&nbsp;please<br>
do&nbsp;not&nbsp;contact&nbsp;them&nbsp;regarding&nbsp;errors&nbsp;or&nbsp;omissions&nbsp;contained&nbsp;herein.&nbsp;Please<br>
direct&nbsp;all&nbsp;questions,&nbsp;comments,&nbsp;updates,&nbsp;flames,&nbsp;etc.&nbsp;to&nbsp;Matthew&nbsp;P.&nbsp;Barnson<br>
mbarnson@excitehome.net)&nbsp;(barnboy&nbsp;or&nbsp;barnhome&nbsp;on&nbsp;irc.mozilla.org&nbsp;in<br>
#mozwebtools).<br>
<br>
&nbsp;&nbsp;I'm&nbsp;sure&nbsp;I've&nbsp;made&nbsp;some&nbsp;glaring&nbsp;errors&nbsp;or&nbsp;omissions&nbsp;in&nbsp;this&nbsp;paper&nbsp;--&nbsp;please<br>
email&nbsp;me&nbsp;corrections&nbsp;or&nbsp;post&nbsp;corrections&nbsp;to&nbsp;the<br>
netscape.public.mozilla.webtools&nbsp;newsgroup.<br>
<br>
<br>
<br>
===<br>
INTRODUCTION<br>
===<br>
<br>
<br>
<br>
&nbsp;&nbsp;So,&nbsp;here&nbsp;you&nbsp;are&nbsp;with&nbsp;your&nbsp;brand-new&nbsp;installation&nbsp;of&nbsp;Bugzilla.&nbsp;&nbsp;You've&nbsp;got<br>
MySQL&nbsp;set&nbsp;up,&nbsp;Apache&nbsp;working&nbsp;right,&nbsp;Perl&nbsp;DBI&nbsp;and&nbsp;DBD&nbsp;talking&nbsp;to&nbsp;the&nbsp;database<br>
flawlessly.&nbsp;&nbsp;Maybe&nbsp;you've&nbsp;even&nbsp;entered&nbsp;a&nbsp;few&nbsp;test&nbsp;bugs&nbsp;to&nbsp;make&nbsp;sure&nbsp;email's<br>
working;&nbsp;people&nbsp;seem&nbsp;to&nbsp;be&nbsp;notified&nbsp;of&nbsp;new&nbsp;bugs&nbsp;and&nbsp;changes,&nbsp;and&nbsp;you&nbsp;can<br>
enter&nbsp;and&nbsp;edit&nbsp;bugs&nbsp;to&nbsp;your&nbsp;heart's&nbsp;content.&nbsp;&nbsp;Perhaps&nbsp;you've&nbsp;gone&nbsp;through&nbsp;the<br>
trouble&nbsp;of&nbsp;setting&nbsp;up&nbsp;a&nbsp;gateway&nbsp;for&nbsp;people&nbsp;to&nbsp;submit&nbsp;bugs&nbsp;to&nbsp;your&nbsp;database&nbsp;via<br>
email,&nbsp;have&nbsp;had&nbsp;a&nbsp;few&nbsp;people&nbsp;test&nbsp;it,&nbsp;and&nbsp;received&nbsp;rave&nbsp;reviews&nbsp;from&nbsp;your&nbsp;beta<br>
testers.<br>
<br>
&nbsp;&nbsp;What's&nbsp;the&nbsp;next&nbsp;thing&nbsp;you&nbsp;do?&nbsp;&nbsp;Outline&nbsp;a&nbsp;training&nbsp;strategy&nbsp;for&nbsp;your<br>
development&nbsp;team,&nbsp;of&nbsp;course,&nbsp;and&nbsp;bring&nbsp;them&nbsp;up&nbsp;to&nbsp;speed&nbsp;on&nbsp;the&nbsp;new&nbsp;tool&nbsp;you've<br>
labored&nbsp;over&nbsp;for&nbsp;hours.<br>
<br>
&nbsp;&nbsp;Your&nbsp;first&nbsp;training&nbsp;session&nbsp;starts&nbsp;off&nbsp;very&nbsp;well!&nbsp;&nbsp;You&nbsp;have&nbsp;a&nbsp;captive<br>
audience&nbsp;which&nbsp;seems&nbsp;enraptured&nbsp;by&nbsp;the&nbsp;efficiency&nbsp;embodied&nbsp;in&nbsp;this&nbsp;thing&nbsp;called<br>
"Bugzilla".&nbsp;&nbsp;You&nbsp;are&nbsp;caught&nbsp;up&nbsp;describing&nbsp;the&nbsp;nifty&nbsp;features,&nbsp;how&nbsp;people&nbsp;can<br>
save&nbsp;favorite&nbsp;queries&nbsp;in&nbsp;the&nbsp;database,&nbsp;set&nbsp;them&nbsp;up&nbsp;as&nbsp;headers&nbsp;and&nbsp;footers&nbsp;on<br>
their&nbsp;pages,&nbsp;customize&nbsp;their&nbsp;layouts,&nbsp;generate&nbsp;reports,&nbsp;track&nbsp;status&nbsp;with<br>
greater&nbsp;efficiency&nbsp;than&nbsp;ever&nbsp;before,&nbsp;leap&nbsp;tall&nbsp;buildings&nbsp;with&nbsp;a&nbsp;single&nbsp;bound<br>
and&nbsp;rescue&nbsp;Jane&nbsp;from&nbsp;the&nbsp;clutches&nbsp;of&nbsp;Certain&nbsp;Death!<br>
<br>
&nbsp;&nbsp;But&nbsp;Certain&nbsp;Death&nbsp;speaks&nbsp;up&nbsp;--&nbsp;a&nbsp;tiny&nbsp;voice,&nbsp;from&nbsp;the&nbsp;dark&nbsp;corners&nbsp;of&nbsp;the<br>
conference&nbsp;room.&nbsp;&nbsp;"I&nbsp;have&nbsp;a&nbsp;concern,"&nbsp;the&nbsp;voice&nbsp;hisses&nbsp;from&nbsp;the&nbsp;darkness,<br>
"about&nbsp;the&nbsp;use&nbsp;of&nbsp;the&nbsp;word&nbsp;'verified'.<br>
<br>
&nbsp;&nbsp;The&nbsp;room,&nbsp;previously&nbsp;filled&nbsp;with&nbsp;happy&nbsp;chatter,&nbsp;lapses&nbsp;into&nbsp;reverential<br>
silence&nbsp;as&nbsp;Certain&nbsp;Death&nbsp;(better&nbsp;known&nbsp;as&nbsp;the&nbsp;Vice&nbsp;President&nbsp;of&nbsp;Software<br>
Engineering)&nbsp;continues.&nbsp;&nbsp;"You&nbsp;see,&nbsp;for&nbsp;two&nbsp;years&nbsp;we've&nbsp;used&nbsp;the&nbsp;word&nbsp;'verified'<br>
to&nbsp;indicate&nbsp;that&nbsp;a&nbsp;developer&nbsp;or&nbsp;quality&nbsp;assurance&nbsp;engineer&nbsp;has&nbsp;confirmed&nbsp;that,<br>
in&nbsp;fact,&nbsp;a&nbsp;bug&nbsp;is&nbsp;valid.&nbsp;I&nbsp;don't&nbsp;want&nbsp;to&nbsp;lose&nbsp;two&nbsp;years&nbsp;of&nbsp;training&nbsp;to&nbsp;a<br>
new&nbsp;software&nbsp;product.&nbsp;&nbsp;You&nbsp;need&nbsp;to&nbsp;change&nbsp;the&nbsp;bug&nbsp;status&nbsp;of&nbsp;'verified'&nbsp;to<br>
'approved'&nbsp;as&nbsp;soon&nbsp;as&nbsp;possible.&nbsp;To&nbsp;avoid&nbsp;confusion,&nbsp;of&nbsp;course."<br>
<br>
&nbsp;&nbsp;Oh&nbsp;no!&nbsp;&nbsp;Terror&nbsp;strikes&nbsp;your&nbsp;heart,&nbsp;as&nbsp;you&nbsp;find&nbsp;yourself&nbsp;mumbling&nbsp;"yes,&nbsp;yes,&nbsp;I<br>
don't&nbsp;think&nbsp;that&nbsp;would&nbsp;be&nbsp;a&nbsp;problem,"&nbsp;You&nbsp;review&nbsp;the&nbsp;changes&nbsp;with&nbsp;Certain<br>
Death,&nbsp;and&nbsp;continue&nbsp;to&nbsp;jabber&nbsp;on,&nbsp;"no,&nbsp;it's&nbsp;not&nbsp;too&nbsp;big&nbsp;a&nbsp;change.&nbsp;I&nbsp;mean,&nbsp;we<br>
have&nbsp;the&nbsp;source&nbsp;code,&nbsp;right?&nbsp;You&nbsp;know,&nbsp;'Use&nbsp;the&nbsp;Source,&nbsp;Luke'&nbsp;and&nbsp;all&nbsp;that...<br>
no&nbsp;problem,"&nbsp;All&nbsp;the&nbsp;while&nbsp;you&nbsp;quiver&nbsp;inside&nbsp;like&nbsp;a&nbsp;beached&nbsp;jellyfish&nbsp;bubbling,<br>
burbling,&nbsp;and&nbsp;boiling&nbsp;on&nbsp;a&nbsp;hot&nbsp;Jamaican&nbsp;sand&nbsp;dune...<br>
<br>
&nbsp;&nbsp;Thus&nbsp;begins&nbsp;your&nbsp;adventure&nbsp;into&nbsp;the&nbsp;heart&nbsp;of&nbsp;Bugzilla.&nbsp;&nbsp;You've&nbsp;been&nbsp;forced<br>
to&nbsp;learn&nbsp;about&nbsp;non-portable&nbsp;enum()&nbsp;fields,&nbsp;varchar&nbsp;columns,&nbsp;and&nbsp;tinyint<br>
definitions.&nbsp;The&nbsp;Adventure&nbsp;Awaits&nbsp;You!<br>
<br>
<br>
<br>
===<br>
The&nbsp;Basics<br>
===<br>
<br>
&nbsp;&nbsp;If&nbsp;you&nbsp;were&nbsp;like&nbsp;me,&nbsp;at&nbsp;this&nbsp;point&nbsp;you're&nbsp;totally&nbsp;clueless&nbsp;about&nbsp;the<br>
internals&nbsp;of&nbsp;MySQL,&nbsp;and&nbsp;if&nbsp;it&nbsp;weren't&nbsp;for&nbsp;this&nbsp;executive&nbsp;order&nbsp;from&nbsp;the&nbsp;Vice<br>
President&nbsp;you&nbsp;couldn't&nbsp;care&nbsp;less&nbsp;about&nbsp;the&nbsp;difference&nbsp;between&nbsp;a&nbsp;"bigint"&nbsp;and&nbsp;a<br>
"tinyint"&nbsp;entry&nbsp;in&nbsp;MySQL.&nbsp;&nbsp;I'd&nbsp;refer&nbsp;you&nbsp;first&nbsp;to&nbsp;the&nbsp;MySQL&nbsp;documentation,<br>
available&nbsp;at&nbsp;http://www.mysql.com/doc.html,&nbsp;but&nbsp;that's&nbsp;mostly&nbsp;a&nbsp;confusing<br>
morass&nbsp;of&nbsp;high-level&nbsp;database&nbsp;jargon.&nbsp;&nbsp;Here&nbsp;are&nbsp;the&nbsp;basics&nbsp;you&nbsp;need&nbsp;to&nbsp;know<br>
about&nbsp;the&nbsp;database&nbsp;to&nbsp;proceed:<br>
<br>
1.&nbsp;&nbsp;To&nbsp;connect&nbsp;to&nbsp;your&nbsp;database,&nbsp;type&nbsp;"mysql&nbsp;-u&nbsp;root"&nbsp;at&nbsp;the&nbsp;command&nbsp;prompt&nbsp;as<br>
any&nbsp;user.&nbsp;If&nbsp;this&nbsp;works&nbsp;without&nbsp;asking&nbsp;you&nbsp;for&nbsp;a&nbsp;password,&nbsp;SHAME&nbsp;ON&nbsp;YOU!&nbsp;&nbsp;You<br>
should&nbsp;have&nbsp;locked&nbsp;your&nbsp;security&nbsp;down&nbsp;like&nbsp;the&nbsp;README&nbsp;told&nbsp;you&nbsp;to.&nbsp;&nbsp;You&nbsp;can<br>
find&nbsp;details&nbsp;on&nbsp;locking&nbsp;down&nbsp;your&nbsp;database&nbsp;in&nbsp;the&nbsp;Bugzilla&nbsp;FAQ&nbsp;in&nbsp;this<br>
directory&nbsp;(under&nbsp;"Security"),&nbsp;or&nbsp;more&nbsp;robust&nbsp;security&nbsp;generalities&nbsp;in&nbsp;the<br>
MySQL&nbsp;searchable&nbsp;documentation&nbsp;at<br>
http://www.mysql.com/php/manual.php3?section=Privilege_system&nbsp;.<br>
<br>
2.&nbsp;&nbsp;You&nbsp;should&nbsp;now&nbsp;be&nbsp;at&nbsp;a&nbsp;prompt&nbsp;that&nbsp;looks&nbsp;like&nbsp;this:<br>
<br>
mysql&#62;<br>
	<br>
	At&nbsp;the&nbsp;prompt,&nbsp;if&nbsp;"bugs"&nbsp;is&nbsp;the&nbsp;name&nbsp;of&nbsp;your&nbsp;Bugzilla&nbsp;database,&nbsp;type:<br>
	<br>
mysql&#62;&nbsp;use&nbsp;bugs;<br>
	<br>
	(don't&nbsp;forget&nbsp;the&nbsp;";"&nbsp;at&nbsp;the&nbsp;end&nbsp;of&nbsp;each&nbsp;line,&nbsp;or&nbsp;you'll&nbsp;be&nbsp;kicking&nbsp;yourself<br>
all&nbsp;the&nbsp;way&nbsp;through&nbsp;this&nbsp;documentation)<br>
&nbsp;&nbsp;Young&nbsp;Grasshopper,&nbsp;you&nbsp;are&nbsp;now&nbsp;ready&nbsp;for&nbsp;the&nbsp;unveiling&nbsp;of&nbsp;the&nbsp;Bugzilla<br>
database,&nbsp;in&nbsp;the&nbsp;next&nbsp;section...<br>
<br>
<br>
<br>
===<br>
THE&nbsp;TABLES<br>
===<br>
<br>
&nbsp;&nbsp;Imagine&nbsp;your&nbsp;MySQL&nbsp;database&nbsp;as&nbsp;a&nbsp;series&nbsp;of&nbsp;spreadsheets,&nbsp;and&nbsp;you&nbsp;won't&nbsp;be&nbsp;too<br>
far&nbsp;off.&nbsp;&nbsp;If&nbsp;you&nbsp;use&nbsp;this&nbsp;command:<br>
<br>
mysql&#62;&nbsp;show&nbsp;tables&nbsp;from&nbsp;bugs;<br>
	<br>
	you'll&nbsp;be&nbsp;able&nbsp;to&nbsp;see&nbsp;all&nbsp;the&nbsp;"spreadsheets"&nbsp;(tables)&nbsp;in&nbsp;your&nbsp;database.&nbsp;&nbsp;Cool,<br>
huh?&nbsp;&nbsp;It's&nbsp;kinda'&nbsp;like&nbsp;a&nbsp;filesystem,&nbsp;only&nbsp;much&nbsp;faster&nbsp;and&nbsp;more&nbsp;robust.&nbsp;&nbsp;Come<br>
on,&nbsp;I'll&nbsp;show&nbsp;you&nbsp;more!<br>
<br>
&nbsp;&nbsp;From&nbsp;the&nbsp;command&nbsp;issued&nbsp;above,&nbsp;you&nbsp;should&nbsp;now&nbsp;have&nbsp;some&nbsp;output&nbsp;that&nbsp;looks<br>
like&nbsp;this:<br>
<br>
+-------------------+<br>
|&nbsp;Tables&nbsp;in&nbsp;bugs&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+-------------------+<br>
|&nbsp;attachments&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;bugs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;bugs_activity&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;cc&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;components&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;dependencies&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;fielddefs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;groups&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;keyworddefs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;keywords&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;logincookies&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;longdescs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;milestones&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;namedqueries&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;products&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;profiles&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;profiles_activity&nbsp;|<br>
|&nbsp;shadowlog&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;versions&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;votes&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
|&nbsp;watch&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|<br>
+-------------------+<br>
<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;If&nbsp;it&nbsp;doesn't&nbsp;look&nbsp;quite&nbsp;the&nbsp;same,&nbsp;that&nbsp;probably&nbsp;means&nbsp;it's&nbsp;time&nbsp;to<br>
update&nbsp;this&nbsp;documentation&nbsp;:)<br>
<br>
&nbsp;&nbsp;Here's&nbsp;an&nbsp;overview&nbsp;of&nbsp;what&nbsp;each&nbsp;table&nbsp;does.&nbsp;&nbsp;Most&nbsp;columns&nbsp;in&nbsp;each&nbsp;table&nbsp;have<br>
descriptive&nbsp;names&nbsp;that&nbsp;make&nbsp;it&nbsp;fairly&nbsp;trivial&nbsp;to&nbsp;figure&nbsp;out&nbsp;their&nbsp;jobs.<br>
<br>
attachments:&nbsp;This&nbsp;table&nbsp;stores&nbsp;all&nbsp;attachments&nbsp;to&nbsp;bugs.&nbsp;&nbsp;It&nbsp;tends&nbsp;to&nbsp;be&nbsp;your<br>
largest&nbsp;table,&nbsp;yet&nbsp;also&nbsp;generally&nbsp;has&nbsp;the&nbsp;fewest&nbsp;entries&nbsp;because&nbsp;file<br>
attachments&nbsp;are&nbsp;so&nbsp;(relatively)&nbsp;large.<br>
<br>
bugs:&nbsp;&nbsp;This&nbsp;is&nbsp;the&nbsp;core&nbsp;of&nbsp;your&nbsp;system.&nbsp;&nbsp;The&nbsp;bugs&nbsp;table&nbsp;stores&nbsp;most&nbsp;of&nbsp;the<br>
current&nbsp;information&nbsp;about&nbsp;a&nbsp;bug,&nbsp;with&nbsp;the&nbsp;exception&nbsp;of&nbsp;the&nbsp;info&nbsp;stored&nbsp;in&nbsp;the<br>
other&nbsp;tables.<br>
<br>
bugs_activity:&nbsp;&nbsp;This&nbsp;stores&nbsp;information&nbsp;regarding&nbsp;what&nbsp;changes&nbsp;are&nbsp;made&nbsp;to&nbsp;bugs<br>
when&nbsp;--&nbsp;a&nbsp;history&nbsp;file.<br>
<br>
cc:&nbsp;&nbsp;This&nbsp;tiny&nbsp;table&nbsp;simply&nbsp;stores&nbsp;all&nbsp;the&nbsp;CC&nbsp;information&nbsp;for&nbsp;any&nbsp;bug&nbsp;which&nbsp;has<br>
any&nbsp;entries&nbsp;in&nbsp;the&nbsp;CC&nbsp;field&nbsp;of&nbsp;the&nbsp;bug.&nbsp;&nbsp;Note&nbsp;that,&nbsp;like&nbsp;most&nbsp;other&nbsp;tables&nbsp;in<br>
Bugzilla,&nbsp;it&nbsp;does&nbsp;not&nbsp;refer&nbsp;to&nbsp;users&nbsp;by&nbsp;their&nbsp;user&nbsp;names,&nbsp;but&nbsp;by&nbsp;their&nbsp;unique<br>
userid,&nbsp;stored&nbsp;as&nbsp;a&nbsp;primary&nbsp;key&nbsp;in&nbsp;the&nbsp;profiles&nbsp;table.<br>
<br>
components:&nbsp;This&nbsp;stores&nbsp;the&nbsp;programs&nbsp;and&nbsp;components&nbsp;(or&nbsp;products&nbsp;and<br>
components,&nbsp;in&nbsp;newer&nbsp;Bugzilla&nbsp;parlance)&nbsp;for&nbsp;Bugzilla.&nbsp;&nbsp;Curiously,&nbsp;the&nbsp;"program"<br>
(product)&nbsp;field&nbsp;is&nbsp;the&nbsp;full&nbsp;name&nbsp;of&nbsp;the&nbsp;product,&nbsp;rather&nbsp;than&nbsp;some&nbsp;other&nbsp;unique<br>
identifier,&nbsp;like&nbsp;bug_id&nbsp;and&nbsp;user_id&nbsp;are&nbsp;elsewhere&nbsp;in&nbsp;the&nbsp;database.<br>
<br>
dependencies:&nbsp;Stores&nbsp;data&nbsp;about&nbsp;those&nbsp;cool&nbsp;dependency&nbsp;trees.<br>
<br>
fielddefs:&nbsp;&nbsp;A&nbsp;nifty&nbsp;table&nbsp;that&nbsp;defines&nbsp;other&nbsp;tables.&nbsp;&nbsp;For&nbsp;instance,&nbsp;when&nbsp;you<br>
submit&nbsp;a&nbsp;form&nbsp;that&nbsp;changes&nbsp;the&nbsp;value&nbsp;of&nbsp;"AssignedTo"&nbsp;this&nbsp;table&nbsp;allows<br>
translation&nbsp;to&nbsp;the&nbsp;actual&nbsp;field&nbsp;name&nbsp;"assigned_to"&nbsp;for&nbsp;entry&nbsp;into&nbsp;MySQL.<br>
<br>
groups:&nbsp;&nbsp;defines&nbsp;bitmasks&nbsp;for&nbsp;groups.&nbsp;&nbsp;A&nbsp;bitmask&nbsp;is&nbsp;a&nbsp;number&nbsp;that&nbsp;can&nbsp;uniquely<br>
identify&nbsp;group&nbsp;memberships.&nbsp;&nbsp;For&nbsp;instance,&nbsp;say&nbsp;the&nbsp;group&nbsp;that&nbsp;is&nbsp;allowed&nbsp;to<br>
tweak&nbsp;parameters&nbsp;is&nbsp;assigned&nbsp;a&nbsp;value&nbsp;of&nbsp;"1",&nbsp;the&nbsp;group&nbsp;that&nbsp;is&nbsp;allowed&nbsp;to&nbsp;edit<br>
users&nbsp;is&nbsp;assigned&nbsp;a&nbsp;"2",&nbsp;and&nbsp;the&nbsp;group&nbsp;that&nbsp;is&nbsp;allowed&nbsp;to&nbsp;create&nbsp;new&nbsp;groups&nbsp;is<br>
assigned&nbsp;the&nbsp;bitmask&nbsp;of&nbsp;"4".&nbsp;&nbsp;By&nbsp;uniquely&nbsp;combining&nbsp;the&nbsp;group&nbsp;bitmasks&nbsp;(much<br>
like&nbsp;the&nbsp;chmod&nbsp;command&nbsp;in&nbsp;UNIX,)&nbsp;you&nbsp;can&nbsp;identify&nbsp;a&nbsp;user&nbsp;is&nbsp;allowed&nbsp;to&nbsp;tweak<br>
parameters&nbsp;and&nbsp;create&nbsp;groups,&nbsp;but&nbsp;not&nbsp;edit&nbsp;users,&nbsp;by&nbsp;giving&nbsp;him&nbsp;a&nbsp;bitmask&nbsp;of<br>
"5",&nbsp;or&nbsp;a&nbsp;user&nbsp;allowed&nbsp;to&nbsp;edit&nbsp;users&nbsp;and&nbsp;create&nbsp;groups,&nbsp;but&nbsp;not&nbsp;tweak<br>
parameters,&nbsp;by&nbsp;giving&nbsp;him&nbsp;a&nbsp;bitmask&nbsp;of&nbsp;"6"&nbsp;Simple,&nbsp;huh?<br>
&nbsp;&nbsp;If&nbsp;this&nbsp;makes&nbsp;no&nbsp;sense&nbsp;to&nbsp;you,&nbsp;try&nbsp;this&nbsp;at&nbsp;the&nbsp;mysql&nbsp;prompt:<br>
mysql&#62;&nbsp;select&nbsp;*&nbsp;from&nbsp;groups;<br>
&nbsp;&nbsp;You'll&nbsp;see&nbsp;the&nbsp;list,&nbsp;it&nbsp;makes&nbsp;much&nbsp;more&nbsp;sense&nbsp;that&nbsp;way.<br>
<br>
keyworddefs:&nbsp;&nbsp;Definitions&nbsp;of&nbsp;keywords&nbsp;to&nbsp;be&nbsp;used<br>
<br>
keywords:&nbsp;Unlike&nbsp;what&nbsp;you'd&nbsp;think,&nbsp;this&nbsp;table&nbsp;holds&nbsp;which&nbsp;keywords&nbsp;are<br>
associated&nbsp;with&nbsp;which&nbsp;bug&nbsp;id's.<br>
<br>
logincookies:&nbsp;This&nbsp;stores&nbsp;every&nbsp;login&nbsp;cookie&nbsp;ever&nbsp;assigned&nbsp;to&nbsp;you&nbsp;for&nbsp;every<br>
machine&nbsp;you've&nbsp;ever&nbsp;logged&nbsp;into&nbsp;Bugzilla&nbsp;from.&nbsp;&nbsp;Curiously,&nbsp;it&nbsp;never&nbsp;does&nbsp;any<br>
housecleaning&nbsp;--&nbsp;I&nbsp;see&nbsp;cookies&nbsp;in&nbsp;this&nbsp;file&nbsp;I've&nbsp;not&nbsp;used&nbsp;for&nbsp;months.&nbsp;&nbsp;However,<br>
since&nbsp;Bugzilla&nbsp;never&nbsp;expires&nbsp;your&nbsp;cookie&nbsp;(for&nbsp;convenience'&nbsp;sake),&nbsp;it&nbsp;makes<br>
sense.<br>
<br>
longdescs:&nbsp;&nbsp;The&nbsp;meat&nbsp;of&nbsp;bugzilla&nbsp;--&nbsp;here&nbsp;is&nbsp;where&nbsp;all&nbsp;user&nbsp;comments&nbsp;are&nbsp;stored!<br>
You've&nbsp;only&nbsp;got&nbsp;2^24&nbsp;bytes&nbsp;per&nbsp;comment&nbsp;(it's&nbsp;a&nbsp;mediumtext&nbsp;field),&nbsp;so&nbsp;speak<br>
sparingly&nbsp;--&nbsp;that's&nbsp;only&nbsp;the&nbsp;amount&nbsp;of&nbsp;space&nbsp;the&nbsp;Old&nbsp;Testament&nbsp;from&nbsp;the&nbsp;Bible<br>
would&nbsp;take&nbsp;(uncompressed,&nbsp;16&nbsp;megabytes).&nbsp;&nbsp;Each&nbsp;comment&nbsp;is&nbsp;keyed&nbsp;to&nbsp;the<br>
bug_id&nbsp;to&nbsp;which&nbsp;it's&nbsp;attached,&nbsp;so&nbsp;the&nbsp;order&nbsp;is&nbsp;necessarily&nbsp;chronological,&nbsp;for<br>
comments&nbsp;are&nbsp;played&nbsp;back&nbsp;in&nbsp;the&nbsp;order&nbsp;in&nbsp;which&nbsp;they&nbsp;are&nbsp;received.<br>
<br>
milestones:&nbsp;&nbsp;Interesting&nbsp;that&nbsp;milestones&nbsp;are&nbsp;associated&nbsp;with&nbsp;a&nbsp;specific&nbsp;product<br>
in&nbsp;this&nbsp;table,&nbsp;but&nbsp;Bugzilla&nbsp;does&nbsp;not&nbsp;yet&nbsp;support&nbsp;differing&nbsp;milestones&nbsp;by<br>
product&nbsp;through&nbsp;the&nbsp;standard&nbsp;configuration&nbsp;interfaces.<br>
<br>
namedqueries:&nbsp;&nbsp;This&nbsp;is&nbsp;where&nbsp;everybody&nbsp;stores&nbsp;their&nbsp;"custom&nbsp;queries".&nbsp;&nbsp;Very<br>
cool&nbsp;feature;&nbsp;it&nbsp;beats&nbsp;the&nbsp;tar&nbsp;out&nbsp;of&nbsp;having&nbsp;to&nbsp;bookmark&nbsp;each&nbsp;cool&nbsp;query&nbsp;you<br>
construct.<br>
<br>
products:&nbsp;&nbsp;What&nbsp;products&nbsp;you&nbsp;have,&nbsp;whether&nbsp;new&nbsp;bug&nbsp;entries&nbsp;are&nbsp;allowed&nbsp;for&nbsp;the<br>
product,&nbsp;what&nbsp;milestone&nbsp;you're&nbsp;working&nbsp;toward&nbsp;on&nbsp;that&nbsp;product,&nbsp;votes,&nbsp;etc.&nbsp;&nbsp;It<br>
will&nbsp;be&nbsp;nice&nbsp;when&nbsp;the&nbsp;components&nbsp;table&nbsp;supports&nbsp;these&nbsp;same&nbsp;features,&nbsp;so&nbsp;you<br>
could&nbsp;close&nbsp;a&nbsp;particular&nbsp;component&nbsp;for&nbsp;bug&nbsp;entry&nbsp;without&nbsp;having&nbsp;to&nbsp;close&nbsp;an<br>
entire&nbsp;product...<br>
<br>
profiles:&nbsp;&nbsp;Ahh,&nbsp;so&nbsp;you&nbsp;were&nbsp;wondering&nbsp;where&nbsp;your&nbsp;precious&nbsp;user&nbsp;information&nbsp;was<br>
stored?&nbsp;&nbsp;Here&nbsp;it&nbsp;is!&nbsp;&nbsp;With&nbsp;the&nbsp;passwords&nbsp;in&nbsp;plain&nbsp;text&nbsp;for&nbsp;all&nbsp;to&nbsp;see!&nbsp;(but<br>
sshh...&nbsp;don't&nbsp;tell&nbsp;your&nbsp;users!)<br>
<br>
profiles_activity:&nbsp;&nbsp;Need&nbsp;to&nbsp;know&nbsp;who&nbsp;did&nbsp;what&nbsp;when&nbsp;to&nbsp;who's&nbsp;profile?&nbsp;&nbsp;This'll<br>
tell&nbsp;you,&nbsp;it's&nbsp;a&nbsp;pretty&nbsp;complete&nbsp;history.<br>
<br>
shadowlog:&nbsp;&nbsp;I&nbsp;could&nbsp;be&nbsp;mistaken&nbsp;here,&nbsp;but&nbsp;I&nbsp;believe&nbsp;this&nbsp;table&nbsp;tells&nbsp;you&nbsp;when<br>
your&nbsp;shadow&nbsp;database&nbsp;is&nbsp;updated&nbsp;and&nbsp;what&nbsp;commands&nbsp;were&nbsp;used&nbsp;to&nbsp;update&nbsp;it.&nbsp;&nbsp;We<br>
don't&nbsp;use&nbsp;a&nbsp;shadow&nbsp;database&nbsp;at&nbsp;our&nbsp;site&nbsp;yet,&nbsp;so&nbsp;it's&nbsp;pretty&nbsp;empty&nbsp;for&nbsp;us.<br>
<br>
versions:&nbsp;&nbsp;Version&nbsp;information&nbsp;for&nbsp;every&nbsp;product<br>
<br>
votes:&nbsp;&nbsp;Who&nbsp;voted&nbsp;for&nbsp;what&nbsp;when<br>
<br>
watch:&nbsp;&nbsp;Who&nbsp;(according&nbsp;to&nbsp;userid)&nbsp;is&nbsp;watching&nbsp;who's&nbsp;bugs&nbsp;(according&nbsp;to&nbsp;their<br>
userid).<br>
<br>
<br>
===<br>
THE&nbsp;DETAILS<br>
===<br>
<br>
&nbsp;&nbsp;Ahh,&nbsp;so&nbsp;you're&nbsp;wondering&nbsp;just&nbsp;what&nbsp;to&nbsp;do&nbsp;with&nbsp;the&nbsp;information&nbsp;above?&nbsp;&nbsp;At&nbsp;the<br>
mysql&nbsp;prompt,&nbsp;you&nbsp;can&nbsp;view&nbsp;any&nbsp;information&nbsp;about&nbsp;the&nbsp;columns&nbsp;in&nbsp;a&nbsp;table&nbsp;with<br>
this&nbsp;command&nbsp;(where&nbsp;"table"&nbsp;is&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;table&nbsp;you&nbsp;wish&nbsp;to&nbsp;view):<br>
<br>
mysql&#62;&nbsp;show&nbsp;columns&nbsp;from&nbsp;table;<br>
<br>
&nbsp;&nbsp;You&nbsp;can&nbsp;also&nbsp;view&nbsp;all&nbsp;the&nbsp;data&nbsp;in&nbsp;a&nbsp;table&nbsp;with&nbsp;this&nbsp;command:<br>
<br>
mysql&#62;&nbsp;select&nbsp;*&nbsp;from&nbsp;table;<br>
<br>
&nbsp;&nbsp;--&nbsp;note:&nbsp;this&nbsp;is&nbsp;a&nbsp;very&nbsp;bad&nbsp;idea&nbsp;to&nbsp;do&nbsp;on,&nbsp;for&nbsp;instance,&nbsp;the&nbsp;"bugs"&nbsp;table&nbsp;if<br>
you&nbsp;have&nbsp;50,000&nbsp;bugs.&nbsp;&nbsp;You'll&nbsp;be&nbsp;sitting&nbsp;there&nbsp;a&nbsp;while&nbsp;until&nbsp;you&nbsp;ctrl-c&nbsp;or<br>
50,000&nbsp;bugs&nbsp;play&nbsp;across&nbsp;your&nbsp;screen.<br>
<br>
&nbsp;&nbsp;You&nbsp;can&nbsp;limit&nbsp;the&nbsp;display&nbsp;from&nbsp;above&nbsp;a&nbsp;little&nbsp;with&nbsp;the&nbsp;command,&nbsp;where<br>
"column"&nbsp;is&nbsp;the&nbsp;name&nbsp;of&nbsp;the&nbsp;column&nbsp;for&nbsp;which&nbsp;you&nbsp;wish&nbsp;to&nbsp;restrict&nbsp;information:<br>
<br>
mysql&#62;&nbsp;select&nbsp;*&nbsp;from&nbsp;table&nbsp;where&nbsp;(column&nbsp;=&nbsp;"some&nbsp;info");<br>
<br>
&nbsp;&nbsp;--&nbsp;or&nbsp;the&nbsp;reverse&nbsp;of&nbsp;this<br>
<br>
mysql&#62;&nbsp;select&nbsp;*&nbsp;from&nbsp;table&nbsp;where&nbsp;(column&nbsp;!=&nbsp;"some&nbsp;info");<br>
<br>
&nbsp;&nbsp;Let's&nbsp;take&nbsp;our&nbsp;example&nbsp;from&nbsp;the&nbsp;introduction,&nbsp;and&nbsp;assume&nbsp;you&nbsp;need&nbsp;to&nbsp;change<br>
the&nbsp;word&nbsp;"verified"&nbsp;to&nbsp;"approved"&nbsp;in&nbsp;the&nbsp;resolution&nbsp;field.&nbsp;&nbsp;We&nbsp;know&nbsp;from&nbsp;the<br>
above&nbsp;information&nbsp;that&nbsp;the&nbsp;resolution&nbsp;is&nbsp;likely&nbsp;to&nbsp;be&nbsp;stored&nbsp;in&nbsp;the&nbsp;"bugs"<br>
table.&nbsp;Note&nbsp;we'll&nbsp;need&nbsp;to&nbsp;change&nbsp;a&nbsp;little&nbsp;perl&nbsp;code&nbsp;as&nbsp;well&nbsp;as&nbsp;this&nbsp;database<br>
change,&nbsp;but&nbsp;I&nbsp;won't&nbsp;plunge&nbsp;into&nbsp;that&nbsp;in&nbsp;this&nbsp;document.&nbsp;Let's&nbsp;verify&nbsp;the<br>
information&nbsp;is&nbsp;stored&nbsp;in&nbsp;the&nbsp;"bugs"&nbsp;table:<br>
<br>
mysql&#62;&nbsp;show&nbsp;columns&nbsp;from&nbsp;bugs<br>
<br>
&nbsp;&nbsp;(exceedingly&nbsp;long&nbsp;output&nbsp;truncated&nbsp;here)<br>
|&nbsp;bug_status|&nbsp;enum('UNCONFIRMED','NEW','ASSIGNED','REOPENED','RESOLVED','VERIFIED','CLOSED')||MUL&nbsp;|&nbsp;UNCONFIRMED||<br>
<br>
&nbsp;&nbsp;Sorry&nbsp;about&nbsp;that&nbsp;long&nbsp;line.&nbsp;&nbsp;We&nbsp;see&nbsp;from&nbsp;this&nbsp;that&nbsp;the&nbsp;"bug&nbsp;status"&nbsp;column&nbsp;is<br>
an&nbsp;"enum&nbsp;field",&nbsp;which&nbsp;is&nbsp;a&nbsp;MySQL&nbsp;peculiarity&nbsp;where&nbsp;a&nbsp;string&nbsp;type&nbsp;field&nbsp;can<br>
only&nbsp;have&nbsp;certain&nbsp;types&nbsp;of&nbsp;entries.&nbsp;&nbsp;While&nbsp;I&nbsp;think&nbsp;this&nbsp;is&nbsp;very&nbsp;cool,&nbsp;it's&nbsp;not<br>
standard&nbsp;SQL.&nbsp;&nbsp;Anyway,&nbsp;we&nbsp;need&nbsp;to&nbsp;add&nbsp;the&nbsp;possible&nbsp;enum&nbsp;field&nbsp;entry<br>
'APPROVED'&nbsp;by&nbsp;altering&nbsp;the&nbsp;"bugs"&nbsp;table.<br>
<br>
mysql&#62;&nbsp;ALTER&nbsp;table&nbsp;bugs&nbsp;CHANGE&nbsp;bug_status&nbsp;bug_status<br>
&nbsp;&nbsp;&nbsp;&nbsp;-&#62;&nbsp;enum("UNCONFIRMED",&nbsp;"NEW",&nbsp;"ASSIGNED",&nbsp;"REOPENED",&nbsp;"RESOLVED",<br>
&nbsp;&nbsp;&nbsp;&nbsp;-&#62;&nbsp;"VERIFIED",&nbsp;"APPROVED",&nbsp;"CLOSED")&nbsp;not&nbsp;null;<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;(note&nbsp;we&nbsp;can&nbsp;take&nbsp;three&nbsp;lines&nbsp;or&nbsp;more&nbsp;--&nbsp;whatever&nbsp;you&nbsp;put&nbsp;in&nbsp;before&nbsp;the<br>
semicolon&nbsp;is&nbsp;evaluated&nbsp;as&nbsp;a&nbsp;single&nbsp;expression)<br>
<br>
Now&nbsp;if&nbsp;you&nbsp;do&nbsp;this:<br>
<br>
mysql&#62;&nbsp;show&nbsp;columns&nbsp;from&nbsp;bugs;<br>
<br>
&nbsp;&nbsp;you'll&nbsp;see&nbsp;that&nbsp;the&nbsp;bug_status&nbsp;field&nbsp;has&nbsp;an&nbsp;extra&nbsp;"APPROVED"&nbsp;enum&nbsp;that's<br>
available!&nbsp;&nbsp;Cool&nbsp;thing,&nbsp;too,&nbsp;is&nbsp;that&nbsp;this&nbsp;is&nbsp;reflected&nbsp;on&nbsp;your&nbsp;query&nbsp;page&nbsp;as<br>
well&nbsp;--&nbsp;you&nbsp;can&nbsp;query&nbsp;by&nbsp;the&nbsp;new&nbsp;status.&nbsp;&nbsp;But&nbsp;how's&nbsp;it&nbsp;fit&nbsp;into&nbsp;the&nbsp;existing<br>
scheme&nbsp;of&nbsp;things?<br>
&nbsp;&nbsp;Looks&nbsp;like&nbsp;you&nbsp;need&nbsp;to&nbsp;go&nbsp;back&nbsp;and&nbsp;look&nbsp;for&nbsp;instances&nbsp;of&nbsp;the&nbsp;word&nbsp;"verified"<br>
in&nbsp;the&nbsp;perl&nbsp;code&nbsp;for&nbsp;Bugzilla&nbsp;--&nbsp;wherever&nbsp;you&nbsp;find&nbsp;"verified",&nbsp;change&nbsp;it&nbsp;to<br>
"approved"&nbsp;and&nbsp;you're&nbsp;in&nbsp;business&nbsp;(make&nbsp;sure&nbsp;that's&nbsp;a&nbsp;case-insensitive&nbsp;search).<br>
Although&nbsp;you&nbsp;can&nbsp;query&nbsp;by&nbsp;the&nbsp;enum&nbsp;field,&nbsp;you&nbsp;can't&nbsp;give&nbsp;something&nbsp;a&nbsp;status<br>
of&nbsp;"APPROVED"&nbsp;until&nbsp;you&nbsp;make&nbsp;the&nbsp;perl&nbsp;changes.&nbsp;&nbsp;&nbsp;Note&nbsp;that&nbsp;this&nbsp;change&nbsp;I<br>
mentioned&nbsp;can&nbsp;also&nbsp;be&nbsp;done&nbsp;by&nbsp;editing&nbsp;checksetup.pl,&nbsp;which&nbsp;automates&nbsp;a&nbsp;lot&nbsp;of<br>
this.&nbsp;&nbsp;But&nbsp;you&nbsp;need&nbsp;to&nbsp;know&nbsp;this&nbsp;stuff&nbsp;anyway,&nbsp;right?<br>
<br>
&nbsp;&nbsp;I&nbsp;hope&nbsp;this&nbsp;database&nbsp;tutorial&nbsp;has&nbsp;been&nbsp;useful&nbsp;for&nbsp;you.&nbsp;&nbsp;If&nbsp;you&nbsp;have&nbsp;comments<br>
to&nbsp;add,&nbsp;questions,&nbsp;concerns,&nbsp;etc.&nbsp;please&nbsp;direct&nbsp;them&nbsp;to<br>
mbarnson@excitehome.net.&nbsp;&nbsp;Please&nbsp;direct&nbsp;flames&nbsp;to&nbsp;/dev/null&nbsp;:)&nbsp;&nbsp;Have&nbsp;a&nbsp;nice<br>
day!<br>
<br>
<br>
<br>
===<br>
LINKS<br>
===<br>
<br>
Great&nbsp;MySQL&nbsp;tutorial&nbsp;site:<br>
http://www.devshed.com/Server_Side/MySQL/<br>
<br>
&nbsp;&nbsp;&nbsp;&nbsp;</P
></DIV
><DIV
CLASS="NAVFOOTER"
><HR
ALIGN="LEFT"
WIDTH="100%"><TABLE
WIDTH="100%"
BORDER="0"
CELLPADDING="0"
CELLSPACING="0"
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
><A
HREF="dbschema.html"
>Prev</A
></TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="index.html"
>Home</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
><A
HREF="granttables.html"
>Next</A
></TD
></TR
><TR
><TD
WIDTH="33%"
ALIGN="left"
VALIGN="top"
>Database Schema Chart</TD
><TD
WIDTH="34%"
ALIGN="center"
VALIGN="top"
><A
HREF="database.html"
>Up</A
></TD
><TD
WIDTH="33%"
ALIGN="right"
VALIGN="top"
>MySQL Permissions &#38; Grant Tables</TD
></TR
></TABLE
></DIV
></BODY
></HTML
>