Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Documentation for REINDEX and ALTER TABLE commands. (CVS 2118) |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
aceaa5f6e97c93962f5d6d14de8a490e |
User & Date: | danielk1977 2004-11-20 08:17:18.000 |
Context
2004-11-20
| ||
18:13 | Fix segfaults that might occur after a malloc failure. (CVS 2119) (check-in: 368774487e user: drh tags: trunk) | |
08:17 | Documentation for REINDEX and ALTER TABLE commands. (CVS 2118) (check-in: aceaa5f6e9 user: danielk1977 tags: trunk) | |
06:05 | Add a documentation page for compilation options. Still some work to go. (CVS 2117) (check-in: 5efa2d2a60 user: danielk1977 tags: trunk) | |
Changes
Changes to www/compile.tcl.
1 2 3 | # # Run this Tcl script to generate the compile.html file. # | | | 1 2 3 4 5 6 7 8 9 10 11 | # # Run this Tcl script to generate the compile.html file. # set rcsid {$Id: compile.tcl,v 1.2 2004/11/20 08:17:18 danielk1977 Exp $ } source common.tcl header {Compilation Options For SQLite} puts { <h1>Compilation Options For SQLite</h1> <p> |
︙ | ︙ | |||
57 58 59 60 61 62 63 64 65 66 67 68 69 | <p>The macros in this section do not require values. The following compilation switches all have the same effect:<br> -DSQLITE_OMIT_ALTERTABLE<br> -DSQLITE_OMIT_ALTERTABLE=1<br> -DSQLITE_OMIT_ALTERTABLE=0 </p> <p><b>SQLITE_OMIT_ALTERTABLE</b><br> When this option is defined, the <a href="lang_altertable.html">ALTER TABLE</a> command is not included in the library. Executing an ALTER TABLE statement causes a parse error. </p> | > > > > > > > < | 57 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 | <p>The macros in this section do not require values. The following compilation switches all have the same effect:<br> -DSQLITE_OMIT_ALTERTABLE<br> -DSQLITE_OMIT_ALTERTABLE=1<br> -DSQLITE_OMIT_ALTERTABLE=0 </p> <p>If any of these options are defined, then the same set of SQLITE_OMIT_XXX options must also be defined when using the 'lemon' tool to generate a parse.c file. Because of this, these options may only used when the library is built from source, not from the collection of pre-packaged C files provided for non-UNIX like platforms on the website. </p> <p><b>SQLITE_OMIT_ALTERTABLE</b><br> When this option is defined, the <a href="lang_altertable.html">ALTER TABLE</a> command is not included in the library. Executing an ALTER TABLE statement causes a parse error. </p> <p><b>SQLITE_OMIT_AUTHORIZATION</b><br> Defining this option omits the authorization callback feature from the library. The <a href="capi3ref.html#sqlite3_set_authorizer"> sqlite3_set_authorizer()</a> API function is not present in the library. </p> |
︙ | ︙ | |||
177 178 179 180 181 182 183 | <a href="capi3ref.html#sqlite3_progress_handler">sqlite3_progress_handler()</a> API function is not present in the library. <p><b>SQLITE_OMIT_REINDEX</b><br> When this option is defined, the <a href="lang_reindex.html">REINDEX</a> command is not included in the library. Executing a REINDEX statement causes a parse error. | | < | | | | < < < > > | > > > > > | > > > > > > > > > | > > > > > | > > > > | 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 | <a href="capi3ref.html#sqlite3_progress_handler">sqlite3_progress_handler()</a> API function is not present in the library. <p><b>SQLITE_OMIT_REINDEX</b><br> When this option is defined, the <a href="lang_reindex.html">REINDEX</a> command is not included in the library. Executing a REINDEX statement causes a parse error. </p> <p><b>SQLITE_OMIT_SCHEMA_PRAGMAS</b><br> Defining this option omits pragmas for querying the database schema from the build. Currently, the <a href="pragma.html#pragma_table_info">table_info</a>, <a href="pragma.html#pragma_index_info">index_info</a>, <a href="pragma.html#pragma_index_list">index_list</a> and <a href="pragma.html#pragma_database_list">database_list</a> pragmas are omitted. </p> <p><b>SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS</b><br> Defining this option omits pragmas for querying and modifying the database schema version and user version from the build. Specifically, the <a href="pragma.html#pragma_schema_version">schema_version</a> and <a href="pragma.html#pragma_user_version">user_version</a> pragmas are omitted. <p><b>SQLITE_OMIT_TCL_VARIABLE</b><br> <p>If this macro is defined, then the special "$<variable-name>" syntax used to automatically bind SQL variables to TCL variables is omitted. </p> <p><b>SQLITE_OMIT_TRIGGER</b><br> Defining this option omits support for VIEW objects. Neither the <a href="lang_createtrigger.html">CREATE TRIGGER</a> or <a href="lang_droptrigger.html">DROP TRIGGER</a> commands are available in this case, attempting to execute either will result in a parse error. </p> <p> WARNING: If this macro is defined, it will not be possible to open a database for which the schema contains TRIGGER objects. </p> <p><b>SQLITE_OMIT_UTF16</b><br> This macro is used to omit support for UTF16 text encoding. When this is defined all API functions that return or accept UTF16 encoded text are unavailable. These functions can be identified by the fact that they end with '16', for example sqlite3_prepare16(), sqlite3_column_text16() and sqlite3_bind_text16(). </p> <p><b>SQLITE_OMIT_VACUUM</b><br> When this option is defined, the <a href="lang_vacuum.html">VACUUM</a> command is not included in the library. Executing a VACUUM statement causes a parse error. </p> <p><b>SQLITE_OMIT_VIEW</b><br> Defining this option omits support for VIEW objects. Neither the <a href="lang_createview.html">CREATE VIEW</a> or <a href="lang_dropview.html">DROP VIEW</a> commands are available in this case, attempting to execute either will result in a parse error. </p> <p> WARNING: If this macro is defined, it will not be possible to open a database for which the schema contains VIEW objects. </p> } footer $rcsid |
Changes to www/lang.tcl.
1 2 3 | # # Run this Tcl script to generate the sqlite.html file. # | | | 1 2 3 4 5 6 7 8 9 10 11 | # # Run this Tcl script to generate the sqlite.html file. # set rcsid {$Id: lang.tcl,v 1.79 2004/11/20 08:17:18 danielk1977 Exp $} source common.tcl if {[llength $argv]>0} { set outputdir [lindex $argv 0] } else { set outputdir "" } |
︙ | ︙ | |||
70 71 72 73 74 75 76 77 78 79 80 81 82 83 | {{ON CONFLICT clause} conflict} {{CREATE VIEW} createview} {{DROP VIEW} dropview} {{CREATE TRIGGER} createtrigger} {{DROP TRIGGER} droptrigger} {{ATTACH DATABASE} attach} {{DETACH DATABASE} detach} }] { foreach {s_title s_tag} $section {} puts "<li><a href=\"[slink $s_tag]\">$s_title</a></li>" } puts {</ul></p> <p>Details on the implementation of each command are provided in | > > | 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 | {{ON CONFLICT clause} conflict} {{CREATE VIEW} createview} {{DROP VIEW} dropview} {{CREATE TRIGGER} createtrigger} {{DROP TRIGGER} droptrigger} {{ATTACH DATABASE} attach} {{DETACH DATABASE} detach} {REINDEX reindex} {{ALTER TABLE} altertable} }] { foreach {s_title s_tag} $section {} puts "<li><a href=\"[slink $s_tag]\">$s_title</a></li>" } puts {</ul></p> <p>Details on the implementation of each command are provided in |
︙ | ︙ | |||
128 129 130 131 132 133 134 135 136 137 138 139 140 141 | puts "\n<hr />" if {$label!=""} { puts "<a name=\"$label\"></a>" } puts "<h1>$name</h1>\n" } Section {ATTACH DATABASE} attach Syntax {sql-statement} { ATTACH [DATABASE] <database-filename> AS <database-name> } | > > > > > > > > > > > > > > > > > > > > > > | 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 | puts "\n<hr />" if {$label!=""} { puts "<a name=\"$label\"></a>" } puts "<h1>$name</h1>\n" } Section {ALTER TABLE} altertable Syntax {sql-statement} { ALTER TABLE [<database-name> .] <table-name> RENAME TO <new-table-name> } puts { <p>SQLite's version of the ALTER TABLE command allows the user to rename an existing table. The table identified by <i>[database-name.]table-name</i> is renamed to <i>new-table-name</i>. This command cannot be used to move a table between attached databases, only to rename a table within the same database.</p> <p>If the table being renamed has triggers or indices, then these remain attached to the table after it has been renamed. However, if there are any view definitions, or statements executed by triggers that refer to the table being renamed, these are not automatically modified to use the new table name. If this is required, the triggers or view definitions must be dropped and recreated to use the new table name by hand. </p> } Section {ATTACH DATABASE} attach Syntax {sql-statement} { ATTACH [DATABASE] <database-filename> AS <database-name> } |
︙ | ︙ | |||
1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 | <p>The algorithm specified in the OR clause of a COPY, INSERT, or UPDATE overrides any algorithm specified in a CREATE TABLE or CREATE INDEX. If no algorithm is specified anywhere, the ABORT algorithm is used.</p> } # <p>For additional information, see # <a href="conflict.html">conflict.html</a>.</p> Section REPLACE replace Syntax {sql-statement} { REPLACE INTO [<database-name> .] <table-name> [( <column-list> )] VALUES ( <value-list> ) | REPLACE INTO [<database-name> .] <table-name> [( <column-list> )] <select-statement> } | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1318 1319 1320 1321 1322 1323 1324 1325 1326 1327 1328 1329 1330 1331 1332 1333 1334 1335 1336 1337 1338 1339 1340 1341 1342 1343 1344 1345 1346 1347 1348 1349 1350 1351 1352 1353 1354 1355 1356 1357 1358 1359 1360 | <p>The algorithm specified in the OR clause of a COPY, INSERT, or UPDATE overrides any algorithm specified in a CREATE TABLE or CREATE INDEX. If no algorithm is specified anywhere, the ABORT algorithm is used.</p> } # <p>For additional information, see # <a href="conflict.html">conflict.html</a>.</p> Section REINDEX reindex Syntax {sql-statement} { REINDEX <collation name> } Syntax {sql-statement} { REINDEX [<database-name> .] <table/index-name> } puts { <p>The REINDEX command is used to delete and recreate indices from scratch. This is primarily useful when the definition of a collation sequence has changed. </p> <p>In the first form, all indices in all attached databases that use the named collation sequence are recreated. In the second form, if <i>[database-name.]table/index-name</i> identifies a table, then all indices associated with the table are rebuilt. If an index is identified, then only this specific index is deleted and recreated. </p> <p>If no <i>database-name</i> is specified and there exists both a table or index and a collation sequence of the specified name, then indices associated with the collation sequence only are reconstructed. This ambiguity may be dispelled by always specifying a <i>database-name</i> when reindexing a specific table or index. } Section REPLACE replace Syntax {sql-statement} { REPLACE INTO [<database-name> .] <table-name> [( <column-list> )] VALUES ( <value-list> ) | REPLACE INTO [<database-name> .] <table-name> [( <column-list> )] <select-statement> } |
︙ | ︙ | |||
1556 1557 1558 1559 1560 1561 1562 1563 1564 1565 1566 1567 1568 1569 | CROSS *DATABASE *DELIMITERS DESC *DETACH EACH END *EXPLAIN *FAIL FOR FULL IGNORE IMMEDIATE INITIALLY | > | 1609 1610 1611 1612 1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 | CROSS *DATABASE *DELIMITERS DESC *DETACH EACH END EXPLAIN *EXPLAIN *FAIL FOR FULL IGNORE IMMEDIATE INITIALLY |
︙ | ︙ | |||
1613 1614 1615 1616 1617 1618 1619 1620 1621 1622 1623 1624 1625 1626 | DEFAULT DEFERRABLE DELETE DISTINCT DROP ELSE EXCEPT FOREIGN FROM *GLOB GROUP HAVING IN *INDEX | > | 1667 1668 1669 1670 1671 1672 1673 1674 1675 1676 1677 1678 1679 1680 1681 | DEFAULT DEFERRABLE DELETE DISTINCT DROP ELSE EXCEPT ESCAPE FOREIGN FROM *GLOB GROUP HAVING IN *INDEX |
︙ | ︙ |
Changes to www/pragma.tcl.
1 2 3 | # # Run this Tcl script to generate the pragma.html file. # | | | 1 2 3 4 5 6 7 8 9 10 11 | # # Run this Tcl script to generate the pragma.html file. # set rcsid {$Id: pragma.tcl,v 1.6 2004/11/20 08:17:18 danielk1977 Exp $} source common.tcl header {Pragma statements supported by SQLite} proc Section {name {label {}}} { puts "\n<hr />" if {$label!=""} { puts "<a name=\"$label\"></a>" |
︙ | ︙ | |||
220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 | </ul> } Section {Pragmas to query the database schema} schema puts { <ul> <li><p><b>PRAGMA database_list;</b></p> <p>For each open database, invoke the callback function once with information about that database. Arguments include the index and the name the database was attached with. The first row will be for the main database. The second row will be for the database used to store temporary tables.</p></li> <li><p><b>PRAGMA foreign_key_list(</b><i>table-name</i><b>);</b></p> <p>For each foreign key that references a column in the argument table, invoke the callback function with information about that foreign key. The callback function will be invoked once for each column in each foreign key.</p></li> <li><p><b>PRAGMA index_info(</b><i>index-name</i><b>);</b></p> <p>For each column that the named index references, invoke the callback function once with information about that column, including the column name, and the column number.</p></li> <li><p><b>PRAGMA index_list(</b><i>table-name</i><b>);</b></p> <p>For each index on the named table, invoke the callback function once with information about that index. Arguments include the index name and a flag to indicate whether or not the index must be unique.</p></li> <li><p><b>PRAGMA table_info(</b><i>table-name</i><b>);</b></p> <p>For each column in the named table, invoke the callback function once with information about that column, including the column name, data type, whether or not the column can be NULL, and the default value for the column.</p></li> </ul> } Section {Pragmas to query/modify version values} version puts { <ul> <li><p><b>PRAGMA [database.]schema_version; <br>PRAGMA [database.]schema_version = </b><i>integer </i><b>; <br>PRAGMA [database.]user_version; <br>PRAGMA [database.]user_version = </b><i>integer </i><b>;</b> <p> The pragmas schema_version and user_version are used to set or get | > > > > > > > | 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 | </ul> } Section {Pragmas to query the database schema} schema puts { <ul> <a name="pragma_database_list"></a> <li><p><b>PRAGMA database_list;</b></p> <p>For each open database, invoke the callback function once with information about that database. Arguments include the index and the name the database was attached with. The first row will be for the main database. The second row will be for the database used to store temporary tables.</p></li> <a name="pragma_foreign_key_list"></a> <li><p><b>PRAGMA foreign_key_list(</b><i>table-name</i><b>);</b></p> <p>For each foreign key that references a column in the argument table, invoke the callback function with information about that foreign key. The callback function will be invoked once for each column in each foreign key.</p></li> <a name="pragma_index_info"></a> <li><p><b>PRAGMA index_info(</b><i>index-name</i><b>);</b></p> <p>For each column that the named index references, invoke the callback function once with information about that column, including the column name, and the column number.</p></li> <a name="pragma_index_list"></a> <li><p><b>PRAGMA index_list(</b><i>table-name</i><b>);</b></p> <p>For each index on the named table, invoke the callback function once with information about that index. Arguments include the index name and a flag to indicate whether or not the index must be unique.</p></li> <a name="pragma_table_info"></a> <li><p><b>PRAGMA table_info(</b><i>table-name</i><b>);</b></p> <p>For each column in the named table, invoke the callback function once with information about that column, including the column name, data type, whether or not the column can be NULL, and the default value for the column.</p></li> </ul> } Section {Pragmas to query/modify version values} version puts { <ul> <a name="pragma_schema_version"></a> <a name="pragma_user_version"></a> <li><p><b>PRAGMA [database.]schema_version; <br>PRAGMA [database.]schema_version = </b><i>integer </i><b>; <br>PRAGMA [database.]user_version; <br>PRAGMA [database.]user_version = </b><i>integer </i><b>;</b> <p> The pragmas schema_version and user_version are used to set or get |
︙ | ︙ |