]> git.ipfire.org Git - thirdparty/sqlite.git/commitdiff
Backport the SQLITE_OMIT_UNIQUE_ENFORCEMENT change from checkin b86999436e on the...
authorshaneh <shaneh@noemail.net>
Sat, 12 Mar 2011 05:55:38 +0000 (05:55 +0000)
committershaneh <shaneh@noemail.net>
Sat, 12 Mar 2011 05:55:38 +0000 (05:55 +0000)
FossilOrigin-Name: 668b91dbff036c6b76a5611cc3ebe455d277ed59

manifest
manifest.uuid
src/ctime.c
src/insert.c
src/test_config.c
tool/omittest.tcl

index da381c9b3227814870a02a41d392c5fb484a6079..1c8cf637d85929dd45d7f7a5bd389003394483e5 100644 (file)
--- a/manifest
+++ b/manifest
@@ -1,8 +1,5 @@
------BEGIN PGP SIGNED MESSAGE-----
-Hash: SHA1
-
-C Backport\sthe\sOP_Next\sand\sOP_Prev\sfor\sUNIQUE\sindices\spatch\sfrom\ncheckin\s[f000c9b2b7]\son\sthe\strunk.
-D 2011-03-09T22:09:32.107
+C Backport\sthe\sSQLITE_OMIT_UNIQUE_ENFORCEMENT\schange\sfrom\scheckin\sb86999436e\son\sthe\strunk.
+D 2011-03-12T05:55:38.900
 F Makefile.arm-wince-mingw32ce-gcc d6df77f1f48d690bd73162294bbba7f59507c72f
 F Makefile.in 543f91f24cd7fee774ecc0a61c19704c0c3e78fd
 F Makefile.linux-gcc 91d710bdc4998cb015f39edf3cb314ec4f4d7e23
@@ -122,7 +119,7 @@ F src/btreeInt.h 5b034ff54800046cc5870605d683ac1f9134bd99
 F src/build.c a3c83d34a7f1e56308175076f65d510ae52dd6dc
 F src/callback.c da3c38d0ef5d7f04fae371e519bda61aa9cb1704
 F src/complete.c dc1d136c0feee03c2f7550bafc0d29075e36deac
-F src/ctime.c 4f3aadad62c6c9f0d4e5a96718516ac4e3c598df
+F src/ctime.c 2e39d3374e785a63117e077bcba9d4a6656df363
 F src/date.c 5dd8448a0bfea8d31fb14cff487d0c06ff8c8b20
 F src/delete.c 7ed8a8c8b5f748ece92df173d7e0f7810c899ebd
 F src/expr.c 9ee507c3dc6eaa5657cbd1dad026cdeda89c559f
@@ -133,7 +130,7 @@ F src/global.c 02335177cf6946fe5525c6f0755cf181140debf3
 F src/hash.c 458488dcc159c301b8e7686280ab209f1fb915af
 F src/hash.h 2894c932d84d9f892d4b4023a75e501f83050970
 F src/hwtime.h d32741c8f4df852c7d959236615444e2b1063b08
-F src/insert.c a4995747c062256582a90b4f87f716e11b067050
+F src/insert.c 9b6fa065fc528d305184d7fbd5506c8dd58592e0
 F src/journal.c 552839e54d1bf76fb8f7abe51868b66acacf6a0e
 F src/legacy.c a199d7683d60cef73089e892409113e69c23a99f
 F src/lempar.c 7f026423f4d71d989e719a743f98a1cbd4e6d99e
@@ -193,7 +190,7 @@ F src/test_async.c 0612a752896fad42d55c3999a5122af10dcf22ad
 F src/test_autoext.c 30e7bd98ab6d70a62bb9ba572e4c7df347fe645e
 F src/test_backup.c c129c91127e9b46e335715ae2e75756e25ba27de
 F src/test_btree.c 47cd771250f09cdc6e12dda5bc71bc0b3abc96e2
