System.Data.SQLite

Login
This project makes use of Eagle, provided by Mistachkin Systems.
Eagle: Secure Software Automation
Ticket Hash: 2a0c90d7b09cc2ff5fb401a84ad7344cd1e4867d
Title: Connection string bug in SQLiteConnection
Status: Closed Type: Code_Defect
Severity: Critical Priority: Immediate
Subsystem: Connection Resolution: Fixed
Last Modified: 2011-07-07 04:36:26
Version Found In: 1.0.66
Description:
In this code:

 
<verbatim>
            defValue = FindKey(opts, "Journal Mode", "Delete");
            if (String.Compare(defValue, "Default", StringComparison.OrdinalIgnoreCase) != 0)
            {
              cmd.CommandText = String.Format(CultureInfo.InvariantCulture, "PRAGMA journal_mode={0}", defValue);
              cmd.ExecuteNonQuery();
            }
</verbatim>

 

shouldn't "Default" be "Delete"? There might be some other compares that are wrong.

<hr /><i>anonymous claiming to be navaraf added on 2011-02-17 09:58:09 UTC:</i><br />
Actually I believe the last parameter to FindKey should be "Default", not "Delete".

<hr /><i>anonymous added on 2011-02-17 14:56:18 UTC:</i><br />
I agree, it should check for "Default", not "Delete".  An explanation:

Consider the case of an existing database with a journal mode set to something other than delete (esp. WAL).  Connecting with the journal mode explicitly set to delete should change the journal mode, or at least attempt to.

If the connection string handling checks for "Delete" as the do-nothing default, then that scenario would not work properly.

<hr /><i>mistachkin added on 2011-07-05 06:24:37 UTC:</i><br />
Fixed with [50b4844f0c].