Documentation Source Text

Check-in [56eab0136c]
Login

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

Overview
Comment:Update rtree documentation to describe the way attempts to insert non-integer primary key values or non-numeric dimensions into an rtree table are handled.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 56eab0136ce41732c65029a2ed963e4f50343fca
User & Date: dan 2015-10-03 12:21:48.714
Context
2015-10-07
15:30
Add a fragment for "howtocompile" in the JSON1 documentation. (check-in: de0fb99b82 user: drh tags: trunk)
2015-10-03
12:21
Update rtree documentation to describe the way attempts to insert non-integer primary key values or non-numeric dimensions into an rtree table are handled. (check-in: 56eab0136c user: dan tags: trunk)
2015-09-23
00:55
Mention the valgrindfuzz make target in the discussion of AFL. (check-in: 1d0a599d9e user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to pages/rtree.in.
58
59
60
61
62
63
64
65


66




67
68
69
70
71
72
73

74
75
76
77
78
79
80
81
82
83
^A 3-dimensional R*Tree has 7 columns.
^A 4-dimensional R*Tree has 9 columns.
^And a 5-dimensional R*Tree has 11 columns.  ^The SQLite R*Tree implementation
does not support R*Trees wider than 5 dimensions.
</p>

<p>
^The first column of an SQLite R*Tree must always be an integer


primary key.




^The min/max-value pair columns are stored as
32-bit floating point values for "rtree" virtual tables or as
32-bit signed integers in "rtree_i32" virtual tables.
^Unlike regular SQLite tables which
can store data in a variety of datatypes and formats, the R*Tree
indices rigidly enforce these storage types.  ^Attempts to insert
something other than an integer into the first column, or something

other than a numeric value into the other columns, will result
in an error.
</p>

<h3>3.1 Creating An R*Tree Index</h3>

^(<p>
A new R*Tree index is created as follows:
</p>








|
>
>
|
>
>
>
>
|
<
|
|
<
|
|
>
|
<
<







58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73

74
75

76
77
78
79


80
81
82
83
84
85
86
^A 3-dimensional R*Tree has 7 columns.
^A 4-dimensional R*Tree has 9 columns.
^And a 5-dimensional R*Tree has 11 columns.  ^The SQLite R*Tree implementation
does not support R*Trees wider than 5 dimensions.
</p>

<p>
^The first column of an SQLite R*Tree is similar to an integer primary 
key column of a normal SQLite table. It may only store a 64-bit signed
integer value. Inserting a NULL value into this column causes SQLite
to automatically generate a new unique primary key value. If an attempt
is made to insert any other non-integer value into this column,
the r-tree module silently converts it to an integer before writing it
into the database.
<p>
^The min/max-value pair columns are stored as 32-bit floating point values for

"rtree" virtual tables or as 32-bit signed integers in "rtree_i32" virtual
tables.  ^Unlike regular SQLite tables which can store data in a variety of

datatypes and formats, the R*Tree rigidly enforce these storage types. 
If any other type of value is inserted into such a column, the r-tree
module silently converts it to the required type before writing the
new record to the database.



<h3>3.1 Creating An R*Tree Index</h3>

^(<p>
A new R*Tree index is created as follows:
</p>