System.Data.SQLite

Check-in [4e06fa226c]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Update version history for build 77.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 4e06fa226c39ac09c9c4f6746b85a860afcdc0cd
User & Date: mistachkin 2011-11-06 22:00:35.837
Context
2011-11-08
15:14
Update core SQLite to 3.7.9 release plus the SQLITE_OMIT_WAL fix. check-in: 87915ae0ec user: mistachkin tags: trunk
2011-11-06
22:00
Update version history for build 77. check-in: 4e06fa226c user: mistachkin tags: trunk
00:39
Update build number to 77. check-in: edbed78c0e user: mistachkin tags: trunk
Changes
Side-by-Side Diff Ignore Whitespace Patch
Changes to Doc/Extra/version.html.
39
40
41
42
43
44
45












46
47
48
49
50
51
52
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64







+
+
+
+
+
+
+
+
+
+
+
+







          </td>
        </tr>
      </table>
    </div>
    <div id="mainSection">
    <div id="mainBody">
    <h1 class="heading">Version History</h1>
    <p><b>1.0.77.0 - November XX, 2011</b></p>
    <ul>
      <li>Updated to SQLite 3.7.9 <a href="http://www.sqlite.org/src/info/c7c6050ef0">[c7c6050ef0]</a>.</li>
      <li>More enhancements to the build and test automation.</li>
      <li>Support building the core System.Data.SQLite assemblies using the .NET Framework 4.0 Client Profile. Fix for <a href="http://system.data.sqlite.org/index.html/info/566f1ad1e4">[566f1ad1e4]</a>.</li>
      <li>When returning schema information that may be used by the .NET Framework to construct dynamic SQL, use a fake schema name (instead of null) so that the table names will be properly qualified with the catalog name (i.e. the attached database name). Partial fix for <a href="http://system.data.sqlite.org/index.html/info/343d392b51">[343d392b51]</a>.</li>
      <li>Add DateTimeKind connection string property to control the DateTimeKind of parsed DateTime values. Partial fix for <a href="http://system.data.sqlite.org/index.html/info/343d392b51">[343d392b51]</a>.</li>
      <li>Improve the robustness of the SQLiteLog class when it will be initialized and unloaded multiple times.</li>
      <li>Fix the name of the interop assembly for Windows CE. Add unit tests to prevent this type of issue from happening again. Fix for <a href="http://system.data.sqlite.org/index.html/info/737ca4ff74">[737ca4ff74]</a>.</li>
      <li>Formally support the SQL type name BOOLEAN in addition to BOOL. Fix for <a href="http://system.data.sqlite.org/index.html/info/544dba0a2f">[544dba0a2f]</a>.</li>
      <li>Make sure the SQLiteConvert.TypeNameToDbType method is thread-safe. Fix for <a href="http://system.data.sqlite.org/index.html/info/84718e79fa">[84718e79fa]</a>.</li>
    </ul>
    <p><b>1.0.76.0 - October 4, 2011</b></p>
    <ul>
      <li>Prevent the domain unload event handler in SQLiteLog from being registered multiple times. Fix for <a href="http://system.data.sqlite.org/index.html/info/0d5b1ef362">[0d5b1ef362]</a>.</li>
      <li>Stop allowing non-default application domains to initialize the SQLiteLog class. Fix for <a href="http://system.data.sqlite.org/index.html/info/ac47dd230a">[ac47dd230a]</a>.</li>
    </ul>
    <p><b>1.0.75.0 - October 3, 2011</b></p>
    <ul>
145
146
147
148
149
150
151
152

153
154
155
156
157
158
159

160
161

162
163
164
165
166
167
168
169



170
171
172
173
174
175
176






177
178

179
180
181
182
183
184
185

186
187

188
189
190


191
192
193
194
195
196
197
198
199
200
201
202

203
204
205


206
207
208

209
210
211
212



213
214
215
216
217
218


219
220
221
222
223




224
225
226
227
228




229
230
231
232



233
234
235


236
237
238
239
240
241


242
243

244
245
246
247
248
249
250


251
252
253
254
255




256
257

258
259
260


261
262

263
264

265
266
267
268
269



270
271
272
273
274

275
276
277
278
279
280
281






282
283
284

285
286

287
288
289
290
291
292
293
294
295
296
297
298






299
300
301
302
303



304
305

306
307
308


309
310
311


312
313
314
315
316




317
318

319
320
321

322
323

324
325

326
327
328
329



330
331

332
333

334
335

336
337
338


339
340

341
342
343
344
345

346
347

348
349
350


351
352

353
354
355
356
357
358

359
360

361
362
363
364



365
366

367
368
369

370
371
372
373
374
375

376
377

378
379
380
381


382
383

384
385
386
387
388




389
390
391

392
393
394
395
396




397
398
399
400
401
402
403



404
405

406
407

408
409

410
411
412
413
414
415

416
417
418
419



420
421
422
423
424
425
426
427
428
429

430
431
432
433
434
435
436
157
158
159
160
161
162
163

164
165
166
167
168
169
170

171
172

173
174
175
176
177
178



179
180
181
182






183
184
185
186
187
188
189

190
191
192
193
194
195
196

197
198

199
200


201
202
203
204
205
206
207
208
209
210
211
212
213

214
215


216
217
218
219

220
221



222
223
224
225
226
227
228


229
230
231




232
233
234
235
236




237
238
239
240
241



242
243
244
245


246
247
248
249
250
251


252
253
254

255
256
257
258
259
260


261
262
263




264
265
266
267
268

269
270


271
272
273

274
275

276
277
278



279
280
281
282
283
284
285

286
287






288
289
290
291
292
293
294
295

296
297

298
299
300
301
302
303
304






305
306
307
308
309
310
311
312



313
314
315
316

317
318


319
320
321


322
323
324




325
326
327
328
329

330
331
332

333
334

335
336

337
338



339
340
341
342

343
344

345
346

347
348


349
350
351

352
353
354
355
356

357
358

359
360


361
362
363

364
365
366
367
368
369

370
371

372
373



374
375
376
377

378
379
380

381
382
383
384
385
386

387
388

389
390
391


392
393
394

395
396




397
398
399
400
401
402

403
404




405
406
407
408
409
410
411
412



413
414
415
416

417
418

419
420

421
422
423
424
425
426

427
428



429
430
431
432
433
434
435
436
437
438
439
440

441
442
443
444
445
446
447
448







-
+






-
+

-
+





-
-
-
+
+
+

-
-
-
-
-
-
+
+
+
+
+
+

-
+






-
+

-
+

-
-
+
+











-
+

-
-
+
+


-
+

-
-
-
+
+
+




-
-
+
+

-
-
-
-
+
+
+
+

-
-
-
-
+
+
+
+

-
-
-
+
+
+

-
-
+
+




-
-
+
+

-
+





-
-
+
+

-
-
-
-
+
+
+
+

-
+

-
-
+
+

-
+

-
+


-
-
-
+
+
+




-
+

-
-
-
-
-
-
+
+
+
+
+
+


-
+

-
+






-
-
-
-
-
-
+
+
+
+
+
+


-
-
-
+
+
+

-
+

-
-
+
+

-
-
+
+

-
-
-
-
+
+
+
+

-
+


-
+

-
+

-
+

-
-
-
+
+
+

-
+

-
+

-
+

-
-
+
+

-
+




-
+

-
+

-
-
+
+

-
+





-
+

-
+

-
-
-
+
+
+

-
+


-
+





-
+

-
+


-
-
+
+

-
+

-
-
-
-
+
+
+
+


-
+

-
-
-
-
+
+
+
+




-
-
-
+
+
+

-
+

-
+

-
+





-
+

-
-
-
+
+
+









