]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Force all qsort() calls in mkkeywordhash.c to be stable so that we get
authordrh <drh@noemail.net>
Tue, 3 Nov 2009 13:08:16 +0000 (13:08 +0000)
committerdrh <drh@noemail.net>
Tue, 3 Nov 2009 13:08:16 +0000 (13:08 +0000)
predictable results on different platforms.

FossilOrigin-Name: 3b02df27ab63936226a90098d88535ed19c2b782

manifest
manifest.uuid
tool/mkkeywordhash.c

index 908bd94438f5cca5ad47b314585d01b9efacd891..47cd8d0ac18ec3252299bec6b400f60bc56730e4 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,8 +1,8 @@
 -----BEGIN PGP SIGNED MESSAGE-----
 Hash: SHA1
 
-C Adjust\sthe\slemon\simplementation\sso\sthat\sit\salways\scomputes\sthe\ssame\sPDA\nregardless\sof\sqsort()\simplementation\son\sthe\shost\splatform.\s\sIn\sother\swords,\nmake\sall\ssorts\sin\slemon\sstable.
-D 2009-11-03T13:02:26
+C Force\sall\sqsort()\scalls\sin\smkkeywordhash.c\sto\sbe\sstable\sso\sthat\swe\sget\npredictable\sresults\son\sdifferent\splatforms.
+D 2009-11-03T13:08:17
 F Makefile.arm-wince-mingw32ce-gcc fcd5e9cd67fe88836360bb4f9ef4cb7f8e2fb5a0
 F Makefile.in a77dfde96ad86aafd3f71651a4333a104debe86a
 F Makefile.linux-gcc d53183f4aa6a9192d249731c90dbdffbd2c68654
@@ -745,7 +745,7 @@ F tool/genfkey.README cf68fddd4643bbe3ff8e31b8b6d8b0a1b85e20f4
 F tool/genfkey.test 4196a8928b78f51d54ef58e99e99401ab2f0a7e5
 F tool/lemon.c ee5e39ce2b344ce7c81306b27a59da7698114a2d
 F tool/lempar.c 2ed70b3fc896a47e07fedfe543324f008f53d223
-F tool/mkkeywordhash.c 8c9f8e3253555101aaa4bf7a0459cbfc8ddc41cc
+F tool/mkkeywordhash.c 9216336085e7a7c226a35c0bd780239968f8304f
 F tool/mkopts.tcl 66ac10d240cc6e86abd37dc908d50382f84ff46e
 F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
 F tool/mksqlite3c.tcl a7e87ce780cbf30782bca3fd1197e86f92ae6f24
@@ -764,14 +764,14 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 16a24b4485420bdf30d3c8e22cfbaf008e07df02
-R e72225eb55d8736569f8031586282767
+P d66a0f31ebcc56e6f0f462b3db6aab54f7fab816
+R 91e31635600cb3800baa14d4687e1d08
 U drh
-Z 9ed57d7b7fd138a4562a0f8b4ab054bf
+Z 0bb2002d9c9d8d6a6987522657519773
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.4.6 (GNU/Linux)
 
-iD8DBQFK8CnloxKgR168RlERAvvEAJ4zARLPnrRgcFCLL+urqSma1EJWFACghoK5
-rpncZKK3rz8eBtrxBY7ZVmw=
-=tZsO
+iD8DBQFK8CtFoxKgR168RlERAvt+AJkBQI2LJH6CUrPXrZkZDQd5FHmWKwCeNWmo
+X0wFI2+tf0Wum9Vwm5FmTGU=
+=YTMU
 -----END PGP SIGNATURE-----
index 4a7aa0d1bf8dc4d6c03fa819a05cd3f180650459..e261fd0d44b383b855a2c9533e46c57aa8d74400 100644 (file)
@@ -1 +1 @@
-d66a0f31ebcc56e6f0f462b3db6aab54f7fab816
\ No newline at end of file
+3b02df27ab63936226a90098d88535ed19c2b782
\ No newline at end of file
index a6b4a58ac38650134a39675baa48df16eb867d2b..872961a532a8b1f1151c5e4a7af2b643c5f30b67 100644 (file)
@@ -16,7 +16,7 @@ static const char zHdr[] =
   "**\n"
   "** The code in this file has been automatically generated by\n"
   "**\n"
-  "**     $Header: /home/drh/sqlite/trans/cvs/sqlite/sqlite/tool/mkkeywordhash.c,v 1.38 2009/06/09 14:27:41 drh Exp $\n"
+  "**   sqlite/tool/mkkeywordhash.c\n"
   "**\n"
   "** The code in this file implements a function that determines whether\n"
   "** or not a given identifier is really an SQL keyword.  The same thing\n"
@@ -301,6 +301,7 @@ static int keywordCompare1(const void *a, const void *b){
   if( n==0 ){
     n = strcmp(pA->zName, pB->zName);
   }
+  assert( n!=0 );
   return n;
 }
 static int keywordCompare2(const void *a, const void *b){
@@ -310,12 +311,15 @@ static int keywordCompare2(const void *a, const void *b){
   if( n==0 ){
     n = strcmp(pA->zName, pB->zName);
   }
+  assert( n!=0 );
   return n;
 }
 static int keywordCompare3(const void *a, const void *b){
   const Keyword *pA = (Keyword*)a;
   const Keyword *pB = (Keyword*)b;
   int n = pA->offset - pB->offset;
+  if( n==0 ) n = pB->id - pA->id;
+  assert( n!=0 );
   return n;
 }