-F src/test_config.c 5a11c51af2156e2d07186930b36f2b8239a4393f
+F src/test_config.c fcafb30c453b5e2bfea7acd3c596bd33417f1361
 F src/test_demovfs.c 0aed671636735116fc872c5b03706fd5612488b5
 F src/test_devsym.c e7498904e72ba7491d142d5c83b476c4e76993bc
 F src/test_func.c 13b582345fb1185a93e46c53310fae8547dcce20
@@ -830,7 +827,7 @@ F tool/mkspeedsql.tcl a1a334d288f7adfe6e996f2e712becf076745c97
 F tool/mksqlite3c.tcl aff0d53f0e84cf919922c0d02e767bdf5eeafb90
 F tool/mksqlite3h.tcl eb100dce83f24b501b325b340f8b5eb8e5106b3b
 F tool/mksqlite3internalh.tcl 7b43894e21bcb1bb39e11547ce7e38a063357e87
-F tool/omittest.tcl 27d6f6e3b1e95aeb26a1c140e6eb57771c6d794a
+F tool/omittest.tcl ec597b7db5177df7108705961171200d7ffcd786
 F tool/opcodeDoc.awk b3a2a3d5d3075b8bd90b7afe24283efdd586659c
 F tool/restore_jrnl.tcl 6957a34f8f1f0f8285e07536225ec3b292a9024a
 F tool/shell1.test 930444cadb71ce9ce78bc6cd14ec21e6b69776ea
@@ -850,14 +847,7 @@ F tool/speedtest2.tcl ee2149167303ba8e95af97873c575c3e0fab58ff
 F tool/speedtest8.c 2902c46588c40b55661e471d7a86e4dd71a18224
 F tool/speedtest8inst1.c 293327bc76823f473684d589a8160bde1f52c14e
 F tool/vdbe-compress.tcl d70ea6d8a19e3571d7ab8c9b75cba86d1173ff0f
