]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Update the null-handling document to show how SQL Anywhere and Borland
authordrh <drh@noemail.net>
Tue, 1 Jul 2003 01:16:30 +0000 (01:16 +0000)
committerdrh <drh@noemail.net>
Tue, 1 Jul 2003 01:16:30 +0000 (01:16 +0000)
Interbase deal with NULLs. (CVS 1043)

FossilOrigin-Name: 9a87f2f326d7fc8bb9f832d0e3fd31141e14e08f

manifest
manifest.uuid
www/nulls.tcl

index 8f0d0c6e87dc31eb1b282b05240802acc6693ddf..3601d13749b9a78948249d5efc41dd6f3ce2f8b7 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,5 +1,5 @@
-C Documentation\schange:\srefer\susers\sto\sthe\swiki\sfor\sadditional\sunsupported\nfeatures\srather\sthan\shave\sthem\ssend\sme\se-mail.\s(CVS\s1042)
-D 2003-06-30T10:36:23
+C Update\sthe\snull-handling\sdocument\sto\sshow\show\sSQL\sAnywhere\sand\sBorland\nInterbase\sdeal\swith\sNULLs.\s(CVS\s1043)
+D 2003-07-01T01:16:30
 F Makefile.in 9ad23ed4ca97f9670c4496432e3fbd4b3760ebde
 F Makefile.linux-gcc b86a99c493a5bfb402d1d9178dcdc4bd4b32f906
 F README f1de682fbbd94899d50aca13d387d1b3fd3be2dd
@@ -159,7 +159,7 @@ F www/formatchng.tcl ca6cc1cb1bef9bc36f0619049d3c95e749bc6983
 F www/index.tcl a34315cada875af0b098b4c45981da8ab33fe7b6
 F www/lang.tcl 2890eb85809c8fca20c1d81fa30fbdbceecc2a43
 F www/mingw.tcl d96b451568c5d28545fefe0c80bee3431c73f69c
-F www/nulls.tcl 29497dac2bc5b437aa7e2e94577dad4d8933ed26
+F www/nulls.tcl f0304bc4dbe344f4738e52ad45906c5ffd289fbb
 F www/omitted.tcl fe59eaa9c1459cbf08fa7daa83421bfc814331bb
 F www/opcode.tcl b8d561f33597c62955796b797646f00144d97332
 F www/quickstart.tcl 4e97bef825e6a4153c43afb9f97235fc4da278ab
@@ -167,7 +167,7 @@ F www/speed.tcl 2f6b1155b99d39adb185f900456d1d592c4832b3
 F www/sqlite.tcl 3c83b08cf9f18aa2d69453ff441a36c40e431604
 F www/tclsqlite.tcl 1db15abeb446aad0caf0b95b8b9579720e4ea331
 F www/vdbe.tcl 9b9095d4495f37697fd1935d10e14c6015e80aa1
-P 7f5e8894ae37761d1015c426b5d383d3deef3e25
-R a6cc3a4266f28cd733e63c9a8d83c011
+P a3920b0804e9993bb21e6c46c612e72bd03178a2
+R a8b083bb866a87dcf70f77ed1fb561d9
 U drh
-Z eacae768ac4a586e6c3db54c44a1bdf7
+Z 3174cbe95c851c7270578015eafa897d
index fe292b063275ae72d62dfedd9f1d22e4db9b7aab..117d1618f95d0661c8ec6ae93036adc743a3caa6 100644 (file)
@@ -1 +1 @@
-a3920b0804e9993bb21e6c46c612e72bd03178a2
\ No newline at end of file
+9a87f2f326d7fc8bb9f832d0e3fd31141e14e08f
\ No newline at end of file
index ee7b5f92fd86297315f792f8deac616e379e2b74..5873280a1fe135fcc22a38557bf2082ec8ebd7b9 100644 (file)
@@ -1,7 +1,7 @@
 #
 # Run this script to generated a nulls.html output file
 #
