mirror of https://github.com/sqlite/sqlite
Fix for ticket #26: Document the fact that CREATE TABLE might not be
immediately visible to other processes that are holding the database open. (CVS 544) FossilOrigin-Name: 18b31b7ab90ab330e271e0ed5d316f63846845be
This commit is contained in:
parent
41202ccae2
commit
7caf776079
12
manifest
12
manifest
|
@ -1,5 +1,5 @@
|
|||
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
|
||||
|
@ -121,7 +121,7 @@ F www/conflict.tcl 81dd21f9a679e60aae049e9dd8ab53d59570cda2
|
|||
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
|
||||
|
@ -131,7 +131,7 @@ F www/speed.tcl da8afcc1d3ccc5696cfb388a68982bc3d9f7f00f
|
|||
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
|
||||
|
|
|
@ -1 +1 @@
|
|||
a06d9acdd5af0dc69b3a4d024de082631254aead
|
||||
18b31b7ab90ab330e271e0ed5d316f63846845be
|
60
www/faq.tcl
60
www/faq.tcl
|
@ -1,7 +1,7 @@
|
|||
#
|
||||
# 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>
|
||||
|
@ -67,6 +67,20 @@ INSERT INTO t1 VALUES((SELECT max(a) FROM t1)+1,123);
|
|||
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!
|
||||
} {
|
||||
|
@ -189,6 +203,12 @@ faq {
|
|||
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 {
|
||||
|
@ -205,6 +225,12 @@ 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 {
|
||||
|
@ -255,7 +281,7 @@ ORDER BY name;
|
|||
}
|
||||
|
||||
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
|
||||
|
@ -278,6 +304,36 @@ faq {
|
|||
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.
|
||||
} {
|
||||
|
|
Loading…
Reference in New Issue