Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Extend OnChanged notifications to handle basic connection pool integration. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
b2cffa59749e1366a67c3546c45b3878 |
User & Date: | mistachkin 2015-07-16 00:56:18.843 |
Context
2015-07-16
| ||
01:10 | Augment the OpenedFromPool OnChanged notification to include the pool version. check-in: e769f25743 user: mistachkin tags: trunk | |
00:56 | Extend OnChanged notifications to handle basic connection pool integration. check-in: b2cffa5974 user: mistachkin tags: trunk | |
2015-07-14
| ||
22:03 | Add experimental support for the FTS5 loadable extension. check-in: b1750e5eba user: mistachkin tags: trunk | |
Changes
Changes to System.Data.SQLite/SQLite3.cs.
︙ | ︙ | |||
126 127 128 129 130 131 132 | { if (db != IntPtr.Zero) { _sql = new SQLiteConnectionHandle(db, ownHandle); _fileName = fileName; SQLiteConnection.OnChanged(null, new ConnectionEventArgs( | | | > | | 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 | { if (db != IntPtr.Zero) { _sql = new SQLiteConnectionHandle(db, ownHandle); _fileName = fileName; SQLiteConnection.OnChanged(null, new ConnectionEventArgs( SQLiteConnectionEventType.NewCriticalHandle, null, null, null, null, _sql, fileName, new object[] { typeof(SQLite3), fmt, kind, fmtString, db, fileName, ownHandle })); } } /////////////////////////////////////////////////////////////////////////////////////////////// #region IDisposable "Pattern" Members private bool disposed; |
︙ | ︙ | |||
240 241 242 243 244 245 246 247 248 249 250 251 252 253 | { #if INTEROP_VIRTUAL_TABLE DisposeModules(); #endif SQLiteConnectionPool.Add(_fileName, _sql, _poolVersion); #if !NET_COMPACT_20 && TRACE_CONNECTION Trace.WriteLine(String.Format("Close (Pool) Success: {0}", _sql)); #endif } #if !NET_COMPACT_20 && TRACE_CONNECTION else { | > > > > > | 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 | { #if INTEROP_VIRTUAL_TABLE DisposeModules(); #endif SQLiteConnectionPool.Add(_fileName, _sql, _poolVersion); SQLiteConnection.OnChanged(null, new ConnectionEventArgs( SQLiteConnectionEventType.ClosedToPool, null, null, null, null, _sql, _fileName, new object[] { typeof(SQLite3), canThrow, _fileName, _poolVersion })); #if !NET_COMPACT_20 && TRACE_CONNECTION Trace.WriteLine(String.Format("Close (Pool) Success: {0}", _sql)); #endif } #if !NET_COMPACT_20 && TRACE_CONNECTION else { |
︙ | ︙ | |||
754 755 756 757 758 759 760 761 762 763 764 765 766 767 | _usePool = usePool; _fileName = strFilename; if (usePool) { _sql = SQLiteConnectionPool.Remove(strFilename, maxPoolSize, out _poolVersion); #if !NET_COMPACT_20 && TRACE_CONNECTION Trace.WriteLine(String.Format("Open (Pool): {0}", (_sql != null) ? _sql.ToString() : "<null>")); #endif } if (_sql == null) { | > > > > > > | 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 | _usePool = usePool; _fileName = strFilename; if (usePool) { _sql = SQLiteConnectionPool.Remove(strFilename, maxPoolSize, out _poolVersion); SQLiteConnection.OnChanged(null, new ConnectionEventArgs( SQLiteConnectionEventType.OpenedFromPool, null, null, null, null, _sql, strFilename, new object[] { typeof(SQLite3), strFilename, vfsName, connectionFlags, openFlags, maxPoolSize, usePool })); #if !NET_COMPACT_20 && TRACE_CONNECTION Trace.WriteLine(String.Format("Open (Pool): {0}", (_sql != null) ? _sql.ToString() : "<null>")); #endif } if (_sql == null) { |
︙ | ︙ | |||
793 794 795 796 797 798 799 | if (n != SQLiteErrorCode.Ok) throw new SQLiteException(n, null); _sql = new SQLiteConnectionHandle(db, true); } lock (_sql) { /* HACK: Force the SyncBlock to be "created" now. */ } SQLiteConnection.OnChanged(null, new ConnectionEventArgs( | | | > | | 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 | if (n != SQLiteErrorCode.Ok) throw new SQLiteException(n, null); _sql = new SQLiteConnectionHandle(db, true); } lock (_sql) { /* HACK: Force the SyncBlock to be "created" now. */ } SQLiteConnection.OnChanged(null, new ConnectionEventArgs( SQLiteConnectionEventType.NewCriticalHandle, null, null, null, null, _sql, strFilename, new object[] { typeof(SQLite3), strFilename, vfsName, connectionFlags, openFlags, maxPoolSize, usePool })); } // Bind functions to this connection. If any previous functions of the same name // were already bound, then the new bindings replace the old. if ((connectionFlags & SQLiteConnectionFlags.NoBindFunctions) != SQLiteConnectionFlags.NoBindFunctions) { if (_functions == null) |
︙ | ︙ | |||
1184 1185 1186 1187 1188 1189 1190 | } } if (statementHandle != null) { SQLiteConnection.OnChanged(null, new ConnectionEventArgs( SQLiteConnectionEventType.NewCriticalHandle, null, null, | | | | 1197 1198 1199 1200 1201 1202 1203 1204 1205 1206 1207 1208 1209 1210 1211 1212 | } } if (statementHandle != null) { SQLiteConnection.OnChanged(null, new ConnectionEventArgs( SQLiteConnectionEventType.NewCriticalHandle, null, null, null, null, statementHandle, strSql, new object[] { typeof(SQLite3), cnn, strSql, previous, timeoutMS })); } if (ShouldThrowForCancel()) { if ((n == SQLiteErrorCode.Ok) || (n == SQLiteErrorCode.Row) || (n == SQLiteErrorCode.Done)) |
︙ | ︙ | |||
2614 2615 2616 2617 2618 2619 2620 | throw new SQLiteException("failed to initialize backup"); } backupHandle = new SQLiteBackupHandle(destHandle, backup); } SQLiteConnection.OnChanged(null, new ConnectionEventArgs( | | | | | 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 | throw new SQLiteException("failed to initialize backup"); } backupHandle = new SQLiteBackupHandle(destHandle, backup); } SQLiteConnection.OnChanged(null, new ConnectionEventArgs( SQLiteConnectionEventType.NewCriticalHandle, null, null, null, null, backupHandle, null, new object[] { typeof(SQLite3), destCnn, destName, sourceName })); return new SQLiteBackup( this, backupHandle, destHandle, zDestName, sourceHandle, zSourceName); } /// <summary> |
︙ | ︙ |
Changes to System.Data.SQLite/SQLite3_UTF16.cs.
︙ | ︙ | |||
148 149 150 151 152 153 154 155 156 157 158 159 160 161 | _usePool = usePool; _fileName = strFilename; if (usePool) { _sql = SQLiteConnectionPool.Remove(strFilename, maxPoolSize, out _poolVersion); #if !NET_COMPACT_20 && TRACE_CONNECTION Trace.WriteLine(String.Format("Open16 (Pool): {0}", (_sql != null) ? _sql.ToString() : "<null>")); #endif } if (_sql == null) { | > > > > > > | 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 | _usePool = usePool; _fileName = strFilename; if (usePool) { _sql = SQLiteConnectionPool.Remove(strFilename, maxPoolSize, out _poolVersion); SQLiteConnection.OnChanged(null, new ConnectionEventArgs( SQLiteConnectionEventType.OpenedFromPool, null, null, null, null, _sql, strFilename, new object[] { typeof(SQLite3_UTF16), strFilename, vfsName, connectionFlags, openFlags, maxPoolSize, usePool })); #if !NET_COMPACT_20 && TRACE_CONNECTION Trace.WriteLine(String.Format("Open16 (Pool): {0}", (_sql != null) ? _sql.ToString() : "<null>")); #endif } if (_sql == null) { |
︙ | ︙ | |||
202 203 204 205 206 207 208 | if (n != SQLiteErrorCode.Ok) throw new SQLiteException(n, null); _sql = new SQLiteConnectionHandle(db, true); } lock (_sql) { /* HACK: Force the SyncBlock to be "created" now. */ } SQLiteConnection.OnChanged(null, new ConnectionEventArgs( | | | > | | 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 | if (n != SQLiteErrorCode.Ok) throw new SQLiteException(n, null); _sql = new SQLiteConnectionHandle(db, true); } lock (_sql) { /* HACK: Force the SyncBlock to be "created" now. */ } SQLiteConnection.OnChanged(null, new ConnectionEventArgs( SQLiteConnectionEventType.NewCriticalHandle, null, null, null, null, _sql, strFilename, new object[] { typeof(SQLite3_UTF16), strFilename, vfsName, connectionFlags, openFlags, maxPoolSize, usePool })); } // Bind functions to this connection. If any previous functions of the same name // were already bound, then the new bindings replace the old. if ((connectionFlags & SQLiteConnectionFlags.NoBindFunctions) != SQLiteConnectionFlags.NoBindFunctions) { if (_functions == null) |
︙ | ︙ |
Changes to System.Data.SQLite/SQLiteConnection.cs.
︙ | ︙ | |||
966 967 968 969 970 971 972 | result = (nativeHandle != IntPtr.Zero) ? new SQLiteConnectionHandle(nativeHandle, true) : null; } if (result != null) { SQLiteConnection.OnChanged(null, new ConnectionEventArgs( | | | > | 966 967 968 969 970 971 972 973 974 975 976 977 978 979 980 981 982 | result = (nativeHandle != IntPtr.Zero) ? new SQLiteConnectionHandle(nativeHandle, true) : null; } if (result != null) { SQLiteConnection.OnChanged(null, new ConnectionEventArgs( SQLiteConnectionEventType.NewCriticalHandle, null, null, null, null, result, null, new object[] { typeof(SQLiteConnection), nativeHandle })); } return result; } /////////////////////////////////////////////////////////////////////////////////////////////// |
︙ | ︙ |
Changes to System.Data.SQLite/SQLiteConvert.cs.
︙ | ︙ | |||
2208 2209 2210 2211 2212 2213 2214 | /// A data reader is being disposed. /// </summary> DisposingDataReader = 13, /// <summary> /// A data reader is being closed. /// </summary> | | > > > > > > > > > > | 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 2223 2224 2225 2226 2227 2228 2229 2230 2231 2232 | /// A data reader is being disposed. /// </summary> DisposingDataReader = 13, /// <summary> /// A data reader is being closed. /// </summary> ClosingDataReader = 14, /// <summary> /// A native resource was opened (i.e. obtained) from the pool. /// </summary> OpenedFromPool = 15, /// <summary> /// A native resource was closed (i.e. released) to the pool. /// </summary> ClosedToPool = 16 } /// <summary> /// This implementation of SQLite for ADO.NET can process date/time fields in /// databases in one of six formats. /// </summary> /// <remarks> |
︙ | ︙ |