Documentation Source Text

Changes On Branch branch-3.9
Login

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

Changes In Branch branch-3.9 Excluding Merge-Ins

This is equivalent to a diff from 04edad8b2f to 51cd2291e6

2016-01-02
04:16
Cherrypick changes off of the bubble-generator-tkpath branch that were intended for trunk. Also merge in changes to the 3.9.x branch. (check-in: e2ad1111f4 user: drh tags: trunk)
2015-12-28
16:20
Add links to the built-in SQL function documentation to the docs.html page. (Leaf check-in: 51cd2291e6 user: drh tags: branch-3.9)
2015-12-27
14:43
Fix a typo in the file format documentation. (check-in: 1cc43dde6c user: drh tags: branch-3.9)
2015-12-03
22:03
Fix a typo in the AUTOINCREMENT documentation. (check-in: 7c05c71d58 user: drh tags: branch-3.9)
2015-11-13
18:04
Begin adding changes to the change log for version 3.10.0. (check-in: 5591c0216e user: drh tags: trunk)
2015-11-11
20:52
Fix a typo in the virtual table documentation. (check-in: 04edad8b2f user: drh tags: trunk)
00:22
Clarification of the checkpoint algorithm in the file format document. (check-in: 4f85463d41 user: drh tags: trunk)

Added images/foreignlogos/fb.gif.

cannot compute difference between binary files

Changes to pages/amalgamation.in.

128
129
130
131
132
133
134
135
136
137
138
139
140
141
142

<h3>4.1 Dependencies</h3>