-
+







    </ul>
    <p><b>1.0.65.0 - July 26, 2009</b></p>
    <ul>
      <li>Fixed a bug in the encryption module to prevent a double free() when rekeying a database.</li>
      <li>Fixed a bug in the encryption module when ATTACHing an encrypted database.</li>
      <li>Incorporated the WinCE locking fix from ticket
        <a href="http://www.sqlite.org/cvstrac/tktview?tn=3991">#3991</a></li>
      <li>Added &quot;bigint&quot; to the dropdown in the table designer, plus other minor table 
      <li>Added &quot;bigint&quot; to the dropdown in the table designer, plus other minor table
        designer bugfixes.</li>
    </ul>
    <p><b>1.0.64.0 - July 9, 2009</b></p>
    <ul>
      <li>Fixed the missing resources problem from the 63 release.</li>
      <li>Added preliminary support for the Visual Studio 2010 beta.</li>
      <li>Fixed a bug in SQLiteCommand that threw a null reference exception when 
      <li>Fixed a bug in SQLiteCommand that threw a null reference exception when
        setting the Transaction object to null.</li>
      <li>If SQLiteConnection.EnlistTransaction is called multiple times for the same 
      <li>If SQLiteConnection.EnlistTransaction is called multiple times for the same
        transaction scope, just return without throwing an error.</li>
    </ul>
    <p><b>1.0.63.0 - June 29, 2009</b></p>
    <ul>
      <li>Code merge with SQLite 3.6.16</li>
      <li>Check the autocommit mode of the connection to which a transaction is bound 
        during the disposal of the transaction.&nbsp; If autocommit is enabled, then the 
        database has already rolled back the transaction and we don&#39;t need to do it 
      <li>Check the autocommit mode of the connection to which a transaction is bound
        during the disposal of the transaction.&nbsp; If autocommit is enabled, then the
        database has already rolled back the transaction and we don&#39;t need to do it
        during dispose, and can quietly ignore the step without throwing an error.</li>
      <li>Eliminated the mergebin step altogether.&nbsp; It was developed primarily to 
        merge the Compact Framework binaries together, but since we&#39;re not doing that 
        anymore, its use is limited.&nbsp; Its non-standard method of merging a binary 
        on the desktop framework is redundant as well.&nbsp; The desktop binary now 
        hard-links to MSCOREE, but as of Windows XP, this was redundant as well since XP 
        and beyond automatically attempt to load MSCOREE on startup when a DLL has a 
      <li>Eliminated the mergebin step altogether.&nbsp; It was developed primarily to
        merge the Compact Framework binaries together, but since we&#39;re not doing that
        anymore, its use is limited.&nbsp; Its non-standard method of merging a binary
        on the desktop framework is redundant as well.&nbsp; The desktop binary now
        hard-links to MSCOREE, but as of Windows XP, this was redundant as well since XP
        and beyond automatically attempt to load MSCOREE on startup when a DLL has a
        .NET header.</li>
      <li>More improvements to the test.exe program for running the tests against Sql 
      <li>More improvements to the test.exe program for running the tests against Sql
        Server for comparison purposes.</li>
    </ul>
    <p><b>1.0.62.0 - June 20, 2009</b></p>
    <ul>
      <li>Code merge with SQLite 3.6.15</li>
      <li>Fixed the decimal reading bug in the SQLiteDataReader</li>
      <li>Changed Join()&#39;s to Sleep()&#39;s in the statement retry code to prevent message 
      <li>Changed Join()&#39;s to Sleep()&#39;s in the statement retry code to prevent message
        pumping</li>
      <li>Fixed a bad pointer conversion when retrieving blobs using GetBytes() in 
      <li>Fixed a bad pointer conversion when retrieving blobs using GetBytes() in
        64-bit land</li>
      <li>Several changes to the Test program that comes with the provider.&nbsp; Tests 
        can now be individually disabled, and the test program can run against several 
      <li>Several changes to the Test program that comes with the provider.&nbsp; Tests
        can now be individually disabled, and the test program can run against several
        provider back-ends</li>
    </ul>
    <p><b>1.0.61.0 - April 28, 2009</b></p>
    <ul>
      <li>Code merge with SQLite 3.6.13.  The new backup features are as yet unimplemented in the provider, but will be forthcoming in a subsequent release</li>
      <li>Fixed the default-value lookups in SQLiteConnectionStringBuilder when accessing properties</li>
      <li>Lock the SQLiteTransaction object during dispose to avoid potential race condition during cleanup</li>
      <li>Fixed SQLiteDataReader.GetDecimal() processing and parsing of decimal values for cases when SQLite returns things like "1.0e-05" instead of "0.0001"</li>
    </ul>
    <p><b>1.0.60.0 - October 3, 2008</b></p>
    <ul>
      <li>Throw a NotSupported exception in the EF Sql Gen code instead of parsing 
      <li>Throw a NotSupported exception in the EF Sql Gen code instead of parsing
        illegal SQL during an update/insert/delete where no primary key is defined.</li>
      <li>Fixed the Compact Framework interop library.&nbsp; Since the linker flag 
        /subsystem had no version specified, it was causing a problem for many CE-based 
      <li>Fixed the Compact Framework interop library.&nbsp; Since the linker flag
        /subsystem had no version specified, it was causing a problem for many CE-based
        platforms.</li>
      <li>Incorporated SQLite patch for ticket
        <a href="http://www.sqlite.org/cvstrac/tktview?tn=3387">#3387</a> and reverted 
        <a href="http://www.sqlite.org/cvstrac/tktview?tn=3387">#3387</a> and reverted
        out the vfs override code I added in build 59 to work around this problem.</li>
      <li>Fixed a designer issue when creating a new table from the Server Explorer.&nbsp; 
        After initially saving it, if you then continued to edit it and tried to save it 
        again, it would generate the change SQL using the old temporary table name 
      <li>Fixed a designer issue when creating a new table from the Server Explorer.&nbsp;
        After initially saving it, if you then continued to edit it and tried to save it
        again, it would generate the change SQL using the old temporary table name
        rather than the new name.</li>
    </ul>
    <p><b>1.0.59.0 - September 22, 2008</b></p>
    <ul>
      <li>Code merge with SQLite 3.6.3.&nbsp; Solves 
        a couple different EF issues that were either giving inconsistent results or 
      <li>Code merge with SQLite 3.6.3.&nbsp; Solves
        a couple different EF issues that were either giving inconsistent results or
        crashing the engine.</li>
      <li>Fixed the parsing of literal binaries in the EF SqlGen code.&nbsp; SQLite now 
        passes nearly all the testcases in 
        <a href="http://sqlite.phxsoftware.com/forums/p/1377/5921.aspx#5921">Microsoft's EF Query Samples</a> application -- 
        the exception being the <i>datetimeoffset </i>and<i> time</i> constants tests, and tests 
      <li>Fixed the parsing of literal binaries in the EF SqlGen code.&nbsp; SQLite now
        passes nearly all the testcases in
        <a href="http://sqlite.phxsoftware.com/forums/p/1377/5921.aspx#5921">Microsoft's EF Query Samples</a> application --
        the exception being the <i>datetimeoffset </i>and<i> time</i> constants tests, and tests
        that use the <i>APPLY </i>keyword which are unsupported for now.</li>
      <li>Revamped the Compact Framework mixed-mode assembly.&nbsp; Tired of playing cat 
        and mouse with the Compact Framework&#39;s support for mixed-mode assemblies.&nbsp; 
        The CF build now requires that you distribute both the System.Data.SQLite 
        library and the paired SQLite.Interop.XXX library.&nbsp;&nbsp; The XXX denotes 
      <li>Revamped the Compact Framework mixed-mode assembly.&nbsp; Tired of playing cat
        and mouse with the Compact Framework&#39;s support for mixed-mode assemblies.&nbsp;
        The CF build now requires that you distribute both the System.Data.SQLite
        library and the paired SQLite.Interop.XXX library.&nbsp;&nbsp; The XXX denotes
        the build number of the library.</li>
      <li>Implemented a workaround for Vista&#39;s overzealous caching by turning off 
        FILE_FLAG_RANDOM_ACCESS for OS versions above XP.&nbsp; This is implemented 
        as a custom (default override) VFS in the interop.c file, so no changes are made 
      <li>Implemented a workaround for Vista&#39;s overzealous caching by turning off
        FILE_FLAG_RANDOM_ACCESS for OS versions above XP.&nbsp; This is implemented
        as a custom (default override) VFS in the interop.c file, so no changes are made
        to the SQLite source code.</li>
      <li>Fixed some registry issues in the designer install.exe, which prevented some 
        design-time stuff from working on the Compact Framework when .NET 3.5 was 
      <li>Fixed some registry issues in the designer install.exe, which prevented some
        design-time stuff from working on the Compact Framework when .NET 3.5 was
        installed.</li>
    </ul>
    <p><b>1.0.58.0 - August 30, 2008</b></p>
    <ul>
      <li>Code merge with SQLite 3.6.2.&nbsp; If only I&#39;d waited one more day to release 
        57!&nbsp; Several LINQ issues have been resolved with this engine release 
      <li>Code merge with SQLite 3.6.2.&nbsp; If only I&#39;d waited one more day to release
        57!&nbsp; Several LINQ issues have been resolved with this engine release
        relating to deeply-nested subqueries that the EF SqlGen creates.</li>
      <li>Fixed the Rollback SQLiteConnection event to not require a connection be 
      <li>Fixed the Rollback SQLiteConnection event to not require a connection be
        opened first.</li>
    </ul>
    <p><b>1.0.57.0 - August 29, 2008</b></p>
    <ul>
      <li>Compiled against 3.6.1 with checkin
        <a href="http://www.sqlite.org/cvstrac/tktview?tn=3300">#3300</a> resolved, 
        which fixes an Entity Framework bug I was seeing.&nbsp; I currently have 3 other 
        <a href="http://www.sqlite.org/cvstrac/tktview?tn=3300">#3300</a> resolved,
        which fixes an Entity Framework bug I was seeing.&nbsp; I currently have 3 other
        tickets out on the engine, which are not yet resolved and relate to EF.</li>
      <li>Fixed decimal types to store and fetch using InvariantCulture.&nbsp; If you&#39;re 
        using decimal datatypes in your database and were affected by the 56 release, 
        please issue an UPDATE &lt;table&gt; SET &lt;column&gt; = REPLACE(&lt;column&gt;, &#39;,&#39;, &#39;.&#39;);&nbsp; 
        to fix the decimal separators.&nbsp; Apologies for not testing that more 
      <li>Fixed decimal types to store and fetch using InvariantCulture.&nbsp; If you&#39;re
        using decimal datatypes in your database and were affected by the 56 release,
        please issue an UPDATE &lt;table&gt; SET &lt;column&gt; = REPLACE(&lt;column&gt;, &#39;,&#39;, &#39;.&#39;);&nbsp;
        to fix the decimal separators.&nbsp; Apologies for not testing that more
        thoroughly before releasing 56.</li>
      <li>Too many LINQ fixes to list.&nbsp; Fixed views so they generate, 
      <li>Too many LINQ fixes to list.&nbsp; Fixed views so they generate,
        fixed the LIMIT clause, implemented additional functionality and removed unnecessary code.</li>
      <li>Fixed foreign key names in the designer so viewing the SQL script on a new 
        unsaved table after renaming it in the properties toolwindow will reflect in the 
      <li>Fixed foreign key names in the designer so viewing the SQL script on a new
        unsaved table after renaming it in the properties toolwindow will reflect in the
        script properly.</li>
      <li>Fixed the Update and Commit events on SQLiteConnection so they don&#39;t require 
      <li>Fixed the Update and Commit events on SQLiteConnection so they don&#39;t require
        the connection to be opened first.</li>
      <li>Fixed userdef aggregate functions so they play nice with each other when 
      <li>Fixed userdef aggregate functions so they play nice with each other when
        appearing multiple times in the same statement.</li>
      <li>Fixed the editing and saving of default values in the table designer.</li>
      <li>Fixed ForeignKeys schema to support multi-column foreign keys.&nbsp; Also 
        hacked support for them in the table designer, provided two foreign keys in the 
        designer have the same name and reference the same foreign table and different 
      <li>Fixed ForeignKeys schema to support multi-column foreign keys.&nbsp; Also
        hacked support for them in the table designer, provided two foreign keys in the
        designer have the same name and reference the same foreign table and different
        columns.&nbsp; Will implement first-class support for this in the next release.</li>
    </ul>
    <p><b>1.0.56.0 - August 11, 2008</b></p>
    <ul>
      <li>Fixed a bug in the table designer when designing new tables, wherein you had to 
      <li>Fixed a bug in the table designer when designing new tables, wherein you had to
        save the table first before being able to create indexes and foreign keys.</li>
      <li>Tweaks to decimal type handling.&nbsp; The &#39;decimal&#39; type can&#39;t be represented 
        by Int64 or Double (without loss of precision) in SQLite, so we have to fudge it 
        by treating it like a string and converting it back and forth in the provider.&nbsp; 
        Unfortunately backing it to the db as a string causes sorting problems.&nbsp; 
        See <a href="http://sqlite.phxsoftware.com/forums/p/1296/5595.aspx#5595">this 
        post</a> 
      <li>Tweaks to decimal type handling.&nbsp; The &#39;decimal&#39; type can&#39;t be represented
        by Int64 or Double (without loss of precision) in SQLite, so we have to fudge it
        by treating it like a string and converting it back and forth in the provider.&nbsp;
        Unfortunately backing it to the db as a string causes sorting problems.&nbsp;
        See <a href="http://sqlite.phxsoftware.com/forums/p/1296/5595.aspx#5595">this
        post</a>
        for details on using a custom collation sequence to overcome the sorting issue arising from this patch.</li>
      <li>Minor tweaks and bugfixes to the test program and the provider.</li>
      <li>More adjustments to make the managed-only version of the provider run and pass 
      <li>More adjustments to make the managed-only version of the provider run and pass
        all tests on Mono.</li>
      <li>LINQ to Entities bits heavily updated and compiled against VS2008 SP1 RTM.&nbsp; SQLite 
      <li>LINQ to Entities bits heavily updated and compiled against VS2008 SP1 RTM.&nbsp; SQLite
        LINQ support is still considered beta.</li>
    </ul>
    <p><b>1.0.55.0 - August 6, 2008</b></p>
    <ul>
      <li>Code merge with SQLite 3.6.1</li>
      <li>Added support for the user-contributed extension-functions at
        <a href="http://www.sqlite.org/contrib">http://www.sqlite.org/contrib</a>.&nbsp; 
        Feel free to override any of them with your own implementation.&nbsp; The new 
        functions are: <i>acos, asin, atan, atn2, atan2, acosh, asinh, atanh, 
        difference, degrees, radians, cos, sin, tan, cot, cosh, sinh, tanh, coth, exp, 
        log, log10, power, sign, sqrt, square, ceil, floor, pi, replicate, charindex, 
        leftstr, rightstr, reverse, proper, padl, padr, padc, strfilter,</i> and 
        <a href="http://www.sqlite.org/contrib">http://www.sqlite.org/contrib</a>.&nbsp;
        Feel free to override any of them with your own implementation.&nbsp; The new
        functions are: <i>acos, asin, atan, atn2, atan2, acosh, asinh, atanh,
        difference, degrees, radians, cos, sin, tan, cot, cosh, sinh, tanh, coth, exp,
        log, log10, power, sign, sqrt, square, ceil, floor, pi, replicate, charindex,
        leftstr, rightstr, reverse, proper, padl, padr, padc, strfilter,</i> and
        aggregates <i>stdev, variance, mode, median, lower_quartile, upper_quartile.</i></li>
      <li>Moved the last_rows_affected() function to the C extension library.</li>
      <li>Added a new class, SQLiteFunctionEx which extends SQLiteFunction and adds the 
        ability for a user-defined function to get the collating sequence during the 
        Invoke/Step methods.&nbsp; User-defined functions can use the collating sequence 
      <li>Added a new class, SQLiteFunctionEx which extends SQLiteFunction and adds the
        ability for a user-defined function to get the collating sequence during the
        Invoke/Step methods.&nbsp; User-defined functions can use the collating sequence
        as a helper to compare values.</li>
      <li>When registering user-defined collation sequences and functions, the provider 
      <li>When registering user-defined collation sequences and functions, the provider
        will now register both a UTF8 and a UTF16 version instead of just UTF8.</li>
      <li>Revamped connection pooling and added static ClearPool() and ClearAllPools() 
        functions to SQLiteConnection.&nbsp; Behavior of the pool and its clearing 
      <li>Revamped connection pooling and added static ClearPool() and ClearAllPools()
        functions to SQLiteConnection.&nbsp; Behavior of the pool and its clearing
        mechanics match SqlClient.</li>
      <li>Fixed connections going to the pool so that any unfinalized lingering commands 
        from un-collected datareaders are automatically reset and any lurking 
      <li>Fixed connections going to the pool so that any unfinalized lingering commands
        from un-collected datareaders are automatically reset and any lurking
        transactions made on the connection are rolled back.</li>
      <li>Transaction isolation levels are now partially supported.&nbsp; Serializable 
        is the default, which obtains read/write locks immediately -- this is compatible 
        with previous releases of the provider.&nbsp; Unspecified will default to 
        whatever the default isolation mode is set to, and ReadCommitted will cause a 
      <li>Transaction isolation levels are now partially supported.&nbsp; Serializable
        is the default, which obtains read/write locks immediately -- this is compatible
        with previous releases of the provider.&nbsp; Unspecified will default to
        whatever the default isolation mode is set to, and ReadCommitted will cause a
        deferred lock to be obtained.&nbsp; No other values are legal.</li>
      <li>Revamped the test.exe program.&nbsp; It&#39;s now an interactive GUI application.&nbsp; 
      <li>Revamped the test.exe program.&nbsp; It&#39;s now an interactive GUI application.&nbsp;
        Easier for me to add tests now.</li>
      <li>Tweaks to the VS designer package and installer.</li>
      <li>More adjustments to the internal SQLite3.Prepare() method to account for both 
      <li>More adjustments to the internal SQLite3.Prepare() method to account for both
        kinds of lock errors when retrying.</li>
      <li>Stripped a lot of unnecessary interop() calls and replaced with base sqlite calls.&nbsp; 
      <li>Stripped a lot of unnecessary interop() calls and replaced with base sqlite calls.&nbsp;
        Revamped most of UnsafeNativeMethods to make it easier to port the code.</li>
      <li>Rerigged internal callbacks for userdef functions and other native to managed 
      <li>Rerigged internal callbacks for userdef functions and other native to managed
        callbacks.&nbsp; More portable this way.</li>
      <li>Source can now can be compiled with the SQLITE_STANDARD preprocessor symbol to 
        force the wrapper to use the stock sqlite3 library.&nbsp; Some functionality is 
        missing, but its minimal.&nbsp; None of the precompiled binaries are compiled 
      <li>Source can now can be compiled with the SQLITE_STANDARD preprocessor symbol to
        force the wrapper to use the stock sqlite3 library.&nbsp; Some functionality is
        missing, but its minimal.&nbsp; None of the precompiled binaries are compiled
        using this setting, but its useful for testing portability.</li>
      <li>Added &quot;boolean&quot; and a couple other missing datatypes to the &quot;DataTypes&quot; schema 
      <li>Added &quot;boolean&quot; and a couple other missing datatypes to the &quot;DataTypes&quot; schema
        xml file.&nbsp; Used by the VS designer when displaying tables and querying.</li>
      <li>Added a new connection string option &quot;Read Only&quot;.&nbsp; When set to True, the 
      <li>Added a new connection string option &quot;Read Only&quot;.&nbsp; When set to True, the
        database will be opened in read-only mode.</li>
      <li>Added a new connection string option &quot;Max Pool Size&quot; to set the maximum size 
      <li>Added a new connection string option &quot;Max Pool Size&quot; to set the maximum size
        of the connection pool for a given db file connection.</li>
      <li>Added a new connection string option &quot;Default IsolationLevel&quot; to set the 
        default isolation level of transactions.&nbsp; Possible values are Serializable and 
      <li>Added a new connection string option &quot;Default IsolationLevel&quot; to set the
        default isolation level of transactions.&nbsp; Possible values are Serializable and
        ReadCommitted.</li>
      <li>Added a new connection string option &quot;URI&quot; as an optional parameter for 
      <li>Added a new connection string option &quot;URI&quot; as an optional parameter for
        compatibility with other ports of the provider.</li>
    </ul>
    <p><b>1.0.54.0 - July 25, 2008</b></p>
    <ul>
      <li>Fixed the setup project, which somehow &quot;forgot&quot; to include all the binaries in 
      <li>Fixed the setup project, which somehow &quot;forgot&quot; to include all the binaries in
        the 53 release.</li>
      <li>Fixed a crash in the table designer when creating a new table and tabbing past 
      <li>Fixed a crash in the table designer when creating a new table and tabbing past
        the &quot;Allow Nulls&quot; cell in the grid while creating a new column.</li>
      <li>Fixed a mostly-benign bug in SQLiteDataReader&#39;s GetEnumerator, which failed to 
        pass along a flag to the underyling DbEnumerator it creates.&nbsp; This one&#39;s 
      <li>Fixed a mostly-benign bug in SQLiteDataReader&#39;s GetEnumerator, which failed to
        pass along a flag to the underyling DbEnumerator it creates.&nbsp; This one&#39;s
        been around since day 1 and nobody&#39;s noticed it in all these years.</li>
      <li>Added a new connection string parameter &quot;Journal Mode&quot; that allows you to set 
      <li>Added a new connection string parameter &quot;Journal Mode&quot; that allows you to set
        the SQLite journal mode to Delete, Persist or Off.</li>
    </ul>
    <p><b>1.0.53.0 - July 24, 2008</b></p>
    <ul>
      <li>Enabled sqlite_load_extension</li>
      <li>Added retry/timeout code to SQLite3.Prepare() when preparing statements for 
      <li>Added retry/timeout code to SQLite3.Prepare() when preparing statements for
        execution and a SQLITE_BUSY error occurs.</li>
      <li>Added a new schema to SQLiteConnection.GetSchema() called <i>Triggers</i>.&nbsp; 
      <li>Added a new schema to SQLiteConnection.GetSchema() called <i>Triggers</i>.&nbsp;
        Used to retrieve the trigger(s) associated with a database and/or table/view.</li>
      <li>Extensive updates to table/view editing capabilities inside Visual Studio&#39;s 
        Server Explorer.&nbsp; The program now parses and lets you edit CHECK constraints and 
        triggers on a table, as well as define triggers on views.&nbsp; Experimental 
      <li>Extensive updates to table/view editing capabilities inside Visual Studio&#39;s
        Server Explorer.&nbsp; The program now parses and lets you edit CHECK constraints and
        triggers on a table, as well as define triggers on views.&nbsp; Experimental
        still, so e-mail me if you have issues.</li>
      <li>Minor bugfix to the ViewColumns schema to return the proper base column name 
      <li>Minor bugfix to the ViewColumns schema to return the proper base column name
        for a view that aliases a column.</li>
      <li>Fixed the insert/update/delete DML support in the Linq module.</li>
      <li>Changed the behavior of SQLiteCommand to allow a transaction to be set even if 
      <li>Changed the behavior of SQLiteCommand to allow a transaction to be set even if
        the command hasn&#39;t been associated with a connection yet.</li>
    </ul>
    <p><b>1.0.52.0 - July 16, 2008</b></p>
    <ul>
      <li>Code merge with SQLite 3.6.0</li>
      <li>Added a lot of previously-missing exports to the DEF file for the 
      <li>Added a lot of previously-missing exports to the DEF file for the
        native library.</li>
      <li>Fixed SQLiteDataReader to check for an invalid connection before operating on 
      <li>Fixed SQLiteDataReader to check for an invalid connection before operating on
        an open cursor.</li>
      <li>Implemented the Cancel() function of SQLiteCommand to cancel an active reader.</li>
      <li>Added beta table and view designers to the Visual Studio Server Explorer.&nbsp; You can now 
        edit/create tables and views, manage indexes and foreign keys from Visual Studio.&nbsp; 
      <li>Added beta table and view designers to the Visual Studio Server Explorer.&nbsp; You can now
        edit/create tables and views, manage indexes and foreign keys from Visual Studio.&nbsp;
        This feature is still undergoing testing so use at your own risk!</li>
      <li>Fixed the Server Explorer so VS2005 users can once again right-click tables 
      <li>Fixed the Server Explorer so VS2005 users can once again right-click tables
        and views and open the table data.</li>
      <li>Added some new interop code to assist in returning more metadata not normally 
        available through the SQLite API.&nbsp; Specifically, index column sort modes 
        and collating sequences.&nbsp; Also added code to detect (but not parse) CHECK 
        constraints, so the table designer can pop up a warning when editing a table 
      <li>Added some new interop code to assist in returning more metadata not normally
        available through the SQLite API.&nbsp; Specifically, index column sort modes
        and collating sequences.&nbsp; Also added code to detect (but not parse) CHECK
        constraints, so the table designer can pop up a warning when editing a table
        with these constraints.&nbsp; Since I can&#39;t currently parse them.</li>
      <li>Lots of LINQ SQL generation improvements and fixes.</li>
      <li>Made some progress cleaning up and fixing up the schema definitions and 
      <li>Made some progress cleaning up and fixing up the schema definitions and
        manifests for EdmGen.</li>
      <li>Added a built-in SQLiteFunction called last_rows_affected() which can be 
        called from SQL to get the number of rows affected by the last update/insert 
        operation on the connection.&nbsp; This is roughly equivalent to Sql Server&#39;s 
        @@ROWCOUNT variable.</li>      
      <li>Added a built-in SQLiteFunction called last_rows_affected() which can be
        called from SQL to get the number of rows affected by the last update/insert
        operation on the connection.&nbsp; This is roughly equivalent to Sql Server&#39;s
        @@ROWCOUNT variable.</li>
    </ul>
    <p><b>1.0.51.0 - July 1, 2008</b></p>
    <ul>
      <li><b>VS2008 SP1 Beta1 LINQ Support</b></li>
      <li>Added experimental Entity Framework support in a new library, 
        System.Data.SQLite.Linq.&nbsp; Some things work, some don&#39;t.&nbsp; I haven&#39;t 
        finished rigging everything up yet.&nbsp; The core library remains stable.&nbsp; 
      <li>Added experimental Entity Framework support in a new library,
        System.Data.SQLite.Linq.&nbsp; Some things work, some don&#39;t.&nbsp; I haven&#39;t
        finished rigging everything up yet.&nbsp; The core library remains stable.&nbsp;
        All LINQ-specific code is completely separate from the core.</li>
      <li>&nbsp;Added some columns to several existing schemas to support some of the 
      <li>&nbsp;Added some columns to several existing schemas to support some of the
        EDM framework stuff.</li>
      <li>Minor tweaks to the factory to better support dynamic loading of the Linq 
      <li>Minor tweaks to the factory to better support dynamic loading of the Linq
        extension library for SQLite.</li>
      <li>SQLite&#39;s busy handler was interfering with the provider&#39;s busy handling 
      <li>SQLite&#39;s busy handler was interfering with the provider&#39;s busy handling
        mechanism, so its been disabled.</li>
    </ul>
    <p><b>1.0.50.0 - June 27, 2008</b></p>
    <ul>
      <li>Fixed some lingering dispose issues and race conditions when some objects were finalized.</li>
      <li>Fixed the SQLiteConvert.Split() routine to be a little smarter when splitting 
      <li>Fixed the SQLiteConvert.Split() routine to be a little smarter when splitting
        strings, which solves the quoted data source filename problem.</li>
      <li>Enhanced the mergebin utility to work around the strong name validation bug on 
        the Compact Framework.&nbsp; The old workaround kludged the DLL and caused WM6.1 
        to fail to load it.&nbsp; This new solution is permanent and no longer kludges 
      <li>Enhanced the mergebin utility to work around the strong name validation bug on
        the Compact Framework.&nbsp; The old workaround kludged the DLL and caused WM6.1
        to fail to load it.&nbsp; This new solution is permanent and no longer kludges
        the DLL.</li>
    </ul>
    <p><b>1.0.49.0 - May 28, 2008</b></p>
    <ul>
      <li>Code merge with SQLite 3.5.9</li>
      <li>Fixed schema problems when querying the TEMP catalog.</li>
      <li>Changed BLOB datatype schema to return IsLong = False instead of True.&nbsp; This
        was preventing DbCommandBuilder from using GUID's and BLOB's as primary keys.</li>
      <li>Fix rollover issue with SQLite3.Reset() using TickCount.</li>
      <li>Fixed SQLiteDataReader to dispose of its command (if called for) before 
      <li>Fixed SQLiteDataReader to dispose of its command (if called for) before
        closing the connection (when flagged to do so) instead of the other way around.</li>
      <li>Fixed a DbNull error when retrieving items not backed by a table schema.</li>
      <li>Fixed foreign key constraint parsing bug.</li>
      <li>Added FailIfMissing property to the SQLiteConnectionStringBuilder.</li>
      <li>Converted the source projects to Visual Studio 2008.</li>
    </ul>
    <p><b>1.0.48.0 - December 28, 2007</b></p>
603
604
605
606
607
608
609
610

611
612
613
614
615
616
617
615
616
617
618
619
620
621

622
623
624
625
626
627
628
629







-
+







    <ul>
    <li>Fixed a bug when using CommandBehavior.KeyInfo whereby integer primary key columns may be duplicated in the results. </li>
      <li>Enhanced the CommandBuilder so that update/delete statements are optimized when the affected table contains unique constraints and
      a primary key is present.</li>
      <li>Fixed a bug in the DataReader when used in conjunction with CommandBehavior.CloseConnection.</li></ul>
    <p><b>1.0.37.0 - November 19, 2006</b></p>
    <ul>
    <li>Added support for CommandBehavior.KeyInfo.&nbsp; 
    <li>Added support for CommandBehavior.KeyInfo.&nbsp;
      When specified in a query, additional column(s) will be returned describing the
      key(s) defined for the table(s) selected in the query.&nbsp; This is optimized when
      INTEGER PRIMARY KEY is set for the given tables, but does additional work for other
      kinds of primary keys.</li>
      <li>Removed the default values from SQLiteDataReader.GetTableSchema(), to better follow
        Sql Server's pattern and suppress schema errors when loading the records into a
        dataset/datatable.</li>
916
917
918
919
920
921
922
923

924
925
926

927
928
929
930
931
932
933
934
935
936
937


938
939
940
941
942
943
944
945
946
947
948
949
950
951




952
953
954


955
956
957
958
959
960

961
962
963
964
965
966
967
968
969
970
971

972
973
974
975
976
977
978
979
980
981




982
983
984
985
986



987
988
989
990
991
992
993
994


995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006



1007
1008

1009
1010
1011
1012


1013
1014
1015
1016
1017
1018
1019
1020
1021
1022




1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033





1034
1035
1036
1037
1038



1039
1040
1041
1042
1043
1044
1045
1046
1047
1048



1049
1050
1051
1052
1053



1054
1055
1056
1057
1058
1059
1060
1061

1062
1063
1064
1065
1066
1067
1068
928
929
930
931
932
933
934

935
936
937

938
939
940
941
942
943
944
945
946
947


948
949
950
951
952
953
954
955
956
957
958
959




960
961
962
963
964


965
966
967
968
969
970
971

972
973
974
975
976
977
978
979
980
981
982

983
984
985
986
987
988
989




990
991
992
993
994
995



996
997
998
999
1000
1001
1002
1003
1004


1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015



1016
1017
1018
1019

1020
1021
1022


1023
1024
1025
1026
1027
1028
1029
1030




1031
1032
1033
1034
1035
1036
1037
1038
1039
1040





1041
1042
1043
1044
1045
1046
1047



1048
1049
1050
1051
1052
1053
1054
1055
1056
1057



1058
1059
1060
1061
1062



1063
1064
1065
1066
1067
1068
1069
1070
1071
1072

1073
1074
1075
1076
1077
1078
1079
1080







-
+


-
+









-
-
+
+










-
-
-
-
+
+
+
+

-
-
+
+





-
+










-
+






-
-
-
-
+
+
+
+


-
-
-
+
+
+






-
-
+
+









-
-
-
+
+
+

-
+


-
-
+
+






-
-
-
-
+
+
+
+






-
-
-
-
-
+
+
+
+
+


-
-
-
+
+
+







-
-
-
+
+
+


-
-
-
+
+
+







-
+







        Fixed a shortcut in SQLiteBase.GetValue which was insufficient for international environments.  The shortcut was removed and the "proper" procedure put in.
        </UL>
      <P><STRONG>1.0.19 - October 5, 2005</STRONG></P>
      <UL>
        <LI>
        Code merge with SQLite 3.2.7
        <LI>
        Fixed bugs in the CE port code (os_wince.c)&nbsp;which were brought to 
        Fixed bugs in the CE port code (os_wince.c)&nbsp;which were brought to
        light&nbsp;by&nbsp;recent changes in the SQLite engine.
        <LI>
          Recompiled and modified to be compatible with the September VS2005 Release 
          Recompiled and modified to be compatible with the September VS2005 Release
          Candidate.<BR>
          Beta 2 users should continue to use 1.0.18.1</LI></UL>
      <P><STRONG>1.0.18.1 - September 19, 2005</STRONG></P>
      <UL>
        <LI>
          Code merge with SQLite 3.2.6</LI></UL>
      <P><STRONG>1.0.18 - September 1, 2005</STRONG></P>
      <UL>
        <li>
          Added type-specific method calls when using the various SQLite classes that 
          would've normally returned a a generic Db base class, which aligns the code 
          Added type-specific method calls when using the various SQLite classes that
          would've normally returned a a generic Db base class, which aligns the code
          better with the Microsoft-supplied data providers.</li></UL>
      <p><b>1.0.17 - August 26, 2005</b></p>
      <ul>
        <li>
        Code merge with SQLite 3.2.5
        <li>
        Added Itanium and x64 build settings to the project (needs testing)
        <li>
        Bugfixes and enhancements to several schema types
        <li>
        Additional design-time support to include index and foreign key 
        enumerations.&nbsp; Requires re-registering the designer using 
        INSTALL.CMD.&nbsp; The new designer code now allows the VS query designer and 
        typed datasets to automatically link up foreign keys, use indexes, and 
        Additional design-time support to include index and foreign key
        enumerations.&nbsp; Requires re-registering the designer using
        INSTALL.CMD.&nbsp; The new designer code now allows the VS query designer and
        typed datasets to automatically link up foreign keys, use indexes, and
        automatically generate relationships from the schema.<li>
          Additional static methods on SQLiteConnection to create a database file, 
          encrypt a file using the Encrypted File System (EFS) on NTFS (requires NT 2K or 
          Additional static methods on SQLiteConnection to create a database file,
          encrypt a file using the Encrypted File System (EFS) on NTFS (requires NT 2K or
          above) and NTFS file compression</li>
      </ul>
      <p><b>1.0.16 - August 24, 2005</b></p>
      <ul>
        <li>
        Code merge with SQLite 3.2.4 with the large delete bugfix in CVS (which will 
        Code merge with SQLite 3.2.4 with the large delete bugfix in CVS (which will
        become 3.2.5 soon)
        <li>
          Added new GetSchema() types: IndexColumns, ViewColumns, ForeignKeys</li>
      </ul>
      <p><b>1.0.15 - August 22, 2005</b><br>
      </p>
      <ul>
        <li>
        Code merge with SQLite 3.2.3
        <LI>
          Minor updates for better design-time experience. More design-time code to 
          Minor updates for better design-time experience. More design-time code to
          follow in subsequent releases.</LI>
      </ul>
      <p><b>1.0.14 - August 16, 2005</b><br>
      </p>
      <ul>
        <li>
        Fixed a bug in the SQLiteDataAdapter due to insufficient implementation of the 
        class.&nbsp; The RowUpdating and RowUpdated events are now properly 
        implemented, but unfortunately inserting and updating data in a DataTable or 
        DataSet is now much slower.&nbsp; This is the proper design however, so the 
        Fixed a bug in the SQLiteDataAdapter due to insufficient implementation of the
        class.&nbsp; The RowUpdating and RowUpdated events are now properly
        implemented, but unfortunately inserting and updating data in a DataTable or
        DataSet is now much slower.&nbsp; This is the proper design however, so the
        changes are here to stay.
        <LI>
        Lots of schema changes to support Visual Studio's Data Designer architecture.<li>Added 
          Designer support for the provider.&nbsp; It's not 100%, but you can design 
          queries, add typed datasets and perform quite a number of tasks all within 
        Lots of schema changes to support Visual Studio's Data Designer architecture.<li>Added
          Designer support for the provider.&nbsp; It's not 100%, but you can design
          queries, add typed datasets and perform quite a number of tasks all within
          Visual Studio now.</li></ul>
      <P><B>1.0.13 - August 8, 2005</B><BR>
      </P>
      <DIV>
        <UL>
          <LI>
          Fixed a named parameter bug in the base SQLite_UTF16 class, which of course 
          only showed up when a database connection was opened using the 
          Fixed a named parameter bug in the base SQLite_UTF16 class, which of course
          only showed up when a database connection was opened using the
          UseUTF16Encoding=True parameter.
          <LI>
            Fixed a performance issue in SQLite_UTF16 involving string marshaling.</LI></UL>
      </DIV>
      <P><B>1.0.12 - August 5, 2005</B><BR>
      </P>
      <DIV>
        <UL>
          <LI>
            Full support for the Compact Framework.&nbsp; Each build (Debug/Release) now 
            has a&nbsp;platform, either Win32 or Compact Framework.&nbsp; The correct 
            projects are built accordingly.&nbsp; See the&nbsp;<A href="#redist">Distributing 
            Full support for the Compact Framework.&nbsp; Each build (Debug/Release) now
            has a&nbsp;platform, either Win32 or Compact Framework.&nbsp; The correct
            projects are built accordingly.&nbsp; See the&nbsp;<A href="#redist">Distributing
              SQLite</A>
          section for information on what files need to be distributed for each 
          section for information on what files need to be distributed for each
          platform.&nbsp;
          <LI>
          Modified SQLite3.Reset() and Step() functions to transparently handle timeouts 
          while waiting on the database to become available (typically when a writer is 
          Modified SQLite3.Reset() and Step() functions to transparently handle timeouts
          while waiting on the database to become available (typically when a writer is
          waiting on a reader to finish, or a reader is waiting on a writer to finish).
          <LI>
          Lots of code cleanup&nbsp;as suggested&nbsp;by the Code Analyzer (FxCop).
          <LI>
          Lots of updates to the helpfile (as you can see).
          <LI>
            Statements&nbsp;were already prepared lazily&nbsp;in a SQLiteCommand, but now 
            its even more lazy.&nbsp; Statements are now only prepared if the statements 
            haven't been previously prepared and a Prepare() function is called (and the 
            command is associated with a connection) or just prior to the command being 
            Statements&nbsp;were already prepared lazily&nbsp;in a SQLiteCommand, but now
            its even more lazy.&nbsp; Statements are now only prepared if the statements
            haven't been previously prepared and a Prepare() function is called (and the
            command is associated with a connection) or just prior to the command being
            executed.&nbsp;</LI></UL>
      </DIV>
      <P><B>1.0.11 - August 1, 2005</B><BR>
      </P>
      <UL>
        <LI>
          <STRONG>For everything except the Compact Framework, System.Data.SQLite.DLL is 
            now the <EM>only</EM> DLL required to use this provider!</STRONG>&nbsp; The 
        assembly is now a multi-module assembly, containing both the native SQLite3 
        codebase and the C# classes built on top of it.&nbsp; The Compact Framework 
        version (when completed) will not be able to support this feature, so backwards 
          <STRONG>For everything except the Compact Framework, System.Data.SQLite.DLL is
            now the <EM>only</EM> DLL required to use this provider!</STRONG>&nbsp; The
        assembly is now a multi-module assembly, containing both the native SQLite3
        codebase and the C# classes built on top of it.&nbsp; The Compact Framework
        version (when completed) will not be able to support this feature, so backwards
        compatibility with the Compact Framework has been preserved for the future.
        <LI>
          Fixed a bug in SQLiteCommand.ExecuteScalar() that caused it to stop executing 
          commands once it obtained the first column of the first row-returning 
          resultset.&nbsp; Any remaining statements after the row-returning statement was 
          Fixed a bug in SQLiteCommand.ExecuteScalar() that caused it to stop executing
          commands once it obtained the first column of the first row-returning
          resultset.&nbsp; Any remaining statements after the row-returning statement was
          ignored.
        </LI>
      </UL>
      <P><B>1.0.10 - June 10, 2005</B><BR>
      </P>
      <UL>
        <LI>
        Fixed a bug in the SQLite3.cs Prepare() function that created a statement even 
        when the SQLite engine returned a NULL pointer. Typically this occurs when 
        multiple statements are processed and there are trailing comments at the end of 
        Fixed a bug in the SQLite3.cs Prepare() function that created a statement even
        when the SQLite engine returned a NULL pointer. Typically this occurs when
        multiple statements are processed and there are trailing comments at the end of
        the statement.
        <LI>
          Fixed a bug in SQLiteStatement.cs that retrieved parameter names for a 
          parameterized query.&nbsp; SQLite's parameters are 1-based, and the function 
          was starting at 0.&nbsp; This was fine when all parameters were unnamed, but 
          Fixed a bug in SQLiteStatement.cs that retrieved parameter names for a
          parameterized query.&nbsp; SQLite's parameters are 1-based, and the function
          was starting at 0.&nbsp; This was fine when all parameters were unnamed, but
          for named parameters it caused the parameters to be out of whack.
        </LI>
      </UL>
      <P><B>1.0.09a - May 25, 2005</B><BR>
      </P>
      <UL>
        <LI>
        Fixed a broken helpfile and corrected some obsolete help remarks in 
        Fixed a broken helpfile and corrected some obsolete help remarks in
        SQLiteFunction.cs
        <LI>
          Added a version resource to the SQLite.Interop.DLL.&nbsp;</LI></UL>
      <P><B>1.0.09 - May 24, 2005</B><BR>
      </P>
      <UL>
        <LI>
1089
1090
1091
1092
1093
1094
1095
1096

1097
1098
1099
1100
1101



1102
1103
1104
1105
1106
1107
1108

1109
1110
1111

1112
1113
1114

1115
1116
1117
1118


1119
1120
1121
1122


1123
1124
1125
1126
1127
1128
1129
1130
1131


1132
1133
1134
1135
1136
1137
1138

1139
1140
1141
1142
1143
1144
1145
1146
1147
1148








1149
1150
1151
1152


1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168

1169
1170
1171
1172
1173
1174




1175
1176
1177
1178
1179

1180
1181
1182

1183
1184
1185
1186
1187
1188
1189
1190
1191


1192
1193
1194
1195


1196
1197
1198

1199
1200
1201

1202
1203
1204
1205


1206
1207
1208
1209
1210
1211
1212
1213


1214
1215
1216

1217
1218
1219
1220
1221
1222
1223
1101
1102
1103
1104
1105
1106
1107

1108
1109
1110



1111
1112
1113
1114
1115
1116
1117
1118
1119

1120
1121
1122

1123
1124
1125

1126
1127
1128


1129
1130
1131
1132


1133
1134
1135
1136
1137
1138
1139
1140
1141


1142
1143
1144
1145
1146
1147
1148
1149

1150
1151
1152








1153
1154
1155
1156
1157
1158
1159
1160
1161
1162


1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179

1180
1181
1182




1183
1184
1185
1186
1187
1188
1189
1190

1191
1192
1193

1194
1195
1196
1197
1198
1199
1200
1201


1202
1203
1204
1205


1206
1207
1208
1209

1210
1211
1212

1213
1214
1215


1216
1217
1218
1219
1220
1221
1222
1223


1224
1225
1226
1227

1228
1229
1230
1231
1232
1233
1234
1235







-
+


-
-
-
+
+
+






-
+


-
+


-
+


-
-
+
+


-
-
+
+







-
-
+
+






-
+


-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+


-
-
+
+















-
+


-
-
-
-
+
+
+
+




-
+


-
+







-
-
+
+


-
-
+
+


-
+


-
+


-
-
+
+






-
-
+
+


-
+







          Code merged the SQLite 3.14 source.
        </LI>
      </UL>
      <P><B>1.0.07 - Mar 5, 2005</B><BR>
      </P>
      <UL>
        <LI>
        Made more optimizations to frequently-called functions, resulting in 
        Made more optimizations to frequently-called functions, resulting in
        significant performance gains in all tests.
        <LI>
          Recompiled the binaries using the latest VS2005 February CTP, resulting in yet 
          more significant speed gains.&nbsp; The 100k insert test used to take 3.5 
          seconds and the insertwithidentity took almost 8 seconds.&nbsp; With the above 
          Recompiled the binaries using the latest VS2005 February CTP, resulting in yet
          more significant speed gains.&nbsp; The 100k insert test used to take 3.5
          seconds and the insertwithidentity took almost 8 seconds.&nbsp; With the above
          two changes, those tests are now executing in 1.9 and 4.9 seconds respectively.</LI></UL>
      <P><B>1.0.06 - Mar 1, 2005<BR>
        </B>
      </P>
      <UL>
        <LI>
        Speed-ups to SQLiteDataReader.&nbsp; It was interop'ing unnecessarily every 
        Speed-ups to SQLiteDataReader.&nbsp; It was interop'ing unnecessarily every
        time it tried to fetch a field due to a logic error.
        <LI>
        Changed/Added some code to SQLiteConvert's internal DbType, Type and 
        Changed/Added some code to SQLiteConvert's internal DbType, Type and
        TypeAffinity functions.
        <LI>
        Fixed the SQLiteDataReader to obey the flags set in the optional 
        Fixed the SQLiteDataReader to obey the flags set in the optional
        CommandBehavior flag from SQLiteCommand.ExecuteReader().
        <LI>
        Changed the default page size to 1024 to reflect the defaults of SQLite.&nbsp; 
        Ignores the "Page Size" connection string option for memory databases, as tests 
        Changed the default page size to 1024 to reflect the defaults of SQLite.&nbsp;
        Ignores the "Page Size" connection string option for memory databases, as tests
        revealed that changing it resulted in memory corruption errors.
        <LI>
          Performance enhancements to the SQLiteCommand and SQLiteStatement classes which 
          reduced the 100,000 row insert execution time as well as the various Function 
          Performance enhancements to the SQLiteCommand and SQLiteStatement classes which
          reduced the 100,000 row insert execution time as well as the various Function
          execution times significantly.
        </LI>
      </UL>
      <P><B>1.0.05 - Feb 25, 2005</B>
      </P>
      <UL>
        <LI>
        Fixed the SQLite3 C# class step/reset functions to accomodate schema changes 
        that invalidate a prepared statement.&nbsp; Statements are recompiled 
        Fixed the SQLite3 C# class step/reset functions to accomodate schema changes
        that invalidate a prepared statement.&nbsp; Statements are recompiled
        transparently.
        <LI>
        Moved all native DLL declarations to an UnsafeNativeMethods class.
        <LI>
        Split several classes into their own modules for readability.
        <LI>
        Renamed many internal variables, reviewed access to variables marked as 
        Renamed many internal variables, reviewed access to variables marked as
        internal and altered their protection levels accordingly.
        <LI>
        Due to the presence of the altered sqlite3 codebase and so many added interop 
        functions, I decided to rename the sqlite3 C project and the DLL to 
        SQLite.Interop.DLL.&nbsp; This is the same core sqlite3 codebase but designed 
        specifically for this ADO.NET provider.&nbsp; This eliminates any possibility 
        of someone dropping another build of sqlite3.dll into the system and rendering 
        the provider inoperable.&nbsp; In the future if the folks at sqlite.org finally 
        introduce a method of retrieving column usage for an arbitrary prepared 
        statement, I'll retool this library to be a lightweight function call wrapper 
        Due to the presence of the altered sqlite3 codebase and so many added interop
        functions, I decided to rename the sqlite3 C project and the DLL to
        SQLite.Interop.DLL.&nbsp; This is the same core sqlite3 codebase but designed
        specifically for this ADO.NET provider.&nbsp; This eliminates any possibility
        of someone dropping another build of sqlite3.dll into the system and rendering
        the provider inoperable.&nbsp; In the future if the folks at sqlite.org finally
        introduce a method of retrieving column usage for an arbitrary prepared
        statement, I'll retool this library to be a lightweight function call wrapper
        around the core binary distribution.
        <LI>
        Added [SuppressUnmanagedCodeSecurity] attribute to the UnsafeNativeMethods 
        class which brings VS2005 November CTP execution speeds inline with the 
        Added [SuppressUnmanagedCodeSecurity] attribute to the UnsafeNativeMethods
        class which brings VS2005 November CTP execution speeds inline with the
        December CTP.
        <LI>
          Added a <B>bin</B>
        directory to the project root where pre-compiled binaries can be found.
        <LI>
          Added a <B>doc</B>
        directory where preliminary documentation on the class library can be found.
        <LI>
          Documented a lot more of the classes internally.
        </LI>
      </UL>
      <P><B>1.0.04 - Feb 24, 2005</B>
      </P>
      <UL>
        <LI>
        Removed the SQLiteContext class and revamped the way UserFunctions work to 
        Removed the SQLiteContext class and revamped the way UserFunctions work to
        simplify the imlementation.
        <LI>
        Fixed a counting bug in the TestCases class, specifically in the function tests 
        where I wasn't resetting the counter and it was consequently reporting 
        intrinsic and raw select calls as being much much faster than they actually 
        were.&nbsp; The numbers are now much closer to what I expected for performance, 
        Fixed a counting bug in the TestCases class, specifically in the function tests
        where I wasn't resetting the counter and it was consequently reporting
        intrinsic and raw select calls as being much much faster than they actually
        were.&nbsp; The numbers are now much closer to what I expected for performance,
        with .NET user-functions still being the slowest, but only by a small margin.
        <LI>
        Small performance tweaks to SQLiteDataReader.
        <LI>
        Added PageSize to the SQLiteConnectionStringBuilder and subsequently to the 
        Added PageSize to the SQLiteConnectionStringBuilder and subsequently to the
        SQLiteConnection
        <LI>
          Added a PRAGMA encoding=XXX execution statement to the SQLiteConnection after 
          Added a PRAGMA encoding=XXX execution statement to the SQLiteConnection after
          opening a connection.
        </LI>
      </UL>
      <P><B>1.0.03 - Feb 23, 2005</B>
      </P>
      <UL>
        <LI>
        Fixed up SQLiteCommandBuilder to correct implementation errors, which resulted 
        in an enormous performance boost in the InsertMany test.&nbsp;&nbsp; 10,000 row 
        Fixed up SQLiteCommandBuilder to correct implementation errors, which resulted
        in an enormous performance boost in the InsertMany test.&nbsp;&nbsp; 10,000 row
        insert that executed in 1500ms now executes in 500ms.
        <LI>
        Fixed several errors in the SQLite3_UTF16 class.&nbsp; ToString() was working 
        incorrectly and the Open() method failed to register user defined functions and 
        Fixed several errors in the SQLite3_UTF16 class.&nbsp; ToString() was working
        incorrectly and the Open() method failed to register user defined functions and
        collations.
        <LI>
        Fixed a bug in SQLiteCommand.ClearCommands() whereby only the first statement 
        Fixed a bug in SQLiteCommand.ClearCommands() whereby only the first statement
        was being properly cleaned up.
        <LI>
        Fixed a bug in SQLiteDataReader whereby calling NextResult() would not properly 
        Fixed a bug in SQLiteDataReader whereby calling NextResult() would not properly
        reset the previously-executed command in the sequence.
        <LI>
          Added an InsertManyWithIdentityFetch test, which appends a select clause to 
          populate the ID of the last inserted row into the InsertCommand, demonstrating 
          Added an InsertManyWithIdentityFetch test, which appends a select clause to
          populate the ID of the last inserted row into the InsertCommand, demonstrating
          ADO.NET's ability to auto-fetch identity columns on insert.
        </LI>
      </UL>
      <P><B>1.0.02 - Feb 21, 2005</B></P>
      <UL>
        <LI>
        Tweaks to the xxx_interop functions that return char *'s, so they also return 
        the length.&nbsp; Saves an interop call to get the UTF-8 string length during 
        Tweaks to the xxx_interop functions that return char *'s, so they also return
        the length.&nbsp; Saves an interop call to get the UTF-8 string length during
        conversion to a .NET string.
        <LI>
        Reworked the whole interop.c thing into interop.h and reduced the code required 
        Reworked the whole interop.c thing into interop.h and reduced the code required
        to merge the main sqlite3 codebase.
        <LI>
          Added support for user-defined collations.
        </LI>
      </UL>
      <hr />
      <div id="footer">
Changes to readme.htm.
1
2
3
4
5
6
7
8
9


10
11
12
13
14
15
16
1
2
3
4
5
6
7


8
9
10
11
12
13
14
15
16







-
-
+
+







<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<title></title>
</head>
<body>
ADO.NET SQLite Data Provider<br />
Version 1.0.75.0 October 3, 2011<br />
Using SQLite 3.7.8 <a href="http://www.sqlite.org/src/info/3e0da808d2">[3e0da808d2]</a><br />
Version 1.0.77.0 November XX, 2011<br />
Using SQLite 3.7.9 <a href="http://www.sqlite.org/src/info/c7c6050ef0">[c7c6050ef0]</a><br />
Originally written by Robert Simpson<br />
Released to the public domain, use at your own risk!<br />
Official provider website:&nbsp; <a href="http://system.data.sqlite.org/">http://system.data.sqlite.org/</a><br />
Legacy versions:&nbsp; <a href="http://sqlite.phxsoftware.com/">http://sqlite.phxsoftware.com/</a><br />
<br />
The current development version can be downloaded from <a href="http://system.data.sqlite.org/index.html/timeline?n=20&y=ci">
http://system.data.sqlite.org/index.html/timeline?n=20&y=ci</a>
185
186
187
188
189
190
191














192
193
194
195
196
197
198
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212







+
+
+
+
+
+
+
+
+
+
+
+
+
+







at the sqlite.org website.&nbsp; Several additional pieces are compiled on top of
it to extend its functionality, but the core engine's source is not changed.</p>
<p>
</p>

<h2><b>Version History</b></h2>

<p>
    <b>1.0.77.0 - November XX, 2011</b>
</p>
<ul>
    <li>Updated to SQLite 3.7.9 <a href="http://www.sqlite.org/src/info/c7c6050ef0">[c7c6050ef0]</a>.</li>
    <li>More enhancements to the build and test automation.</li>
    <li>Support building the core System.Data.SQLite assemblies using the .NET Framework 4.0 Client Profile. Fix for [566f1ad1e4].</li>
    <li>When returning schema information that may be used by the .NET Framework to construct dynamic SQL, use a fake schema name (instead of null) so that the table names will be properly qualified with the catalog name (i.e. the attached database name). Partial fix for [343d392b51].</li>
    <li>Add DateTimeKind connection string property to control the DateTimeKind of parsed DateTime values. Partial fix for [343d392b51].</li>
    <li>Improve the robustness of the SQLiteLog class when it will be initialized and unloaded multiple times.</li>
    <li>Fix the name of the interop assembly for Windows CE. Add unit tests to prevent this type of issue from happening again. Fix for [737ca4ff74].</li>
    <li>Formally support the SQL type name BOOLEAN in addition to BOOL. Fix for [544dba0a2f].</li>
    <li>Make sure the SQLiteConvert.TypeNameToDbType method is thread-safe. Fix for [84718e79fa].</li>
</ul>
<p>
    <b>1.0.76.0 - October 4, 2011</b>
</p>
<ul>
    <li>Prevent the domain unload event handler in SQLiteLog from being registered multiple times. Fix for [0d5b1ef362].</li>
    <li>Stop allowing non-default application domains to initialize the SQLiteLog class. Fix for [ac47dd230a].</li>
</ul>
Changes to www/news.wiki.
1
2
3
4














5
6
7
8
9
10
11
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25




+
+
+
+
+
+
+
+
+
+
+
+
+
+







<title>News</title>

<b>Version History</b>

<p>
    <b>1.0.77.0 - November XX, 2011</b>
</p>
<ul>
    <li>Updated to SQLite 3.7.9 <a href="http://www.sqlite.org/src/info/c7c6050ef0">[c7c6050ef0]</a>.</li>
    <li>More enhancements to the build and test automation.</li>
    <li>Support building the core System.Data.SQLite assemblies using the .NET Framework 4.0 Client Profile. Fix for [566f1ad1e4].</li>
    <li>When returning schema information that may be used by the .NET Framework to construct dynamic SQL, use a fake schema name (instead of null) so that the table names will be properly qualified with the catalog name (i.e. the attached database name). Partial fix for [343d392b51].</li>
    <li>Add DateTimeKind connection string property to control the DateTimeKind of parsed DateTime values. Partial fix for [343d392b51].</li>
    <li>Improve the robustness of the SQLiteLog class when it will be initialized and unloaded multiple times.</li>
    <li>Fix the name of the interop assembly for Windows CE. Add unit tests to prevent this type of issue from happening again. Fix for [737ca4ff74].</li>
    <li>Formally support the SQL type name BOOLEAN in addition to BOOL. Fix for [544dba0a2f].</li>
    <li>Make sure the SQLiteConvert.TypeNameToDbType method is thread-safe. Fix for [84718e79fa].</li>
</ul>
<p>
    <b>1.0.76.0 - October 4, 2011</b>
</p>
<ul>
    <li>Prevent the domain unload event handler in SQLiteLog from being registered multiple times. Fix for [0d5b1ef362].</li>
    <li>Stop allowing non-default application domains to initialize the SQLiteLog class. Fix for [ac47dd230a].</li>
</ul>