-set rcsid {$Id: nulls.tcl,v 1.1 2002/09/02 14:11:04 drh Exp $}
+set rcsid {$Id: nulls.tcl,v 1.2 2003/07/01 01:16:30 drh Exp $}
 
 puts {<html>
 <head>
@@ -67,9 +67,6 @@ The following table shows the results of the NULL handling experiments.
 <th>Informix</th>
 <th>DB2</th>
 <th>MS-SQL</th>
-<th>MySQL</th>
-<th>OCELOT</th>
-<th>Firebird</th>
 </tr>
 
 <tr><td>Adding anything to null gives null</td>
@@ -79,9 +76,6 @@ The following table shows the results of the NULL handling experiments.
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
-<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
-<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
-<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 </tr>
 <tr><td>Multiplying null by zero gives null</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
@@ -90,9 +84,6 @@ The following table shows the results of the NULL handling experiments.
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
-<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
-<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
-<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 </tr>
 <tr><td>nulls are distinct in a UNIQUE index</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
@@ -101,9 +92,6 @@ The following table shows the results of the NULL handling experiments.
 <td valign="center" align="center" bgcolor="#c7a9a9">No</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#c7a9a9">No</td>
-<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
-<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
-<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 </tr>
 <tr><td>nulls are distinct in SELECT DISTINCT</td>
 <td valign="center" align="center" bgcolor="#c7a9a9">No</td>
@@ -112,9 +100,6 @@ The following table shows the results of the NULL handling experiments.
 <td valign="center" align="center" bgcolor="#c7a9a9">No</td>
 <td valign="center" align="center" bgcolor="#c7a9a9">No</td>
 <td valign="center" align="center" bgcolor="#c7a9a9">No</td>
-<td valign="center" align="center" bgcolor="#c7a9a9">No</td>
-<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
-<td valign="center" align="center" bgcolor="#aaaad2">(Note 1)</td>
 </tr>
 <tr><td>nulls are distinct in a UNION</td>
 <td valign="center" align="center" bgcolor="#c7a9a9">No</td>
@@ -123,9 +108,6 @@ The following table shows the results of the NULL handling experiments.
 <td valign="center" align="center" bgcolor="#c7a9a9">No</td>
 <td valign="center" align="center" bgcolor="#c7a9a9">No</td>
 <td valign="center" align="center" bgcolor="#c7a9a9">No</td>
-<td valign="center" align="center" bgcolor="#aaaad2">(Note 3)</td>
-<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
-<td valign="center" align="center" bgcolor="#aaaad2">(Note 1)</td>
 </tr>
 <tr><td>"CASE WHEN null THEN 1 ELSE 0 END" is 0?</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
@@ -134,44 +116,111 @@ The following table shows the results of the NULL handling experiments.
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+</tr>
+<tr><td>"null OR true" is true</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
-<td valign="center" align="center" bgcolor="#aaaad2">(Note 2)</td>
 </tr>
-<tr><td>"null OR true" is true</td>
+<tr><td>"not (null AND false)" is true</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+</tr>
+</table>
+
+<table border=1 cellpadding=5 width="100%">
+<tr><th>&nbsp&nbsp;</th>
+<th>MySQL</th>
+<th>OCELOT</th>
+<th>Firebird</th>
+<th>SQL Anywhere</th>
+<th>Borland Interbase</th>
+</tr>
+
+<tr><td>Adding anything to null gives null</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+</tr>
+<tr><td>Multiplying null by zero gives null</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+</tr>
+<tr><td>nulls are distinct in a UNIQUE index</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#aaaad2">(Note 4)</td>
+<td valign="center" align="center" bgcolor="#aaaad2">(Note 4)</td>
+</tr>
+<tr><td>nulls are distinct in SELECT DISTINCT</td>
 <td valign="center" align="center" bgcolor="#c7a9a9">No</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#aaaad2">(Note 1)</td>
+<td valign="center" align="center" bgcolor="#c7a9a9">No</td>
+<td valign="center" align="center" bgcolor="#c7a9a9">No</td>
 </tr>
-<tr><td>"not (null AND false)" is true</td>
+<tr><td>nulls are distinct in a UNION</td>
+<td valign="center" align="center" bgcolor="#aaaad2">(Note 3)</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#aaaad2">(Note 1)</td>
+<td valign="center" align="center" bgcolor="#c7a9a9">No</td>
+<td valign="center" align="center" bgcolor="#c7a9a9">No</td>
+</tr>
+<tr><td>"CASE WHEN null THEN 1 ELSE 0 END" is 0?</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#aaaad2">(Note 2)</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#aaaad2">(Note 5)</td>
+</tr>
+<tr><td>"null OR true" is true</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#c7a9a9">No</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+</tr>
+<tr><td>"not (null AND false)" is true</td>
 <td valign="center" align="center" bgcolor="#c7a9a9">No</td>
 <td valign="center" align="center" bgcolor="#c7a9a9">No</td>
 <td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
+<td valign="center" align="center" bgcolor="#a9c7a9">Yes</td>
 </tr>
 </table>
 
 <table border=0 align="right" cellpadding=0 cellspacing=0>
 <tr>
-<td valign="top" rowspan=3>Notes:&nbsp;&nbsp;</td>
+<td valign="top" rowspan=5>Notes:&nbsp;&nbsp;</td>
 <td>1.&nbsp;</td>
 <td>Firebird omits all NULLs from SELECT DISTINCT and from UNION.</td>
 </tr>
 <tr><td>2.&nbsp;</td>
-<td>Test data unavailable.</td></tr>
+<td>Test data unavailable.</td>
+</tr>
 <tr><td>3.&nbsp;</td>
-<td>The version of MySQL tested (3.23.41) does not support UNION.</td></tr>
+<td>The version of MySQL tested (3.23.41) does not support UNION.</td>
+</tr>
+<tr><td>4.&nbsp;</td>
+<td>SQL Anywhere and Borland Interbase 
+do not allow NULLs in a UNIQUE column.</td>
+</tr>
+<tr><td>5.&nbsp;</td>
+<td>Borland Interbase does not support CASE expressions.</td>
+</tr>
 </table>
 <br clear="both">