Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | In the interop assembly, use the sqlite3_prepare_v2() function when available. In the managed assembly, use the sqlite3_prepare_v2() function when enabled. Sync up the list of define constants used by the test suite. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
160e7ea1f6ea85c4f48e56533d80c2c1 |
User & Date: | mistachkin 2013-03-20 23:00:20.189 |
Context
2013-03-22
| ||
23:40 | Add GetAllAsText connection flag to force all column values to be returned as text. Pursuant to [e06c4caff3]. check-in: 2cd9814a44 user: mistachkin tags: trunk | |
2013-03-20
| ||
23:00 | In the interop assembly, use the sqlite3_prepare_v2() function when available. In the managed assembly, use the sqlite3_prepare_v2() function when enabled. Sync up the list of define constants used by the test suite. check-in: 160e7ea1f6 user: mistachkin tags: trunk | |
21:45 | Update SQLite core library to the 3.7.16 release. check-in: 286db63f8b user: mistachkin tags: trunk | |
Changes
Changes to Doc/Extra/version.html.
︙ | ︙ | |||
43 44 45 46 47 48 49 50 51 52 53 54 55 56 | <div id="mainSection"> <div id="mainBody"> <h1 class="heading">Version History</h1> <p><b>1.0.85.0 - March XX, 2013 <font color="red">(release scheduled)</font></b></p> <ul> <li>Updated to <a href="http://www.sqlite.org/src/info/66d5f2b767">SQLite 3.7.16</a>.</li> <li>Properly handle embedded NUL characters in parameter and column values. Fix for <a href="http://system.data.sqlite.org/index.html/info/3567020edf">[3567020edf]</a>.</li> <li>Check for a valid row in the SQLiteDataReader.GetValue method.</li> <li>Implement processor architecture detection when running on the .NET Compact Framework (via P/Invoke).</li> <li>Support automated testing when running on the .NET Compact Framework 2.0.</li> <li>Skip checking loaded assemblies for types tagged with the SQLiteFunction attribute when the No_SQLiteFunctions environment variable is set. Pursuant to <a href="http://system.data.sqlite.org/index.html/info/e4c8121f7b">[e4c8121f7b]</a>.</li> <li>Add HexPassword connection string property to work around the inability to include a literal semicolon in a connection string property value. Pursuant to <a href="http://system.data.sqlite.org/index.html/info/1c456ae75f">[1c456ae75f]</a>.</li> <li>Add static Execute method to the SQLiteCommand class.</li> <li>Support custom connection pool implementations by adding the ISQLiteConnectionPool interface, the static SQLiteConnection.ConnectionPool property, and the static CreateHandle method in addition to modifying the SQLiteConnectionPool class. Pursuant to <a href="http://system.data.sqlite.org/index.html/info/393d954be0">[393d954be0]</a>.</li> | > | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | <div id="mainSection"> <div id="mainBody"> <h1 class="heading">Version History</h1> <p><b>1.0.85.0 - March XX, 2013 <font color="red">(release scheduled)</font></b></p> <ul> <li>Updated to <a href="http://www.sqlite.org/src/info/66d5f2b767">SQLite 3.7.16</a>.</li> <li>Properly handle embedded NUL characters in parameter and column values. Fix for <a href="http://system.data.sqlite.org/index.html/info/3567020edf">[3567020edf]</a>.</li> <li>Make use of the sqlite3_prepare_v2 function when applicable.</li> <li>Check for a valid row in the SQLiteDataReader.GetValue method.</li> <li>Implement processor architecture detection when running on the .NET Compact Framework (via P/Invoke).</li> <li>Support automated testing when running on the .NET Compact Framework 2.0.</li> <li>Skip checking loaded assemblies for types tagged with the SQLiteFunction attribute when the No_SQLiteFunctions environment variable is set. Pursuant to <a href="http://system.data.sqlite.org/index.html/info/e4c8121f7b">[e4c8121f7b]</a>.</li> <li>Add HexPassword connection string property to work around the inability to include a literal semicolon in a connection string property value. Pursuant to <a href="http://system.data.sqlite.org/index.html/info/1c456ae75f">[1c456ae75f]</a>.</li> <li>Add static Execute method to the SQLiteCommand class.</li> <li>Support custom connection pool implementations by adding the ISQLiteConnectionPool interface, the static SQLiteConnection.ConnectionPool property, and the static CreateHandle method in addition to modifying the SQLiteConnectionPool class. Pursuant to <a href="http://system.data.sqlite.org/index.html/info/393d954be0">[393d954be0]</a>.</li> |
︙ | ︙ |
Changes to SQLite.Interop/src/win/interop.c.
︙ | ︙ | |||
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 | { int n; #if defined(INTEROP_DEBUG) && (INTEROP_DEBUG & INTEROP_DEBUG_PREPARE) sqlite3InteropDebug("sqlite3_prepare_interop(): calling sqlite3_prepare(%p, \"%s\", %d, %p)...\n", db, sql, nbytes, ppstmt); #endif n = sqlite3_prepare(db, sql, nbytes, ppstmt, pztail); #if defined(INTEROP_DEBUG) && (INTEROP_DEBUG & INTEROP_DEBUG_PREPARE) sqlite3InteropDebug("sqlite3_prepare_interop(): sqlite3_prepare(%p, \"%s\", %d, %p) returned %d.\n", db, sql, nbytes, ppstmt, n); #endif *plen = (*pztail != 0) ? strlen(*pztail) : 0; return n; } SQLITE_API int WINAPI sqlite3_prepare16_interop(sqlite3 *db, const void *sql, int nchars, sqlite3_stmt **ppstmt, const void **pztail, int *plen) { int n; #if defined(INTEROP_DEBUG) && (INTEROP_DEBUG & INTEROP_DEBUG_PREPARE16) sqlite3InteropDebug("sqlite3_prepare_interop(): calling sqlite3_prepare16(%p, \"%s\", %d, %p)...\n", db, sql, nchars, ppstmt); #endif n = sqlite3_prepare16(db, sql, nchars * sizeof(wchar_t), ppstmt, pztail); #if defined(INTEROP_DEBUG) && (INTEROP_DEBUG & INTEROP_DEBUG_PREPARE16) sqlite3InteropDebug("sqlite3_prepare_interop(): sqlite3_prepare16(%p, \"%s\", %d, %p) returned %d.\n", db, sql, nchars, ppstmt, n); #endif *plen = (*pztail != 0) ? wcslen((wchar_t *)*pztail) * sizeof(wchar_t) : 0; | > > > > > > > > | 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 | { int n; #if defined(INTEROP_DEBUG) && (INTEROP_DEBUG & INTEROP_DEBUG_PREPARE) sqlite3InteropDebug("sqlite3_prepare_interop(): calling sqlite3_prepare(%p, \"%s\", %d, %p)...\n", db, sql, nbytes, ppstmt); #endif #if SQLITE_VERSION_NUMBER >= 3003009 n = sqlite3_prepare_v2(db, sql, nbytes, ppstmt, pztail); #else n = sqlite3_prepare(db, sql, nbytes, ppstmt, pztail); #endif #if defined(INTEROP_DEBUG) && (INTEROP_DEBUG & INTEROP_DEBUG_PREPARE) sqlite3InteropDebug("sqlite3_prepare_interop(): sqlite3_prepare(%p, \"%s\", %d, %p) returned %d.\n", db, sql, nbytes, ppstmt, n); #endif *plen = (*pztail != 0) ? strlen(*pztail) : 0; return n; } SQLITE_API int WINAPI sqlite3_prepare16_interop(sqlite3 *db, const void *sql, int nchars, sqlite3_stmt **ppstmt, const void **pztail, int *plen) { int n; #if defined(INTEROP_DEBUG) && (INTEROP_DEBUG & INTEROP_DEBUG_PREPARE16) sqlite3InteropDebug("sqlite3_prepare_interop(): calling sqlite3_prepare16(%p, \"%s\", %d, %p)...\n", db, sql, nchars, ppstmt); #endif #if SQLITE_VERSION_NUMBER >= 3003009 n = sqlite3_prepare16_v2(db, sql, nchars * sizeof(wchar_t), ppstmt, pztail); #else n = sqlite3_prepare16(db, sql, nchars * sizeof(wchar_t), ppstmt, pztail); #endif #if defined(INTEROP_DEBUG) && (INTEROP_DEBUG & INTEROP_DEBUG_PREPARE16) sqlite3InteropDebug("sqlite3_prepare_interop(): sqlite3_prepare16(%p, \"%s\", %d, %p) returned %d.\n", db, sql, nchars, ppstmt, n); #endif *plen = (*pztail != 0) ? wcslen((wchar_t *)*pztail) * sizeof(wchar_t) : 0; |
︙ | ︙ |
Changes to SQLite.NET.Settings.targets.
︙ | ︙ | |||
203 204 205 206 207 208 209 210 211 212 213 214 215 216 | custom built interop DLL (i.e. "SQLite.Interop.dll")? By default, this is enabled. This property is mutually exclusive with the "UseSqliteStandard" one, below. This should always be disabled in the project file that builds the NetModule target. --> <UseInteropDll Condition="'$(UseInteropDll)' == ''">true</UseInteropDll> <!-- NOTE: For interaction with the native SQLite implementation, use the standard DLL (i.e. "sqlite3.dll")? By default, this is disabled. This property is mutually exclusive with the "UseInteropDll" one, above. This should always be disabled in the project file that builds the NetModule target. --> | > > > > > > > > | 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 | custom built interop DLL (i.e. "SQLite.Interop.dll")? By default, this is enabled. This property is mutually exclusive with the "UseSqliteStandard" one, below. This should always be disabled in the project file that builds the NetModule target. --> <UseInteropDll Condition="'$(UseInteropDll)' == ''">true</UseInteropDll> <!-- NOTE: For interaction with the native SQLite implementation, use the sqlite3_prepare_v2() function when preparing queries? By default, this is enabled. When using a native SQLite implementation prior to version 3.3.9, this must be disabled. --> <UsePrepareV2 Condition="'$(UsePrepareV2)' == ''">true</UsePrepareV2> <!-- NOTE: For interaction with the native SQLite implementation, use the standard DLL (i.e. "sqlite3.dll")? By default, this is disabled. This property is mutually exclusive with the "UseInteropDll" one, above. This should always be disabled in the project file that builds the NetModule target. --> |
︙ | ︙ |
Changes to System.Data.SQLite/SQLite3.cs.
︙ | ︙ | |||
550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 | // do nothing. } finally /* NOTE: Thread.Abort() protection. */ { #if !SQLITE_STANDARD n = UnsafeNativeMethods.sqlite3_prepare_interop(_sql, psql, b.Length - 1, out stmt, out ptr, out len); #else n = UnsafeNativeMethods.sqlite3_prepare(_sql, psql, b.Length - 1, out stmt, out ptr); len = -1; #endif #if !NET_COMPACT_20 && TRACE_STATEMENT Trace.WriteLine(String.Format("Prepare ({0}): {1}", n, stmt)); #endif | > > > > | 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 | // do nothing. } finally /* NOTE: Thread.Abort() protection. */ { #if !SQLITE_STANDARD n = UnsafeNativeMethods.sqlite3_prepare_interop(_sql, psql, b.Length - 1, out stmt, out ptr, out len); #else #if USE_PREPARE_V2 n = UnsafeNativeMethods.sqlite3_prepare_v2(_sql, psql, b.Length - 1, out stmt, out ptr); #else n = UnsafeNativeMethods.sqlite3_prepare(_sql, psql, b.Length - 1, out stmt, out ptr); #endif len = -1; #endif #if !NET_COMPACT_20 && TRACE_STATEMENT Trace.WriteLine(String.Format("Prepare ({0}): {1}", n, stmt)); #endif |
︙ | ︙ |
Changes to System.Data.SQLite/SQLiteDefineConstants.cs.
︙ | ︙ | |||
111 112 113 114 115 116 117 118 119 120 121 122 | #if TRACE_WARNING "TRACE_WARNING", #endif #if USE_INTEROP_DLL "USE_INTEROP_DLL", #endif null }); } } | > > > > > > > > | 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | #if TRACE_WARNING "TRACE_WARNING", #endif #if USE_INTEROP_DLL "USE_INTEROP_DLL", #endif #if USE_PREPARE_V2 "USE_PREPARE_V2", #endif #if WINDOWS "WINDOWS", #endif null }); } } |
Changes to System.Data.SQLite/System.Data.SQLite.Properties.targets.
︙ | ︙ | |||
81 82 83 84 85 86 87 88 89 90 91 92 93 94 | NOTE: For interaction with the native SQLite implementation, use the custom build interop DLL (i.e. "SQLite.Interop.DLL")? --> <PropertyGroup Condition="'$(UseInteropDll)' != 'false'"> <DefineConstants>$(DefineConstants);USE_INTEROP_DLL</DefineConstants> </PropertyGroup> <!-- NOTE: For interaction with the native SQLite implementation, use the standard DLL (i.e. "sqlite3.dll")? --> <PropertyGroup Condition="'$(UseSqliteStandard)' != 'false'"> <DefineConstants>$(DefineConstants);SQLITE_STANDARD</DefineConstants> </PropertyGroup> | > > > > > > > > | 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | NOTE: For interaction with the native SQLite implementation, use the custom build interop DLL (i.e. "SQLite.Interop.DLL")? --> <PropertyGroup Condition="'$(UseInteropDll)' != 'false'"> <DefineConstants>$(DefineConstants);USE_INTEROP_DLL</DefineConstants> </PropertyGroup> <!-- NOTE: For interaction with the native SQLite implementation, use the sqlite3_prepare_v2() function when preparing queries? --> <PropertyGroup Condition="'$(UsePrepareV2)' != 'false'"> <DefineConstants>$(DefineConstants);USE_PREPARE_V2</DefineConstants> </PropertyGroup> <!-- NOTE: For interaction with the native SQLite implementation, use the standard DLL (i.e. "sqlite3.dll")? --> <PropertyGroup Condition="'$(UseSqliteStandard)' != 'false'"> <DefineConstants>$(DefineConstants);SQLITE_STANDARD</DefineConstants> </PropertyGroup> |
︙ | ︙ |
Changes to System.Data.SQLite/UnsafeNativeMethods.cs.
︙ | ︙ | |||
892 893 894 895 896 897 898 899 900 901 902 903 904 905 | #if !PLATFORM_COMPACTFRAMEWORK [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] #else [DllImport(SQLITE_DLL)] #endif internal static extern SQLiteErrorCode sqlite3_prepare(IntPtr db, IntPtr pSql, int nBytes, out IntPtr stmt, out IntPtr ptrRemain); #if !PLATFORM_COMPACTFRAMEWORK [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] #else [DllImport(SQLITE_DLL)] #endif internal static extern SQLiteErrorCode sqlite3_table_column_metadata(IntPtr db, byte[] dbName, byte[] tblName, byte[] colName, out IntPtr ptrDataType, out IntPtr ptrCollSeq, out int notNull, out int primaryKey, out int autoInc); | > > > > > > > > > | 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 | #if !PLATFORM_COMPACTFRAMEWORK [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] #else [DllImport(SQLITE_DLL)] #endif internal static extern SQLiteErrorCode sqlite3_prepare(IntPtr db, IntPtr pSql, int nBytes, out IntPtr stmt, out IntPtr ptrRemain); #if USE_PREPARE_V2 #if !PLATFORM_COMPACTFRAMEWORK [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] #else [DllImport(SQLITE_DLL)] #endif internal static extern SQLiteErrorCode sqlite3_prepare_v2(IntPtr db, IntPtr pSql, int nBytes, out IntPtr stmt, out IntPtr ptrRemain); #endif #if !PLATFORM_COMPACTFRAMEWORK [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] #else [DllImport(SQLITE_DLL)] #endif internal static extern SQLiteErrorCode sqlite3_table_column_metadata(IntPtr db, byte[] dbName, byte[] tblName, byte[] colName, out IntPtr ptrDataType, out IntPtr ptrCollSeq, out int notNull, out int primaryKey, out int autoInc); |
︙ | ︙ | |||
915 916 917 918 919 920 921 | [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] #else [DllImport(SQLITE_DLL)] #endif internal static extern IntPtr sqlite3_value_text16(IntPtr p); #endif | | | 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 | [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] #else [DllImport(SQLITE_DLL)] #endif internal static extern IntPtr sqlite3_value_text16(IntPtr p); #endif // SQLITE_STANDARD #endregion // These functions are custom and have no equivalent standard library method. // All of them are "nice to haves" and not necessarily "need to haves". #region no equivalent standard method |
︙ | ︙ |
Changes to Tests/common.eagle.
︙ | ︙ | |||
1873 1874 1875 1876 1877 1878 1879 | # NOTE: Attempt to determine if various compile-time options needed for # test constraints were enabled for the managed assembly. There # are some compile-time options that must also have been enabled # for the interop assembly in order to be effective. For those # options, it will be assumed that it was enabled for the interop # assembly if it was enabled for the managed assembly. # | | | | | > > > | | 1873 1874 1875 1876 1877 1878 1879 1880 1881 1882 1883 1884 1885 1886 1887 1888 1889 1890 1891 1892 1893 1894 | # NOTE: Attempt to determine if various compile-time options needed for # test constraints were enabled for the managed assembly. There # are some compile-time options that must also have been enabled # for the interop assembly in order to be effective. For those # options, it will be assumed that it was enabled for the interop # assembly if it was enabled for the managed assembly. # foreach defineConstant [list \ CHECK_STATE COUNT_HANDLE DEBUG INTEROP_CODEC INTEROP_DEBUG \ INTEROP_EXTENSION_FUNCTIONS INTEROP_LEGACY_CLOSE INTEROP_LOG \ INTEROP_TEST_EXTENSION NET_20 NET_35 NET_40 NET_45 NET_COMPACT_20 \ PLATFORM_COMPACTFRAMEWORK PRELOAD_NATIVE_LIBRARY RETARGETABLE \ SQLITE_STANDARD THROW_ON_DISPOSED TRACE TRACE_CONNECTION \ TRACE_HANDLE TRACE_PRELOAD TRACE_STATEMENT TRACE_WARNING \ USE_INTEROP_DLL USE_PREPARE_V2 WINDOWS] { # # NOTE: Check if the compile-time option is listed in the list of # "define constants" kept track of by the managed assembly. # checkForSQLiteDefineConstant $::test_channel $defineConstant } |
︙ | ︙ |
Changes to readme.htm.
︙ | ︙ | |||
188 189 190 191 192 193 194 195 196 197 198 199 200 201 | <p> <b>1.0.85.0 - March XX, 2013 <font color="red">(release scheduled)</font></b> </p> <ul> <li>Updated to <a href="http://www.sqlite.org/src/info/66d5f2b767">SQLite 3.7.16</a>.</li> <li>Properly handle embedded NUL characters in parameter and column values. Fix for [3567020edf].</li> <li>Check for a valid row in the SQLiteDataReader.GetValue method.</li> <li>Implement processor architecture detection when running on the .NET Compact Framework (via P/Invoke).</li> <li>Support automated testing when running on the .NET Compact Framework 2.0.</li> <li>Skip checking loaded assemblies for types tagged with the SQLiteFunction attribute when the No_SQLiteFunctions environment variable is set. Pursuant to [e4c8121f7b].</li> <li>Add HexPassword connection string property to work around the inability to include a literal semicolon in a connection string property value. Pursuant to [1c456ae75f].</li> <li>Add static Execute method to the SQLiteCommand class.</li> <li>Support custom connection pool implementations by adding the ISQLiteConnectionPool interface, the static SQLiteConnection.ConnectionPool property, and the static CreateHandle method in addition to modifying the SQLiteConnectionPool class. Pursuant to [393d954be0].</li> | > | 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 | <p> <b>1.0.85.0 - March XX, 2013 <font color="red">(release scheduled)</font></b> </p> <ul> <li>Updated to <a href="http://www.sqlite.org/src/info/66d5f2b767">SQLite 3.7.16</a>.</li> <li>Properly handle embedded NUL characters in parameter and column values. Fix for [3567020edf].</li> <li>Make use of the sqlite3_prepare_v2 function when applicable.</li> <li>Check for a valid row in the SQLiteDataReader.GetValue method.</li> <li>Implement processor architecture detection when running on the .NET Compact Framework (via P/Invoke).</li> <li>Support automated testing when running on the .NET Compact Framework 2.0.</li> <li>Skip checking loaded assemblies for types tagged with the SQLiteFunction attribute when the No_SQLiteFunctions environment variable is set. Pursuant to [e4c8121f7b].</li> <li>Add HexPassword connection string property to work around the inability to include a literal semicolon in a connection string property value. Pursuant to [1c456ae75f].</li> <li>Add static Execute method to the SQLiteCommand class.</li> <li>Support custom connection pool implementations by adding the ISQLiteConnectionPool interface, the static SQLiteConnection.ConnectionPool property, and the static CreateHandle method in addition to modifying the SQLiteConnectionPool class. Pursuant to [393d954be0].</li> |
︙ | ︙ |
Changes to www/news.wiki.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <title>News</title> <b>Version History</b> <p> <b>1.0.85.0 - March XX, 2013 <font color="red">(release scheduled)</font></b> </p> <ul> <li>Updated to [http://www.sqlite.org/src/info/66d5f2b767|SQLite 3.7.16].</li> <li>Properly handle embedded NUL characters in parameter and column values. Fix for [3567020edf].</li> <li>Check for a valid row in the SQLiteDataReader.GetValue method.</li> <li>Implement processor architecture detection when running on the .NET Compact Framework (via P/Invoke).</li> <li>Support automated testing when running on the .NET Compact Framework 2.0.</li> <li>Skip checking loaded assemblies for types tagged with the SQLiteFunction attribute when the No_SQLiteFunctions environment variable is set. Pursuant to [e4c8121f7b].</li> <li>Add HexPassword connection string property to work around the inability to include a literal semicolon in a connection string property value. Pursuant to [1c456ae75f].</li> <li>Add static Execute method to the SQLiteCommand class.</li> <li>Support custom connection pool implementations by adding the ISQLiteConnectionPool interface, the static SQLiteConnection.ConnectionPool property, and the static CreateHandle method in addition to modifying the SQLiteConnectionPool class. Pursuant to [393d954be0].</li> | > | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <title>News</title> <b>Version History</b> <p> <b>1.0.85.0 - March XX, 2013 <font color="red">(release scheduled)</font></b> </p> <ul> <li>Updated to [http://www.sqlite.org/src/info/66d5f2b767|SQLite 3.7.16].</li> <li>Properly handle embedded NUL characters in parameter and column values. Fix for [3567020edf].</li> <li>Make use of the sqlite3_prepare_v2 function when applicable.</li> <li>Check for a valid row in the SQLiteDataReader.GetValue method.</li> <li>Implement processor architecture detection when running on the .NET Compact Framework (via P/Invoke).</li> <li>Support automated testing when running on the .NET Compact Framework 2.0.</li> <li>Skip checking loaded assemblies for types tagged with the SQLiteFunction attribute when the No_SQLiteFunctions environment variable is set. Pursuant to [e4c8121f7b].</li> <li>Add HexPassword connection string property to work around the inability to include a literal semicolon in a connection string property value. Pursuant to [1c456ae75f].</li> <li>Add static Execute method to the SQLiteCommand class.</li> <li>Support custom connection pool implementations by adding the ISQLiteConnectionPool interface, the static SQLiteConnection.ConnectionPool property, and the static CreateHandle method in addition to modifying the SQLiteConnectionPool class. Pursuant to [393d954be0].</li> |
︙ | ︙ |