Version History
1.0.83.0 - December XX, 2012 (release scheduled)
- - Updated to SQLite 3.7.15.
+ - Updated to SQLite 3.7.15.1.
- Add Visual Studio 2012 support to all the applicable solution/project files, their associated supporting files, and the test suite.
- Add Visual Studio 2012 support to the redesigned designer support installer.
- Allow opened connections to skip adding the extension functions included in the interop assembly via the new NoExtensionFunctions connection flag.
- Support loading of SQLite extensions via the new EnableExtensions and LoadExtension methods of the SQLiteConnection class. Pursuant to [17045010df].
- Remove one set of surrounding single or double quotes from property names and values parsed from the connection string. Fix for [b4cc611998].
Index: SQLite.Interop/props/sqlite3.props
==================================================================
--- SQLite.Interop/props/sqlite3.props
+++ SQLite.Interop/props/sqlite3.props
@@ -7,12 +7,12 @@
* Released to the public domain, use at your own risk!
*
-->
- 3.7.15
- 3,7,15
+ 3.7.15.1
+ 3,7,15,1
_CRT_SECURE_NO_DEPRECATE;_CRT_SECURE_NO_WARNINGS;_CRT_NONSTDC_NO_DEPRECATE;_CRT_NONSTDC_NO_WARNINGS;SQLITE_THREADSAFE=1;SQLITE_USE_URI=1;SQLITE_ENABLE_COLUMN_METADATA=1;SQLITE_ENABLE_STAT3=1;SQLITE_ENABLE_FTS3=1;SQLITE_ENABLE_LOAD_EXTENSION=1;SQLITE_ENABLE_RTREE=1;SQLITE_SOUNDEX=1
SQLITE_HAS_CODEC=1
SQLITE_OMIT_WAL=1
SQLITE_DEBUG=1;SQLITE_MEMDEBUG=1;SQLITE_ENABLE_EXPENSIVE_ASSERT=1
SQLITE_WIN32_MALLOC=1
Index: SQLite.Interop/props/sqlite3.vsprops
==================================================================
--- SQLite.Interop/props/sqlite3.vsprops
+++ SQLite.Interop/props/sqlite3.vsprops
@@ -12,16 +12,16 @@
Version="8.00"
Name="sqlite3"
>
nSlot = sqlite3DbMallocSize(db, pWC->a)/sizeof(pWC->a[0]);
}
pTerm = &pWC->a[idx = pWC->nTerm++];
- pTerm->pExpr = p;
+ pTerm->pExpr = sqlite3ExprSkipCollate(p);
pTerm->wtFlags = wtFlags;
pTerm->pWC = pWC;
pTerm->iParent = -1;
return idx;
}
@@ -103639,11 +103639,12 @@
if( db->mallocFailed ){
return;
}
pTerm = &pWC->a[idxTerm];
pMaskSet = pWC->pMaskSet;
- pExpr = sqlite3ExprSkipCollate(pTerm->pExpr);
+ pExpr = pTerm->pExpr;
+ assert( pExpr->op!=TK_AS && pExpr->op!=TK_COLLATE );
prereqLeft = exprTableUsage(pMaskSet, pExpr->pLeft);
op = pExpr->op;
if( op==TK_IN ){
assert( pExpr->pRight==0 );
if( ExprHasProperty(pExpr, EP_xIsSelect) ){
Index: SQLite.Interop/src/core/sqlite3.h
==================================================================
--- SQLite.Interop/src/core/sqlite3.h
+++ SQLite.Interop/src/core/sqlite3.h
@@ -105,13 +105,13 @@
**
** See also: [sqlite3_libversion()],
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
** [sqlite_version()] and [sqlite_source_id()].
*/
-#define SQLITE_VERSION "3.7.15"
+#define SQLITE_VERSION "3.7.15.1"
#define SQLITE_VERSION_NUMBER 3007015
-#define SQLITE_SOURCE_ID "2012-12-12 13:36:53 cd0b37c52658bfdf992b1e3dc467bae1835a94ae"
+#define SQLITE_SOURCE_ID "2012-12-19 20:39:10 6b85b767d0ff7975146156a99ad673f2c1a23318"
/*
** CAPI3REF: Run-Time Library Version Numbers
** KEYWORDS: sqlite3_version, sqlite3_sourceid
**
ADDED Tests/tkt-ae5267b863.eagle
Index: Tests/tkt-ae5267b863.eagle
==================================================================
--- /dev/null
+++ Tests/tkt-ae5267b863.eagle
@@ -0,0 +1,152 @@
+###############################################################################
+#
+# tkt-ae5267b863.eagle --
+#
+# Written by Joe Mistachkin.
+# Released to the public domain, use at your own risk!
+#
+###############################################################################
+
+package require Eagle
+package require Eagle.Library
+package require Eagle.Test
+
+runTestPrologue
+
+###############################################################################
+
+package require System.Data.SQLite.Test
+runSQLiteTestPrologue
+
+###############################################################################
+
+runTest {test tkt-ae5267b863-1.1 {segfault during command GC} -setup {
+ setupDb [set fileName tkt-ae5267b863-1.1.db]
+} -body {
+ set id [object invoke Interpreter.GetActive NextId]
+ set dataSource [file join [getDatabaseDirectory] $fileName]
+
+ set sql(1) { \
+ CREATE TABLE t1( \
+ __rowid INTEGER PRIMARY KEY AUTOINCREMENT, \
+ z STRING \
+ ); \
+ }
+
+ set sql(2) { \
+ CREATE VIRTUAL TABLE t2 USING RTREE( \
+ id, minx, maxx, miny, maxy \
+ ); \
+ }
+
+ set sql(3) { \
+ INSERT INTO t1 VALUES({0}, \"value {0}\"); \
+ }
+
+ set sql(4) { \
+ INSERT INTO t2 VALUES({0}, {0}, {0}, {0}, {0}); \
+ }
+
+ set sql(5) { \
+ SELECT COUNT(*) FROM t1, t2 \
+ WHERE t1.__rowid = t2.id AND \
+ (t2.minx <= :xmax and t2.miny <= :ymax and \
+ t2.maxx >= :xmin and t2.maxy >= :ymin); \
+ }
+
+ unset -nocomplain results errors
+
+ set code [compileCSharpWith [subst {
+ using System;
+ using System.Data.SQLite;
+
+ namespace _Dynamic${id}
+ {
+ public static class Test${id}
+ {
+ public static void Main()
+ {
+ using (SQLiteConnection connection = new SQLiteConnection(
+ "Data Source=${dataSource};"))
+ {
+ connection.Open();
+
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ command.CommandText = "${sql(1)}";
+ command.ExecuteNonQuery();
+
+ command.CommandText = "${sql(2)}";
+ command.ExecuteNonQuery();
+ }
+
+ using (SQLiteCommand command = connection.CreateCommand())
+ {
+ using (SQLiteTransaction transaction =
+ connection.BeginTransaction())
+ {
+ for (int index = 0; index < 10; index++)
+ {
+ command.CommandText = String.Format("${sql(3)}", index);
+ command.ExecuteNonQuery();
+
+ command.CommandText = String.Format("${sql(4)}", index);
+ command.ExecuteNonQuery();
+ }
+
+ transaction.Commit();
+ }
+ }
+
+ //
+ // NOTE: Perform a huge amount of command creation and execution
+ // cycles for a better chance to trigger the bug.
+ //
+ for (int index = 0; index < 100000; index++)
+ {
+ //
+ // NOTE: Purposely omit the 'using' block here to test
+ // command disposal via the garbage collector.
+ //
+ SQLiteCommand command = connection.CreateCommand();
+
+ command.CommandText = "${sql(5)}";
+ command.Parameters.Add(new SQLiteParameter(":xmin", 2));
+ command.Parameters.Add(new SQLiteParameter(":xmax", 8));
+ command.Parameters.Add(new SQLiteParameter(":ymin", 2));
+ command.Parameters.Add(new SQLiteParameter(":ymax", 8));
+
+ using (SQLiteDataReader reader = command.ExecuteReader())
+ {
+ while (reader.Read()) {
+ //
+ // do nothing.
+ //
+ }
+ }
+ }
+
+ connection.Close();
+ }
+ }
+ }
+ }
+ }] true true true results errors System.Data.SQLite.dll]
+
+ list $code $results \
+ [expr {[info exists errors] ? $errors : ""}] \
+ [expr {$code eq "Ok" ? [catch {
+ object invoke _Dynamic${id}.Test${id} Main
+ } result] : [set result ""]}] $result
+} -cleanup {
+ cleanupDb $fileName
+
+ unset -nocomplain result code results errors sql dataSource id db fileName
+} -constraints \
+{eagle monoBug28 command.sql compile.DATA SQLite System.Data.SQLite} -match \
+regexp -result {^Ok System#CodeDom#Compiler#CompilerResults#\d+ \{\} 0 \{\}$}}
+
+###############################################################################
+
+runSQLiteTestEpilogue
+runTestEpilogue
Index: readme.htm
==================================================================
--- readme.htm
+++ readme.htm
@@ -4,11 +4,11 @@
ADO.NET SQLite Data Provider
Version 1.0.83.0 December XX, 2012 (release scheduled)
-Using SQLite 3.7.15
+Using SQLite 3.7.15.1
Originally written by Robert Simpson
Released to the public domain, use at your own risk!
Official provider website: http://system.data.sqlite.org/
Legacy versions: http://sqlite.phxsoftware.com/
@@ -188,11 +188,11 @@
1.0.83.0 - December XX, 2012
- - Updated to SQLite 3.7.15.
+ - Updated to SQLite 3.7.15.1.
- Add Visual Studio 2012 support to all the applicable solution/project files, their associated supporting files, and the test suite.
- Add Visual Studio 2012 support to the redesigned designer support installer.
- Allow opened connections to skip adding the extension functions included in the interop assembly via the new NoExtensionFunctions connection flag.
- Support loading of SQLite extensions via the new EnableExtensions and LoadExtension methods of the SQLiteConnection class. Pursuant to [17045010df].
- Remove one set of surrounding single or double quotes from property names and values parsed from the connection string. Fix for [b4cc611998].
Index: www/news.wiki
==================================================================
--- www/news.wiki
+++ www/news.wiki
@@ -4,11 +4,11 @@
1.0.83.0 - December XX, 2012 (release scheduled)
- - Updated to [http://www.sqlite.org/releaselog/3_7_15.html|SQLite 3.7.15].
+ - Updated to [http://www.sqlite.org/releaselog/3_7_15_1.html|SQLite 3.7.15.1].
- Add Visual Studio 2012 support to all the applicable solution/project files, their associated supporting files, and the test suite.
- Add Visual Studio 2012 support to the redesigned designer support installer.
- Allow opened connections to skip adding the extension functions included in the interop assembly via the new NoExtensionFunctions connection flag.
- Support loading of SQLite extensions via the new EnableExtensions and LoadExtension methods of the SQLiteConnection class. Pursuant to [17045010df].
- Remove one set of surrounding single or double quotes from property names and values parsed from the connection string. Fix for [b4cc611998].