-P 440d995661c961257ca15833ab94c7ec7a5892c8
-R 0512033c30f28c260fba564d8ba18c22
-U drh
-Z b94a8a7377160219347c5558d6729f6c
------BEGIN PGP SIGNATURE-----
-Version: GnuPG v1.4.6 (GNU/Linux)
-
-iD8DBQFNd/qnoxKgR168RlERAsE8AKCADPQN2xr488gJH6K59ZWN2x7QZwCfXUH1
-oOrribX3yWOwHCagHmUiuvA=
-=ELlT
------END PGP SIGNATURE-----
+P 2d55234ea3b8a8d6f18683d51f05945394e97275
+R 1db94dc3291fba1026c28b4049abf650
+U shaneh
+Z 84dd2ae494c40f1290217661561c5409
index 4257b5c7481727647ff97e5e7375f0380fe9728c..ec6b70c56bd928e4c15eb4cb72429cee61373201 100644 (file)
@@ -1 +1 @@
-2d55234ea3b8a8d6f18683d51f05945394e97275
\ No newline at end of file
+668b91dbff036c6b76a5611cc3ebe455d277ed59
\ No newline at end of file
index f7248f4fa09b8c96f0cf540db14ac8d19cc9b912..55b2780e7a47868e35579b2e4adf2dfc6c06325d 100644 (file)
@@ -299,6 +299,9 @@ static const char * const azCompileOpt[] = {
 #ifdef SQLITE_OMIT_TRUNCATE_OPTIMIZATION
   "OMIT_TRUNCATE_OPTIMIZATION",
 #endif
+#ifdef SQLITE_OMIT_UNIQUE_ENFORCEMENT
+  "OMIT_UNIQUE_ENFORCEMENT",
+#endif
 #ifdef SQLITE_OMIT_UTF16
   "OMIT_UTF16",
 #endif
index adf6ef2ed41eb2ad38b224c5cc32c91c4f61772d..c29419b0216182823cfb4c622ceb07a513eaa9c4 100644 (file)
@@ -1312,7 +1312,9 @@ void sqlite3GenerateConstraintChecks(
   */
   for(iCur=0, pIdx=pTab->pIndex; pIdx; pIdx=pIdx->pNext, iCur++){
     int regIdx;
+#ifndef SQLITE_OMIT_UNIQUE_ENFORCEMENT
     int regR;
+#endif
 
     if( aRegIdx[iCur]==0 ) continue;  /* Skip unused indices */
 
@@ -1331,6 +1333,11 @@ void sqlite3GenerateConstraintChecks(
     sqlite3VdbeChangeP4(v, -1, sqlite3IndexAffinityStr(v, pIdx), 0);
     sqlite3ExprCacheAffinityChange(pParse, regIdx, pIdx->nColumn+1);
 
+#ifdef SQLITE_OMIT_UNIQUE_ENFORCEMENT
+    sqlite3ReleaseTempRange(pParse, regIdx, pIdx->nColumn+1);
+    continue;  /* Treat pIdx as if it is not a UNIQUE index */
+#else
+
     /* Find out what action to take in case there is an indexing conflict */
     onError = pIdx->onError;
     if( onError==OE_None ){ 
@@ -1404,6 +1411,7 @@ void sqlite3GenerateConstraintChecks(
     }
     sqlite3VdbeJumpHere(v, j3);
     sqlite3ReleaseTempReg(pParse, regR);
+#endif
   }
   
   if( pbMayReplace ){
index 7ada13f4f6b5016bd830745119eab4f3d607acf8..ccce568e5e47f4c022b4a0dd3967ffa025b6b72f 100644 (file)
@@ -469,6 +469,12 @@ Tcl_SetVar2(interp, "sqlite_options", "long_double",
   Tcl_SetVar2(interp, "sqlite_options", "truncate_opt", "1", TCL_GLOBAL_ONLY);
 #endif
 
+#ifdef SQLITE_OMIT_UNIQUE_ENFORCEMENT
+  Tcl_SetVar2(interp, "sqlite_options", "unique_enforcement", "0", TCL_GLOBAL_ONLY);
+#else
+  Tcl_SetVar2(interp, "sqlite_options", "unique_enforcement", "1", TCL_GLOBAL_ONLY);
+#endif
+
 #ifdef SQLITE_OMIT_UTF16
   Tcl_SetVar2(interp, "sqlite_options", "utf16", "0", TCL_GLOBAL_ONLY);
 #else
index ec1508c23910e823b1f91dc6cc55c96a49d3692e..47af2d324eae5ace3a8b78c123d7264525452dbc 100644 (file)
@@ -155,7 +155,7 @@ proc main {argv} {
     SQLITE_OMIT_CONFLICT_CLAUSE        \
     SQLITE_OMIT_DATETIME_FUNCS         \
     SQLITE_OMIT_DECLTYPE               \
-    off_SQLITE_OMIT_DISKIO                 \
+    off_SQLITE_OMIT_DISKIO             \
     SQLITE_OMIT_EXPLAIN                \
     SQLITE_OMIT_FLAG_PRAGMAS           \
     SQLITE_OMIT_FLOATING_POINT         \
@@ -182,11 +182,15 @@ proc main {argv} {
     SQLITE_OMIT_TEMPDB                 \
     SQLITE_OMIT_TRACE                  \
     SQLITE_OMIT_TRIGGER                \
-    SQLITE_OMIT_UTF16                  \
-    SQLITE_OMIT_VACUUM                 \
-    SQLITE_OMIT_VIEW                   \
-    SQLITE_OMIT_VIRTUALTABLE           \
-    SQLITE_OMIT_XFER_OPT               \
+    SQLITE_OMIT_TRUNCATE_OPTIMIZATION  \
+    SQLITE_OMIT_UNIQUE_ENFORCEMENT     \
+    SQLITE_OMIT_UTF16 \
+    SQLITE_OMIT_VACUUM \
+    SQLITE_OMIT_VIEW \
+    SQLITE_OMIT_VIRTUALTABLE \
+    SQLITE_OMIT_WAL \
+    SQLITE_OMIT_WSD \
+    SQLITE_OMIT_XFER_OPT \
   ]
 
   # Process any command line options.