Documentation Source Text

Check-in [1247769d7f]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Tweaks to the autoinc.html page. Add a new evidence style: ANALYSIS-OF:
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 1247769d7fe6526e23541d7349bb90f38d3a7a45
User & Date: drh 2009-12-24 00:08:07.000
Context
2009-12-24
16:02
Clarifications to the datatype3.html document. (check-in: 75e2505670 user: drh tags: trunk)
00:08
Tweaks to the autoinc.html page. Add a new evidence style: ANALYSIS-OF: (check-in: 1247769d7f user: drh tags: trunk)
2009-12-22
01:37
Update the download page to show all three self-synchronizing fossil repositories for the documentation sources. (check-in: 5e4ecf297e user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to pages/autoinc.in.
32
33
34
35
36
37
38
39

40
41
42
43
44
45
46


47
48
49
50
51
52
53

<blockquote><pre>
CREATE TABLE test1(a INT, b TEXT);
INSERT INTO test1(rowid, a, b) VALUES(123, 5, 'hello');
</pre></blockquote>)^

<p>
^If no ROWID is specified on the insert, an appropriate ROWID is created

automatically.  ^The usual algorithm is to give the newly created row
a ROWID that is one larger than the largest ROWID in the table prior
to the insert.  ^If the table is initially empty, then a ROWID of 1 is
used.  ^If the largest ROWID is equal to the largest possible integer
(9223372036854775807) then the database
engine starts picking candidate ROWIDs at random until it finds one
that is not previously used.


</p>

<p>
^The normal ROWID selection algorithm described above
will generate monotonically increasing
unique ROWIDs as long as you never use the maximum ROWID value and you never
delete the entry in the table with the largest ROWID. 







|
>







>
>







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

<blockquote><pre>
CREATE TABLE test1(a INT, b TEXT);
INSERT INTO test1(rowid, a, b) VALUES(123, 5, 'hello');
</pre></blockquote>)^

<p>
^If no ROWID is specified on the insert, or if the specified ROWID has a value
of NULL, then an appropriate ROWID is created
automatically.  ^The usual algorithm is to give the newly created row
a ROWID that is one larger than the largest ROWID in the table prior
to the insert.  ^If the table is initially empty, then a ROWID of 1 is
used.  ^If the largest ROWID is equal to the largest possible integer
(9223372036854775807) then the database
engine starts picking candidate ROWIDs at random until it finds one
that is not previously used.
^If no unused ROWID can be found after a reasonable number of attempts,
the insert operation fails with an [SQLITE_FULL] error.
</p>

<p>
^The normal ROWID selection algorithm described above
will generate monotonically increasing
unique ROWIDs as long as you never use the maximum ROWID value and you never
delete the entry in the table with the largest ROWID. 
Changes to scan_test_cases.tcl.
10
11
12
13
14
15
16

17
18
19
20
21
22
23
# that betweens at the left margin with "**" or "/*" and with one of the
# following keywords:
#
#     EV:
#     EVIDENCE-OF:
#     IMP:
#     IMPLEMENTATION:

#
# Following the keyword is either a requirement number of the form:
#
#     R-00000-00000-00000-00000-00000-00000-00000-00000
#
# Or a prefix of such a requirement (usually the first two 5-digit groups 
# suffice) and/or the original text of the requirement.  Original text can 







>







10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
# that betweens at the left margin with "**" or "/*" and with one of the
# following keywords:
#
#     EV:
#     EVIDENCE-OF:
#     IMP:
#     IMPLEMENTATION:
#     ANALYSIS-OF:
#
# Following the keyword is either a requirement number of the form:
#
#     R-00000-00000-00000-00000-00000-00000-00000-00000
#
# Or a prefix of such a requirement (usually the first two 5-digit groups 
# suffice) and/or the original text of the requirement.  Original text can 
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
    REPLACE INTO evidence
          (reqno,  reqtext,  evtype, srcclass,  srccat,  srcfile, srcline)
    VALUES($reqno, $reqtext, $type,  $SRCCLASS, $SRCCAT, $fn,     $linenumber);
  }
  set linenumber 0
}





db transaction {
  if {$RESET} {
    db eval {DELETE FROM evidence}
  }
  foreach sourcefile $FILELIST {
    set filename $sourcefile
    set in [open $sourcefile]
    set lineno 0
    set linenumber 0
    while {![eof $in]} {
      incr lineno
      set line [gets $in]
      if {[regexp {^\s*(/\*|\*\*|#) (EV|EVIDENCE-OF|IMP|IMPLEMENTATION-OF): } \
           $line all mark tp]} {
        if {$linenumber>0} output_one_record
        set linenumber $lineno
        if {[string index $tp 0]=="E"} {
          set type evidence
        } else {
          set type implementation
        }







>
>
>
>












<
|







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
    REPLACE INTO evidence
          (reqno,  reqtext,  evtype, srcclass,  srccat,  srcfile, srcline)
    VALUES($reqno, $reqtext, $type,  $SRCCLASS, $SRCCAT, $fn,     $linenumber);
  }
  set linenumber 0
}

# Regular expression used to locate the beginning of an evidence mark.
#
set re {^\s*(/\*|\*\*|#) (EV|EVIDENCE-OF|IMP|IMPLEMENTATION-OF|ANALYSIS-OF): }

db transaction {
  if {$RESET} {
    db eval {DELETE FROM evidence}
  }
  foreach sourcefile $FILELIST {
    set filename $sourcefile
    set in [open $sourcefile]
    set lineno 0
    set linenumber 0
    while {![eof $in]} {
      incr lineno
      set line [gets $in]

      if {[regexp $re $line all mark tp]} {
        if {$linenumber>0} output_one_record
        set linenumber $lineno
        if {[string index $tp 0]=="E"} {
          set type evidence
        } else {
          set type implementation
        }