-C Fix\sfor\sticket\s#22:\sIn\sthe\scode\sgenerator\sfor\scompound\sSELECT\sstatements,\stake\ncare\snot\sto\sgenerate\scolumn\sname\sheaders\sif\sthe\soutput\sis\san\sintermediate\stable.\nOtherwise\sthe\scolumn\sheaders\sare\snot\sgenerated\scorrectly\sif\sa\scompound\sSELECT\nstatement\sappears\sas\san\sexpression\sin\spart\sof\sthe\sWHERE\sclause.\s(CVS\s543)
-D 2002-04-23T17:10:18
+C Fix\sfor\sticket\s#26:\sDocument\sthe\sfact\sthat\sCREATE\sTABLE\smight\snot\sbe\nimmediately\svisible\sto\sother\sprocesses\sthat\sare\sholding\sthe\sdatabase\sopen.\s(CVS\s544)
+D 2002-04-25T00:21:50
F Makefile.in 50f1b3351df109b5774771350d8c1b8d3640130d
F Makefile.template 89e373b2dad0321df00400fa968dc14b61a03296
F README a4c0ba11354ef6ba0776b400d057c59da47a4cc0
F www/crosscompile.tcl 3622ebbe518927a3854a12de51344673eb2dd060
F www/download.tcl 29aa6679ca29621d10613f60ebbbda18f4b91c49
F www/dynload.tcl 02eb8273aa78cfa9070dd4501dca937fb22b466c
-F www/faq.tcl fb1e92e2f604546694f83a36d969492f52fb685d
+F www/faq.tcl 45bdb18b75ac3aa1befec42985fb892413aac0bb
F www/formatchng.tcl 2ce21ff30663fad6618198fe747ce675df577590
F www/index.tcl d0c52fbf031d0a3ee6d9d77aa669d5a4b24b6130
F www/lang.tcl 2d4654255ad1ec7f58d02dc41b59528c0ee6ea44
F www/sqlite.tcl 8b5884354cb615049aed83039f8dfe1552a44279
F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331
F www/vdbe.tcl 2013852c27a02a091d39a766bc87cff329f21218
-P 0691720a4b94141635734ab0a8c4072cab189a33
-R 5e23c695d2d82aae9921a85b5156d273
+P a06d9acdd5af0dc69b3a4d024de082631254aead
+R cfeb54c57cf6f9ec54bd35534c55c306
U drh
-Z 57e5aab64c05733c095af92c508e335d
+Z d14450a4a0ba6fe1648be69426d0ab18
#
# Run this script to generated a faq.html output file
#
-set rcsid {$Id: faq.tcl,v 1.9 2002/03/23 00:31:29 drh Exp $}
+set rcsid {$Id: faq.tcl,v 1.10 2002/04/25 00:21:50 drh Exp $}
puts {<html>
<head>
details.</p>
}
+faq {
+ What datatypes does SQLite support?
+} {
+ <p>SQLite is typeless. All data is stored as null-terminated strings.
+ The datatype information that follows the column name in CREATE TABLE
+ statements is ignored (mostly). You can put any type of data you want
+ into any column, without regard to the declared datatype of that column.
+ </p>
+
+ <p>An exception to this rule is a column of type INTEGER PRIMARY KEY.
+ Such columns must hold an integer. An attempt to put a non-integer
+ value into an INTEGER PRIMARY KEY column will generate an error.</p>
+}
+
faq {
SQLite lets me insert a string into a database column of type integer!
} {
adjust this behavior from C code using the <b>sqlite_busy_handler()</b> or
<b>sqlite_busy_timeout()</b> API functions. See the API documentation
for details.</p>
+
+ <p>If two or more processes have the same database open and one
+ process creates a new table or index, the other processes might
+ not be able to see the new table right away. You might have to
+ get the other processes to close and reopen their connection to
+ the database before they will be able to see the new table.</p>
}
faq {
returned from separate calls to <b>sqlite_open()</b>. It is never safe
to use the same <b>sqlite</b> structure pointer simultaneously in two
or more threads.</p>
+
+ <p>Note that if two or more threads have the same database open and one
+ thread creates a new table or index, the other threads might
+ not be able to see the new table right away. You might have to
+ get the other threads to close and reopen their connection to
+ the database before they will be able to see the new table.</p>
}
faq {
}
faq {
- Are there any known size limits to SQLite databases.
+ Are there any known size limits to SQLite databases?
} {
<p>Internally, SQLite can handle databases up to 2^40 bytes (1 terabyte)
in size. But the backend interface to POSIX and Win32 limits files to
number of columns, etc. Indices are similarly unconstrained.</p>
}
+faq {
+ What is the maximum size of a VARCHAR in SQLite?
+} {
+ <p>Remember, SQLite is typeless. A VARCHAR column can hold as much
+ data as any other column. The total amount of data in a single row
+ of the database is limited to 1 megabyte. You can increase this limit
+ to 16 megabytes, if you need to, by adjusting a single #define in the
+ source tree and recompiling.</p>
+
+ <p>For maximum speed and space efficiency, you should try to keep the
+ amount of data in a single row below about 230 bytes.</p>
+}
+
+faq {
+ Does SQLite support a BLOB type?
+} {
+ <p>You can declare a table column to be of type "BLOB" but it will still
+ only store null-terminated strings. This is because the only way to
+ insert information into an SQLite database is using an INSERT SQL statement,
+ and you can not include binary data in the middle of the ASCII text string
+ of an INSERT statement.</p>
+
+ <p>SQLite is 8-bit clean with regard to the data is stores as long as
+ the data does not contain any NUL characters. If you want to store binary
+ data, consider encoding your data in such a way that it contains no NUL
+ characters and inserting it that way. You might use URL-style encoding:
+ encode NUL as "%00" and "%" as "%25". Or you might consider encoding your
+ binary data using base-64.</p>
+}
+
faq {
How do I add or delete columns from an existing table in SQLite.
} {