------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
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
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
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
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
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
*/
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 */
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 ){
}
sqlite3VdbeJumpHere(v, j3);
sqlite3ReleaseTempReg(pParse, regR);
+#endif
}
if( pbMayReplace ){
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
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 \
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.