System.Data.SQLite

Login
This project makes use of Eagle, provided by Mistachkin Systems.
Eagle: Secure Software Automation

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

Changes In Branch stepNoThreadAbort Excluding Merge-Ins

This is equivalent to a diff from da24877dcb to 7f1111a6fd

2015-05-15
17:45
Prevent calls to the native sqlite3_step() and sqlite3_interrupt() methods from being interrupted via a ThreadAbortException. Also, remove a superfluous native function declaration. check-in: 70655cda1a user: mistachkin tags: trunk
2015-05-13
03:47
Also prevent the sqlite3_interrupt() call from being interrupted. Closed-Leaf check-in: 7f1111a6fd user: mistachkin tags: stepNoThreadAbort
03:23
Prevent the call into the native sqlite3_step() call from being interrupted via a ThreadAbortException. Also, remove a superfluous native function declaration. check-in: c822cde494 user: mistachkin tags: stepNoThreadAbort
2015-05-09
17:42
Update SQLite core library to the 3.8.10.1 release. check-in: da24877dcb user: mistachkin tags: trunk
2015-05-06
03:48
Update the example configuration file with the new environment variable. check-in: bea855da67 user: mistachkin tags: trunk

Changes to System.Data.SQLite/SQLite3.cs.

265
266
267
268
269
270
271






272


273
274
275
276
277
278
279
265
266
267
268
269
270
271
272
273
274
275
276
277

278
279
280
281
282
283
284
285
286







+
+
+
+
+
+
-
+
+








    /// <summary>
    /// Attempts to interrupt the query currently executing on the associated
    /// native database connection.
    /// </summary>
    internal override void Cancel()
    {
      try
      {
        // do nothing.
      }
      finally /* NOTE: Thread.Abort() protection. */
      {
      UnsafeNativeMethods.sqlite3_interrupt(_sql);
        UnsafeNativeMethods.sqlite3_interrupt(_sql);
      }
    }

    /// <summary>
    /// This function binds a user-defined function to the connection.
    /// </summary>
    /// <param name="functionAttribute">
    /// The <see cref="SQLiteFunctionAttribute"/> object instance containing
797
798
799
800
801
802
803






804


805
806
807
808
809
810
811
804
805
806
807
808
809
810
811
812
813
814
815
816

817
818
819
820
821
822
823
824
825







+
+
+
+
+
+
-
+
+







      SQLiteErrorCode n;
      Random rnd = null;
      uint starttick = (uint)Environment.TickCount;
      uint timeout = (uint)(stmt._command._commandTimeout * 1000);

      while (true)
      {
        try
        {
            // do nothing.
        }
        finally /* NOTE: Thread.Abort() protection. */
        {
        n = UnsafeNativeMethods.sqlite3_step(stmt._sqlite_stmt);
          n = UnsafeNativeMethods.sqlite3_step(stmt._sqlite_stmt);
        }

        if (n == SQLiteErrorCode.Row) return true;
        if (n == SQLiteErrorCode.Done) return false;

        if (n != SQLiteErrorCode.Ok)
        {
          SQLiteErrorCode r;

Changes to System.Data.SQLite/UnsafeNativeMethods.cs.

1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1586
1587
1588
1589
1590
1591
1592



1593
1594
1595
1596
1597
1598
1599







-
-
-








    [DllImport(SQLITE_DLL)]
    internal static extern SQLiteErrorCode sqlite3_cursor_rowid_interop(IntPtr stmt, int cursor, ref long rowid);

    [DllImport(SQLITE_DLL)]
    internal static extern SQLiteErrorCode sqlite3_index_column_info_interop(IntPtr db, byte[] catalog, byte[] IndexName, byte[] ColumnName, ref int sortOrder, ref int onError, ref IntPtr Collation, ref int colllen);

    [DllImport(SQLITE_DLL)]
    internal static extern void sqlite3_resetall_interop(IntPtr db);

    [DllImport(SQLITE_DLL)]
    internal static extern int sqlite3_table_cursor_interop(IntPtr stmt, int db, int tableRootPage);

#endif
// !SQLITE_STANDARD

    #endregion