Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Fix typos in the fileformat2.html page. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
eecca5ae5e82e2d615722fb7c2e843c4 |
User & Date: | drh 2019-02-18 20:35:18.862 |
Context
2019-02-25
| ||
16:10 | Version 3.27.2 (check-in: 4604e54aca user: drh tags: trunk, release, version-3.27.2) | |
2019-02-18
| ||
20:35 | Fix typos in the fileformat2.html page. (check-in: eecca5ae5e user: drh tags: trunk) | |
15:33 | Change "the following three queries" to "the following four queries" in fts5.in. (check-in: b5b65a3c13 user: dan tags: trunk) | |
Changes
Changes to pages/fileformat2.in.
︙ | ︙ | |||
165 166 167 168 169 170 171 | interpreted as a big-endian integer and must be a power of two between 512 and 32768, inclusive. Beginning with SQLite [version 3.7.1] ([dateof:3.7.1]), a page size of 65536 bytes is supported. The value 65536 will not fit in a two-byte integer, so to specify a 65536-byte page size, the value at offset 16 is 0x00 0x01. This value can be interpreted as a big-endian | | | 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 | interpreted as a big-endian integer and must be a power of two between 512 and 32768, inclusive. Beginning with SQLite [version 3.7.1] ([dateof:3.7.1]), a page size of 65536 bytes is supported. The value 65536 will not fit in a two-byte integer, so to specify a 65536-byte page size, the value at offset 16 is 0x00 0x01. This value can be interpreted as a big-endian 1 and thought of as a magic number to represent the 65536 page size. Or one can view the two-byte field as a little endian number and say that it represents the page size divided by 256. These two interpretations of the page-size field are equivalent.</p> <tcl>hd_fragment vnums {file format version numbers}</tcl> <h3>File format version numbers</h3> |
︙ | ︙ | |||
194 195 196 197 198 199 200 | used, for example, by the SQLite Encryption Extension to store a nonce and/or cryptographic checksum associated with each page. ^The "reserved space" size in the 1-byte integer at offset 20 is the number of bytes of space at the end of each page to reserve for extensions. This value is usually 0. The value can be odd.</p> <tcl>hd_fragment usable_size {usable size}</tcl> | | | 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 | used, for example, by the SQLite Encryption Extension to store a nonce and/or cryptographic checksum associated with each page. ^The "reserved space" size in the 1-byte integer at offset 20 is the number of bytes of space at the end of each page to reserve for extensions. This value is usually 0. The value can be odd.</p> <tcl>hd_fragment usable_size {usable size}</tcl> <p>The "usable size" of a database page is the page size specified by the 2-byte integer at offset 16 in the header less the "reserved" space size recorded in the 1-byte integer at offset 20 in the header. The usable size of a page might be an odd number. ^(However, the usable size is not allowed to be less than 480. In other words, if the page size is 512, then the reserved space size cannot exceed 32.)^</p> <h3>Payload fractions</h3> |
︙ | ︙ | |||
420 421 422 423 424 425 426 | <p>A database file might contain one or more pages that are not in active use. Unused pages can come about, for example, when information is deleted from the database. Unused pages are stored on the freelist and are reused when additional pages are required.</p> <p>The freelist is organized as a linked list of freelist trunk pages | | | 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 | <p>A database file might contain one or more pages that are not in active use. Unused pages can come about, for example, when information is deleted from the database. Unused pages are stored on the freelist and are reused when additional pages are required.</p> <p>The freelist is organized as a linked list of freelist trunk pages with each trunk page containing page numbers for zero or more freelist leaf pages.</p> <p>A freelist trunk page consists of an array of 4-byte big-endian integers. The size of the array is as many integers as will fit in the usable space of a page. The minimum usable space is 480 bytes so the array will always be at least 120 entries in length. ^The first integer on a freelist trunk page is the page number of the next freelist trunk page in the list or zero |
︙ | ︙ | |||
663 664 665 666 667 668 669 | values. A varint is between 1 and 9 bytes in length. The varint consists of either zero or more bytes 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 | | | 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 | values. A varint is between 1 and 9 bytes in length. The varint consists of either zero or more bytes 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 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. <dl> <dt><p>Table B-Tree Leaf Cell (header 0x0d):</p></dt> |
︙ | ︙ | |||
1835 1836 1837 1838 1839 1840 1841 | WAL". ^At the start of the first new write transaction, the WAL header salt-1 value is incremented and the salt-2 value is randomized. These changes to the salts invalidate old frames in the WAL that have already been checkpointed but not yet overwritten, and prevent them from being checkpointed again.</p> <p>The WAL file can optionally be truncated on a reset, but it need not be. | | | 1835 1836 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 | WAL". ^At the start of the first new write transaction, the WAL header salt-1 value is incremented and the salt-2 value is randomized. These changes to the salts invalidate old frames in the WAL that have already been checkpointed but not yet overwritten, and prevent them from being checkpointed again.</p> <p>The WAL file can optionally be truncated on a reset, but it need not be. Performance is usually a little better if the WAL is not truncated, since filesystems generally will overwrite an existing file faster than they will grow a file. <tcl>hd_fragment walread {WAL read algorithm}</tcl> <h2>Reader Algorithm</h2> <p>^(To read a page from the database (call it page number P), a reader |
︙ | ︙ |