Documentation Source Text

Check-in [c6f9f40d64]
Login

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

Overview
Comment:Bring the compile.html document up-to-date.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: c6f9f40d64d54fb12f2cc4df85488d15fc5db86f
User & Date: drh 2008-06-26 18:03:37.000
Context
2008-06-27
17:20
Initial check-in of the rtree documentation. Very incomplete. (check-in: a7b39daebb user: drh tags: trunk)
2008-06-26
18:03
Bring the compile.html document up-to-date. (check-in: c6f9f40d64 user: drh tags: trunk)
15:46
Continuing work on the compile-time options document. This is an incremental check-in. (check-in: daaf0b565e user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to pages/amalgamation.in.
1

2
3
4
5
6
7
8
<title>The SQLite Amalgamation</title>


<h2>The SQLite Amalgamation</h2>

<p>The core SQLite library consists of about 76 files of C code
(as of version 3.6.0) in the core with 11 additional files
in the FTS3 and RTREE extensions.
Most of these are "source" files in the sense that they are stored 

>







1
2
3
4
5
6
7
8
9
<title>The SQLite Amalgamation</title>
<tcl>hd_keywords {amalgamation} {the amalgamation}</tcl>

<h2>The SQLite Amalgamation</h2>

<p>The core SQLite library consists of about 76 files of C code
(as of version 3.6.0) in the core with 11 additional files
in the FTS3 and RTREE extensions.
Most of these are "source" files in the sense that they are stored 
Changes to pages/compile.in.
106
107
108
109
110
111
112











113
114
115
116
117
118
119
<li> [SQLITE_MAX_VARIABLE_NUMBER]  </li>
</ul>

<a name="controlfeatures"></a>
<h2>1.3 Options To Control Operating Characteristics</h2>

<tcl>











COMPILE_OPTION {SQLITE_THREADSAFE=<i>&lt;0 or 1&gt;</i>} {
  This option controls whether or not code is included in SQLite to
  enable it to operate safely in a multithreaded environment.  The
  default is SQLITE_THREADSAFE=1 which is safe for use in a multithreaded
  environment.  When compiled with SQLITE_THREADSAFE=0 all mutexing code
  is omitted and it is unsafe to use SQLite in a multithreaded program.








>
>
>
>
>
>
>
>
>
>
>







106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<li> [SQLITE_MAX_VARIABLE_NUMBER]  </li>
</ul>

<a name="controlfeatures"></a>
<h2>1.3 Options To Control Operating Characteristics</h2>

<tcl>
COMPILE_OPTION {SQLITE_SECURE_DELETE} {
  This compile-time option causes SQLite to overwrite deleted
  information with zeros in addition to marking the space
  as available for reuse.  Without this option, deleted data
  might be recoverable from a database using a binary editor.
  However, there is a performance penalty for using this option.

  This option does <u>not</u> cause deleted data is securely
  removed from the underlying storage media.
}

COMPILE_OPTION {SQLITE_THREADSAFE=<i>&lt;0 or 1&gt;</i>} {
  This option controls whether or not code is included in SQLite to
  enable it to operate safely in a multithreaded environment.  The
  default is SQLITE_THREADSAFE=1 which is safe for use in a multithreaded
  environment.  When compiled with SQLITE_THREADSAFE=0 all mutexing code
  is omitted and it is unsafe to use SQLite in a multithreaded program.

145
146
147
148
149
150
151










































































152
153
154
155
156
157
158
159
160


161
162
163
164
165
166
167
168
169
170
171
172
173
174





175
176
177
178
179
180
181










182
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
  Additional information can be found in [tempstore | tempfiles.html].
}
</tcl>

<a name="enablefeatures"></a>
<h2>1.4 Options To Enable Features Normally Turned Off</h2>











































































<a name="omitfeatures"></a>
<h2>1.5 Options To Omit Features</h2>

<p>The following options are used to reduce the size of the compiled
library by omiting optional features. This is probably only useful
in embedded systems where space is especially tight, as even with all
features included the SQLite library is relatively small. Don't forget
to tell your compiler to optimize for binary size! (the -Os option if
using GCC).</p>



<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>






<tcl>
COMPILE_OPTION {SQLITE_OMIT_ALTERTABLE} {
  When this option is defined, the 
  [ALTER TABLE] command is not included in the 
  library. Executing an [ALTER TABLE] statement causes a parse error.
}











COMPILE_OPTION {SQLITE_OMIT_AUTHORIZATION} {
  Defining this option omits the authorization callback feature from the
  library. The [sqlite3_set_authorizer()] API function is not present
  in the library.
}

COMPILE_OPTION {SQLITE_OMIT_AUTOVACUUM} {
  If this option is defined, the library cannot create or write to 
  databases that support [auto_vacuum].
  Executing a [PRAGMA auto_vacuum] statement is not an error
  (since unknown PRAGMAs are silently ignored), but does not return a value
  or modify the auto-vacuum flag in the database file. If a database that
  supports auto-vacuum is opened by a library compiled with this option, it
  is automatically opened in read-only mode.
}

COMPILE_OPTION {SQLITE_OMIT_AUTOINCREMENT} {
  This option is used to omit the 
  [AUTOINCREMENT] functionality. When this 
  is macro is defined, columns declared as 
  "[INTEGER PRIMARY KEY] AUTOINCREMENT"
  behave in the same way as columns declared as "[INTEGER PRIMARY KEY]" when a 
  NULL is inserted. The sqlite_sequence system table is neither created, nor
  respected if it already exists.
}





























COMPILE_OPTION {SQLITE_OMIT_BLOB_LITERAL} {
  When this option is defined, it is not possible to specify a blob in
  an SQL statement using the X'ABCD' syntax.
}
















COMPILE_OPTION {SQLITE_OMIT_COMPLETE} {
  This option causes the [sqlite3_complete()] and [sqlite3_complete16()]
  interfaces to be omitted.
}

COMPILE_OPTION {SQLITE_OMIT_COMPOUND_SELECT} {







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>



|
|



|
>
>










|
|
|

>
>
>
>
>







>
>
>
>
>
>
>
>
>
>







<
<
<
<
<
<
<
<
<
<










>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>




>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
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
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
279
280
281
282
283
284
285
286
287
288
289
290










291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
  Additional information can be found in [tempstore | tempfiles.html].
}
</tcl>

<a name="enablefeatures"></a>
<h2>1.4 Options To Enable Features Normally Turned Off</h2>

<tcl>
COMPILE_OPTION {SQLITE_ENABLE_ATOMIC_WRITE} {
  If this C-preprocessor macro is defined and if the
  xDeviceCharacteristics method of [sqlite3_io_methods] object for
  a database file reports (via one of the [SQLITE_IOCAP_ATOMIC] bits)
  that the filesystem supports atomic writes and if a transaction
  involves a change to only a single page of the database file,
  then the transaction commits with just a single write request of
  a single page of the database and no rollback journal is created
  or written.  On filesystems that support atomic writes, this
  optimization can result in significant speed improvements for
  small updates.  However, few filesystems support this capability
  and the code paths that check for this capability slow down write
  performance on systems that lack atomic write capability, so this
  feature is disabled by default.
}

COMPILE_OPTION {SQLITE_ENABLE_COLUMN_METADATA} {
  When this C-preprocessor macro is defined, SQLite includes some
  additional APIs that provide convenient access to meta-data about
  tables and queries.  The APIs that are enabled by this option are:

  <ul>
  <li> [sqlite3_column_database_name()] </li>
  <li> [sqlite3_column_database_name16()] </li>
  <li> [sqlite3_column_table_name()] </li>
  <li> [sqlite3_column_table_name16()] </li>
  <li> [sqlite3_column_origin_name()] </li>
  <li> [sqlite3_column_origin_name16()] </li>
  <li> [sqlite3_table_column_metadata()] </li>
  </ul>
}

COMPILE_OPTION {SQLITE_ENABLE_FTS3} {
  When this option is defined in the [amalgamation], version 3
  of the full-text search engine is added to the build automatically.
}

COMPILE_OPTION {SQLITE_ENABLE_ICU} {
  This option causes the 
  <a href="http://www.icu-project.org/">International Components for Unicode</a>
  or "ICU" extension to SQLite to be added to the build.  
}

COMPILE_OPTION {SQLITE_ENABLE_IOTRACE} {
  When both the SQLite core and the [Command Line Interface] (CLI) are both 
  compiled with this option, then the CLI provides an extra command
  named ".iotrace" that provides a low-level log of I/O activity.
  This option is experimental and may be discontinued in a future release.
}

COMPILE_OPTION {SQLITE_ENABLE_LOCKING_STYLE} {
  This option enables additional logic in the OS interface layer for
  Mac OS X.  The additional logic attempts to determine the type of the
  underlying filesystem and choose and alternative locking strategy
  that works correctly for that filesystem type.
}

COMPILE_OPTION {SQLITE_ENABLE_MEMORY_MANAGEMENT} {
  This option adds extra logic to SQLite that allows it to release unused
  memory upon request.  This option must be enabled in order for the
  [sqlite3_release_memory()] interface to work.  If this compile-time
  option is not used, the [sqlite3_release_memory()] interface is a 
  no-op.  Since [sqlite3_soft_heap_limit()] depends on
  [sqlite3_release_memory()], this option is also necessary for
  the correct operation of [sqlite3_soft_heap_limit()].
}

COMPILE_OPTION {SQLITE_ENABLE_RTREE} {
  This option causes SQLite to include support for the R*Tree index
  extension.
}
</tcl>

<a name="omitfeatures"></a>
<h2>1.5 Options To Omit Features</h2>

<p>The following options can used to reduce the size of the compiled
library by omitting optional features. This is probably only useful
in embedded systems where space is especially tight, as even with all
features included the SQLite library is relatively small. Don't forget
to tell your compiler to optimize for binary size! (the -Os option if
using GCC).  Telling your compiler to optimize for size usually has
a much large impact on library footprint than employing any of these
compile-time options.</p>

<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 be used when the library is built
from source, not from the [amalgamation] or from the collection of
pre-packaged C files provided for non-UNIX like platforms on the website.
</p>

<p>These "OMIT" options are considered unsupported.  Any of these
options may be removed from the code in a future release
and without warning.  For any particular release, some of these
options may cause compile-time or run-time failures.</p>

<tcl>
COMPILE_OPTION {SQLITE_OMIT_ALTERTABLE} {
  When this option is defined, the 
  [ALTER TABLE] command is not included in the 
  library. Executing an [ALTER TABLE] statement causes a parse error.
}

COMPILE_OPTION {SQLITE_OMIT_ANALYZE} {
  When this option is defined, the [ANALYZE] command is omitted from
  the build.
}

COMPILE_OPTION {SQLITE_OMIT_ATTACH} {
  When this option is defined, the [ATTACH] and [DETACH] commands are
  omitted from the build.
}

COMPILE_OPTION {SQLITE_OMIT_AUTHORIZATION} {
  Defining this option omits the authorization callback feature from the
  library. The [sqlite3_set_authorizer()] API function is not present
  in the library.
}











COMPILE_OPTION {SQLITE_OMIT_AUTOINCREMENT} {
  This option is used to omit the 
  [AUTOINCREMENT] functionality. When this 
  is macro is defined, columns declared as 
  "[INTEGER PRIMARY KEY] AUTOINCREMENT"
  behave in the same way as columns declared as "[INTEGER PRIMARY KEY]" when a 
  NULL is inserted. The sqlite_sequence system table is neither created, nor
  respected if it already exists.
}

COMPILE_OPTION {SQLITE_OMIT_AUTOINIT} {
  For backwards compatibility with older versions of SQLite that lack
  the [sqlite3_initialize()] interface, the [sqlite3_initialize()] interface
  is called automatically upon entry to certain key interfaces such as
  [sqlite3_open()], [sqlite3_vfs_register()], and [sqlite3_mprintf()].
  The overhead of invoking [sqlite3_initialize()] automatically in this
  way may be omitted by building SQLite with the SQLITE_OMIT_AUTOINIT
  C-preprocessor macro.  When built using SQLITE_OMIT_AUTOINIT, SQLite
  will not automatically initialize itself and the application is required
  to invoke [sqlite3_initialize()] directly prior to beginning use of the
  SQLite library.
}

COMPILE_OPTION {SQLITE_OMIT_AUTOVACUUM} {
  If this option is defined, the library cannot create or write to 
  databases that support [auto_vacuum].
  Executing a [PRAGMA auto_vacuum] statement is not an error
  (since unknown PRAGMAs are silently ignored), but does not return a value
  or modify the auto-vacuum flag in the database file. If a database that
  supports auto-vacuum is opened by a library compiled with this option, it
  is automatically opened in read-only mode.
}

COMPILE_OPTION {SQLITE_OMIT_BETWEEN_OPTIMIZATION} {
  This option disables the use of indices with WHERE clause terms
  that employ the BETWEEN operator.
}

COMPILE_OPTION {SQLITE_OMIT_BLOB_LITERAL} {
  When this option is defined, it is not possible to specify a blob in
  an SQL statement using the X'ABCD' syntax.
}

COMPILE_OPTION {SQLITE_OMIT_BUILTIN_TEST} {
  A standard SQLite build includes a small amount of logic controlled
  by the [sqlite3_test_control()] interface that is used to exercise
  parts of the SQLite core that are difficult to control and measure using
  the standard API.  This option omits that built-in test logic.
}

COMPILE_OPTION {SQLITE_OMIT_CAST} {
  This option causes SQLite to omit support for the CAST operator.
}

COMPILE_OPTION {SQLITE_OMIT_CHECK} {
  This option causes SQLite to omit support for CHECK constraints.
}

COMPILE_OPTION {SQLITE_OMIT_COMPLETE} {
  This option causes the [sqlite3_complete()] and [sqlite3_complete16()]
  interfaces to be omitted.
}

COMPILE_OPTION {SQLITE_OMIT_COMPOUND_SELECT} {
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
279
280
281
282
283
284
285
286
287
288
289
290
291






292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309







310
311
312
313
314
315
316
317
318









319
320
321
322
323
324
325

COMPILE_OPTION {SQLITE_OMIT_DATETIME_FUNCS} {
  If this option is defined, SQLite's built-in date and time manipulation
  functions are omitted. Specifically, the SQL functions julianday(), date(),
  time(), datetime() and strftime() are not available. The default column
  values CURRENT_TIME, CURRENT_DATE and CURRENT_DATETIME are still available.
}












COMPILE_OPTION {SQLITE_OMIT_EXPLAIN} {
  Defining this option causes the [EXPLAIN] command to be omitted from the
  library. Attempting to execute an [EXPLAIN] statement will cause a parse
  error.
}






COMPILE_OPTION {SQLITE_OMIT_FLOATING_POINT} {
  This option is used to omit floating-point number support from the SQLite
  library. When specified, specifying a floating point number as a literal 
  (i.e. "1.01") results in a parse error.

  <p>In the future, this option may also disable other floating point 
  functionality, for example the [sqlite3_result_double()], 
  [sqlite3_bind_double()], [sqlite3_value_double()] and
  [sqlite3_column_double()] API functions.
  </p>
}

COMPILE_OPTION {SQLITE_OMIT_FOREIGN_KEY} {
  If this option is defined, FOREIGN KEY clauses in column declarations are
  ignored.
}











COMPILE_OPTION {SQLITE_OMIT_INTEGRITY_CHECK} {


  This option may be used to omit the 




  [integrity_check] PRAGMA.











}

COMPILE_OPTION {SQLITE_OMIT_MEMORYDB} {
  When this is defined, the library does not respect the special database
  name ":memory:" (normally used to create an in-memory database). If 
  ":memory:" is passed to [sqlite3_open()], [sqlite3_open16()], or
  [sqlite3_open_v2()], a file with this name will be 
  opened or created.
}






COMPILE_OPTION {SQLITE_OMIT_PAGER_PRAGMAS} {
  Defining this option omits pragmas related to the pager subsystem from 
  the build.
}

COMPILE_OPTION {SQLITE_OMIT_PRAGMA} {
  This option is used to omit the [PRAGMA] command
  from the library. Note that it is useful to define the macros that omit
  specific pragmas in addition to this, as they may also remove supporting code
  in other sub-systems. This macro removes the [PRAGMA] command only.
}

COMPILE_OPTION {SQLITE_OMIT_PROGRESS_CALLBACK} {
  This option may be defined to omit the capability to issue "progress" 
  callbacks during long-running SQL statements. The 
  [sqlite3_progress_handler()]
  API function is not present in the library.
}







COMPILE_OPTION {SQLITE_OMIT_REINDEX} {
  When this option is defined, the [REINDEX]
  command is not included in the library.
  Executing a [REINDEX] statement causes 
  a parse error.
}

COMPILE_OPTION {SQLITE_OMIT_SCHEMA_PRAGMAS} {
  Defining this option omits pragmas for querying the database schema from 
  the build.
}

COMPILE_OPTION {SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS} {
  Defining this option omits pragmas for querying and modifying the 
  database schema version and user version from the build. Specifically, the 
  [schema_version] and [user_version] PRAGMAs are omitted.
}








COMPILE_OPTION {SQLITE_OMIT_SUBQUERY} {
  If defined, support for sub-selects and the IN() operator are omitted.
}

COMPILE_OPTION {SQLITE_OMIT_TCL_VARIABLE} {
  If this macro is defined, then the special "$<variable-name>" syntax
  used to automatically bind SQL variables to TCL variables is omitted.
}










COMPILE_OPTION {SQLITE_OMIT_TRIGGER} {
  Defining this option omits support for VIEW objects. Neither the 
  [CREATE TRIGGER] or [DROP TRIGGER]
  commands are available in this case, and attempting to execute
  either will result in a parse error.








>
>
>
>
>
>
>
>
>
>
>






>
>
>
>
>


















>
>
>
>
>
>
>
>
>
>

>
>
|
>
>
>
>
|
>
>
>
>
>
>
>
>
>
>
>









>
>
>
>
>



















>
>
>
>
>
>


















>
>
>
>
>
>
>









>
>
>
>
>
>
>
>
>







365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530

COMPILE_OPTION {SQLITE_OMIT_DATETIME_FUNCS} {
  If this option is defined, SQLite's built-in date and time manipulation
  functions are omitted. Specifically, the SQL functions julianday(), date(),
  time(), datetime() and strftime() are not available. The default column
  values CURRENT_TIME, CURRENT_DATE and CURRENT_DATETIME are still available.
}

COMPILE_OPTION {SQLITE_OMIT_DECLTYPE} {
  This option causes SQLite to omit support for the
  [sqlite3_column_decltype()] and [sqlite3_column_decltype16()]
  interfaces.
}

COMPILE_OPTION {SQLITE_OMIT_DISKIO} {
  This option omits all support for writing to the disk and forces
  databases to exist in memory only.
}

COMPILE_OPTION {SQLITE_OMIT_EXPLAIN} {
  Defining this option causes the [EXPLAIN] command to be omitted from the
  library. Attempting to execute an [EXPLAIN] statement will cause a parse
  error.
}

COMPILE_OPTION {SQLITE_OMIT_FLAG_PRAGMAS} {
  This option omits support for a subset of [PRAGMA] commands that
  query and set boolean properties.
}

COMPILE_OPTION {SQLITE_OMIT_FLOATING_POINT} {
  This option is used to omit floating-point number support from the SQLite
  library. When specified, specifying a floating point number as a literal 
  (i.e. "1.01") results in a parse error.

  <p>In the future, this option may also disable other floating point 
  functionality, for example the [sqlite3_result_double()], 
  [sqlite3_bind_double()], [sqlite3_value_double()] and
  [sqlite3_column_double()] API functions.
  </p>
}

COMPILE_OPTION {SQLITE_OMIT_FOREIGN_KEY} {
  If this option is defined, FOREIGN KEY clauses in column declarations are
  ignored.
}

COMPILE_OPTION {SQLITE_OMIT_GET_TABLE} {
  This option causes support for [sqlite3_get_table()] and
  [sqlite3_free_table()] to be omitted.
}

COMPILE_OPTION {SQLITE_OMIT_INCRBLOB} {
  This option causes support for [sqlite3_blob | incremental BLOB I/O]
  to be omitted.
}

COMPILE_OPTION {SQLITE_OMIT_INTEGRITY_CHECK} {
  This option omits support for the [integrity_check pragma].
}

COMPILE_OPTION {SQLITE_OMIT_LIKE_OPTIMIZATION} {
  This option disable the ability of SQLite to use indices to help
  resolve [LIKE] and [GLOB] operators in a WHERE clause.
}

COMPILE_OPTION {SQLITE_OMIT_LOAD_EXTENSION} {
  This option omits the entire extension loading mechanism from
  SQLite, including [sqlite3_enable_load_extension()] and
  [sqlite3_load_extension()] interfaces.
}

COMPILE_OPTION {SQLITE_OMIT_LOCALTIME} {
  This option omits the "localtime" modifier from the date and time
  functions.  This option is sometimes useful when trying to compile
  the date and time functions on a platform that does not support the
  concept of local time.
}

COMPILE_OPTION {SQLITE_OMIT_MEMORYDB} {
  When this is defined, the library does not respect the special database
  name ":memory:" (normally used to create an in-memory database). If 
  ":memory:" is passed to [sqlite3_open()], [sqlite3_open16()], or
  [sqlite3_open_v2()], a file with this name will be 
  opened or created.
}

COMPILE_OPTION {SQLITE_OMIT_OR_OPTIMIZATION} {
  This option disables the ability of SQLite to use an index together
  with terms of a WHERE clause connected by the OR operator.
}

COMPILE_OPTION {SQLITE_OMIT_PAGER_PRAGMAS} {
  Defining this option omits pragmas related to the pager subsystem from 
  the build.
}

COMPILE_OPTION {SQLITE_OMIT_PRAGMA} {
  This option is used to omit the [PRAGMA] command
  from the library. Note that it is useful to define the macros that omit
  specific pragmas in addition to this, as they may also remove supporting code
  in other sub-systems. This macro removes the [PRAGMA] command only.
}

COMPILE_OPTION {SQLITE_OMIT_PROGRESS_CALLBACK} {
  This option may be defined to omit the capability to issue "progress" 
  callbacks during long-running SQL statements. The 
  [sqlite3_progress_handler()]
  API function is not present in the library.
}

COMPILE_OPTION {SQLITE_OMIT_QUICKBALANCE} {
  This option omits an alternative, faster B-Tree balancing routine.
  Using this option makes SQLite slightly smaller at the expense of
  making it run slightly slower.
}

COMPILE_OPTION {SQLITE_OMIT_REINDEX} {
  When this option is defined, the [REINDEX]
  command is not included in the library.
  Executing a [REINDEX] statement causes 
  a parse error.
}

COMPILE_OPTION {SQLITE_OMIT_SCHEMA_PRAGMAS} {
  Defining this option omits pragmas for querying the database schema from 
  the build.
}

COMPILE_OPTION {SQLITE_OMIT_SCHEMA_VERSION_PRAGMAS} {
  Defining this option omits pragmas for querying and modifying the 
  database schema version and user version from the build. Specifically, the 
  [schema_version] and [user_version] PRAGMAs are omitted.
}

COMPILE_OPTION {SQLITE_OMIT_SHARED_CACHE} {
  This option builds SQLite without support for shared-cache mode.
  The [sqlite3_enable_shared_cache()] is omitted along with a fair
  amount of logic within the B-Tree subsystem associated with shared
  cache management.
}

COMPILE_OPTION {SQLITE_OMIT_SUBQUERY} {
  If defined, support for sub-selects and the IN() operator are omitted.
}

COMPILE_OPTION {SQLITE_OMIT_TCL_VARIABLE} {
  If this macro is defined, then the special "$<variable-name>" syntax
  used to automatically bind SQL variables to TCL variables is omitted.
}

COMPILE_OPTION {SQLITE_OMIT_TEMPDB} {
  This option omits support for TEMP or TEMPORARY tables.
}

COMPILE_OPTION {SQLITE_OMIT_TRACE} {
  This option omits support for the [sqlite3_profile()] and
  [sqlite3_trace()] interfaces and their associated logic.
}

COMPILE_OPTION {SQLITE_OMIT_TRIGGER} {
  Defining this option omits support for VIEW objects. Neither the 
  [CREATE TRIGGER] or [DROP TRIGGER]
  commands are available in this case, and attempting to execute
  either will result in a parse error.

347
348
349
350
351
352
353










354
  [CREATE VIEW] nor the [DROP VIEW]
  commands are available in this case, and
  attempting to execute either will result in a parse error.

  WARNING: If this macro is defined, it will not be possible to open a database
  for which the schema contains VIEW objects. 
}










</tcl>







>
>
>
>
>
>
>
>
>
>

552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
  [CREATE VIEW] nor the [DROP VIEW]
  commands are available in this case, and
  attempting to execute either will result in a parse error.

  WARNING: If this macro is defined, it will not be possible to open a database
  for which the schema contains VIEW objects. 
}

COMPILE_OPTION {SQLITE_OMIT_VIRTUALTABLE} {
  This option omits support for the [sqlite3_vtab | Virtual Table]
  mechanism in SQLite.
}

COMPILE_OPTION {SQLITE_OMIT_XFER_OPT} {
  This option omits support for optimizations that help statements
  of the form "INSERT INTO ... SELECT ..." run faster.
}
</tcl>
Changes to pages/sqlite.in.
1

2
3
4
5
6
7
8
<title>sqlite3: A command-line access program for SQLite databases</title>


<h2>sqlite3: A command-line access program for SQLite databases</h2>

<p>The SQLite library includes a simple command-line utility named
<b>sqlite3</b> that allows the user to manually enter and execute SQL
commands against an SQLite database.  This document provides a brief
introduction on how to use <b>sqlite3</b>.

>







1
2
3
4
5
6
7
8
9
<title>sqlite3: A command-line access program for SQLite databases</title>
<tcl>hd_keywords {CLI} {Command Line Interface}</tcl>

<h2>sqlite3: A command-line access program for SQLite databases</h2>

<p>The SQLite library includes a simple command-line utility named
<b>sqlite3</b> that allows the user to manually enter and execute SQL
commands against an SQLite database.  This document provides a brief
introduction on how to use <b>sqlite3</b>.