Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Update documentation to make it clear that VACUUM is free to change implicit rowids. Ticket #2382. (CVS 4157) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
d111b1daa547fea51d9e1fbe49c0b133 |
User & Date: | drh 2007-07-13 10:35:15.000 |
Context
2007-07-13
| ||
10:36 | Add an extra integrity_check to the transaction test script. (CVS 4158) (check-in: 5ea43b2db1 user: drh tags: trunk) | |
10:35 | Update documentation to make it clear that VACUUM is free to change implicit rowids. Ticket #2382. (CVS 4157) (check-in: d111b1daa5 user: drh tags: trunk) | |
10:26 | "extern" prototypes cause problems for the Digital Mars compiler. So remove them. Ticket #2502. (CVS 4156) (check-in: f35fbf8070 user: drh tags: trunk) | |
Changes
Changes to www/lang.tcl.
1 2 3 | # # Run this Tcl script to generate the lang-*.html files. # | | | 1 2 3 4 5 6 7 8 9 10 11 | # # Run this Tcl script to generate the lang-*.html files. # set rcsid {$Id: lang.tcl,v 1.132 2007/07/13 10:35:15 drh Exp $} source common.tcl if {[llength $argv]>0} { set outputdir [lindex $argv 0] } else { set outputdir "" } |
︙ | ︙ | |||
551 552 553 554 555 556 557 | on the corresponding columns. However, if primary key is on a single column that has datatype INTEGER, then that column is used internally as the actual key of the B-Tree for the table. This means that the column may only hold unique integer values. (Except for this one case, SQLite ignores the datatype specification of columns and allows any kind of data to be put in a column regardless of its declared datatype.) If a table does not have an INTEGER PRIMARY KEY column, | | > | 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 | on the corresponding columns. However, if primary key is on a single column that has datatype INTEGER, then that column is used internally as the actual key of the B-Tree for the table. This means that the column may only hold unique integer values. (Except for this one case, SQLite ignores the datatype specification of columns and allows any kind of data to be put in a column regardless of its declared datatype.) If a table does not have an INTEGER PRIMARY KEY column, then the B-Tree key will be a automatically generated integer. <a name="rowid"> The B-Tree key for a row can always be accessed using one of the special names "<b>ROWID</b>", "<b>OID</b>", or "<b>_ROWID_</b>". This is true regardless of whether or not there is an INTEGER PRIMARY KEY. An INTEGER PRIMARY KEY column can also include the keyword AUTOINCREMENT. The AUTOINCREMENT keyword modified the way that B-Tree keys are automatically generated. Additional detail on automatic B-Tree key generation is available |
︙ | ︙ | |||
1199 1200 1201 1202 1203 1204 1205 | But extensions can override the match() function with more helpful logic.</p> <p>A column name can be any of the names defined in the CREATE TABLE statement or one of the following special identifiers: "<b>ROWID</b>", "<b>OID</b>", or "<b>_ROWID_</b>". These special identifiers all describe the | | | 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 1213 1214 | But extensions can override the match() function with more helpful logic.</p> <p>A column name can be any of the names defined in the CREATE TABLE statement or one of the following special identifiers: "<b>ROWID</b>", "<b>OID</b>", or "<b>_ROWID_</b>". These special identifiers all describe the unique integer key (the "row key") associated with every row of every table. The special identifiers only refer to the row key if the CREATE TABLE statement does not define a real column with the same name. Row keys act like read-only columns. A row key can be used anywhere a regular column can be used, except that you cannot change the value of a row key in an UPDATE or INSERT statement. "SELECT * ..." does not return the row key.</p> |
︙ | ︙ | |||
1296 1297 1298 1299 1300 1301 1302 | hex(<i>X</i>)</td> <td valign="top">The argument is interpreted as a BLOB. The result is a hexadecimal rendering of the content of that blob.</td> </tr> <tr> <td valign="top" align="right">last_insert_rowid()</td> | > | | 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 | hex(<i>X</i>)</td> <td valign="top">The argument is interpreted as a BLOB. The result is a hexadecimal rendering of the content of that blob.</td> </tr> <tr> <td valign="top" align="right">last_insert_rowid()</td> <td valign="top">Return the <a href="lang_createtable.html#rowid">ROWID</a> of the last row insert from this connection to the database. This is the same value that would be returned from the <b>sqlite_last_insert_rowid()</b> API function.</td> </tr> <tr> <td valign="top" align="right">length(<i>X</i>)</td> <td valign="top">Return the string length of <i>X</i> in characters. |
︙ | ︙ | |||
1898 1899 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 | The VACUUM command cleans the main database by copying its contents to a temporary database file and reloading the original database file from the copy. This eliminates free pages, aligns table data to be contiguous, and otherwise cleans up the database file structure.</p> <p>VACUUM only works on the main database. It is not possible to VACUUM an attached database file.</p> <p>The VACUUM command will fail if there is an active transaction. The VACUUM command is a no-op for in-memory databases.</p> <p>As of SQLite version 3.1, an alternative to using the VACUUM command | > > > > | 1900 1901 1902 1903 1904 1905 1906 1907 1908 1909 1910 1911 1912 1913 1914 1915 1916 1917 | The VACUUM command cleans the main database by copying its contents to a temporary database file and reloading the original database file from the copy. This eliminates free pages, aligns table data to be contiguous, and otherwise cleans up the database file structure.</p> <p>The VACUUM command may change the <a href="lang_createtable.html#rowid">ROWID</a> of entires in tables that do not have an explicit INTEGER PRIMARY KEY.</p> <p>VACUUM only works on the main database. It is not possible to VACUUM an attached database file.</p> <p>The VACUUM command will fail if there is an active transaction. The VACUUM command is a no-op for in-memory databases.</p> <p>As of SQLite version 3.1, an alternative to using the VACUUM command |
︙ | ︙ |