Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch win32heap Excluding Merge-Ins
This is equivalent to a diff from 64a0f89bb3 to dfa2a55bad
2013-11-11
| ||
20:51 | Merge all recent memory management (and other) enhancements to trunk. check-in: 8f8f493cbf user: mistachkin tags: trunk | |
20:41 | Update SQLite to the latest trunk code. Add managed virtual table support for the estimatedRows field. Closed-Leaf check-in: dfa2a55bad user: mistachkin tags: win32heap | |
02:18 | Update SQLite core library to the latest trunk code. Refer to the Win32-specific core library functions only when it is likely they will be available. check-in: 76131c4fc9 user: mistachkin tags: win32heap | |
2013-11-09
| ||
23:41 | Merge test constraint fix from trunk. check-in: f642814971 user: mistachkin tags: win32heap | |
23:41 | Add missing test constraints for the System.Data.SQLite designer assembly file. check-in: 64a0f89bb3 user: mistachkin tags: trunk | |
2013-11-07
| ||
03:28 | Add SQLITE_ENABLE_MEMORY_MANAGEMENT compile-time option to the interop assembly. check-in: 9056f6e0d5 user: mistachkin tags: trunk | |
Changes to Doc/Extra/version.html.
︙ | |||
41 42 43 44 45 46 47 48 49 50 51 52 53 54 | 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | + | </table> </div> <div id="mainSection"> <div id="mainBody"> <h1 class="heading">Version History</h1> <p><b>1.0.90.0 - December XX, 2013 <font color="red">(release scheduled)</font></b></p> <ul> <li>Updated to <a href="http://www.sqlite.org/src/info/trunk">SQLite 3.8.2</a>.</li> <li>Add experimental support for the native regexp extension.</li> <li>Never create a new connection wrapper in the SQLiteConnection.Shutdown method. <b>** Potentially Incompatible Change **</b></li> <li>Add experimental GetMemoryStatistics, ReleaseMemory, and Shutdown methods to the SQLiteConnection class.</li> <li>Add memory leak detection to the test project for the .NET Compact Framework.</li> <li>Add SQLITE_ENABLE_MEMORY_MANAGEMENT compile-time option to the interop assembly.</li> </ul> <p><b>1.0.89.0 - October 28, 2013</b></p> |
︙ |
Changes to SQLite.Interop/props/sqlite3.props.
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 | - - + + | <?xml version="1.0" encoding="utf-8"?> <!-- * * sqlite3.props - * * Written by Joe Mistachkin. * Released to the public domain, use at your own risk! * --> <Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0"> <PropertyGroup Label="UserMacros"> |
︙ |
Changes to SQLite.Interop/props/sqlite3.vsprops.
︙ | |||
10 11 12 13 14 15 16 | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | - + - + | <VisualStudioPropertySheet ProjectType="Visual C++" Version="8.00" Name="sqlite3" > <UserMacro Name="SQLITE_MANIFEST_VERSION" |
︙ |
Changes to SQLite.Interop/src/core/sqlite3.c.
more than 10,000 changes
Changes to SQLite.Interop/src/core/sqlite3.h.
︙ | |||
103 104 105 106 107 108 109 | 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 | - - - + + + | ** string contains the date and time of the check-in (UTC) and an SHA1 ** hash of the entire source tree. ** ** See also: [sqlite3_libversion()], ** [sqlite3_libversion_number()], [sqlite3_sourceid()], ** [sqlite_version()] and [sqlite_source_id()]. */ |
︙ | |||
497 498 499 500 501 502 503 504 505 506 507 508 509 510 | 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 | + | #define SQLITE_CONSTRAINT_FOREIGNKEY (SQLITE_CONSTRAINT | (3<<8)) #define SQLITE_CONSTRAINT_FUNCTION (SQLITE_CONSTRAINT | (4<<8)) #define SQLITE_CONSTRAINT_NOTNULL (SQLITE_CONSTRAINT | (5<<8)) #define SQLITE_CONSTRAINT_PRIMARYKEY (SQLITE_CONSTRAINT | (6<<8)) #define SQLITE_CONSTRAINT_TRIGGER (SQLITE_CONSTRAINT | (7<<8)) #define SQLITE_CONSTRAINT_UNIQUE (SQLITE_CONSTRAINT | (8<<8)) #define SQLITE_CONSTRAINT_VTAB (SQLITE_CONSTRAINT | (9<<8)) #define SQLITE_CONSTRAINT_ROWID (SQLITE_CONSTRAINT |(10<<8)) #define SQLITE_NOTICE_RECOVER_WAL (SQLITE_NOTICE | (1<<8)) #define SQLITE_NOTICE_RECOVER_ROLLBACK (SQLITE_NOTICE | (2<<8)) #define SQLITE_WARNING_AUTOINDEX (SQLITE_WARNING | (1<<8)) /* ** CAPI3REF: Flags For File Open Operations ** |
︙ | |||
908 909 910 911 912 913 914 915 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 | 909 910 911 912 913 914 915 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 | + + + + + + + + + | ** The argument is a pointer to a value of type sqlite3_int64 that ** is an advisory maximum number of bytes in the file to memory map. The ** pointer is overwritten with the old value. The limit is not changed if ** the value originally pointed to is negative, and so the current limit ** can be queried by passing in a pointer to a negative number. This ** file-control is used internally to implement [PRAGMA mmap_size]. ** ** <li>[[SQLITE_FCNTL_TRACE]] ** The [SQLITE_FCNTL_TRACE] file control provides advisory information ** to the VFS about what the higher layers of the SQLite stack are doing. ** This file control is used by some VFS activity tracing [shims]. ** The argument is a zero-terminated string. Higher layers in the ** SQLite stack may generate instances of this file control if ** the [SQLITE_USE_FCNTL_TRACE] compile-time option is enabled. ** ** </ul> */ #define SQLITE_FCNTL_LOCKSTATE 1 #define SQLITE_GET_LOCKPROXYFILE 2 #define SQLITE_SET_LOCKPROXYFILE 3 #define SQLITE_LAST_ERRNO 4 #define SQLITE_FCNTL_SIZE_HINT 5 #define SQLITE_FCNTL_CHUNK_SIZE 6 #define SQLITE_FCNTL_FILE_POINTER 7 #define SQLITE_FCNTL_SYNC_OMITTED 8 #define SQLITE_FCNTL_WIN32_AV_RETRY 9 #define SQLITE_FCNTL_PERSIST_WAL 10 #define SQLITE_FCNTL_OVERWRITE 11 #define SQLITE_FCNTL_VFSNAME 12 #define SQLITE_FCNTL_POWERSAFE_OVERWRITE 13 #define SQLITE_FCNTL_PRAGMA 14 #define SQLITE_FCNTL_BUSYHANDLER 15 #define SQLITE_FCNTL_TEMPFILENAME 16 #define SQLITE_FCNTL_MMAP_SIZE 18 #define SQLITE_FCNTL_TRACE 19 /* ** CAPI3REF: Mutex Handle ** ** The mutex module within SQLite defines [sqlite3_mutex] to be an ** abstract type for a mutex object. The SQLite core never looks ** at the internal representation of an [sqlite3_mutex]. It only |
︙ | |||
1773 1774 1775 1776 1777 1778 1779 | 1783 1784 1785 1786 1787 1788 1789 1790 1791 1792 1793 1794 1795 1796 1797 1798 1799 1800 1801 1802 1803 1804 1805 1806 1807 1808 1809 1810 1811 | + - + - - - - - - + + + + + + + | ** codes are disabled by default for historical compatibility. */ SQLITE_API int sqlite3_extended_result_codes(sqlite3*, int onoff); /* ** CAPI3REF: Last Insert Rowid ** ** ^Each entry in most SQLite tables (except for [WITHOUT ROWID] tables) |
︙ | |||
4802 4803 4804 4805 4806 4807 4808 | 4814 4815 4816 4817 4818 4819 4820 4821 4822 4823 4824 4825 4826 4827 4828 4829 4830 4831 4832 4833 4834 4835 4836 4837 4838 4839 4840 4841 4842 4843 4844 4845 4846 4847 | - + + - + + | SQLITE_API void *sqlite3_rollback_hook(sqlite3*, void(*)(void *), void*); /* ** CAPI3REF: Data Change Notification Callbacks ** ** ^The sqlite3_update_hook() interface registers a callback function ** with the [database connection] identified by the first argument |
︙ | |||
5277 5278 5279 5280 5281 5282 5283 | 5291 5292 5293 5294 5295 5296 5297 5298 5299 5300 5301 5302 5303 5304 5305 5306 5307 5308 5309 5310 5311 5312 5313 5314 5315 5316 5317 5318 5319 5320 | - - - - + + + + + + + + + + + + + + + + | ** ^[sqlite3_free()] is used to free idxPtr if and only if ** needToFreeIdxPtr is true. ** ** ^The orderByConsumed means that output from [xFilter]/[xNext] will occur in ** the correct order to satisfy the ORDER BY clause so that no separate ** sorting step is required. ** |
︙ | |||
5305 5306 5307 5308 5309 5310 5311 | 5331 5332 5333 5334 5335 5336 5337 5338 5339 5340 5341 5342 5343 5344 5345 5346 | - + + | int argvIndex; /* if >0, constraint is part of argv to xFilter */ unsigned char omit; /* Do not code a test for this constraint */ } *aConstraintUsage; int idxNum; /* Number used to identify the index */ char *idxStr; /* String, possibly obtained from sqlite3_malloc */ int needToFreeIdxStr; /* Free idxStr using sqlite3_free() if true */ int orderByConsumed; /* True if output is already ordered */ |
︙ | |||
5509 5510 5511 5512 5513 5514 5515 5516 5517 5518 5519 5520 5521 5522 | 5536 5537 5538 5539 5540 5541 5542 5543 5544 5545 5546 5547 5548 5549 5550 5551 5552 | + + + | ** commit if the transaction continues to completion.)^ ** ** ^Use the [sqlite3_blob_bytes()] interface to determine the size of ** the opened blob. ^The size of a blob may not be changed by this ** interface. Use the [UPDATE] SQL command to change the size of a ** blob. ** ** ^The [sqlite3_blob_open()] interface will fail for a [WITHOUT ROWID] ** table. Incremental BLOB I/O is not possible on [WITHOUT ROWID] tables. ** ** ^The [sqlite3_bind_zeroblob()] and [sqlite3_result_zeroblob()] interfaces ** and the built-in [zeroblob] SQL function can be used, if desired, ** to create an empty, zero-filled blob in which to read or write using ** this interface. ** ** To avoid a resource leak, every open [BLOB handle] should eventually ** be released by a call to [sqlite3_blob_close()]. |
︙ |
Changes to SQLite.Interop/src/win/interop.c.
︙ |
Changes to System.Data.SQLite/SQLite3.cs.
︙ | |||
512 513 514 515 516 517 518 | 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 | - + + + + - + + + + + + + + + + + + + + + + + - + + + + + + + + + - + + + + + + + + + + + + + + + + + + + + + + + + + | } /// <summary> /// Attempts to free N bytes of heap memory by deallocating non-essential memory /// allocations held by the database library. Memory used to cache database pages /// to improve performance is an example of non-essential memory. This is a no-op /// returning zero if the SQLite core library was not compiled with the compile-time |
︙ | |||
562 563 564 565 566 567 568 | 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 | - + | rc = UnsafeNativeMethods.sqlite3_win32_set_directory(1, null); if (rc == SQLiteErrorCode.Ok) rc = UnsafeNativeMethods.sqlite3_win32_set_directory(2, null); #else #if !NET_COMPACT_20 && TRACE_CONNECTION Trace.WriteLine( |
︙ |
Changes to System.Data.SQLite/SQLiteConnection.cs.
︙ | |||
2506 2507 2508 2509 2510 2511 2512 | 2506 2507 2508 2509 2510 2511 2512 2513 2514 2515 2516 2517 2518 2519 2520 2521 2522 2523 2524 2525 2526 2527 2528 2529 2530 2531 2532 2533 2534 2535 2536 2537 2538 2539 2540 2541 2542 2543 2544 2545 2546 2547 2548 2549 2550 2551 2552 2553 2554 2555 2556 | - + + + + - + + + + + + + + + + + + + + + + + - + + + + + + + - + + | } /// <summary> /// Attempts to free N bytes of heap memory by deallocating non-essential memory /// allocations held by the database library. Memory used to cache database pages /// to improve performance is an example of non-essential memory. This is a no-op /// returning zero if the SQLite core library was not compiled with the compile-time |
︙ | |||
2684 2685 2686 2687 2688 2689 2690 | 2710 2711 2712 2713 2714 2715 2716 2717 2718 2719 2720 2721 2722 2723 2724 | - + | throw new InvalidOperationException("Database connection not valid for shutdown."); _sql.Close(true); /* NOTE: MUST be closed before shutdown. */ SQLiteErrorCode rc = _sql.Shutdown(); #if !NET_COMPACT_20 && TRACE_CONNECTION if (rc != SQLiteErrorCode.Ok) |
︙ | |||
2712 2713 2714 2715 2716 2717 2718 | 2738 2739 2740 2741 2742 2743 2744 2745 2746 2747 2748 2749 2750 2751 2752 | - + | ) { SQLiteErrorCode rc = SQLite3.StaticShutdown(directories); if (rc != SQLiteErrorCode.Ok) { #if !NET_COMPACT_20 && TRACE_CONNECTION |
︙ |
Changes to System.Data.SQLite/SQLiteModule.cs.
︙ | |||
961 962 963 964 965 966 967 968 969 970 971 972 973 974 | 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 | + + + + + + + + + + + + + + + + + + | { constraintUsages = new SQLiteIndexConstraintUsage[nConstraint]; } #endregion /////////////////////////////////////////////////////////////////////// /// <summary> /// Determines if the native estimatedRows field can be used, based on /// the available version of the SQLite core library. /// </summary> /// <returns> /// Non-zero if the <see cref="EstimatedRows" /> property is supported /// by the SQLite core library. /// </returns> public bool CanUseEstimatedRows() { if (UnsafeNativeMethods.sqlite3_libversion_number() >= 3008002) return true; return false; } /////////////////////////////////////////////////////////////////////// #region Public Properties private SQLiteIndexConstraintUsage[] constraintUsages; /// <summary> /// An array of <see cref="SQLiteIndexConstraintUsage" /> object /// instances, each containing information to be supplied to the SQLite /// core library. /// </summary> |
︙ | |||
1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 1054 1055 1056 1057 | 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 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 | + + + + + + + + + + + + + - - - - - - - - - - | /// indicates that a default estimated cost value should be used. /// </summary> public double? EstimatedCost { get { return estimatedCost; } set { estimatedCost = value; } } /////////////////////////////////////////////////////////////////////// private long? estimatedRows; /// <summary> /// Estimated number of rows returned. Using a null value here /// indicates that a default estimated rows value should be used. /// </summary> public long? EstimatedRows { get { return estimatedRows; } set { estimatedRows = value; } } #endregion } #endregion /////////////////////////////////////////////////////////////////////////// #region SQLiteIndex Helper Class /// <summary> /// This class represents the various inputs and outputs used with the /// <see cref="ISQLiteManagedModule.BestIndex" /> method. /// </summary> public sealed class SQLiteIndex { |
︙ | |||
1265 1266 1267 1268 1269 1270 1271 | 1286 1287 1288 1289 1290 1291 1292 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 | + + - - + + + + + + + + + + | SQLiteMarshal.WriteInt32(pIndex, offset, index.Outputs.OrderByConsumed); offset = SQLiteMarshal.NextOffsetOf(offset, sizeof(int), sizeof(double)); if (index.Outputs.EstimatedCost.HasValue) { |
︙ | |||
4411 4412 4413 4414 4415 4416 4417 4418 4419 4420 4421 4422 4423 4424 | 4442 4443 4444 4445 4446 4447 4448 4449 4450 4451 4452 4453 4454 4455 4456 4457 4458 4459 4460 4461 4462 4463 4464 4465 4466 4467 4468 4469 4470 4471 4472 4473 4474 4475 4476 4477 4478 4479 4480 4481 4482 4483 4484 4485 | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + | #else Marshal.WriteInt32(IntPtrForOffset(pointer, offset), value); #endif } /////////////////////////////////////////////////////////////////////// /// <summary> /// Writes an <see cref="Int64" /> value to the specified memory /// location. /// </summary> /// <param name="pointer"> /// The <see cref="IntPtr" /> object instance representing the base /// memory location. /// </param> /// <param name="offset"> /// The integer offset from the base memory location where the /// <see cref="Int64" /> value to be written is located. /// </param> /// <param name="value"> /// The <see cref="Int64" /> value to write. /// </param> public static void WriteInt64( IntPtr pointer, int offset, long value ) { #if !PLATFORM_COMPACTFRAMEWORK Marshal.WriteInt64(pointer, offset, value); #else Marshal.WriteInt64(IntPtrForOffset(pointer, offset), value); #endif } /////////////////////////////////////////////////////////////////////// /// <summary> /// Writes a <see cref="Double" /> value to the specified memory /// location. /// </summary> /// <param name="pointer"> /// The <see cref="IntPtr" /> object instance representing the base /// memory location. |
︙ | |||
6837 6838 6839 6840 6841 6842 6843 | 6898 6899 6900 6901 6902 6903 6904 6905 6906 6907 6908 6909 6910 6911 6912 6913 6914 6915 6916 6917 6918 6919 6920 | - + + - + | /// Modifies the specified <see cref="SQLiteIndex" /> object instance /// to contain the specified estimated cost. /// </summary> /// <param name="index"> /// The <see cref="SQLiteIndex" /> object instance to modify. /// </param> /// <param name="estimatedCost"> |
︙ | |||
6870 6871 6872 6873 6874 6875 6876 | 6932 6933 6934 6935 6936 6937 6938 6939 6940 6941 6942 6943 6944 6945 6946 6947 6948 6949 6950 6951 6952 6953 6954 6955 6956 6957 6958 6959 6960 6961 6962 6963 6964 6965 6966 6967 6968 6969 6970 6971 6972 6973 6974 6975 6976 6977 6978 6979 6980 6981 6982 6983 6984 6985 6986 6987 6988 6989 6990 6991 6992 6993 | - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + | /// <returns> /// Non-zero upon success. /// </returns> protected virtual bool SetEstimatedCost( SQLiteIndex index ) { |
︙ |
Changes to System.Data.SQLite/UnsafeNativeMethods.cs.
︙ | |||
1051 1052 1053 1054 1055 1056 1057 1058 1059 1060 1061 1062 1063 1064 1065 | 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 1081 1082 1083 1084 1085 1086 1087 1088 1089 1090 1091 1092 1093 1094 1095 1096 1097 1098 1099 | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + | #if WINDOWS #if !PLATFORM_COMPACTFRAMEWORK [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode)] #else [DllImport(SQLITE_DLL, CharSet = CharSet.Unicode)] #endif // // NOTE: The "sqlite3_win32_set_directory" SQLite core library function is // only supported on Windows. // internal static extern SQLiteErrorCode sqlite3_win32_set_directory(uint type, string value); #if !DEBUG // NOTE: Should be "WIN32HEAP && !MEMDEBUG" #if !PLATFORM_COMPACTFRAMEWORK [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] #else [DllImport(SQLITE_DLL)] #endif // // NOTE: The "sqlite3_win32_reset_heap" SQLite core library function is // only supported on Windows when the Win32 native allocator is in // use (i.e. by default, in "Release" builds of System.Data.SQLite // only). By default, in "Debug" builds of System.Data.SQLite, the // MEMDEBUG allocator is used. // internal static extern SQLiteErrorCode sqlite3_win32_reset_heap(); #if !PLATFORM_COMPACTFRAMEWORK [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] #else [DllImport(SQLITE_DLL)] #endif // // NOTE: The "sqlite3_win32_compact_heap" SQLite core library function is // only supported on Windows when the Win32 native allocator is in // use (i.e. by default, in "Release" builds of System.Data.SQLite // only). By default, in "Debug" builds of System.Data.SQLite, the // MEMDEBUG allocator is used. // internal static extern SQLiteErrorCode sqlite3_win32_compact_heap(ref uint largest); #endif #endif #if !PLATFORM_COMPACTFRAMEWORK [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] #else [DllImport(SQLITE_DLL)] #endif |
︙ |
Changes to Tests/basic.eagle.
︙ | |||
2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 | 2611 2612 2613 2614 2615 2616 2617 2618 2619 2620 2621 2622 2623 2624 2625 2626 2627 2628 2629 2630 2631 2632 2633 2634 2635 2636 2637 2638 2639 2640 2641 2642 2643 2644 2645 2646 2647 2648 2649 2650 2651 2652 2653 2654 2655 2656 2657 2658 2659 2660 2661 2662 2663 2664 2665 2666 2667 2668 2669 2670 2671 2672 2673 2674 2675 2676 2677 2678 2679 | + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + | cleanupDb $fileName unset -nocomplain db fileName } -constraints \ {eagle monoBug28 command.sql compile.DATA SQLite System.Data.SQLite} -result \ {0 1 1 {unmatched '('} 0 1 1 {unmatched '('} 0 0 1 {unmatched '('} 0 0 1\ {unmatched '('}}} ############################################################################### reportSQLiteResources $test_channel ############################################################################### runTest {test data-1.54 {SQLiteConnection.ReleaseMemory method} -setup { setupDb [set fileName data-1.54.db] } -body { set result [list] set nFree 0; set resetOk false; set nLargest 0 set code [object invoke \ System.Data.SQLite.SQLiteConnection ReleaseMemory \ -1 true true nFree resetOk nLargest] lappend result [list $code $nFree $resetOk $nLargest] sql execute $db "CREATE TABLE t1(x);" sql execute $db "INSERT INTO t1 (x) VALUES(RANDOMBLOB(1048576));" set nFree 0; set resetOk false; set nLargest 0 set code [object invoke \ System.Data.SQLite.SQLiteConnection ReleaseMemory \ -1 true true nFree resetOk nLargest] tputs $test_channel [appendArgs \ "---- memory released by SQLite... " $nFree " bytes\n"] lappend result [list $code $nFree $resetOk $nLargest] cleanupDb $fileName checkForSQLiteDirectories $test_channel true set nFree 0; set resetOk false; set nLargest 0 set code [object invoke \ System.Data.SQLite.SQLiteConnection ReleaseMemory \ -1 true true nFree resetOk nLargest] tputs $test_channel [appendArgs \ "---- largest free SQLite heap block... " $nLargest " bytes\n"] lappend result [list $code $nFree $resetOk $nLargest] } -cleanup { cleanupDb $fileName unset -nocomplain nLargest resetOk nFree code result db fileName } -constraints {eagle monoBug28 configuration.Release command.sql compile.DATA\ SQLite System.Data.SQLite} -match regexp -result {^\{Busy 0 False 0\} \{Busy\ \d+ False 0\} \{Ok 0 True \d+\}$}} ############################################################################### reportSQLiteResources $test_channel ############################################################################### unset -nocomplain systemDataSQLiteDllFile systemDataSQLiteLinqDllFile \ testExeFile testLinqExeFile northwindEfDbFile testLinqOutFile ############################################################################### |
︙ |
Changes to Tests/tkt-ccfa69fc32.eagle.
︙ | |||
81 82 83 84 85 86 87 | 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 | - + | set result } -cleanup { unset -nocomplain code output error result add } -constraints {eagle monoToDo SQLite file_System.Data.SQLite.dll testExec\ file_System.Data.SQLite.Linq.dll file_testlinq.exe file_northwindEF.db} -match \ glob -result {0 {1581 1730 1833 2116 2139} 0 {System.Data.UpdateException: *\ ---> System.Data.SQLite.SQLiteException: constraint failed |
︙ |
Changes to Tests/tkt-e06c4caff3.eagle.
︙ | |||
31 32 33 34 35 36 37 | 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | - + | cleanupDb $fileName unset -nocomplain NaN db fileName } -constraints \ {eagle monoBug28 command.sql compile.DATA SQLite System.Data.SQLite} \ -returnCodes 1 -match regexp -result [string map [list \n \r\n] \ {^System\.Data\.SQLite\.SQLiteException \(0x80004005\): constraint failed |
︙ |
Changes to Tests/version.eagle.
︙ | |||
198 199 200 201 202 203 204 205 206 | 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 | + + + + - + | runTest {test version-1.15 {ProviderVersion} -body { object invoke System.Data.SQLite.SQLiteConnection ProviderVersion } -constraints {eagle System.Data.SQLite} -result $version(full)} ############################################################################### runTest {test version-1.16 {ProviderSourceId} -body { # # NOTE: The ProviderSourceId property value may be null, which # would result in an empty string being returned here. # object invoke System.Data.SQLite.SQLiteConnection ProviderSourceId } -constraints {eagle System.Data.SQLite} -match regexp -result \ |
︙ |
Changes to readme.htm.
1 2 3 4 5 6 7 8 | 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.90.0 December XX, 2013 <font color="red">(release scheduled)</font><br /> |
︙ | |||
186 187 188 189 190 191 192 193 194 195 196 197 198 199 | 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 | + | <h2><b>Version History</b></h2> <p> <b>1.0.90.0 - December XX, 2013 <font color="red">(release scheduled)</font></b> </p> <ul> <li>Updated to <a href="http://www.sqlite.org/src/info/trunk">SQLite 3.8.2</a>.</li> <li>Add experimental support for the native regexp extension.</li> <li>Never create a new connection wrapper in the SQLiteConnection.Shutdown method. <b>** Potentially Incompatible Change **</b></li> <li>Add experimental GetMemoryStatistics, ReleaseMemory, and Shutdown methods to the SQLiteConnection class.</li> <li>Add memory leak detection to the test project for the .NET Compact Framework.</li> <li>Add SQLITE_ENABLE_MEMORY_MANAGEMENT compile-time option to the interop assembly.</li> </ul> <p> |
︙ |
Changes to www/news.wiki.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | + | <title>News</title> <b>Version History</b> <p> <b>1.0.90.0 - December XX, 2013 <font color="red">(release scheduled)</font></b> </p> <ul> <li>Updated to [http://www.sqlite.org/src/info/trunk|SQLite 3.8.2].</li> <li>Add experimental support for the native regexp extension.</li> <li>Never create a new connection wrapper in the SQLiteConnection.Shutdown method. <b>** Potentially Incompatible Change **</b></li> <li>Add experimental GetMemoryStatistics, ReleaseMemory, and Shutdown methods to the SQLiteConnection class.</li> <li>Add memory leak detection to the test project for the .NET Compact Framework.</li> <li>Add SQLITE_ENABLE_MEMORY_MANAGEMENT compile-time option to the interop assembly.</li> </ul> <p> |
︙ |