Documentation Source Text

Check-in [ea5ed63f07]
Login

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

Overview
Comment:Clean up links in the arch.html and opcode.html documents.
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: ea5ed63f0714963d38485df1583d4cdd88fc2e1db7deaa68bf3340c10add1db5
User & Date: drh 2019-01-22 20:59:39
Context
2019-01-28
20:31
Updates to the change log for version 3.27.0. check-in: 03bca65239 user: drh tags: trunk
2019-01-22
20:59
Clean up links in the arch.html and opcode.html documents. check-in: ea5ed63f07 user: drh tags: trunk
2019-01-09
19:54
Fixes to the syntax diagrams for window functions: The parentheses were missing around the window-defn for the WINDOW clause. check-in: 83da33aabc user: drh tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to pages/arch.in.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
..
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
<title>Architecture of SQLite</title>
<fancy_format>

<tcl>
proc render_arch {html} {
  regsub -all <file> $html <b> html
  regsub -all </file> $html </b> html
  hd_resolve $html
}
render_arch {
<h1>Introduction</h1>


<p>This document describes the architecture of the SQLite library.
................................................................................
files <file>main.c</file>, <file>legacy.c</file>, and
<file>vdbeapi.c</file>
though some routines are
scattered about in other files where they can have access to data 
structures with file scope.  
The [sqlite3_get_table()] routine is implemented in <file>table.c</file>.
The [sqlite3_mprintf()] routine is found in <file>printf.c</file>.
The [sqlite3_complete()] interface is in <file>tokenize.c</file>.
The [TCL Interface] is implemented by <file>tclsqlite.c</file>.

<p>To avoid name collisions, all external
symbols in the SQLite library begin with the prefix <b>sqlite3</b>.
Those symbols that are intended for external use (in other words,
those symbols which form the API for SQLite) add an underscore, and
thus begin with <b>sqlite3_</b>.  Extension APIs sometimes add the





|
<







 







|







1
2
3
4
5
6

7
8
9
10
11
12
13
..
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<title>Architecture of SQLite</title>
<fancy_format>

<tcl>
proc render_arch {html} {
  regsub -all {<file>([^<]+)</file>} $html {<a href='https://sqlite.org/src/file/src/\1'>\1</a>} html

  hd_resolve $html
}
render_arch {
<h1>Introduction</h1>


<p>This document describes the architecture of the SQLite library.
................................................................................
files <file>main.c</file>, <file>legacy.c</file>, and
<file>vdbeapi.c</file>
though some routines are
scattered about in other files where they can have access to data 
structures with file scope.  
The [sqlite3_get_table()] routine is implemented in <file>table.c</file>.
The [sqlite3_mprintf()] routine is found in <file>printf.c</file>.
The [sqlite3_complete()] interface is in <file>complete.c</file>.
The [TCL Interface] is implemented by <file>tclsqlite.c</file>.

<p>To avoid name collisions, all external
symbols in the SQLite library begin with the prefix <b>sqlite3</b>.
Those symbols that are intended for external use (in other words,
those symbols which form the API for SQLite) add an underscore, and
thus begin with <b>sqlite3_</b>.  Extension APIs sometimes add the

Changes to pages/opcode.in.

19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
...
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
about the bytecode engine change from one release of SQLite to the next.
Applications that use SQLite should not depend on any of the details
found in this document.

<tcl>
set uuid {}
catch {
  exec fossil sha1sum $::SRC/src/vdbe.c 
} uuid
set uuid [lindex $uuid 0]
set fd [open $::SRC/src/vdbe.c r]
set file [read $fd]
close $fd
set current_op {}
unset -nocomplain Opcode
................................................................................
<p>
This article also uses the terms "bytecode program" and
"prepared statement" interchangeably, as they are mostly the same thing.

<h2>VDBE Source Code</h2>

<p>The source code to the bytecode engine is in the 
[http://www.sqlite.org/src/finfo?name=src/vdbe.c | vdbe.c] source
file.  The [opcode definitions] in this document are derived
from comments in that source file. The 
source code comments are the canonical source of information
about the bytecode engine.  When in doubt, refer to the source code.</p>

<p>In addition to the primary vdbe.c source code file, there are 
other helper code files in the source tree, all of whose names







|







 







|







19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
...
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
about the bytecode engine change from one release of SQLite to the next.
Applications that use SQLite should not depend on any of the details
found in this document.

<tcl>
set uuid {}
catch {
  exec fossil sha3sum $::SRC/src/vdbe.c 
} uuid
set uuid [lindex $uuid 0]
set fd [open $::SRC/src/vdbe.c r]
set file [read $fd]
close $fd
set current_op {}
unset -nocomplain Opcode
................................................................................
<p>
This article also uses the terms "bytecode program" and
"prepared statement" interchangeably, as they are mostly the same thing.

<h2>VDBE Source Code</h2>

<p>The source code to the bytecode engine is in the 
[http://www.sqlite.org/src/file/src/vdbe.c | vdbe.c] source
file.  The [opcode definitions] in this document are derived
from comments in that source file. The 
source code comments are the canonical source of information
about the bytecode engine.  When in doubt, refer to the source code.</p>

<p>In addition to the primary vdbe.c source code file, there are 
other helper code files in the source tree, all of whose names