~ubuntu-branches/ubuntu/wily/sqlite3/wily

« back to all changes in this revision

Viewing changes to requirements.html

  • Committer: Package Import Robot
  • Author(s): Laszlo Boszormenyi (GCS)
  • Date: 2012-06-13 21:43:48 UTC
  • mto: This revision was merged to the branch mainline in revision 23.
  • Revision ID: package-import@ubuntu.com-20120613214348-uy14uupdeq0hh04k
Tags: upstream-3.7.13/www
Import upstream version 3.7.13, component www

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
 
2
<html><head>
 
3
<meta http-equiv="content-type" content="text/html; charset=UTF-8">
 
4
<title>SQLite Requirements</title>
 
5
<style type="text/css">
 
6
body {
 
7
    margin: auto;
 
8
    font-family: Verdana, sans-serif;
 
9
    padding: 8px 1%;
 
10
}
 
11
 
 
12
a { color: #044a64 }
 
13
a:visited { color: #734559 }
 
14
 
 
15
.logo { position:absolute; margin:3px; }
 
16
.tagline {
 
17
  float:right;
 
18
  text-align:right;
 
19
  font-style:italic;
 
20
  width:300px;
 
21
  margin:12px;
 
22
  margin-top:58px;
 
23
}
 
24
 
 
25
.toolbar {
 
26
  text-align: center;
 
27
  line-height: 1.6em;
 
28
  margin: 0;
 
29
  padding: 0px 8px;
 
30
}
 
31
.toolbar a { color: white; text-decoration: none; padding: 6px 12px; }
 
32
.toolbar a:visited { color: white; }
 
33
.toolbar a:hover { color: #044a64; background: white; }
 
34
 
 
35
.content    { margin: 5%; }
 
36
.content dt { font-weight:bold; }
 
37
.content dd { margin-bottom: 25px; margin-left:20%; }
 
38
.content ul { padding:0px; padding-left: 15px; margin:0px; }
 
39
 
 
40
/* rounded corners */
 
41
.se  { background: url(images/se.gif) 100% 100% no-repeat #044a64}
 
42
.sw  { background: url(images/sw.gif) 0% 100% no-repeat }
 
43
.ne  { background: url(images/ne.gif) 100% 0% no-repeat }
 
44
.nw  { background: url(images/nw.gif) 0% 0% no-repeat }
 
45
 
 
46
/* Things for "fancyformat" documents start here. */
 
47
.fancy img+p {font-style:italic}
 
48
.fancy .codeblock i { color: darkblue; }
 
49
.fancy h1,.fancy h2,.fancy h3,.fancy h4 {font-weight:normal;color:#044a64}
 
50
.fancy h2 { margin-left: 10px }
 
51
.fancy h3 { margin-left: 20px }
 
52
.fancy h4 { margin-left: 30px }
 
53
.fancy th {white-space:nowrap;text-align:left;border-bottom:solid 1px #444}
 
54
.fancy th, .fancy td {padding: 0.2em 1ex; vertical-align:top}
 
55
.fancy #toc a        { color: darkblue ; text-decoration: none }
 
56
.fancy .todo         { color: #AA3333 ; font-style : italic }
 
57
.fancy .todo:before  { content: 'TODO:' }
 
58
.fancy p.todo        { border: solid #AA3333 1px; padding: 1ex }
 
59
.fancy img { display:block; }
 
60
.fancy :link:hover, .fancy :visited:hover { background: wheat }
 
61
.fancy p,.fancy ul,.fancy ol { margin: 1em 5ex }
 
62
.fancy li p { margin: 1em 0 }
 
63
/* End of "fancyformat" specific rules. */
 
64
 
 
65
</style>
 
66
  
 
67
</head>
 
68
<body>
 
69
<div><!-- container div to satisfy validator -->
 
70
 
 
71
<a href="index.html">
 
72
<img class="logo" src="images/sqlite370_banner.gif" alt="SQLite Logo"
 
73
 border="0"></a>
 
74
<div><!-- IE hack to prevent disappearing logo--></div>
 
75
<div class="tagline">Small. Fast. Reliable.<br>Choose any three.</div>
 
76
 
 
77
<table width=100% style="clear:both"><tr><td>
 
78
  <div class="se"><div class="sw"><div class="ne"><div class="nw">
 
79
  <table width=100% style="padding:0;margin:0;cell-spacing:0"><tr>
 
80
  <td width=100%>
 
81
  <div class="toolbar">
 
82
    <a href="about.html">About</a>
 
83
    <a href="sitemap.html">Sitemap</a>
 
84
    <a href="docs.html">Documentation</a>
 
85
    <a href="download.html">Download</a>
 
86
    <a href="copyright.html">License</a>
 
87
    <a href="news.html">News</a>
 
88
    <a href="support.html">Support</a>
 
89
  </div>
 
90
<script>
 
91
  gMsg = "Search SQLite Docs..."
 
92
  function entersearch() {
 
93
    var q = document.getElementById("q");
 
94
    if( q.value == gMsg ) { q.value = "" }
 
95
    q.style.color = "black"
 
96
    q.style.fontStyle = "normal"
 
97
  }
 
98
  function leavesearch() {
 
99
    var q = document.getElementById("q");
 
100
    if( q.value == "" ) { 
 
101
      q.value = gMsg
 
102
      q.style.color = "#044a64"
 
103
      q.style.fontStyle = "italic"
 
104
    }
 
105
  }
 
106
</script>
 
107
<td>
 
108
    <div style="padding:0 1em 0px 0;white-space:nowrap">
 
109
    <form name=f method="GET" action="http://www.sqlite.org/search">
 
110
      <input id=q name=q type=text
 
111
       onfocus="entersearch()" onblur="leavesearch()" style="width:24ex;padding:1px 1ex; border:solid white 1px; font-size:0.9em ; font-style:italic;color:#044a64;" value="Search SQLite Docs...">
 
112
      <input type=submit value="Go" style="border:solid white 1px;background-color:#044a64;color:white;font-size:0.9em;padding:0 1ex">
 
113
    </form>
 
114
    </div>
 
115
  </table>
 
116
</div></div></div></div>
 
117
</td></tr></table>
 
118
<div class=startsearch></div>
 
119
  
 
120
 
 
121
 
 
122
 
 
123
<h2>1.0 About SQLite Requirements</h2>
 
124
 
 
125
 
 
126
<ul>
 
127
<li><p>
 
128
Requirements consist of excerpts from the documentation.
 
129
A requirement is usually a one-sentence excerpt but might be a sentence
 
130
fragment, multiple sentences, a table, or a GIF image of a bubble syntax
 
131
diagram.
 
132
 
 
133
<li><p>
 
134
Requirements are written in conversational English and without the
 
135
modal auxiliary verb "shall".  This grows out of the fact that requirements
 
136
are taken from the documentation.  The intended audience for the
 
137
documentation is application programmers.  "Shall" language is appropriate
 
138
when the audience consist of contract specialists, QA auditors, and lawyers, 
 
139
but it interferes with comprehension when the audience is application 
 
140
programmers.  Hence, in order to best serve the intended audience, the
 
141
"shall" language is omitted.
 
142
 
 
143
<li><p>
 
144
Requirements are sufficiently detailed and precise to permit a 100% compatible
 
145
clean-room reimplementation of SQLite.
 
146
 
 
147
<li><p>
 
148
The word "requirement" in common English usage implies an ordering: that
 
149
the requirement comes before the implementation.
 
150
But there is no such ordering with SQLite requirements.
 
151
What are called "requirements" in SQLite are better described as
 
152
"testable statements of truth about the behavior of the system".
 
153
 
 
154
<li><p>
 
155
Every testable statement of truth about SQLite in the
 
156
documentation becomes a requirement.
 
157
 
 
158
<li><p>
 
159
Requirement numbers are the MD5 hash of the requirement itself.
 
160
<ol type="a">
 
161
<li><p>Requirements are inherently immutable, since any change
 
162
to the requirement results in a completely different requirement number.
 
163
 
 
164
<li><p>For text requirements, the text is normalized prior to computing the
 
165
MD5 hash:
 
166
<ul>
 
167
<li>Remove all leading and trailing whitespace.
 
168
<li>Convert all internal whitespace sequences to a single space character.
 
169
<li>Convert "&amp;lt;" to "&lt;", "&amp;gt;" to "&gt;",
 
170
    "&amp;#91;" to "&#91;", "&amp;#93;" to "&#93;", and
 
171
    "&amp;amp;" to "&amp;".
 
172
</ul>
 
173
<li><p>For GIF syntax diagram requirements, the MD5 hash is computed over
 
174
the entire content of the GIF image file.
 
175
 
 
176
<li><p>The MD5 hash is expressed in human-readable form as follows:
 
177
<blockquote><b>R-</b><i>N</i><b>-</b><i>N</i><b>-</b><i>N</i><b>-</b><i>N</i><b>-</b><i>N</i><b>-</b><i>N</i><b>-</b><i>N</i><b>-</b><i>N</i></blockquote>
 
178
Where each <i>N</i> is a 5-digit number between 00000 and 65536 that
 
179
represents 16 bits of the 128-bit MD5 hash.
 
180
 
 
181
<li><p>Requirements may be referenced by any unique prefix of their
 
182
complete requirement number.
 
183
</ol>
 
184
 
 
185
<p><li>
 
186
Individual text requirements are identified in the
 
187
documentation as text between "<b>&#94;</b>" and the first period or
 
188
full-stop ("<b>.</b>")
 
189
or as text between "<b>&#94;(</b>" and "<b>)&#94;</b>".
 
190
<ol type="a">
 
191
<li><p>
 
192
Text requirements are automatically extracted from the documentation by scripts
 
193
that run as part of the documentation build process.
 
194
 
 
195
<li><p>
 
196
After requirements have been extracted from the documentation, the requirement
 
197
markers "<b>&#94;</b>", "<b>&#94;(</b>", and "<b>)&#94;</b>" are removed
 
198
from the documentation text.  This is done automatically by the documentation
 
199
build scripts.
 
200
 
 
201
<li><p>
 
202
To avoid collisions with these requirements delimiters, "&#94;" characters that
 
203
are part of the text of a requirement or that are otherwise found in the 
 
204
documentation, should be coded as "&amp;#94;".
 
205
</ol>
 
206
 
 
207
<p><li>
 
208
Individual GIF syntax diagram requirements are identified in the
 
209
documentation as HTML image markup of the
 
210
form
 
211
<blockquote><b>
 
212
&lt;img alt="syntax diagram </b><i>NAME</i><b>" src="</b><i>FILE</i><b>"&gt;
 
213
</b></blockquote>
 
214
Where <i>NAME</i> is the name of the syntax diagram and <i>FILE</i> is
 
215
the name of the GIF file containing the syntax diagram.
 
216
<ol type="a">
 
217
<li><p>
 
218
Syntax diagram requirements are automatically extracted from the 
 
219
documentation by scripts
 
220
that run as part of the documentation build process.
 
221
 
 
222
<li><p>
 
223
The GIF file is the requirement, not the HTML markup that references the
 
224
GIF file nor the diagram name.
 
225
</ol>
 
226
 
 
227
<li><p>
 
228
The documentation that contains the
 
229
requirement text is generated by scripts that use as input files
 
230
from both files in the documentation fossil repository and 
 
231
comments in the source code.
 
232
 
 
233
</ul>
 
234
 
 
235
 
 
236
<h2>2.0 List Of Requirements</h2>
 
237
 
 
238
<dl>
 
239
 
 
240
</dl>
 
241