<p>The build process makes extensive use of the 
[http://www.tcl-lang.org/|Tcl] scripting language.  You will need to have a
copy of TCL installed in order for the make targets above to work.
Easy-to-use installers can be obtained from [http://www.tcl-lang.org/].
May unix workstations of Tcl installed by default.

<p>The build process also uses [http://en.wikipedia.org/wiki/AWK|AWK].
AWK is almost always installed by default on unix-like workstations,
but it may need to be downloaded and installed on Windows development
platforms.  There are many versions of AWK available for Windows.
Use a search engine to find one.








|







128
129
130
131
132
133
134
135
136
137
138
139
140
141
142

<h3>4.1 Dependencies</h3>

<p>The build process makes extensive use of the 
[http://www.tcl-lang.org/|Tcl] scripting language.  You will need to have a
copy of TCL installed in order for the make targets above to work.
Easy-to-use installers can be obtained from [http://www.tcl-lang.org/].
Many unix workstations have Tcl installed by default.

<p>The build process also uses [http://en.wikipedia.org/wiki/AWK|AWK].
AWK is almost always installed by default on unix-like workstations,
but it may need to be downloaded and installed on Windows development
platforms.  There are many versions of AWK available for Windows.
Use a search engine to find one.

Changes to pages/autoinc.in.

31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<p>
^In SQLite, table rows normally have a 64-bit signed integer [ROWID]
which is unique among all rows in the same table.
([WITHOUT ROWID] tables are the exception.)
</p>

<p>
^(You can access the ROWID of an SQLite table using one the special column
names ROWID, _ROWID_, or OID.
Except if you declare an ordinary table column to use one of those special
names, then the use of that name will refer to the declared column not
to the internal ROWID.)^
</p>

<p>







|







31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
<p>
^In SQLite, table rows normally have a 64-bit signed integer [ROWID]
which is unique among all rows in the same table.
([WITHOUT ROWID] tables are the exception.)
</p>

<p>
^(You can access the ROWID of an SQLite table using one of the special column
names ROWID, _ROWID_, or OID.
Except if you declare an ordinary table column to use one of those special
names, then the use of that name will refer to the declared column not
to the internal ROWID.)^
</p>

<p>

Changes to pages/docs.in.

98
99
100
101
102
103
104












105
106
107
108
109
110
111
  This document describes the SQL language that is understood by
  SQLite.  
}
doc {Pragma commands} {pragma.html} {
  This document describes SQLite performance tuning options and other 
  special purpose database commands.
}












doc {DataTypes} {datatype3.html} {
  SQLite version 3 introduces the concept of manifest typing, where the
  type of a value is associated with the value itself, not the column that
  it is stored in.
  This page describes data typing for SQLite version 3 in further detail.
}








>
>
>
>
>
>
>
>
>
>
>
>







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
  This document describes the SQL language that is understood by
  SQLite.  
}
doc {Pragma commands} {pragma.html} {
  This document describes SQLite performance tuning options and other 
  special purpose database commands.
}
doc {Core SQL Functions} {lang_corefunc.html} {
  General-purpose built-in scalar SQL functions.
}
doc {Aggregate SQL Functions} {lang_aggfunc.html} {
  General-purpose built-in aggregate SQL functions.
}
doc {Date and Time SQL Functions} {lang_datefunc.html} {
  SQL functions for manipulating dates and times.
}
doc {JSON SQL Functions} {json1.html} {
  SQL functions for creating, parsing, and querying JSON content.
}
doc {DataTypes} {datatype3.html} {
  SQLite version 3 introduces the concept of manifest typing, where the
  type of a value is associated with the value itself, not the column that
  it is stored in.
  This page describes data typing for SQLite version 3 in further detail.
}

Changes to pages/fileformat2.in.

647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
values. 
A varint is between 1 and 9 bytes in length.  The varint consists of either
zero or more byte which have the high-order bit set followed by a single byte
with the high-order bit clear, or nine bytes, whichever is shorter.
The lower seven bits of each of the first eight bytes and all 8 bits of
the ninth byte are used to reconstruct the 64-bit twos-complement integer.
Varints are big-endian: bits taken from the earlier byte of the varint
are the more significant and bits taken from the later bytes. </p>

<p>The format of a cell depends on which kind of b-tree page the cell
appears on.  The following table shows the elements of a cell, in
order of appearance, for the various b-tree page types.</p>

<blockquote><dl>
<dt><p>Table B-Tree Leaf Cell (header 0x0d):</p></dt>







|







647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
values. 
A varint is between 1 and 9 bytes in length.  The varint consists of either
zero or more byte which have the high-order bit set followed by a single byte
with the high-order bit clear, or nine bytes, whichever is shorter.
The lower seven bits of each of the first eight bytes and all 8 bits of
the ninth byte are used to reconstruct the 64-bit twos-complement integer.
Varints are big-endian: bits taken from the earlier byte of the varint
are the more significant than bits taken from the later bytes. </p>

<p>The format of a cell depends on which kind of b-tree page the cell
appears on.  The following table shows the elements of a cell, in
order of appearance, for the various b-tree page types.</p>

<blockquote><dl>
<dt><p>Table B-Tree Leaf Cell (header 0x0d):</p></dt>

Changes to pages/index.in.

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
<title>SQLite Home Page</title>

<table border="0" width="100%">
<tr><td valign="top">
<h3>Welcome</h3>
<p>SQLite is a software library that implements a
<a href="selfcontained.html">self-contained</a>, 
<a href="serverless.html">serverless</a>,
<a href="zeroconf.html">zero-configuration</a>,
<a href="transactional.html">transactional</a>
SQL database engine.
SQLite is the [most widely deployed]
database engine in the world.
The source code for SQLite is in the
<a href="copyright.html">public domain</a>.
<a href="about.html">More...</a></p>

<hr style="color: #044a64" height="2">

<h3>Sponsors</h3>
<p>Ongoing development and maintenance of SQLite is
sponsored in part by <a href="consortium.html">SQLite Consortium</a>
members, including:</p>

<a name="consortium_members"></a>
<center>
<table border="0" cellpadding="15">

<tcl>hd_puts {




<















|
|







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
<title>SQLite Home Page</title>

<table border="0" width="100%">
<tr><td valign="top">

<p>SQLite is a software library that implements a
<a href="selfcontained.html">self-contained</a>, 
<a href="serverless.html">serverless</a>,
<a href="zeroconf.html">zero-configuration</a>,
<a href="transactional.html">transactional</a>
SQL database engine.
SQLite is the [most widely deployed]
database engine in the world.
The source code for SQLite is in the
<a href="copyright.html">public domain</a>.
<a href="about.html">More...</a></p>

<hr style="color: #044a64" height="2">

<h3>Sponsors</h3>
<p>Substantial support for the continuing enhancement and maintenance
of SQLite comes from <a href="consortium.html">SQLite Consortium</a>
members, including:</p>

<a name="consortium_members"></a>
<center>
<table border="0" cellpadding="15">

<tcl>hd_puts {
61
62
63
64
65
66
67








68
69
70
71
72
73
74
75
    <a href="https://www.expensify.com/">\
    <img src="images/foreignlogos/expensify.png" width="225" height="32" \
     alt="expensify.org" border="0">\
    </a></td><td>\
    <a href="https://www.expensify.com/">Expensify</a> - \
    We power the most exciting companies in the world using SQLite. </td></tr>'









  count = 5
  while( count>0 ){
    i = Math.floor(Math.random()*6)
    if( sponsor[i]!=null ){
      document.write(sponsor[i])
      sponsor[i] = null
      count--
    }







>
>
>
>
>
>
>
>
|







60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
    <a href="https://www.expensify.com/">\
    <img src="images/foreignlogos/expensify.png" width="225" height="32" \
     alt="expensify.org" border="0">\
    </a></td><td>\
    <a href="https://www.expensify.com/">Expensify</a> - \
    We power the most exciting companies in the world using SQLite. </td></tr>'

  sponsor[5] = '<tr><td align="center">\
    <a href="https://www.facebook.com/">\
    <img src="images/foreignlogos/fb.gif" alt="facebook.com" border="0">\
    </a></td><td>\
    <a href="https://www.facebook.com/">Facebook</a> - \
    Giving people the power to share and make the world \
    more open and connected. </td></tr>'

  count = 6
  while( count>0 ){
    i = Math.floor(Math.random()*6)
    if( sponsor[i]!=null ){
      document.write(sponsor[i])
      sponsor[i] = null
      count--
    }

Changes to pages/mostdeployed.in.

51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

<p>
Precise numbers are difficult to obtain and so exact rankings
are impossible.  But our best guess is that SQLite is the second
mostly widely deployed software library, after libz.
Some commentators observe that SQLite tends
to be statically linked and thus have multiple instances on
each machine, whereas libz tend sto have just
a single instance per machine in the form of a shared library or DLL.
So even though the number of devices containing libz
may be greater than the number of
devices that contain SQLite, the total number of instances per device
<em>might</em> be higher for SQLite and so SQLite <em>might</em>
be the single most widely deployed and used software component.
</p>







|







51
52
53
54
55
56
57
58
59
60
61
62
63
64
65

<p>
Precise numbers are difficult to obtain and so exact rankings
are impossible.  But our best guess is that SQLite is the second
mostly widely deployed software library, after libz.
Some commentators observe that SQLite tends
to be statically linked and thus have multiple instances on
each machine, whereas libz tends to have just
a single instance per machine in the form of a shared library or DLL.
So even though the number of devices containing libz
may be greater than the number of
devices that contain SQLite, the total number of instances per device
<em>might</em> be higher for SQLite and so SQLite <em>might</em>
be the single most widely deployed and used software component.
</p>