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:
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 1247769d7fe6526e23541d7349bb90f38d3a7a45
User & Date: drh 2009-12-24 00:08:07
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
Hide Diffs Unified Diffs 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
...
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
# 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 
................................................................................
    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
        }







>







 







>
>
>
>












<
|







10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
...
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
# 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 
................................................................................
    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
        }