From: drh Date: Tue, 29 Aug 2006 13:08:37 +0000 (+0000) Subject: Document the fact that SQLite allows NULL values in PRIMARY KEY columns X-Git-Tag: version-3.6.10~2794 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e07b862e71c6dee1068992603cb4a4cfc4abc4cb;p=thirdparty%2Fsqlite.git Document the fact that SQLite allows NULL values in PRIMARY KEY columns and the fact that we might design to change this in the future. Ticket #518. (CVS 3373) FossilOrigin-Name: b99d845ef4776595022c6fb855e582cfe6ef2f9f --- diff --git a/manifest b/manifest index 496f58aa63..0b9202aada 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Improved\sbuilt-in\shelp\sin\sthe\scommand-line\sshell.\s\sEnable\sthe\nfulltext\ssearch\sextension\sin\sthe\sTCL\sinterface.\s(CVS\s3372) -D 2006-08-29T12:04:19 +C Document\sthe\sfact\sthat\sSQLite\sallows\sNULL\svalues\sin\sPRIMARY\sKEY\scolumns\nand\sthe\sfact\sthat\swe\smight\sdesign\sto\schange\sthis\sin\sthe\sfuture.\nTicket\s#518.\s(CVS\s3373) +D 2006-08-29T13:08:38 F Makefile.in 8e7f9ecebab2c6e0f3db20ff129a8f9405ab64f8 F Makefile.linux-gcc 2d8574d1ba75f129aba2019f0b959db380a90935 F README 9c4e2d6706bdcc3efdd773ce752a8cdab4f90028 @@ -366,7 +366,7 @@ F www/fullscanb.gif f7c94cb227f060511f8909e10f570157263e9a25 F www/index-ex1-x-b.gif f9b1d85c3fa2435cf38b15970c7e3aa1edae23a3 F www/index.tcl 7b9c5747a838501dace958131755651d6ca31adb F www/indirect1b1.gif adfca361d2df59e34f9c5cac52a670c2bfc303a1 -F www/lang.tcl 2cdc7d6a897d8f9da20989985d76326e76afe6c4 +F www/lang.tcl 529f5f0f44b55f26cdb66c6547a86b1332e1144a F www/lockingv3.tcl f59b19d6c8920a931f096699d6faaf61c05db55f F www/mingw.tcl d96b451568c5d28545fefe0c80bee3431c73f69c F www/nulls.tcl ec35193f92485b87b90a994a01d0171b58823fcf @@ -388,7 +388,7 @@ F www/tclsqlite.tcl bb0d1357328a42b1993d78573e587c6dcbc964b9 F www/vdbe.tcl 87a31ace769f20d3627a64fa1fade7fed47b90d0 F www/version3.tcl 890248cf7b70e60c383b0e84d77d5132b3ead42b F www/whentouse.tcl 97e2b5cd296f7d8057e11f44427dea8a4c2db513 -P 58006e38af760b53cf72bf127d7c7b8a619a1282 -R 29f7ed7a0d966745a2c83716a5630c77 +P 9763b4bfd5f0579f9fb821899ffa8bfe650054d7 +R e72221fee1f8d400d3a9ceae8a3d3fc0 U drh -Z 1df6398b1b50a7becef0bc2a58ad5ecd +Z 7758aacd5468f280d9ccb11e2061d137 diff --git a/manifest.uuid b/manifest.uuid index ea36923485..18d23292db 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -9763b4bfd5f0579f9fb821899ffa8bfe650054d7 \ No newline at end of file +b99d845ef4776595022c6fb855e582cfe6ef2f9f \ No newline at end of file diff --git a/www/lang.tcl b/www/lang.tcl index c831cd64cd..75cda0f262 100644 --- a/www/lang.tcl +++ b/www/lang.tcl @@ -1,7 +1,7 @@ # # Run this Tcl script to generate the lang-*.html files. # -set rcsid {$Id: lang.tcl,v 1.115 2006/08/16 22:58:50 drh Exp $} +set rcsid {$Id: lang.tcl,v 1.116 2006/08/29 13:08:38 drh Exp $} source common.tcl if {[llength $argv]>0} { @@ -564,6 +564,18 @@ that B-Tree keys are automatically generated. Additional detail on automatic B-Tree key generation is available separately.

+

According to the SQL standard, PRIMARY KEY should imply NOT NULL. +Unfortunately, due to a long-standing coding oversight, this is not +the case in SQLite. SQLite allows NULL values +in a PRIMARY KEY column. We could change SQLite to conform to the +standard (and we might do so in the future), but by the time the +oversight was discovered, SQLite was in such wide use that we feared +breaking legacy code if we fixed the problem. So for now we have +chosen to contain allowing NULLs in PRIMARY KEY columns. +Developers should be aware, however, that we may change SQLite to +conform to the SQL standard in future and should design new programs +accordingly.

+

If the "TEMP" or "TEMPORARY" keyword occurs in between "CREATE" and "TABLE" then the table that is created is only visible within that same database connection