Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Difference From c5ddcaede44cb560
To eab7df35a4ef37ab
2017-12-07
| | |
01:27 |
|
check-in: c98795a9a2 user: mistachkin tags: trunk
|
00:57 |
|
check-in: eab7df35a4 user: mistachkin tags: trunk
|
2017-12-06
| | |
23:53 |
|
check-in: 3f2760ab0f user: mistachkin tags: trunk
|
2017-10-17
| | |
19:59 |
|
check-in: 1f07d53a90 user: mistachkin tags: trunk
|
18:09 |
|
check-in: c5ddcaede4 user: mistachkin tags: trunk
|
08:41 |
|
check-in: a7124e2dad user: mistachkin tags: trunk
|
| | |
Changes to Doc/Extra/Core/lang_detach.html.
︙ | | |
103
104
105
106
107
108
109
110
111
112
113
|
103
104
105
106
107
108
109
110
111
|
-
-
|
When not in <a href="sharedcache.html">shared cache mode</a>,
it is possible to have the same database file attached multiple times using
different names, and detaching one connection to a file will leave the
others intact.</p>
In <a href="sharedcache.html">shared cache mode</a>, attempting to attach the same database file more
than once results in an error.
<p>This statement will fail if SQLite is in the middle of a transaction.</p>
|
Changes to Doc/Extra/Core/pragma.html.
︙ | | |
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
-
+
|
SQL statements. Whether or not the pragma runs during sqlite3_prepare()
or sqlite3_step() depends on the pragma and on the specific release
of SQLite.
<li>The pragma command is specific to SQLite and is
not compatible with any other SQL database engine.
</ul>
<p>The C-language API for SQLite provides the <a href="c3ref/c_fcntl_busyhandler.html#sqlitefcntlpragma">SQLITE_FCNTL_PRAGMA</a>
<p>The C-language API for SQLite provides the <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlpragma">SQLITE_FCNTL_PRAGMA</a>
<a href="c3ref/file_control.html">file control</a> which gives <a href="vfs.html">VFS</a> implementations the
opportunity to add new PRAGMA statements or to override the meaning of
built-in PRAGMA statements.</p>
<hr /><a name="syntax"></a>
<h2>PRAGMA command syntax</h2>
|
︙ | | |
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
|
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
|
-
+
|
</pre></blockquote>
<p>
Additional notes:
<ul>
<li><p>
Table-valued functions exist only for built-in PRAGMAs, not for PRAGMAs
defined using the <a href="c3ref/c_fcntl_busyhandler.html#sqlitefcntlpragma">SQLITE_FCNTL_PRAGMA</a> file control.
defined using the <a href="c3ref/c_fcntl_begin_atomic_write.html#sqlitefcntlpragma">SQLITE_FCNTL_PRAGMA</a> file control.
<li><p>
Table-valued functions exist only for PRAGMAs that return results and
that have no side-effects.
<li><p>
This feature could be used to implement
<a href="https://en.wikipedia.org/wiki/Information_schema">information schema</a>
by first creating a separate schema using
|
︙ | | |
Changes to Doc/Extra/Provider/dbfactorysupport.html.
︙ | | |
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
-
+
|
<configuration>
<system.data>
<DbProviderFactories>
<remove invariant="System.Data.SQLite"/>
<add name="SQLite Data Provider" invariant="System.Data.SQLite"
description=".NET Framework Data Provider for SQLite"
type="System.Data.SQLite.SQLiteFactory, System.Data.SQLite,
Version=1.0.106.0, Culture=neutral,
Version=1.0.107.0, Culture=neutral,
PublicKeyToken=db937bc2d44ff139"/>
</DbProviderFactories>
</system.data>
</configuration>
</pre>
</div>
<p>
|
︙ | | |
Changes to Doc/Extra/Provider/environment.html.
︙ | | |
192
193
194
195
196
197
198
199
200
201
202
203
204
205
|
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
|
+
+
+
+
+
+
|
<td>If this environment variable is set [to anything], it will be
used instead of the application base directory by the native
library pre-loader. This environment variable can be especially
useful in ASP.NET and other hosted environments where direct control
of the location of the managed assemblies is not under the control
of the application.</td>
</tr>
<tr valign="top">
<td>PreLoadSQLite_BreakIntoDebugger</td>
<td>If this configuration variable is set [to anything], the native
library pre-loader subsystem will attempt to give the interactive
user an opportunity to attach a debugger to the current process.</td>
</tr>
<tr valign="top">
<td>PreLoadSQLite_LibraryFileNameOnly</td>
<td>If this environment variable is set [to anything], it will be
used as the base file name (without directory information) for the
native SQLite library to be pre-loaded (e.g. "sqlite3.dll" or
"libsqlite3.so.0").</td>
</tr>
|
︙ | | |
Changes to Doc/Extra/Provider/version.html.
︙ | | |
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
-
+
-
+
+
+
+
+
+
+
+
+
+
|
</td>
</tr>
</table>
</div>
<div id="mainSection">
<div id="mainBody">
<h1 class="heading">Version History</h1>
<p><b>1.0.106.0 - October XX, 2017 <font color="red">(release scheduled)</font></b></p>
<p><b>1.0.107.0 - January XX, 2018 <font color="red">(release scheduled)</font></b></p>
<ul>
<li>Updated to <a href="https://www.sqlite.org/draft/releaselog/3_21_0.html">SQLite 3.21.0</a>.</li>
<li>Updated to <a href="https://www.sqlite.org/draft/releaselog/3_22_0.html">SQLite 3.22.0</a>.</li>
<li>Improve performance of type name lookups by removing superfluous locking and string creation.</li>
<li>Fix some internal memory accounting present only in the debug build.</li>
<li>Make sure inbound native delegates are unhooked before adding a connection to the pool. Fix for <a href="https://system.data.sqlite.org/index.html/info/0e48e80333">[0e48e80333]</a>.</li>
<li>Add preliminary support for the .NET Framework 4.7.1.</li>
</ul>
<p><b>1.0.106.0 - November 2, 2017</b></p>
<ul>
<li>Updated to <a href="https://www.sqlite.org/releaselog/3_21_0.html">SQLite 3.21.0</a>.</li>
<li>Add full support for the native <a href="https://www.sqlite.org/sessionintro.html">session</a> extension.</li>
<li>Add BindDecimalAsText and GetDecimalAsText connection flags to force binding and returning of decimal values as text. Pursuant to <a href="https://system.data.sqlite.org/index.html/info/b167206ad3">[b167206ad3]</a>.</li>
<li>Add BindInvariantDecimal and GetInvariantDecimal connection flags, enabled by default, to force binding and returning of decimal values using the invariant culture. Pursuant to <a href="https://system.data.sqlite.org/index.html/info/b167206ad3">[b167206ad3]</a>. <b>** Potentially Incompatible Change **</b></li>
<li>Add preliminary support for Visual Studio 2017 and the .NET Framework 4.7. This does <b>not</b> include support for the design-time components for Visual Studio, see <a href="https://system.data.sqlite.org/index.html/info/8292431f51">[8292431f51]</a>.</li>
</ul>
<p><b>1.0.105.2 - June 12, 2017</b></p>
<ul>
<li>Updated to <a href="https://www.sqlite.org/releaselog/3_19_3.html">SQLite 3.19.3</a>.</li>
<li>Fix issues that prevented SQLiteBlob creation from succeeding for tables that did not have an integer primary key.</li>
</ul>
|
︙ | | |
Changes to Doc/Extra/Provider/welcome.html.
︙ | | |
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
|
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
|
-
+
|
<font color="red">
Itanium processor support not currently included.
</font>
</p>
<h1 class="heading">Distributing the Binaries (Compact Framework)</h1>
<p>Both the <b>System.Data.SQLite.DLL </b>and <b>SQLite.Interop.XXX.DLL</b> files
must be deployed on the Compact Framework. The XXX is the build number of
the System.Data.SQLite library (e.g. "106"). The
the System.Data.SQLite library (e.g. "107"). The
<b>SQLite.Interop.XXX.DLL</b> file is a fully native assembly compiled for
the ARM processor, and System.Data.SQLite is the fully-managed Compact
Framework assembly.</p>
<hr />
<div id="footer">
<p>
<a href="mailto:sqlite-users@mailinglists.sqlite.org?subject=SQLite.NET%20Class%20Library%20Documentation%20Feedback:%20Welcome">
|
︙ | | |
Changes to Doc/SQLite.NET.chm.
cannot compute difference between binary files
Changes to Doc/Special/Core/vtab.html.
︙ | | |
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
|
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
|
-
+
|
been reported up to the application.
</p><p>
If the xCreate method is omitted (left as a NULL pointer) then the
virtual table is an <a href="vtab.html#epoonlyvtab">eponymous-only virtual table</a>. New instances of
the virtual table cannot be created using <a href="lang_createvtab.html">CREATE VIRTUAL TABLE</a> and the
virtual table can only be used via its module name.
Note that SQLite versions prior to 3.9.0 do not understand
Note that SQLite versions prior to 3.9.0 (2015-10-14) do not understand
eponymous-only virtual tables and will segfault if an attempt is made
to <a href="lang_createvtab.html">CREATE VIRTUAL TABLE</a> on an eponymous-only virtual table because
the xCreate method was not checked for null.
</p><p>
If the xCreate method is the exact same pointer as the <a href="vtab.html#xconnect">xConnect</a> method,
that indicates that the virtual table does not need to initialize backing
|
︙ | | |
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
|
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
|
-
-
+
+
+
-
-
-
+
+
+
+
+
|
virtual table. Enforcement is the responsibility of the underlying
virtual table implementation. But SQLite does assume that the PRIMARY KEY
constraint is valid - that the identified columns really are UNIQUE and
NOT NULL - and it uses that assumption to optimize queries against the
virtual table.
</p><p>The rowid column is not accessible on a
WITHOUT ROWID virtual table (of course). Furthermore, since the
<a href="vtab.html#xupdate">xUpdate</a> method depends on having a valid rowid, the <a href="vtab.html#xupdate">xUpdate</a> method
WITHOUT ROWID virtual table (of course).
</p><p>The <a href="vtab.html#xupdate">xUpdate</a> method was originally designed around having a
must be NULL for a WITHOUT ROWID virtual table. That in turn means that
WITHOUT ROWID virtual tables must be read-only.
<a href="lang_createtable.html#rowid">ROWID</a> as a single value. The <a href="vtab.html#xupdate">xUpdate</a> method has been expanded to
accommodate an arbitrary PRIMARY KEY in place of the ROWID, but the
PRIMARY KEY must still be only one column. For this reason, SQLite
will reject any WITHOUT ROWID virtual table that has more than one
PRIMARY KEY column and a non-NULL xUpdate method.
<a name="xconnect"></a>
</p><h2 id="the_xconnect_method"><span>2.2. </span>The xConnect Method</h2>
<div class="codeblock"><pre>int (*xConnect)(sqlite3*, void *pAux,
int argc, char **argv,
|
︙ | | |
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
|
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
|
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
version - perhaps comparing the value returned from <a href="c3ref/libversion.html">sqlite3_libversion_number()</a>
against constants 3008002, 3009000, and/or 3010000. The result of attempting
to access these fields in an sqlite3_index_info structure created by an
older version of SQLite are undefined.
</p><p>In addition, there are some defined constants:
</p><div class="codeblock"><pre>#define SQLITE_INDEX_CONSTRAINT_EQ 2
#define SQLITE_INDEX_CONSTRAINT_GT 4
#define SQLITE_INDEX_CONSTRAINT_LE 8
#define SQLITE_INDEX_CONSTRAINT_LT 16
#define SQLITE_INDEX_CONSTRAINT_GE 32
#define SQLITE_INDEX_CONSTRAINT_MATCH 64
#define SQLITE_INDEX_CONSTRAINT_LIKE 65 /* 3.10.0 and later only */
#define SQLITE_INDEX_CONSTRAINT_GLOB 66 /* 3.10.0 and later only */
#define SQLITE_INDEX_CONSTRAINT_REGEXP 67 /* 3.10.0 and later only */
#define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */
</p><div class="codeblock"><pre>#define SQLITE_INDEX_CONSTRAINT_EQ 2
#define SQLITE_INDEX_CONSTRAINT_GT 4
#define SQLITE_INDEX_CONSTRAINT_LE 8
#define SQLITE_INDEX_CONSTRAINT_LT 16
#define SQLITE_INDEX_CONSTRAINT_GE 32
#define SQLITE_INDEX_CONSTRAINT_MATCH 64
#define SQLITE_INDEX_CONSTRAINT_LIKE 65 /* 3.10.0 and later */
#define SQLITE_INDEX_CONSTRAINT_GLOB 66 /* 3.10.0 and later */
#define SQLITE_INDEX_CONSTRAINT_REGEXP 67 /* 3.10.0 and later */
#define SQLITE_INDEX_CONSTRAINT_NE 68 /* 3.21.0 and later */
#define SQLITE_INDEX_CONSTRAINT_ISNOT 69 /* 3.21.0 and later */
#define SQLITE_INDEX_CONSTRAINT_ISNOTNULL 70 /* 3.21.0 and later */
#define SQLITE_INDEX_CONSTRAINT_ISNULL 71 /* 3.21.0 and later */
#define SQLITE_INDEX_CONSTRAINT_IS 72 /* 3.21.0 and later */
#define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */
</pre></div>
<p>The SQLite core calls the xBestIndex method when it is compiling a query
that involves a virtual table. In other words, SQLite calls this method
when it is running <a href="c3ref/prepare.html">sqlite3_prepare()</a> or the equivalent.
By calling this method, the
SQLite core is saying to the virtual table that it needs to access
|
︙ | | |
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
|
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
|
-
-
+
+
+
-
-
+
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
+
+
-
+
+
|
into the virtual table. If argv[1] is an SQL NULL, then the implementation
must choose a rowid for the newly inserted row. Subsequent argv[]
entries contain values of the columns of the virtual table, in the
order that the columns were declared. The number of columns will
match the table declaration that the <a href="vtab.html#xconnect">xConnect</a> or <a href="vtab.html#xcreate">xCreate</a> method made
using the <a href="c3ref/declare_vtab.html">sqlite3_declare_vtab()</a> call. All hidden columns are included.
</p><p>When doing an insert without a rowid (argc>1, argv[1] is an SQL NULL), the
implementation must set *pRowid to the rowid of the newly inserted row;
</p><p>When doing an insert without a rowid (argc>1, argv[1] is an SQL NULL),
on a virtual table that uses ROWID (but not on a <a href="vtab.html#worid">WITHOUT ROWID virtual table</a>,
the implementation must set *pRowid to the rowid of the newly inserted row;
this will become the value returned by the <a href="c3ref/last_insert_rowid.html">sqlite3_last_insert_rowid()</a>
function. Setting this value in all the other cases is a harmless no-op;
the SQLite engine ignores the *pRowid return value if argc==1 or
argv[1] is not an SQL NULL.
</p><p>Each call to xUpdate will fall into one of cases shown below.
Not that references to <b>argv[i]</b> mean the SQL value
held within the argv[i] object, not the argv[i]
object itself.
</p><blockquote>
<dl>
<dt><b>argc = 1</b>
</dt><dd><p>The single row with rowid equal to argv[0] is deleted. No insert occurs.
<dt><b>argc = 1 <br> argv[0] ≠ NULL</b>
</dt><dd><p>
The single row with rowid or PRIMARY KEY equal to argv[0] is deleted.
No insert occurs.
</p></dd><dt><b>argc > 1 <br> argv[0] = NULL</b>
</dt><dd><p>
</dt><dd><p>A new row is inserted with a rowid argv[1] and column values in
argv[2] and following. If argv[1] is an SQL NULL,
the a new unique rowid is generated automatically.
A new row is inserted with column values taken from
argv[2] and following. In a rowid virtual table, if argv[1] is an SQL NULL,
then a new unique rowid is generated automatically. The argv[1] will be NULL
for a <a href="vtab.html#worid">WITHOUT ROWID virtual table</a>, in which case the implementation should
take the PRIMARY KEY value from the appropiate column in argv[2] and following.
</p></dd><dt><b>argc > 1 <br> argv[0] ≠ NULL <br> argv[0] = argv[1]</b>
</dt><dd><p>
</dt><dd><p>The row with rowid argv[0] is updated with new values
in argv[2] and following parameters.
The row with rowid or PRIMARY KEY argv[0] is updated with new values
in argv[2] and following parameters.
</p></dd><dt><b>argc > 1 <br> argv[0] ≠ NULL <br> argv[0] ≠ argv[1]</b>
</dt><dd><p> The row with rowid argv[0] is updated with rowid argv[1]
</dt><dd><p> The row with rowid or PRIMARY KEY argv[0] is updated with
the rowid or PRIMARY KEY in argv[1]
and new values in argv[2] and following parameters. This will occur
when an SQL statement updates a rowid, as in the statement:
</p><blockquote>
<a href="lang_update.html">UPDATE</a> table SET rowid=rowid+1 WHERE ...;
</blockquote>
</dd></dl>
</blockquote>
|
︙ | | |
Changes to Externals/Eagle/bin/Eagle.dll.
cannot compute difference between binary files
Changes to Externals/Eagle/bin/EagleShell.exe.
cannot compute difference between binary files
Changes to Externals/Eagle/bin/EagleShell32.exe.
cannot compute difference between binary files
Changes to Externals/Eagle/bin/x64/Spilornis.dll.
cannot compute difference between binary files
Changes to Externals/Eagle/bin/x86/Spilornis.dll.
cannot compute difference between binary files
Changes to Externals/Eagle/lib/Eagle1.0/init.eagle.
︙ | | |
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
-
+
+
|
namespace eval ::Eagle {
#
# NOTE: This is the procedure that detects whether or not we are
# running in Eagle (otherwise, we are running in vanilla Tcl).
# This procedure must function correctly in both Tcl and Eagle
# and must return non-zero only when running in Eagle. This
# procedure must be defined in this script file because it is
# needed while this script file is being evaluated.
# needed while this script file is being evaluated. The same
# procedure is also defined in the "platform.eagle" file.
#
# <bootstrap>
proc isEagle {} {
#
# NOTE: Nothing too fancy or expensive should be done in here. In
# theory, use of this routine should be rare; however, in
# practice, this routine is actually used quite a bit (e.g.
|
︙ | | |
Changes to Externals/Eagle/lib/Eagle1.0/object.eagle.
︙ | | |
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
|
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
-
-
-
+
|
#
# NOTE: This procedure returns a string obtained by using the specified
# value as an opaque object handle -OR- a default value (e.g. an
# empty string) if the value is not a valid opaque object handle.
#
proc getStringFromObjectHandle { value {default ""} } {
global null
if {[isObjectHandle $value] && $value ne $null} then {
if {[isNonNullObjectHandle $value]} then {
return [object invoke $value ToString]
}
if {[string length $default] > 0} then {
return $default
}
|
︙ | | |
171
172
173
174
175
176
177
178
179
180
181
182
183
184
|
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
|
+
+
+
+
+
+
+
+
+
+
|
if {[llength $objects] == 1 && [lindex $objects 0] eq $value} then {
return true
}
return false
}
#
# NOTE: This procedure returns non-zero if the specified value can be used
# as an opaque object handle -AND- the value does not represent a null
# value.
#
proc isNonNullObjectHandle { value } {
global null
return [expr {[isObjectHandle $value] && $value ne $null}]
}
#
# NOTE: This procedure returns non-zero if the specified name represents
# a valid CLR type name.
#
proc isManagedType { name } {
if {[llength [info commands object]] > 0} then {
|
︙ | | |
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
|
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
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
326
327
328
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
}
}
}
}
return false
}
#
# NOTE: This procedure evaluates a script asynchronously and optionally
# notifies another script upon its completion. The first argument
# is the notification script; if an empty string, there will be no
# notification when asynchronous script evaluation is completed.
# If there is exactly one more argument, it is evaluated verbatim;
# otherwise, all remaining arguments are concatenated via [concat]
# and evaluated asynchronously. If the script cannot be submitted
# for asynchronous evaluation, a script error will be raised.
#
proc evalAsync { doneScript args } {
#
# NOTE: This procedure requires the [object] command in order to work.
# If it is not available, bail out now.
#
if {[llength [info commands object]] == 0} then {
error "cannot eval async: missing \[object\] command"
}
#
# NOTE: If the core library was not compiled with thread-safety enabled,
# this procedure cannot be used because it could corrupt the state
# of the interpreter.
#
if {[lsearch -exact -- \
$::eagle_platform(compileOptions) THREADING] == -1} then {
error "cannot eval async: library missing THREADING compile-option"
}
#
# NOTE: If there is more than one script optional argument, use [concat]
# to build up the final script; otherwise, use the single argument
# verbatim. This mirrors the behavior of [eval].
#
if {[llength $args] > 1} then {
set asyncScript [concat $args]
} else {
set asyncScript [lindex $args 0]
}
#
# NOTE: Is there a script to be evaluated when the asynchronous script
# evaluation is complete? If so, build an anonymous procedure
# that wraps it; otherwise, set the callback argument to null, so
# the core marshaller will handle the lack of a callback correctly.
# The context argument will be added to this script prior to it
# being evaluated; however, it is not actually used by this script.
#
if {[string length $doneScript] > 0} then {
set callback [list -callbackflags {+ResetCancel FireAndForget} \
-- apply [list [list script context] {uplevel 1 $script}] \
$doneScript]
} else {
set callback null
}
#
# NOTE: Initialize the local variable that will be used to receive the
# script error, if any.
#
set error null
#
# NOTE: Attempt to submit the script for asynchonous evaluation. Use
# the dynamic callback mechanism with the anonymous procedure we
# constructed above.
#
set code [object invoke -verbose \
-marshalflags +DynamicCallback -- Interpreter.GetActive \
EvaluateScript $asyncScript $callback null error]
#
# NOTE: Check the return code, which only indicates if the script was
# actually submitted for asynchronous evaluation, to make sure
# it was successful. If not, raise a script error.
#
if {$code ne "Ok"} then {
error [getStringFromObjectHandle $error]
}
#
# NOTE: Upon success, return an empty string. The actual script result
# will be sent to the callback script, if any.
#
return ""
}
#
# NOTE: Provide the Eagle "object" package to the interpreter.
#
package provide Eagle.Object \
[expr {[isEagle] ? [info engine PatchLevel] : "1.0"}]
}
|
Changes to Externals/Eagle/lib/Eagle1.0/pkgt.eagle.
︙ | | |
59
60
61
62
63
64
65
66
67
68
69
70
71
72
|
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
# NOTE: The URI where the Package Client Toolset may be downloaded.
#
variable packageToolsetUri; # DEFAULT: ${baseUri}/${packageToolsetUrn}
if {$force || ![info exists packageToolsetUri]} then {
set packageToolsetUri {${baseUri}/${packageToolsetUrn}}
}
#
# NOTE: The URN, relative to the base URI, where the TclKit DLL for
# a particular platform may be downloaded.
#
variable tclKitDllUrn; # DEFAULT: tclkit_dll_${platform}
if {$force || ![info exists tclKitDllUrn]} then {
set tclKitDllUrn {tclkit_dll_${platform}}
}
#
# NOTE: The URI where the TclKit DLL for a particular platform may
# be downloaded.
#
variable tclKitDllUri; # DEFAULT: ${baseUri}/${urn}
if {$force || ![info exists tclKitDllUri]} then {
set tclKitDllUri {${baseUri}/${urn}}
}
#
# NOTE: The URN, relative to the base URI, where the Harpy and Badge
# plugins for a particular build may be downloaded.
#
variable securityToolsetUrn; # DEFAULT: security_toolset_${platform}
if {$force || ![info exists securityToolsetUrn]} then {
set securityToolsetUrn {security_toolset_${platform}}
}
#
# NOTE: The URI where the Harpy and Badge plugins for a particular
# build may be downloaded.
#
variable securityToolsetUri; # DEFAULT: ${baseUri}/${urn}
if {$force || ![info exists securityToolsetUri]} then {
set securityToolsetUri {${baseUri}/${urn}}
}
#
# NOTE: The URN, relative to the base URI, where license certificate
# requests should be sent.
#
variable licenseUrn; # DEFAULT: get_license_01
if {$force || ![info exists licenseUrn]} then {
set licenseUrn get_license_01
}
#
# NOTE: The URI where license certificate requests should be sent.
#
variable licenseUri; # DEFAULT: ${baseUri}/${urn}
if {$force || ![info exists licenseUri]} then {
set licenseUri {${baseUri}/${urn}}
}
}
#
# NOTE: This procedure attempts to download and extract the Package Client
# Toolset. The optional channel argument is the output channel where
# diagnostic information is sent. The optional quiet argument should
# be non-zero to prevent diagnostic information from being emitted.
|
︙ | | |
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
|
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
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
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
writeFile $fileName $data
}
set extractDirectory [extractZipArchive $fileName $extractRootDirectory]
return [file join $extractDirectory pkgr_an_d client 1.0 neutral]
}
#
# NOTE: This procedure attempts to download and extract a native TclKit DLL
# for the current platform. The optional channel argument is the
# output channel where diagnostic information is sent. The optional
# quiet argument should be non-zero to prevent diagnostic information
# from being emitted. This procedure may raise script errors. The
# return value is the full path to the native TclKit DLL file.
#
proc downloadAndExtractNativeTclKitDll {
{channel stdout} {quiet false} } {
setupPackageToolsetVars false
variable baseUri
variable tclKitDllUri
variable tclKitDllUrn
package require Eagle.Test
package require Eagle.Unzip
set extractRootDirectory [getTemporaryPath]
set directory [file join $extractRootDirectory [appendArgs \
ea-td-di- [pid] - [string trim [clock seconds] -]]]
set platform [machineToPlatform $::tcl_platform(machine) true]
set urn [subst $tclKitDllUrn]; set uri [subst $tclKitDllUri]
set fileName [getTemporaryFileName]
if {[isEagle]} then {
uri download $uri $fileName
} else {
package require Eagle.Tools.Common
namespace import \
::Eagle::Tools::Common::getFileViaHttp \
::Eagle::Tools::Common::writeFile
set data [getFileViaHttp $uri 20 $channel $quiet -binary true]
writeFile $fileName $data
}
set extractDirectory [extractZipArchive $fileName $extractRootDirectory]
return [lindex [glob -nocomplain \
[file join $extractDirectory lib *[info sharedlibextension]]] 0]
}
#
# NOTE: This procedure attempts to download and extract the Security Toolset,
# which includes the Harpy and Badge plugins. The optional channel
# argument is the output channel where diagnostic information is sent.
# The optional quiet argument should be non-zero to prevent diagnostic
# information from being emitted. This procedure may raise script
# errors. The return value is the full path to a directory that should
# contain the "Harpy1.0" and "Badge1.0" plugin directories.
#
proc downloadAndExtractSecurityToolset {
{channel stdout} {quiet false} } {
setupPackageToolsetVars false
variable baseUri
variable securityToolsetUri
variable securityToolsetUrn
package require Eagle.Test
package require Eagle.Unzip
set extractRootDirectory [getTemporaryPath]
set directory [file join $extractRootDirectory [appendArgs \
ea-st-di- [pid] - [string trim [clock seconds] -]]]
if {[info exists ::eagle_platform(text)]} then {
set platform [string tolower $::eagle_platform(text)]
} else {
set platform [string tolower netFx20]; # TODO: Good default?
}
set dir [string map [list fx ""] $platform]; # netfx20 -> net20
set urn [subst $securityToolsetUrn]; set uri [subst $securityToolsetUri]
set fileName [getTemporaryFileName]
if {[isEagle]} then {
uri download $uri $fileName
} else {
package require Eagle.Tools.Common
namespace import \
::Eagle::Tools::Common::getFileViaHttp \
::Eagle::Tools::Common::writeFile
set data [getFileViaHttp $uri 20 $channel $quiet -binary true]
writeFile $fileName $data
}
set extractDirectory [extractZipArchive $fileName $extractRootDirectory]
return [file join $extractDirectory build $dir lib]
}
#
# NOTE: This procedure attempts to request a license certificate for Eagle,
# which includes the Harpy and Badge plugins. The optional channel
# argument is the output channel where diagnostic information is sent.
# The optional quiet argument should be non-zero to prevent diagnostic
# information from being emitted. This procedure may raise script
# errors. The return value is the fully qualified file name for the
# resulting license certificate.
#
# WARNING: This procedure will send the short name and display name of the
# currently logged on user to the Eagle license server as they are
# required for a new license certificate to be issued. Abuse of
# this service may result in a permanent ban from the service and
# revocation of any previously issued license certificates.
#
proc requestLicenseCertificate {
{channel stdout} {quiet false} } {
setupPackageToolsetVars false
variable baseUri
variable licenseUri
variable licenseUrn
package require Eagle.Test
set certificateRootDirectory [getTemporaryPath]
set processDirectoryPrefix [file join $certificateRootDirectory \
[appendArgs ea-lc-di- [pid] -]]
#
# NOTE: Issue a warning to the user if it appears there is already a
# license certificate in a temporary directory that was created
# by this process. Hopefully, this should reduce the number of
# duplicate requests.
#
set varName1 YES_PLEASE_FORCE_A_LICENSE_CERTIFICATE_REQUEST
if {![info exists ::env($varName1)] && [isWindows]} then {
set processFileNames [list]
foreach processDirectory [findDirectories \
[appendArgs $processDirectoryPrefix *]] {
eval lappend processFileNames [findFiles \
[file join $processDirectory *]]
}
if {[llength $processFileNames] > 0} then {
set warningCommand [list]
if {[isEagle]} then {
lappend warningCommand host result Error
} else {
lappend warningCommand puts stderr
}
set varName2 Master_Certificate
lappend warningCommand [appendArgs \
"One or more temporary license certificate files " \
"apparently belonging to this process were found. " \
"If you wish to override this warning and force a " \
"new license certificate request to be submitted, " \
"set the \"" $varName1 "\" environment variable " \
"(to anything); however, please keep in mind that " \
"requesting too many license certificates and/or " \
"requesting license certificates too fast MAY be " \
"considered abusive behavior. Upon success, the " \
"resulting temporary license certificate file " \
"SHOULD be saved to a secure location on the local " \
"file system, e.g. the home directory associated " \
"with the user submitting the license certificate " \
"request. The fully qualified file name for the " \
"temporary license certificate MUST used as the " \
"value for the \"" $varName2 "\" environment " \
"variable; otherwise, it MAY NOT be found when one " \
"of its associated plugins attempts to load.\n"]
#
# NOTE: Emit our carefully worded license warning message.
#
eval $warningCommand
#
# NOTE: Return the first pre-existing license certificate file
# name that was found.
#
return [lindex $processFileNames 0]
}
}
set directory [appendArgs \
$processDirectoryPrefix [string trim [clock seconds] -]]
set urn [subst $licenseUrn]; set uri [subst $licenseUri]
if {![isEagle] || [catch {
object invoke System.Security.Principal.WindowsIdentity \
GetCurrent.Name
} userName]} then {
#
# HACK: Fallback to using a value from the "tcl_platform" array.
# For native Tcl, this is the only choice. For Eagle, it
# is used as a fallback.
#
if {[info exists ::tcl_platform(user)]} then {
set userName $::tcl_platform(user)
} else {
set userName "NO USER NAME"
}
}
if {![isEagle] || [catch {
object load System.DirectoryServices.AccountManagement
object invoke \
System.DirectoryServices.AccountManagement.UserPrincipal \
Current.DisplayName
} displayName]} then {
#
# HACK: Fallback to using a value from the "tcl_platform" array.
# This value is not set by native Tcl or Eagle; therefore,
# the user would have to set it manually prior to calling
# this procedure.
#
if {[info exists ::tcl_platform(userDisplayName)]} then {
set displayName $::tcl_platform(userDisplayName)
} else {
set displayName "NO DISPLAY NAME"
}
}
#
# NOTE: Add the necessary query parameters to the license request
# URI, making sure to properly escape their values.
#
if {[isEagle]} then {
append uri ?userName= [uri escape data $userName]
append uri &displayName= [uri escape data $displayName]
} else {
package require http 2.0
append uri ? [::http::formatQuery \
userName $userName displayName $displayName]
}
if {[isEagle]} then {
set data [uri download -inline $uri]
} else {
package require Eagle.Tools.Common
namespace import \
::Eagle::Tools::Common::getFileViaHttp \
::Eagle::Tools::Common::writeFile
set data [getFileViaHttp $uri 20 $channel $quiet -binary true]
package require Eagle.Auxiliary
}
if {[getDictionaryValue $data returnCode] ne "Ok"} then {
if {[string length $data] > 0} then {
error [appendArgs \
"request failed with error information: " $data]
} else {
error "request failed without providing error information"
}
}
set fileName [getTemporaryFileName]
writeFile $fileName [getDictionaryValue $data result]
set newFileName [file join $directory [file tail $fileName]]
file mkdir $directory; file copy $fileName $newFileName
file delete $fileName
return $newFileName
}
#
# NOTE: Provide the Eagle "package toolset" package to the interpreter.
#
package provide Eagle.Package.Toolset \
[expr {[isEagle] ? [info engine PatchLevel] : "1.0"}]
}
|
Changes to Externals/Eagle/lib/Eagle1.0/platform.eagle.
︙ | | |
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
-
+
+
|
# namespace if this script actually ends up being evaluated in Tcl.
#
namespace eval ::Eagle {
#
# NOTE: This is the procedure that detects whether or not we are running
# in Eagle (otherwise, it is assumed that we are running in vanilla
# Tcl). This procedure must work correctly in both Tcl and Eagle
# and must return non-zero only when running in Eagle.
# and must return non-zero only when running in Eagle. The same
# procedure is also defined in the "init.eagle" file.
#
proc isEagle {} {
#
# NOTE: Nothing too fancy or expensive should be done here. In theory,
# use of this procedure should be rare; however, in practice, this
# procedure is actually used quite a bit (e.g. by the test suite).
#
|
︙ | | |
Changes to Externals/Eagle/lib/Eagle1.0/safe.eagle.
︙ | | |
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
-
+
+
|
namespace eval ::Eagle {
#
# NOTE: This is the procedure that detects whether or not we are
# running in Eagle (otherwise, we are running in vanilla Tcl).
# This procedure must function correctly in both Tcl and Eagle
# and must return non-zero only when running in Eagle. This
# procedure must be defined in this script file because it is
# needed while this script file is being evaluated.
# needed while this script file is being evaluated. The same
# procedure is also defined in the "init.eagle" file.
#
# <bootstrap>
proc isEagle {} {
#
# NOTE: Nothing too fancy or expensive should be done in here. In
# theory, use of this routine should be rare; however, in
# practice, this routine is actually used quite a bit (e.g.
|
︙ | | |
Changes to Externals/Eagle/lib/Eagle1.0/test.eagle.
︙ | | |
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
|
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
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
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
#
# NOTE: Returns the results of [array get] in a well-defined order.
#
if {[string length $varName] == 0} then {
return [list]
}
#
# NOTE: Refer to the array in the context of the caller.
#
upvar 1 $varName array
#
# NOTE: Build the command that will sort the array names into order.
#
set command [list lsort]
if {$integer} then {lappend command -integer}
lappend command [array names array]
set result [list]
foreach name [eval $command] {
lappend result $name $array($name)
}
return $result
}
proc testResultGet { script } {
set code [catch {uplevel 1 $script} result]
return [expr {$code == 0 ? $result : "<error>"}]
}
proc testValueGet { varName {integer false} } {
#
# NOTE: Returns the results of [array get] in a well-defined order
# -OR- the value of the scalar variable.
#
if {[string length $varName] == 0} then {
return [list]
}
#
# NOTE: Is the specified variable (in the context of the caller) an
# array?
#
if {[uplevel 1 [list array exists $varName]]} then {
#
# NOTE: Refer to the array in the context of the caller.
#
upvar 1 $varName array
#
# NOTE: Build the command that will sort the array names into order.
#
set command [list lsort]
if {$integer} then {lappend command -integer}
lappend command [array names array]
set result [list]
foreach name [eval $command] {
lappend result $name $array($name)
}
} else {
#
# NOTE: Grab the value of the scalar variable in the context of the
# caller and then return both the name and the value.
#
set varValue [uplevel 1 [list set $varName]]
set result [list $varValue]
}
return $result
}
proc getFirstLineOfError { error } {
set error [string map [list \r\n \n] $error]
set index [string first \n $error]
if {$index != -1} then {
incr index -1
if {$index > 0} then {
return [string range $error 0 $index]
}
}
return $error
}
proc calculateBogoCops { {milliseconds 2000} {legacy false} } {
#
# NOTE: Verify that the number of milliseconds requested is greater than
# zero.
#
if {$milliseconds <= 0} then {
|
︙ | | |
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
|
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
|
-
+
|
return 0
}
} finally {
if {[info exists event]} then {
catch {after cancel $event}
}
after flags =$flags
after flags [appendArgs = $flags]
}
} finally {
interp bgerror {} $bgerror
}
} finally {
interp readylimit {} $readylimit
}
|
︙ | | |
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
|
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
|
+
+
+
+
+
+
+
+
|
}
proc isBreakOnLeak {} {
return [expr {[info exists ::test_break_on_leak] && \
[string is boolean -strict $::test_break_on_leak] && \
$::test_break_on_leak}]
}
proc isBreakOnDemand {} {
global env
return [expr {[info exists env(isBreakOnDemand)] && \
[string is boolean -strict $env(isBreakOnDemand)] && \
$env(isBreakOnDemand)}]
}
proc isStopOnFailure {} {
return [expr {[info exists ::test_stop_on_failure] && \
[string is boolean -strict $::test_stop_on_failure] && \
$::test_stop_on_failure}]
}
|
︙ | | |
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
|
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
|
+
+
+
+
+
+
+
+
|
#
if {$code != 0 && [isStopOnFailure]} then {
tresult Error "OVERALL RESULT: STOP-ON-FAILURE\n"
unset -nocomplain ::test_suite_running
error ""; # no message
}
#
# NOTE: Unless forbidden from doing so, attempt to automatically
# cleanup any stale (e.g. temporary) object references now.
#
if {![info exists ::no(cleanupReferences)]} then {
catch {object cleanup -references}
}
} else {
if {$error} then {
#
# HACK: Prevent spurious errors dealing with [test] command options
# that are missing from native Tcl.
#
set badOptionPattern {^bad option ".*?":\
|
︙ | | |
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
|
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
|
-
-
-
-
-
-
+
+
+
+
+
|
catch {set array(connections,$index) [llength [info connections]]}
catch {set array(transactions,$index) [llength [info transactions]]}
catch {set array(modules,$index) [llength [info modules]]}
catch {set array(delegates,$index) [llength [info delegates]]}
if {[llength [info commands tcl]] > 0} then {
catch {set array(tcl,$index) [tcl ready]}
}
catch {set array(tclInterps,$index) [llength [tcl interps]]}
catch {set array(tclThreads,$index) [llength [tcl threads]]}
catch {set array(tclCommands,$index) [llength [tcl command list]]}
catch {set array(tclInterps,$index) [llength [tcl interps]]}
catch {set array(tclThreads,$index) [llength [tcl threads]]}
catch {set array(tclCommands,$index) [llength [tcl command list]]}
}
#
# NOTE: Grab the number of active threads that are active because
# of ScriptThread object instances. This only works if Eagle
# is Beta 31 or higher.
#
catch {
set array(scriptThreads,$index) \
|
︙ | | |
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
|
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
|
-
+
+
+
+
+
+
+
+
+
|
#
set failed [list]
set leaked [list]
#
# NOTE: Process each file name we have been given by the caller...
#
set total [llength $fileNames]; set lastPercent -1
set total 0; set lastPercent -1
foreach fileName $fileNames {
#
# NOTE: If configured to break into the debugger before running the
# test file, do it now.
#
if {[isBreakOnDemand]} then {
testDebugBreak
}
#
# NOTE: In terms of files, not tests, what percent done are we now?
#
set percent [formatDecimal \
[expr {$total != 0 ? 100.0 * ($count / double($total)) : 100}]]
if {$percent != $lastPercent} then {
|
︙ | | |
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
|
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
|
+
+
+
+
+
+
+
+
+
+
+
|
#
# NOTE: Log that this test file has ended.
#
if {![info exists ::no(runEndFile)]} then {
tputs $channel [appendArgs "==== \"" $fileName "\" END\n"]
}
#
# NOTE: At this point, we know that another test file was
# processed successfully.
#
incr total
if {![info exists ::no(runPercent)]} then {
reportTestPercent $channel $percent \
$total [llength $failed] [llength $leaked]
}
#
# NOTE: Are we being prevented from waiting after the file?
#
if {![info exists ::no(postWait)]} then {
if {[info exists ::test_wait(post)] && \
[string is integer -strict $::test_wait(post)]} then {
if {![info exists ::no(runMetadata)]} then {
|
︙ | | |
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
|
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
|
-
+
|
# probably caused it to skip a bunch of tests -AND- the
# option to stop-testing-on-error is not enabled. That
# being said, we must not simply ignore the error. The
# overall results of the test suite run must now reflect
# the failure. Set a special variable for the epilogue
# to pick up on (later).
#
lappend ::test_suite_errors $error
lappend ::test_suite_errors [list $fileName $error]
}
}
#
# NOTE: We evaluated another test file.
#
incr count
|
︙ | | |
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
|
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
|
-
-
-
-
-
-
|
# NOTE: This entire file has been skipped. Record that fact in the
# test suite log file.
#
if {![info exists ::no(runNonTestFile)]} then {
tputs $channel [appendArgs \
"==== \"" $fileName "\" NON_TEST_FILE\n"]
}
#
# NOTE: This file does not actually count towards the total (i.e.
# it contains no actual tests).
#
incr total -1
}
#
# NOTE: In terms of files, not tests, what percent done are we now?
#
set percent [formatDecimal \
[expr {$total != 0 ? 100.0 * ($count / double($total)) : 100}]]
|
︙ | | |
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
|
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
|
-
-
-
-
-
-
|
#
# NOTE: This entire file has been skipped. Record that fact in the
# test suite log file.
#
if {![info exists ::no(runSkippedFile)]} then {
tputs $channel [appendArgs "==== \"" $fileName "\" SKIPPED\n"]
}
#
# NOTE: This file does not actually count towards the total (i.e.
# it is part of the test suite infrastructure).
#
incr total -1
}
#
# NOTE: In terms of files, not tests, what percent done are we now?
#
set percent [formatDecimal \
[expr {$total != 0 ? 100.0 * ($count / double($total)) : 100}]]
|
︙ | | |
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
|
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
|
+
+
+
+
+
+
|
tputs $channel [appendArgs \
"---- purge \"" $name "\" results: " $result \n]
catch {uplevel 1 [list debug cleanup]} result
tputs $channel [appendArgs \
"---- cleanup \"" $name "\" results: " $result \n]
catch {uplevel 1 [list object invoke -flags +NonPublic \
Eagle._Components.Private.ProcessOps ClearOutputCache]} result
tputs $channel [appendArgs \
"---- ProcessOps cleanup results: " $result \n]
catch {uplevel 1 [list object invoke -flags +NonPublic \
Eagle._Components.Private.EnumOps ClearEnumCache]} result
tputs $channel [appendArgs \
"---- EnumOps cleanup results: " $result \n]
|
︙ | | |
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
|
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
|
+
+
-
+
-
+
-
-
+
+
+
+
|
# zero.
#
if {$milliseconds <= 0} then {
error "number of milliseconds must be greater than zero"
}
#
# NOTE: Force any [vwait] that may be in the contained script to stop
# when it hits the script cancellation, saving the preexisting
# NOTE: Save the current background error handler for later restoration
# event wait flags first for later restoration.
# and then reset the current background error handler to nothing.
#
set savedEventWaitFlags [object invoke -flags +NonPublic \
set bgerror [interp bgerror {}]
interp bgerror {} ""
Interpreter.GetActive eventWaitFlags]
object invoke -flags +NonPublic Interpreter.GetActive \
eventWaitFlags [combineFlags $savedEventWaitFlags StopOnError]
try {
#
# NOTE: Save the current [after] flags for later restoration and then
# reset them to process events immediately.
#
set flags [after flags]
|
︙ | | |
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
|
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
|
-
-
+
+
-
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
# NOTE: First, make sure that the [after] event queue for the
# interpreter is totally empty.
#
catch {foreach id [after info] {after cancel $id}}
#
# NOTE: Schedule the event to cancel the script we are about to
# evaluate, capturing the name so we can cancel it later, if
# necessary.
# evaluate, capturing the name so we can cancel it later,
# if necessary.
#
set event [after $milliseconds [list interp cancel]]
#
# NOTE: Evaluate the script in the context of the caller.
#
uplevel 1 $script
} result]
} finally {
if {[info exists event]} then {
catch {after cancel $event}
}
after flags =$flags
after flags [appendArgs = $flags]
}
} finally {
if {[info exists savedEventWaitFlags]} then {
object invoke -flags +NonPublic Interpreter.GetActive \
eventWaitFlags $savedEventWaitFlags
}
}
}
interp bgerror {} $bgerror
proc vwaitWithTimeout { varName {milliseconds 2000} } {
#
# NOTE: Verify that the number of milliseconds requested is positive or
# zero.
#
if {$milliseconds < 0} then {
error "number of milliseconds cannot be negative"
}
try {
#
# NOTE: Schedule the event to cancel the script we are about to
# evaluate, capturing the name so we can cancel it later,
# if necessary.
#
set event [after $milliseconds [list interp cancel]]
if {[catch {
#
# NOTE: Refer to the specified variable in the context of our
# caller.
#
upvar 1 $varName variable
#
# NOTE: Wait for the variable to be changed -OR- for the wait
# to be canceled.
#
vwait -eventwaitflags {+NoBgError StopOnError} -- variable
}] == 0} then {
#
# NOTE: The wait completed successfully, the variable should
# have been changed.
#
return true
} else {
#
# NOTE: The wait did not complete, it may have been canceled
# and the variable may or may not have been changed.
#
return false
}
} finally {
if {[info exists event]} then {
catch {after cancel $event}
}
}
}
proc tclLoadForTest { {varName ""} {findFlags ""} {loadFlags ""} } {
if {[string length $varName] > 0} then {
upvar 1 $varName loaded
}
|
︙ | | |
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
|
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
|
-
+
|
fixConstraints fixTimingConstraints calculateBogoCops \
calculateRelativePerformance formatTimeStamp formatElapsedTime \
sourceIfValid processTestArguments getTclShellFileName \
getTemporaryPath getFiles getTestFiles getTestRunId getTestLogId \
getDefaultTestLog getTestLog getLastTestLog getTestSuite \
getTestMachine getTestPlatform getTestConfiguration getTestSuffix \
getTestUncountedLeaks getTestAssemblyName canTestExec testExec \
testClrExec execTestShell isRandomOrder isBreakOnLeak \
testClrExec execTestShell isRandomOrder isBreakOnDemand isBreakOnLeak \
isStopOnFailure isStopOnLeak isExitOnComplete returnInfoScript \
runTestPrologue runTestEpilogue hookPuts unhookPuts runTest \
testDebugBreak testArrayGet testShim tsource recordTestStatistics \
reportTestStatistics formatList formatListAsDict pathToRegexp \
inverseLsearchGlob removePathFromFileNames formatDecimal \
clearTestPercent reportTestPercent runAllTests isTestSuiteRunning \
getTestChannelOrDefault tryVerifyTestPath checkForAndSetTestPath \
|
︙ | | |
Changes to Externals/Eagle/lib/Eagle1.0/vendor.eagle.
︙ | | |
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
#
# NOTE: Use our own namespace here because even though we do not directly
# support namespaces ourselves, we do not want to pollute the global
# namespace if this script actually ends up being evaluated in Tcl.
#
namespace eval ::Eagle {
if {[isEagle]} then {
proc checkForVendorQuiet { {name ""} } {
if {[info exists ::env(checkForVendorQuiet)]} then {
return true
}
if {[string length $name] > 0} then {
set envVarName [appendArgs quiet [string toupper \
[string index $name 0]] [string range $name 1 end]]
if {[info exists ::env($envVarName)]} then {
return true
}
}
return false
}
proc checkForTestOverrides { channel varNames quiet } {
set result 0
foreach varName $varNames {
if {![uplevel 1 [list info exists $varName]]} then {
continue
}
|
︙ | | |
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
|
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
|
-
+
|
interop_assembly_file_names native_library_file_names release_version \
scratch_directory temporary_directory test_clr test_clr_v2 \
test_clr_v4 test_configuration test_configurations test_constraints \
test_machine test_net_fx test_net_fx_2005 test_net_fx_2008 \
test_net_fx_2010 test_net_fx_2012 test_net_fx_2013 test_net_fx_2015 \
test_overrides test_platform test_suite test_year test_years \
test_year_clr_v2 test_year_clr_v4 vendor_directory \
vendor_test_directory]}] false
vendor_test_directory]}] [checkForVendorQuiet checkForTestOverrides]
#
# NOTE: Set the name of the running test suite, if necessary.
#
if {![info exists test_suite]} then {
set test_suite "System.Data.SQLite Test Suite for Eagle"
}
|
︙ | | |
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
|
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
|
-
+
-
+
-
-
+
+
|
# current interpreter. Normally, this will also set the variable
# created above to point to the directory added to the auto-path;
# however, this will not be done if the variable was not created
# by us.
#
addTestSuiteToAutoPath stdout \
[expr {$have_vendor_directory ? "" : "vendor_directory"}] \
[info exists ::env(quietAddTestSuiteToAutoPath)]
[checkForVendorQuiet addTestSuiteToAutoPath]
unset have_vendor_directory
#
# NOTE: This procedure will attempt to find the vendor-specific testing
# directory. Normally, this will also set the variable created
# above to point to the directory; however, this will not be done
# if the variable was not created by us.
#
findInterpreterTestPath stdout $vendor_directory \
[expr {$have_vendor_test_directory ? "" : "vendor_test_directory"}] \
[info exists ::env(quietFindInterpreterTestPath)]
[checkForVendorQuiet findInterpreterTestPath]
unset have_vendor_test_directory
#
# NOTE: If we actually found a vendor-specific testing infrastructure
# directory then modify the TestPath property of the current
# interpreter to point directly to it.
#
if {[string length $vendor_test_directory] > 0} then {
setupInterpreterTestPath stdout $vendor_test_directory [info exists \
::env(quietSetupInterpreterTestPath)]
setupInterpreterTestPath stdout $vendor_test_directory \
[checkForVendorQuiet setupInterpreterTestPath]
}
}
#
# HACK: Prevent the Eagle core test suite infrastructure from checking
# test constraints that are time-consuming and/or most likely to
# be superfluous to third-party test suites (i.e. those that are
|
︙ | | |
Changes to Externals/Eagle/lib/Test1.0/constraints.eagle.
︙ | | |
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
|
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
-
-
+
+
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
# support namespaces ourselves, we do not want to pollute the global
# namespace if this script actually ends up being evaluated in Tcl.
#
namespace eval ::Eagle {
proc getKnownBuildTypes {} {
return [list \
NetFx20 NetFx35 NetFx40 NetFx45 NetFx451 NetFx452 \
NetFx46 NetFx461 NetFx462 NetFx47 Bare LeanAndMean \
Database MonoOnUnix Development]
NetFx46 NetFx461 NetFx462 NetFx47 NetFx471 Bare \
LeanAndMean Database MonoOnUnix Development]
}
proc getKnownCompileOptions {} {
return [list \
APPDOMAINS APPROVED_VERBS ARGUMENT_CACHE ARM ARM64 ASSEMBLY_RELEASE \
ASSEMBLY_STRONG_NAME_TAG ASSEMBLY_TAG ASSEMBLY_TEXT ASSEMBLY_URI \
BREAK_ON_EXITING BREAKPOINTS CACHE_ARGUMENT_TOSTRING \
APPDOMAINS APPROVED_VERBS ARGUMENT_CACHE ARM ARM64 ASSEMBLY_DATETIME \
ASSEMBLY_RELEASE ASSEMBLY_STRONG_NAME_TAG ASSEMBLY_TAG ASSEMBLY_TEXT \
ASSEMBLY_URI BREAK_ON_EXITING BREAKPOINTS CACHE_ARGUMENT_TOSTRING \
CACHE_ARGUMENTLIST_TOSTRING CACHE_DICTIONARY CACHE_RESULT_TOSTRING \
CACHE_STATISTICS CACHE_STRINGLIST_TOSTRING CALLBACK_QUEUE CAS_POLICY \
CERTIFICATE_PLUGIN CERTIFICATE_POLICY CERTIFICATE_RENEWAL \
CODE_ANALYSIS COM_TYPE_CACHE CONSOLE DAEMON DATA DEAD_CODE DEBUG \
DEBUGGER DEBUGGER_ARGUMENTS DEBUGGER_ENGINE DEBUGGER_EXECUTE \
DEBUGGER_EXPRESSION DEBUGGER_VARIABLE DEBUG_TRACE DEBUG_WRITE DRAWING \
DYNAMIC EAGLE EMBEDDED_LIBRARY EMBED_CERTIFICATES ENTERPRISE_LOCKDOWN \
EXECUTE_CACHE EXPRESSION_FLAGS FAST_ERRORCODE FAST_ERRORINFO \
FOR_TEST_USE_ONLY HAVE_SIZEOF HISTORY IA64 INTERACTIVE_COMMANDS \
INTERNALS_VISIBLE_TO ISOLATED_INTERPRETERS ISOLATED_PLUGINS LIBRARY \
LICENSING LICENSE_MANAGER LIMITED_EDITION LIST_CACHE MONO MONO_BUILD \
MONO_HACKS MONO_LEGACY NATIVE NATIVE_PACKAGE NATIVE_THREAD_ID \
NATIVE_UTILITY NATIVE_UTILITY_BSTR NETWORK NET_20 NET_20_FAST_ENUM \
NET_20_ONLY NET_20_SP1 NET_20_SP2 NET_30 NET_35 NET_40 NET_45 NET_451 \
NET_452 NET_46 NET_461 NET_462 NET_47 NON_WORKING_CODE NOTIFY \
NOTIFY_ACTIVE NOTIFY_ARGUMENTS NOTIFY_EXCEPTION NOTIFY_EXECUTE \
NOTIFY_EXPRESSION NOTIFY_GLOBAL NOTIFY_OBJECT OBSOLETE OBFUSCATION \
OFFICIAL PARSE_CACHE PATCHLEVEL PLUGIN_COMMANDS POLICY_TRACE \
PREVIOUS_RESULT RANDOMIZE_ID REMOTING SAMPLE SECURITY SERIALIZATION \
SHARED_ID_POOL SHELL SOURCE_ID SOURCE_TIMESTAMP STATIC TCL TCL_KITS \
TCL_THREADED TCL_THREADS TCL_UNICODE TCL_WRAPPER TEST TEST_PLUGIN \
THREADING THROW_ON_DISPOSED TRACE TYPE_CACHE UNIX \
USE_APPDOMAIN_FOR_ID USE_NAMESPACES VERBOSE WEB WINDOWS WINFORMS \
WIX_30 WIX_35 WIX_36 WIX_37 WIX_38 WIX_39 WIX_310 X64 X86 XML]
DEBUGGER_EXPRESSION DEBUGGER_VARIABLE DEBUG_TRACE DEBUG_WRITE \
DEMO_EDITION DRAWING DYNAMIC EAGLE EMBEDDED_LIBRARY \
EMBED_CERTIFICATES ENTERPRISE_LOCKDOWN EXECUTE_CACHE EXPRESSION_FLAGS \
FAST_ERRORCODE FAST_ERRORINFO FOR_TEST_USE_ONLY HAVE_SIZEOF HISTORY \
IA64 INTERACTIVE_COMMANDS INTERNALS_VISIBLE_TO ISOLATED_INTERPRETERS \
ISOLATED_PLUGINS LIBRARY LICENSING LICENSE_MANAGER LIMITED_EDITION \
LIST_CACHE MONO MONO_BUILD MONO_HACKS MONO_LEGACY NATIVE \
NATIVE_PACKAGE NATIVE_THREAD_ID NATIVE_UTILITY NATIVE_UTILITY_BSTR \
NETWORK NET_20 NET_20_FAST_ENUM NET_20_ONLY NET_20_SP1 NET_20_SP2 \
NET_30 NET_35 NET_40 NET_45 NET_451 NET_452 NET_46 NET_461 NET_462 \
NET_47 NET_471 NON_WORKING_CODE NOTIFY NOTIFY_ACTIVE NOTIFY_ARGUMENTS \
NOTIFY_EXCEPTION NOTIFY_EXECUTE NOTIFY_EXPRESSION NOTIFY_GLOBAL \
NOTIFY_OBJECT OBSOLETE OBFUSCATION OFFICIAL PARSE_CACHE PATCHLEVEL \
PLUGIN_COMMANDS POLICY_TRACE PREVIOUS_RESULT RANDOMIZE_ID REMOTING \
RESULT_LIMITS SAMPLE SECURITY SERIALIZATION SHARED_ID_POOL SHELL \
SOURCE_ID SOURCE_TIMESTAMP STATIC TCL TCL_KITS TCL_THREADED \
TCL_THREADS TCL_UNICODE TCL_WRAPPER TEST TEST_PLUGIN THREADING \
THROW_ON_DISPOSED TRACE TYPE_CACHE UNIX USE_APPDOMAIN_FOR_ID \
USE_NAMESPACES VERBOSE WEB WINDOWS WINFORMS WIX_30 WIX_35 WIX_36 \
WIX_37 WIX_38 WIX_39 WIX_310 WIX_311 X64 X86 XML]
}
proc getKnownMonoVersions { {force false} } {
#
# NOTE: This job of this procedure is to return the list of "known"
# versions of Mono supported by the test suite infrastructure.
#
|
︙ | | |
436
437
438
439
440
441
442
443
444
445
446
447
448
449
|
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
#
return true
}
set reason "skipped, need Eagle"
return false
}
proc cleanConstraintName { name } {
#
# NOTE: Start with the original constraint name, removing surrounding
# whitespace. If this results in an empty string, we are done.
#
set result [string trim $name]
if {[string length $result] == 0} then {
return $result
}
#
# NOTE: The constraints for a test are actually a list; therefore, we
# must remove anything that might confuse the list parser.
#
set result [string map [list \" "" \\ "" \{ "" \} ""] $result]
#
# NOTE: In order to avoid semantic confusion, remove other characters
# that may be reserved by the test suite subsystems.
#
set result [string map [list ! "" # "" \$ "" \; "" \[ "" \] ""] $result]
#
# NOTE: Finally, remove all remaining whitespace.
#
regsub -all -- {\s} $result "" result; return $result
}
proc cleanPackageName { package full } {
#
# NOTE: Start out with the original package name, removing surrounding
# whitespace. If this results in an empty string, we are done.
#
set result [string trim $package]
|
︙ | | |
471
472
473
474
475
476
477
478
479
480
481
482
483
484
|
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
|
+
+
+
+
+
+
+
+
+
+
+
+
+
|
# names. For now, they are all replaced with underscores by this
# procedure. Any existing underscores in the string are doubled.
#
set charMap [list _ __ " " _ + _ , _ . _ = _ \[ _ \\ _ \] _ ` _]
return [string map $charMap $result]
}
proc haveTclPlatformOsExtraUpdateName { name } {
if {[info exists ::tcl_platform(osExtra)]} then {
set updateNames [getDictionaryValue $::tcl_platform(osExtra) \
UpdateNames]
if {[lsearch -exact $updateNames $name] != -1} then {
return true
}
}
return false
}
proc checkForTestSuiteFiles { channel } {
tputs $channel "---- checking for test suite files... "
#
# NOTE: Start out with no test suite files to check.
#
|
︙ | | |
729
730
731
732
733
734
735
736
737
738
739
740
741
742
|
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
#
return
}
}
tputs $channel no\n
}
proc checkForOperatingSystemUpdate { channel name } {
tputs $channel [appendArgs \
"---- checking for operating system update \"" \
$name "\"... "]
#
# NOTE: Is the specific OS update currently installed?
#
if {[haveTclPlatformOsExtraUpdateName $name]} then {
addConstraint [appendArgs osUpdate . [cleanConstraintName $name]]
tputs $channel yes\n
} else {
tputs $channel no\n
}
}
proc checkForScriptLibrary { channel } {
tputs $channel "---- checking for script library... "
#
# NOTE: See if the variable containing the script library location
# exists.
|
︙ | | |
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
|
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
#
# NOTE: Does the interpreter have TIP #405 (i.e. [lmap])?
#
catch {lmap} error
if {$error ne "invalid command name \"lmap\""} then {
addConstraint tip405
tputs $channel yes\n
} else {
tputs $channel no\n
}
}
proc checkForTip421 { channel } {
tputs $channel "---- checking for TIP #421... "
#
# NOTE: Is the interpreter TIP #421 ready?
#
if {[catch {
set array(1) one; set list [list]
array for {name value} array {
lappend list $name $value
}
set list
} result] == 0 && $result eq [list 1 one]} then {
addConstraint tip421
tputs $channel yes\n
} else {
tputs $channel no\n
}
}
|
︙ | | |
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
|
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
|
-
+
|
#
set key [appendArgs HKEY_LOCAL_MACHINE\\ \
[getSoftwareRegistryKey true] {\Microsoft\Windows Installer XML}]
#
# NOTE: The versions of WiX that we support.
#
set versions [list 3.7 3.6 3.5 3.0]
set versions [list 3.11 3.10 3.9 3.8 3.7 3.6 3.5 3.0]
#
# NOTE: Check each version, stopping when one is found.
#
foreach version $versions {
#
# NOTE: Attempt to fetch the WiX install directory value from the
|
︙ | | |
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
|
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
-
+
+
-
+
+
+
+
-
+
+
-
+
+
+
+
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
#
return
}
}
tputs $channel no\n
}
proc getFrameworkSetup451Value {} {
#
# NOTE: Check if we are running on Windows 8.1.
#
# BUGBUG: Is exact matching correct here?
#
if {[isWindows] && [info exists ::tcl_platform(osVersion)] && \
$::tcl_platform(osVersion) == 6.3} then {
#
# NOTE: We are running on Windows 8.1, return the special value.
#
return 378675
}
#
# NOTE: We are not running on Windows 8.1, return the normal value.
#
return 378758
}
proc getFrameworkSetup46Value {} {
#
# NOTE: Check if we are running on Windows 10 or later.
#
# BUGBUG: Is greater-than-or-equal-to matching correct here?
#
if {[isWindows] && [info exists ::tcl_platform(osVersion)] && \
if {[isWindows] && $::tcl_platform(osVersion) >= 10.0} then {
$::tcl_platform(osVersion) >= 10.0} then {
#
# NOTE: We are running on Windows 10, return the special value.
#
return 393295
}
#
# NOTE: We are not running on Windows 10, return the normal value.
#
return 393297
}
proc getFrameworkSetup461Value {} {
#
# NOTE: Check if we are running on Windows 10 or later.
#
# BUGBUG: Is greater-than-or-equal-to matching correct here?
#
if {[isWindows] && [info exists ::tcl_platform(osVersion)] && \
if {[isWindows] && $::tcl_platform(osVersion) >= 10.0} then {
$::tcl_platform(osVersion) >= 10.0 && \
[haveTclPlatformOsExtraUpdateName "November Update"]} then {
#
# NOTE: We are running on Windows 10, return the special value.
#
return 394254
return 394254; # BUGBUG: November Update only?
}
#
# NOTE: We are not running on Windows 10, return the normal value.
#
return 394271
}
proc getFrameworkSetup462Value {} {
#
# NOTE: Check if we are running on Windows 10 or later.
#
# BUGBUG: Is greater-than-or-equal-to matching correct here?
#
if {[isWindows] && [info exists ::tcl_platform(osVersion)] && \
if {[isWindows] && $::tcl_platform(osVersion) >= 10.0} then {
$::tcl_platform(osVersion) >= 10.0 && \
[haveTclPlatformOsExtraUpdateName "Anniversary Update"]} then {
#
# NOTE: We are running on Windows 10, return the special value.
#
return 394802
return 394802; # BUGBUG: Anniversary Update only?
}
#
# NOTE: We are not running on Windows 10, return the normal value.
#
return 394806
}
proc getFrameworkSetup47Value {} {
#
# NOTE: Check if we are running on Windows 10 or later.
#
# BUGBUG: Is greater-than-or-equal-to matching correct here?
#
if {[isWindows] && [info exists ::tcl_platform(osVersion)] && \
if {[isWindows] && $::tcl_platform(osVersion) >= 10.0} then {
$::tcl_platform(osVersion) >= 10.0 && \
[haveTclPlatformOsExtraUpdateName "Creators Update"]} then {
#
# NOTE: We are running on Windows 10, return the special value.
#
return 460798
return 460798; # BUGBUG: Creators Update only?
}
#
# NOTE: We are not running on Windows 10, return the normal value.
#
return 460805
}
proc getFrameworkSetup471Value {} {
#
# NOTE: Check if we are running on Windows 10 or later.
#
# BUGBUG: Is greater-than-or-equal-to matching correct here?
#
if {[isWindows] && [info exists ::tcl_platform(osVersion)] && \
$::tcl_platform(osVersion) >= 10.0 && \
[haveTclPlatformOsExtraUpdateName "Fall Creators Update"]} then {
#
# NOTE: We are running on Windows 10, return the special value.
#
return 461308; # BUGBUG: Fall Creators Update only?
}
#
# NOTE: We are not running on Windows 10, return the normal value.
#
return 461310
}
proc checkForNetFx4x { channel } {
tputs $channel "---- checking for .NET Framework 4.x... "
#
# NOTE: Platform must be Windows for this constraint to even be
# checked (i.e. we require the registry).
|
︙ | | |
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
|
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
|
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
|
# is installed. However, if the "release" value is also
# greater than or equal to 379893, then the .NET Framework
# 4.5.2 is installed, which is an in-place upgrade to 4.5.1
# (and 4.5). If the "release" value is also greater than or
# equal to 393297 (393295 on Windows 10), then the .NET
# Framework 4.6 is installed, which is an in-place upgrade
# to 4.5.x. Similar handling is necessary for the .NET
# Framework 4.6.1, 4.6.2, and 4.7. For more information,
# Framework 4.6.1, 4.6.2, 4.7, and 4.7.1. For information,
# see:
#
# https://msdn.microsoft.com/en-us/library/hh925568.aspx
#
if {$release >= [getFrameworkSetup47Value]} then {
if {$release >= [getFrameworkSetup471Value]} then {
addConstraint dotNet451OrHigher
addConstraint dotNet452OrHigher
addConstraint dotNet46OrHigher
addConstraint dotNet461OrHigher
addConstraint dotNet462OrHigher
addConstraint dotNet47OrHigher
addConstraint dotNet471
addConstraint dotNet471OrHigher
set version 4.7.1
} elseif {$release >= [getFrameworkSetup47Value]} then {
addConstraint dotNet451OrHigher
addConstraint dotNet452OrHigher
addConstraint dotNet46OrHigher
addConstraint dotNet461OrHigher
addConstraint dotNet462OrHigher
addConstraint dotNet47
addConstraint dotNet47OrHigher
|
︙ | | |
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
|
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
|
-
+
|
set version 4.6
} elseif {$release >= 379893} then {
addConstraint dotNet451OrHigher
addConstraint dotNet452
addConstraint dotNet452OrHigher
set version 4.5.2
} elseif {$release >= 378675} then {
} elseif {$release >= [getFrameworkSetup451Value]} then {
addConstraint dotNet451
addConstraint dotNet451OrHigher
set version 4.5.1
} else {
addConstraint dotNet45
|
︙ | | |
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
|
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
|
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
# NOTE: We need several of our test constraint related commands in the
# global namespace.
#
exportAndImportPackageCommands [namespace current] [list \
getKnownBuildTypes getKnownCompileOptions getKnownMonoVersions \
addKnownMonoConstraints lpermute alwaysFullInterpReady canExecComSpec \
canExecWhoAmI canExecTclShell canExecFossil canExecVsWhere isTestMono \
isTestAdministrator canPing cleanPackageName checkForTestSuiteFiles \
checkForPlatform checkForWindowsVersion checkForScriptLibrary \
checkForVariable checkForTclOptions checkForWindowsCommandProcessor \
checkForPackage checkForFossil checkForVisualStudioViaVsWhere \
checkForEagle checkForSymbols checkForLogFile checkForGaruda \
checkForShell checkForOfficialStableReleaseInProgress checkForDebug \
checkForTk checkForVersion checkForCommand checkForSubCommand \
checkForNamespaces checkForTestExec checkForTestMachine \
checkForTestPlatform checkForTestConfiguration checkForTestSuffix \
checkForFile checkForPathFile checkForNativeCode checkForTip127 \
checkForTip194 checkForTip207 checkForTip241 checkForTip285 \
checkForTip405 checkForTip426 checkForTip429 checkForTip440 \
isTestAdministrator canPing cleanConstraintName cleanPackageName \
haveTclPlatformOsExtraUpdateName checkForTestSuiteFiles \
checkForPlatform checkForWindowsVersion checkForOperatingSystemUpdate \
checkForScriptLibrary checkForVariable checkForTclOptions \
checkForWindowsCommandProcessor checkForPackage checkForFossil \
checkForVisualStudioViaVsWhere checkForEagle checkForSymbols \
checkForLogFile checkForGaruda checkForShell \
checkForOfficialStableReleaseInProgress checkForDebug checkForTk \
checkForVersion checkForCommand checkForSubCommand checkForNamespaces \
checkForTestExec checkForTestMachine checkForTestPlatform \
checkForTestConfiguration checkForTestSuffix checkForFile \
checkForPathFile checkForNativeCode checkForTip127 checkForTip194 \
checkForTip207 checkForTip241 checkForTip285 checkForTip405 \
checkForTip421 checkForTip426 checkForTip429 checkForTip440 \
checkForTip461 checkForTip463 checkForTip471 checkForTiming \
checkForPerformance checkForBigLists checkForProcessorIntensive \
checkForTimeIntensive checkForFullTest checkForMemoryIntensive \
checkForStackIntensive checkForStackSize checkForInteractive \
checkForInteractiveCommand checkForUserInteraction checkForNetwork \
checkForCompileOption checkForKnownCompileOptions] false false
|
︙ | | |
Changes to Externals/Eagle/lib/Test1.0/prologue.eagle.
︙ | | |
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
|
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
|
+
+
+
+
+
+
+
+
+
+
+
+
|
#
if {![info exists no(compileLimitedEdition)]} then {
#
# NOTE: This is not currently used by any tests.
#
checkForCompileOption $test_channel LIMITED_EDITION
}
#
# NOTE: Has runtime "demo edition" checking support been
# disabled (at compile-time)? This only applies to
# third-party plugins and applications.
#
if {![info exists no(compileDemoEdition)]} then {
#
# NOTE: This is not currently used by any tests.
#
checkForCompileOption $test_channel DEMO_EDITION
}
}
}
#
# NOTE: Has dynamic loading testing support been disabled?
#
if {![info exists no(dynamic)]} then {
|
︙ | | |
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
|
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
|
+
+
+
+
+
+
+
+
+
+
+
|
checkForObjectMember $test_channel Eagle._Tests.Default \
*TestRemotingHaveChannel*
checkForObjectMember $test_channel Eagle._Tests.Default \
*TestRemotingTryGetChannel*
}
#
# NOTE: Has embedded resource testing support been disabled?
#
if {![info exists no(testResources)]} then {
#
# NOTE: For test "interp-1.400".
#
checkForObjectMember $test_channel Eagle._Tests.Default \
*TestGetResourceString*
}
#
# NOTE: Has asynchronous testing support been disabled?
#
if {![info exists no(testAsynchronous)]} then {
#
# NOTE: For tests "basic-1.20" and "basic-1.21".
#
|
︙ | | |
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
|
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
if {![info exists no(testSetComplain)]} then {
#
# NOTE: This is not currently used by any tests.
#
checkForObjectMember $test_channel Eagle._Tests.Default \
*TestSetComplain*
}
#
# NOTE: Has enumerable variable testing support been disabled?
#
if {![info exists no(testEnumerableVariables)]} then {
#
# NOTE: For test "basic-1.105".
#
checkForObjectMember $test_channel Eagle._Tests.Default \
*TestSetupIntArray*
checkForObjectMember $test_channel Eagle._Tests.Default \
*TestSetVariableEnumerable*
checkForObjectMember $test_channel Eagle._Tests.Default \
*TestUnsetVariableEnumerable*
}
#
# NOTE: Has linked variable testing support been disabled?
#
if {![info exists no(testLinkedVariables)]} then {
#
# NOTE: For tests "basic-1.39", "basic-1.40", "basic-1.41",
|
︙ | | |
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
|
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
|
+
+
+
+
+
+
|
#
# NOTE: For tests "object-3.14" and "object-3.15".
#
checkForObjectMember $test_channel Eagle._Tests.Default \
*TestReturnOfSelf*
#
# NOTE: For test "object-3.17".
#
checkForObjectMember $test_channel Eagle._Tests.Default \
*TestByRefByteArray*
#
# NOTE: For test "object-4.1".
#
checkForObjectMember $test_channel Eagle._Tests.Default \
*TestExpr*
#
|
︙ | | |
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
|
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
|
+
+
+
+
+
+
+
+
+
+
+
+
+
|
if {![info exists no(platform)]} then {
checkForPlatform $test_channel
}
if {![info exists no(windowsVersion)]} then {
checkForWindowsVersion $test_channel
}
if {![info exists no(operatingSystemUpdates)]} then {
if {[isEagle] && [info exists tcl_platform(osExtra)]} then {
vwaitWithTimeout tcl_platform(osExtra) $test_timeout
}
checkForOperatingSystemUpdate $test_channel KB936929
checkForOperatingSystemUpdate $test_channel KB976932
checkForOperatingSystemUpdate $test_channel "November Update"
checkForOperatingSystemUpdate $test_channel "Anniversary Update"
checkForOperatingSystemUpdate $test_channel "Creators Update"
checkForOperatingSystemUpdate $test_channel "Fall Creators Update"
}
if {![info exists no(scriptLibrary)]} then {
checkForScriptLibrary $test_channel
}
if {![info exists no(tclOptions)]} then {
checkForTclOptions $test_channel
|
︙ | | |
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
|
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
|
+
+
+
+
|
if {![info exists no(tip285)]} then {
checkForTip285 $test_channel
}
if {![info exists no(tip405)]} then {
checkForTip405 $test_channel
}
if {![info exists no(tip421)]} then {
checkForTip421 $test_channel
}
if {![info exists no(tip426)]} then {
checkForTip426 $test_channel
}
if {![info exists no(tip429)]} then {
checkForTip429 $test_channel
|
︙ | | |
Changes to NuGet/SQLite.Beta.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.Beta.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.Beta</id>
<title>System.Data.SQLite (x86/x64) Beta</title>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>This is a "beta" package and is not intended for production use. The official SQLite database engine for both x86 and x64 along with the ADO.NET provider. This package includes support for LINQ and Entity Framework 6.</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
<copyright>Public Domain</copyright>
<dependencies>
<group targetFramework="net20">
<dependency id="System.Data.SQLite.Core.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.Core.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.Core.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.Core.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.Core.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net20">
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.EF6.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.EF6.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.EF6.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.EF6.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6.Beta" version="1.0.107.0" />
</group>
</dependencies>
</metadata>
<files />
</package>
|
Changes to NuGet/SQLite.Core.Beta.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.Core.Beta.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.Core.Beta</id>
<title>System.Data.SQLite Core (x86/x64) Beta</title>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>This is a "beta" package and is not intended for production use. The official SQLite database engine for both x86 and x64 along with the ADO.NET provider.</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
|
︙ | | |
Changes to NuGet/SQLite.Core.MSIL.Beta.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.Core.MSIL.Beta.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.Core.MSIL.Beta</id>
<title>System.Data.SQLite (MSIL) Beta</title>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>This is a "beta" package and is not intended for production use. An ADO.NET provider for SQLite (managed-only).</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
|
︙ | | |
Changes to NuGet/SQLite.Core.MSIL.Test.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.Core.MSIL.Test.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.Core.MSIL.Test</id>
<title>System.Data.SQLite (MSIL) Test</title>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>This is a pre-release package and is not intended for production use. An ADO.NET provider for SQLite (managed-only).</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
|
︙ | | |
Changes to NuGet/SQLite.Core.MSIL.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.Core.MSIL.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.Core.MSIL</id>
<title>System.Data.SQLite Core (MSIL)</title>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>An ADO.NET provider for SQLite (managed-only).</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
|
︙ | | |
Changes to NuGet/SQLite.Core.Test.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.Core.Test.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.Core.Test</id>
<title>System.Data.SQLite Core (x86/x64) Test</title>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>This is a pre-release package and is not intended for production use. The official SQLite database engine for both x86 and x64 along with the ADO.NET provider.</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
|
︙ | | |
Changes to NuGet/SQLite.Core.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.Core.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.Core</id>
<title>System.Data.SQLite Core (x86/x64)</title>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>The official SQLite database engine for both x86 and x64 along with the ADO.NET provider.</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
|
︙ | | |
Changes to NuGet/SQLite.EF6.Beta.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.EF6.Beta.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.EF6.Beta</id>
<title>System.Data.SQLite EF6 Beta</title>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>This is a "beta" package and is not intended for production use. Support for Entity Framework 6 using System.Data.SQLite.</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
|
︙ | | |
Changes to NuGet/SQLite.EF6.Test.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.EF6.Test.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.EF6.Test</id>
<title>System.Data.SQLite EF6 Test</title>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>This is a pre-release package and is not intended for production use. Support for Entity Framework 6 using System.Data.SQLite.</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
|
︙ | | |
Changes to NuGet/SQLite.EF6.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.EF6.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.EF6</id>
<title>System.Data.SQLite EF6</title>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>Support for Entity Framework 6 using System.Data.SQLite.</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
|
︙ | | |
Changes to NuGet/SQLite.Linq.Beta.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.Linq.Beta.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.Linq.Beta</id>
<title>System.Data.SQLite LINQ Beta</title>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>This is a "beta" package and is not intended for production use. Support for LINQ using System.Data.SQLite.</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
|
︙ | | |
Changes to NuGet/SQLite.Linq.Test.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.Linq.Test.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.Linq.Test</id>
<title>System.Data.SQLite LINQ Test</title>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>This is a pre-release package and is not intended for production use. Support for LINQ using System.Data.SQLite.</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
|
︙ | | |
Changes to NuGet/SQLite.Linq.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.Linq.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.Linq</id>
<title>System.Data.SQLite LINQ</title>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>Support for LINQ using System.Data.SQLite.</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
|
︙ | | |
Changes to NuGet/SQLite.MSIL.Beta.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.MSIL.Beta.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.MSIL.Beta</id>
<title>System.Data.SQLite (MSIL) Beta</title>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>This is a "beta" package and is not intended for production use. This is a legacy package; if possible, please use either the "System.Data.SQLite.Beta" or "System.Data.SQLite.Core.Beta" package instead. An ADO.NET provider for SQLite (managed-only).</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
<copyright>Public Domain</copyright>
<dependencies>
<group targetFramework="net20">
<dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.MSIL.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net20">
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.EF6.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.EF6.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.EF6.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6.Beta" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.EF6.Beta" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6.Beta" version="1.0.107.0" />
</group>
</dependencies>
</metadata>
<files />
</package>
|
Changes to NuGet/SQLite.MSIL.Test.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.MSIL.Test.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.MSIL.Test</id>
<title>System.Data.SQLite (MSIL) Test</title>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>This is a pre-release package and is not intended for production use. This is a legacy package; if possible, please use either the "System.Data.SQLite.Test" or "System.Data.SQLite.Core.Test" package instead. An ADO.NET provider for SQLite (managed-only).</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
<copyright>Public Domain</copyright>
<dependencies>
<group targetFramework="net20">
<dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.MSIL.Test" version="1.0.107.0" />
</group>
<group targetFramework="net20">
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.EF6.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6.Test" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.EF6.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6.Test" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.EF6.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6.Test" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.EF6.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6.Test" version="1.0.107.0" />
</group>
</dependencies>
</metadata>
<files />
</package>
|
Changes to NuGet/SQLite.MSIL.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.MSIL.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.MSIL</id>
<title>System.Data.SQLite (MSIL)</title>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>This is a legacy package; if possible, please use either the "System.Data.SQLite" or "System.Data.SQLite.Core" package instead. An ADO.NET provider for SQLite (managed-only).</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
<copyright>Public Domain</copyright>
<dependencies>
<group targetFramework="net20">
<dependency id="System.Data.SQLite.Core.MSIL" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.MSIL" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.Core.MSIL" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.MSIL" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.Core.MSIL" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.MSIL" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.Core.MSIL" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.MSIL" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.Core.MSIL" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.MSIL" version="1.0.107.0" />
</group>
<group targetFramework="net20">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.EF6" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.EF6" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.EF6" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.EF6" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6" version="1.0.107.0" />
</group>
</dependencies>
</metadata>
<files />
</package>
|
Changes to NuGet/SQLite.Test.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.Test.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.Test</id>
<title>System.Data.SQLite (x86/x64) Test</title>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>This is a pre-release package and is not intended for production use. The official SQLite database engine for both x86 and x64 along with the ADO.NET provider. This package includes support for LINQ and Entity Framework 6.</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
<copyright>Public Domain</copyright>
<dependencies>
<group targetFramework="net20">
<dependency id="System.Data.SQLite.Core.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.Test" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.Core.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.Test" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.Core.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.Test" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.Core.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.Test" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.Core.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core.Test" version="1.0.107.0" />
</group>
<group targetFramework="net20">
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq.Test" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.EF6.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6.Test" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.EF6.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6.Test" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.EF6.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6.Test" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.EF6.Test" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6.Test" version="1.0.107.0" />
</group>
</dependencies>
</metadata>
<files />
</package>
|
Changes to NuGet/SQLite.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite</id>
<title>System.Data.SQLite (x86/x64)</title>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>The official SQLite database engine for both x86 and x64 along with the ADO.NET provider. This package includes support for LINQ and Entity Framework 6.</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
<copyright>Public Domain</copyright>
<dependencies>
<group targetFramework="net20">
<dependency id="System.Data.SQLite.Core" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.Core" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.Core" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.Core" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.Core" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Core" version="1.0.107.0" />
</group>
<group targetFramework="net20">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.EF6" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.EF6" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.EF6" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.EF6" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6" version="1.0.107.0" />
</group>
</dependencies>
</metadata>
<files />
</package>
|
Changes to NuGet/SQLite.x64.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.x64.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.x64</id>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>This is a legacy package; if possible, please use either the "System.Data.SQLite" or "System.Data.SQLite.Core" package instead. The official SQLite database engine combined with a complete ADO.NET provider all rolled into a single mixed-mode assembly for x64.</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
<copyright>Public Domain</copyright>
<dependencies>
<group targetFramework="net20">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.EF6" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.EF6" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.EF6" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.EF6" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6" version="1.0.107.0" />
</group>
</dependencies>
</metadata>
<files>
<file src="..\bin\2008\x64\ReleaseStatic\System.Data.SQLite.dll" target="lib\net20" />
<file src="..\bin\2008\Release\bin\System.Data.SQLite.xml" target="lib\net20" />
<file src="..\bin\2010\x64\ReleaseStatic\System.Data.SQLite.dll" target="lib\net40" />
|
︙ | | |
Changes to NuGet/SQLite.x86.nuspec.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.x86.nuspec -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<package>
<metadata>
<id>System.Data.SQLite.x86</id>
<version>1.0.106.0</version>
<version>1.0.107.0</version>
<authors>SQLite Development Team</authors>
<description>This is a legacy package; if possible, please use either the "System.Data.SQLite" or "System.Data.SQLite.Core" package instead. The official SQLite database engine combined with a complete ADO.NET provider all rolled into a single mixed-mode assembly for x86.</description>
<language>en-US</language>
<projectUrl>https://system.data.sqlite.org/</projectUrl>
<iconUrl>https://system.data.sqlite.org/images/sqlite128.png</iconUrl>
<licenseUrl>https://www.sqlite.org/copyright.html</licenseUrl>
<tags>sqlite database ado.net provider interop</tags>
<copyright>Public Domain</copyright>
<dependencies>
<group targetFramework="net20">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.Linq" version="1.0.106.0" />
<dependency id="System.Data.SQLite.Linq" version="1.0.107.0" />
</group>
<group targetFramework="net40">
<dependency id="System.Data.SQLite.EF6" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6" version="1.0.107.0" />
</group>
<group targetFramework="net45">
<dependency id="System.Data.SQLite.EF6" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6" version="1.0.107.0" />
</group>
<group targetFramework="net451">
<dependency id="System.Data.SQLite.EF6" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6" version="1.0.107.0" />
</group>
<group targetFramework="net46">
<dependency id="System.Data.SQLite.EF6" version="1.0.106.0" />
<dependency id="System.Data.SQLite.EF6" version="1.0.107.0" />
</group>
</dependencies>
</metadata>
<files>
<file src="..\bin\2008\Win32\ReleaseStatic\System.Data.SQLite.dll" target="lib\net20" />
<file src="..\bin\2008\Release\bin\System.Data.SQLite.xml" target="lib\net20" />
<file src="..\bin\2010\Win32\ReleaseStatic\System.Data.SQLite.dll" target="lib\net40" />
|
︙ | | |
Changes to SQLite.Designer/AssemblyInfo.cs.
︙ | | |
39
40
41
42
43
44
45
46
47
|
39
40
41
42
43
44
45
46
47
|
-
-
+
+
|
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.106.0")]
[assembly: AssemblyFileVersion("1.0.106.0")]
[assembly: AssemblyVersion("1.0.107.0")]
[assembly: AssemblyFileVersion("1.0.107.0")]
|
Changes to SQLite.Designer/SQLiteOptions.cs.
︙ | | |
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
|
-
+
|
/// design-time components. It is also the default value for the
/// associated option key.
/// </summary>
private static readonly string LegacyProviderName = "System.Data.SQLite";
///////////////////////////////////////////////////////////////////////
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471
/// <summary>
/// This is the provider name used when Entity Framework 6.x support is
/// required for use with the System.Data.SQLite design-time components.
/// This provider name is only available when this class is compiled for
/// the .NET Framework 4.0 or later.
/// </summary>
private static readonly string Ef6ProviderName = "System.Data.SQLite.EF6";
|
︙ | | |
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
-
+
|
string key = ProviderNameKey;
string value = Environment.GetEnvironmentVariable(
ProviderNameEnvVarName);
if (IsValidValue(key, value))
options[key] = value;
#if !NET_40 && !NET_45 && !NET_451 && !NET_452 && !NET_46 && !NET_461 && !NET_462 && !NET_47
#if !NET_40 && !NET_45 && !NET_451 && !NET_452 && !NET_46 && !NET_461 && !NET_462 && !NET_47 && !NET_471
else
options[key] = LegacyProviderName;
#endif
}
}
#endregion
|
︙ | | |
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
|
-
+
|
/// <returns>
/// The configured ADO.NET provider name for System.Data.SQLite -OR-
/// the default ADO.NET provider name for System.Data.SQLite in the
/// event of any failure. This method cannot return null.
/// </returns>
public static string GetProviderName()
{
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471
return GetProviderName(Ef6ProviderName);
#else
return GetProviderName(LegacyProviderName);
#endif
}
///////////////////////////////////////////////////////////////////////
|
︙ | | |
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
|
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
|
-
+
|
int result = 0;
if (items == null)
return result;
IList<string> names = new List<string>();
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471
names.Add(Ef6ProviderName);
#endif
names.Add(LegacyProviderName);
foreach (string name in names)
{
|
︙ | | |
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
|
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
|
-
+
|
string value
)
{
if (String.Equals(
key, ProviderNameKey, StringComparison.Ordinal) &&
(String.Equals(
value, LegacyProviderName, StringComparison.Ordinal)
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471
|| String.Equals(
value, Ef6ProviderName, StringComparison.Ordinal)
#endif
))
{
return true;
}
|
︙ | | |
Changes to SQLite.Designer/source.extension.vsixmanifest.
1
2
3
4
5
6
7
8
9
10
11
12
13
|
1
2
3
4
5
6
7
8
9
10
11
12
13
|
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<Vsix Version="1.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2010">
<Identifier Id="67b5f3a9-cde1-430f-a12b-af95bb064851">
<Name>System.Data.SQLite Designer</Name>
<Author>https://system.data.sqlite.org/</Author>
<Version>1.0.106.0</Version>
<Version>1.0.107.0</Version>
<Description>ADO.NET Data Designer for SQLite</Description>
<Locale>1033</Locale>
<InstalledByMsi>false</InstalledByMsi>
<SupportedProducts>
<VisualStudio Version="10.0">
<Edition>Pro</Edition>
</VisualStudio>
|
︙ | | |
Changes to SQLite.Interop/props/SQLite.Interop.2005.vsprops.
︙ | | |
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
-
+
-
+
-
+
|
<UserMacro
Name="ConfigurationYear"
Value="2005"
PerformEnvironmentSet="true"
/>
<UserMacro
Name="INTEROP_BUILD_NUMBER"
Value="106"
Value="107"
PerformEnvironmentSet="true"
/>
<UserMacro
Name="INTEROP_LINKER_VERSION"
Value="1.0"
PerformEnvironmentSet="true"
/>
<UserMacro
Name="INTEROP_MANIFEST_VERSION"
Value="1.0.106.0"
Value="1.0.107.0"
PerformEnvironmentSet="true"
/>
<UserMacro
Name="INTEROP_RC_VERSION"
Value="1,0,106,0"
Value="1,0,107,0"
PerformEnvironmentSet="true"
/>
<UserMacro
Name="INTEROP_INCLUDE_DIRECTORIES"
Value="src\core"
PerformEnvironmentSet="true"
/>
|
︙ | | |
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
-
+
|
<UserMacro
Name="INTEROP_DEBUG_DEFINES"
Value="INTEROP_DEBUG=0x31F;INTEROP_LOG=1;INTEROP_TEST_EXTENSION=1"
PerformEnvironmentSet="true"
/>
<UserMacro
Name="INTEROP_EXTRA_DEFINES"
Value="INTEROP_PLACEHOLDER=1;INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_FTS5_EXTENSION=1;INTEROP_PERCENTILE_EXTENSION=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1;INTEROP_JSON1_EXTENSION=1;INTEROP_SHA1_EXTENSION=1;INTEROP_SESSION_EXTENSION=1"
Value="INTEROP_PLACEHOLDER=1;INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_CODEC=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_FTS5_EXTENSION=1;INTEROP_PERCENTILE_EXTENSION=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1;INTEROP_JSON1_EXTENSION=1;INTEROP_SHA1_EXTENSION=1;INTEROP_SESSION_EXTENSION=1"
PerformEnvironmentSet="true"
/>
<UserMacro
Name="INTEROP_ASSEMBLY_RESOURCES"
Value="/ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteCommand.bmp,System.Data.SQLite.SQLiteCommand.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteConnection.bmp,System.Data.SQLite.SQLiteConnection.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteDataAdapter.bmp,System.Data.SQLite.SQLiteDataAdapter.bmp"
PerformEnvironmentSet="true"
/>
|
︙ | | |
Changes to SQLite.Interop/props/SQLite.Interop.2008.vsprops.
︙ | | |
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
-
+
-
+
-
+
|
<UserMacro
Name="ConfigurationYear"
Value="2008"
PerformEnvironmentSet="true"
/>
<UserMacro
Name="INTEROP_BUILD_NUMBER"
Value="106"
Value="107"
PerformEnvironmentSet="true"
/>
<UserMacro
Name="INTEROP_LINKER_VERSION"
Value="1.0"
PerformEnvironmentSet="true"
/>
<UserMacro
Name="INTEROP_MANIFEST_VERSION"
Value="1.0.106.0"
Value="1.0.107.0"
PerformEnvironmentSet="true"
/>
<UserMacro
Name="INTEROP_RC_VERSION"
Value="1,0,106,0"
Value="1,0,107,0"
PerformEnvironmentSet="true"
/>
<UserMacro
Name="INTEROP_INCLUDE_DIRECTORIES"
Value="src\core"
PerformEnvironmentSet="true"
/>
|
︙ | | |
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
|
-
+
|
<UserMacro
Name="INTEROP_DEBUG_DEFINES"
Value="INTEROP_DEBUG=0x31F;INTEROP_LOG=1;INTEROP_TEST_EXTENSION=1"
PerformEnvironmentSet="true"
/>
<UserMacro
Name="INTEROP_EXTRA_DEFINES"
Value="INTEROP_PLACEHOLDER=1;INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_FTS5_EXTENSION=1;INTEROP_PERCENTILE_EXTENSION=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1;INTEROP_JSON1_EXTENSION=1;INTEROP_SHA1_EXTENSION=1;INTEROP_SESSION_EXTENSION=1"
Value="INTEROP_PLACEHOLDER=1;INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_CODEC=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_FTS5_EXTENSION=1;INTEROP_PERCENTILE_EXTENSION=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1;INTEROP_JSON1_EXTENSION=1;INTEROP_SHA1_EXTENSION=1;INTEROP_SESSION_EXTENSION=1"
PerformEnvironmentSet="true"
/>
<UserMacro
Name="INTEROP_ASSEMBLY_RESOURCES"
Value="/ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteCommand.bmp,System.Data.SQLite.SQLiteCommand.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteConnection.bmp,System.Data.SQLite.SQLiteConnection.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteDataAdapter.bmp,System.Data.SQLite.SQLiteDataAdapter.bmp"
PerformEnvironmentSet="true"
/>
|
︙ | | |
Changes to SQLite.Interop/props/SQLite.Interop.2010.props.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
-
+
-
-
+
+
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.Interop.2010.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">
<ConfigurationYear>2010</ConfigurationYear>
<INTEROP_BUILD_NUMBER>106</INTEROP_BUILD_NUMBER>
<INTEROP_BUILD_NUMBER>107</INTEROP_BUILD_NUMBER>
<INTEROP_LINKER_VERSION>1.0</INTEROP_LINKER_VERSION>
<INTEROP_MANIFEST_VERSION>1.0.106.0</INTEROP_MANIFEST_VERSION>
<INTEROP_RC_VERSION>1,0,106,0</INTEROP_RC_VERSION>
<INTEROP_MANIFEST_VERSION>1.0.107.0</INTEROP_MANIFEST_VERSION>
<INTEROP_RC_VERSION>1,0,107,0</INTEROP_RC_VERSION>
<INTEROP_INCLUDE_DIRECTORIES>src\core</INTEROP_INCLUDE_DIRECTORIES>
<INTEROP_LIBRARY_DIRECTORIES></INTEROP_LIBRARY_DIRECTORIES>
<INTEROP_LIBRARY_DEPENDENCIES></INTEROP_LIBRARY_DEPENDENCIES>
<INTEROP_DEBUG_DEFINES>INTEROP_DEBUG=0x31F;INTEROP_LOG=1;INTEROP_TEST_EXTENSION=1</INTEROP_DEBUG_DEFINES>
<INTEROP_EXTRA_DEFINES>INTEROP_PLACEHOLDER=1;INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_FTS5_EXTENSION=1;INTEROP_PERCENTILE_EXTENSION=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1;INTEROP_JSON1_EXTENSION=1;INTEROP_SHA1_EXTENSION=1;INTEROP_SESSION_EXTENSION=1</INTEROP_EXTRA_DEFINES>
<INTEROP_EXTRA_DEFINES>INTEROP_PLACEHOLDER=1;INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_CODEC=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_FTS5_EXTENSION=1;INTEROP_PERCENTILE_EXTENSION=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1;INTEROP_JSON1_EXTENSION=1;INTEROP_SHA1_EXTENSION=1;INTEROP_SESSION_EXTENSION=1</INTEROP_EXTRA_DEFINES>
<INTEROP_ASSEMBLY_RESOURCES>/ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteCommand.bmp,System.Data.SQLite.SQLiteCommand.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteConnection.bmp,System.Data.SQLite.SQLiteConnection.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteDataAdapter.bmp,System.Data.SQLite.SQLiteDataAdapter.bmp</INTEROP_ASSEMBLY_RESOURCES>
<INTEROP_KEY_FILE>$(ProjectDir)..\Keys\System.Data.SQLite.snk</INTEROP_KEY_FILE>
<INTEROP_NATIVE_NAME>SQLite.Interop</INTEROP_NATIVE_NAME>
<INTEROP_MIXED_NAME>System.Data.SQLite</INTEROP_MIXED_NAME>
</PropertyGroup>
<ItemGroup>
<BuildMacro Include="ConfigurationYear">
|
︙ | | |
Changes to SQLite.Interop/props/SQLite.Interop.2012.props.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
-
+
-
-
+
+
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.Interop.2012.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">
<ConfigurationYear>2012</ConfigurationYear>
<INTEROP_BUILD_NUMBER>106</INTEROP_BUILD_NUMBER>
<INTEROP_BUILD_NUMBER>107</INTEROP_BUILD_NUMBER>
<INTEROP_LINKER_VERSION>1.0</INTEROP_LINKER_VERSION>
<INTEROP_MANIFEST_VERSION>1.0.106.0</INTEROP_MANIFEST_VERSION>
<INTEROP_RC_VERSION>1,0,106,0</INTEROP_RC_VERSION>
<INTEROP_MANIFEST_VERSION>1.0.107.0</INTEROP_MANIFEST_VERSION>
<INTEROP_RC_VERSION>1,0,107,0</INTEROP_RC_VERSION>
<INTEROP_INCLUDE_DIRECTORIES>src\core</INTEROP_INCLUDE_DIRECTORIES>
<INTEROP_LIBRARY_DIRECTORIES></INTEROP_LIBRARY_DIRECTORIES>
<INTEROP_LIBRARY_DEPENDENCIES></INTEROP_LIBRARY_DEPENDENCIES>
<INTEROP_DEBUG_DEFINES>INTEROP_DEBUG=0x31F;INTEROP_LOG=1;INTEROP_TEST_EXTENSION=1</INTEROP_DEBUG_DEFINES>
<INTEROP_EXTRA_DEFINES>INTEROP_PLACEHOLDER=1;INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_FTS5_EXTENSION=1;INTEROP_PERCENTILE_EXTENSION=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1;INTEROP_JSON1_EXTENSION=1;INTEROP_SHA1_EXTENSION=1;INTEROP_SESSION_EXTENSION=1</INTEROP_EXTRA_DEFINES>
<INTEROP_EXTRA_DEFINES>INTEROP_PLACEHOLDER=1;INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_CODEC=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_FTS5_EXTENSION=1;INTEROP_PERCENTILE_EXTENSION=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1;INTEROP_JSON1_EXTENSION=1;INTEROP_SHA1_EXTENSION=1;INTEROP_SESSION_EXTENSION=1</INTEROP_EXTRA_DEFINES>
<INTEROP_ASSEMBLY_RESOURCES>/ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteCommand.bmp,System.Data.SQLite.SQLiteCommand.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteConnection.bmp,System.Data.SQLite.SQLiteConnection.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteDataAdapter.bmp,System.Data.SQLite.SQLiteDataAdapter.bmp</INTEROP_ASSEMBLY_RESOURCES>
<INTEROP_KEY_FILE>$(ProjectDir)..\Keys\System.Data.SQLite.snk</INTEROP_KEY_FILE>
<INTEROP_NATIVE_NAME>SQLite.Interop</INTEROP_NATIVE_NAME>
<INTEROP_MIXED_NAME>System.Data.SQLite</INTEROP_MIXED_NAME>
</PropertyGroup>
<ItemGroup>
<BuildMacro Include="ConfigurationYear">
|
︙ | | |
Changes to SQLite.Interop/props/SQLite.Interop.2013.props.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
-
+
-
-
+
+
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.Interop.2013.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="12.0">
<PropertyGroup Label="UserMacros">
<ConfigurationYear>2013</ConfigurationYear>
<INTEROP_BUILD_NUMBER>106</INTEROP_BUILD_NUMBER>
<INTEROP_BUILD_NUMBER>107</INTEROP_BUILD_NUMBER>
<INTEROP_LINKER_VERSION>1.0</INTEROP_LINKER_VERSION>
<INTEROP_MANIFEST_VERSION>1.0.106.0</INTEROP_MANIFEST_VERSION>
<INTEROP_RC_VERSION>1,0,106,0</INTEROP_RC_VERSION>
<INTEROP_MANIFEST_VERSION>1.0.107.0</INTEROP_MANIFEST_VERSION>
<INTEROP_RC_VERSION>1,0,107,0</INTEROP_RC_VERSION>
<INTEROP_INCLUDE_DIRECTORIES>src\core</INTEROP_INCLUDE_DIRECTORIES>
<INTEROP_LIBRARY_DIRECTORIES></INTEROP_LIBRARY_DIRECTORIES>
<INTEROP_LIBRARY_DEPENDENCIES></INTEROP_LIBRARY_DEPENDENCIES>
<INTEROP_DEBUG_DEFINES>INTEROP_DEBUG=0x31F;INTEROP_LOG=1;INTEROP_TEST_EXTENSION=1</INTEROP_DEBUG_DEFINES>
<INTEROP_EXTRA_DEFINES>INTEROP_PLACEHOLDER=1;INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_FTS5_EXTENSION=1;INTEROP_PERCENTILE_EXTENSION=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1;INTEROP_JSON1_EXTENSION=1;INTEROP_SHA1_EXTENSION=1;INTEROP_SESSION_EXTENSION=1</INTEROP_EXTRA_DEFINES>
<INTEROP_EXTRA_DEFINES>INTEROP_PLACEHOLDER=1;INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_CODEC=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_FTS5_EXTENSION=1;INTEROP_PERCENTILE_EXTENSION=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1;INTEROP_JSON1_EXTENSION=1;INTEROP_SHA1_EXTENSION=1;INTEROP_SESSION_EXTENSION=1</INTEROP_EXTRA_DEFINES>
<INTEROP_ASSEMBLY_RESOURCES>/ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteCommand.bmp,System.Data.SQLite.SQLiteCommand.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteConnection.bmp,System.Data.SQLite.SQLiteConnection.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteDataAdapter.bmp,System.Data.SQLite.SQLiteDataAdapter.bmp</INTEROP_ASSEMBLY_RESOURCES>
<INTEROP_KEY_FILE>$(ProjectDir)..\Keys\System.Data.SQLite.snk</INTEROP_KEY_FILE>
<INTEROP_NATIVE_NAME>SQLite.Interop</INTEROP_NATIVE_NAME>
<INTEROP_MIXED_NAME>System.Data.SQLite</INTEROP_MIXED_NAME>
</PropertyGroup>
<ItemGroup>
<BuildMacro Include="ConfigurationYear">
|
︙ | | |
Changes to SQLite.Interop/props/SQLite.Interop.2015.props.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
-
+
-
-
+
+
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.Interop.2015.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="14.0">
<PropertyGroup Label="UserMacros">
<ConfigurationYear>2015</ConfigurationYear>
<INTEROP_BUILD_NUMBER>106</INTEROP_BUILD_NUMBER>
<INTEROP_BUILD_NUMBER>107</INTEROP_BUILD_NUMBER>
<INTEROP_LINKER_VERSION>1.0</INTEROP_LINKER_VERSION>
<INTEROP_MANIFEST_VERSION>1.0.106.0</INTEROP_MANIFEST_VERSION>
<INTEROP_RC_VERSION>1,0,106,0</INTEROP_RC_VERSION>
<INTEROP_MANIFEST_VERSION>1.0.107.0</INTEROP_MANIFEST_VERSION>
<INTEROP_RC_VERSION>1,0,107,0</INTEROP_RC_VERSION>
<INTEROP_INCLUDE_DIRECTORIES>src\core</INTEROP_INCLUDE_DIRECTORIES>
<INTEROP_LIBRARY_DIRECTORIES></INTEROP_LIBRARY_DIRECTORIES>
<INTEROP_LIBRARY_DEPENDENCIES></INTEROP_LIBRARY_DEPENDENCIES>
<INTEROP_DEBUG_DEFINES>INTEROP_DEBUG=0x31F;INTEROP_LOG=1;INTEROP_TEST_EXTENSION=1</INTEROP_DEBUG_DEFINES>
<INTEROP_EXTRA_DEFINES>INTEROP_PLACEHOLDER=1;INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_FTS5_EXTENSION=1;INTEROP_PERCENTILE_EXTENSION=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1;INTEROP_JSON1_EXTENSION=1;INTEROP_SHA1_EXTENSION=1;INTEROP_SESSION_EXTENSION=1</INTEROP_EXTRA_DEFINES>
<INTEROP_EXTRA_DEFINES>INTEROP_PLACEHOLDER=1;INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_CODEC=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_FTS5_EXTENSION=1;INTEROP_PERCENTILE_EXTENSION=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1;INTEROP_JSON1_EXTENSION=1;INTEROP_SHA1_EXTENSION=1;INTEROP_SESSION_EXTENSION=1</INTEROP_EXTRA_DEFINES>
<INTEROP_ASSEMBLY_RESOURCES>/ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteCommand.bmp,System.Data.SQLite.SQLiteCommand.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteConnection.bmp,System.Data.SQLite.SQLiteConnection.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteDataAdapter.bmp,System.Data.SQLite.SQLiteDataAdapter.bmp</INTEROP_ASSEMBLY_RESOURCES>
<INTEROP_KEY_FILE>$(ProjectDir)..\Keys\System.Data.SQLite.snk</INTEROP_KEY_FILE>
<INTEROP_NATIVE_NAME>SQLite.Interop</INTEROP_NATIVE_NAME>
<INTEROP_MIXED_NAME>System.Data.SQLite</INTEROP_MIXED_NAME>
</PropertyGroup>
<ItemGroup>
<BuildMacro Include="ConfigurationYear">
|
︙ | | |
Changes to SQLite.Interop/props/SQLite.Interop.2017.props.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
-
+
-
-
+
+
-
+
|
<?xml version="1.0" encoding="utf-8"?>
<!--
*
* SQLite.Interop.2017.props -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*
-->
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup Label="UserMacros">
<ConfigurationYear>2017</ConfigurationYear>
<INTEROP_BUILD_NUMBER>106</INTEROP_BUILD_NUMBER>
<INTEROP_BUILD_NUMBER>107</INTEROP_BUILD_NUMBER>
<INTEROP_LINKER_VERSION>1.0</INTEROP_LINKER_VERSION>
<INTEROP_MANIFEST_VERSION>1.0.106.0</INTEROP_MANIFEST_VERSION>
<INTEROP_RC_VERSION>1,0,106,0</INTEROP_RC_VERSION>
<INTEROP_MANIFEST_VERSION>1.0.107.0</INTEROP_MANIFEST_VERSION>
<INTEROP_RC_VERSION>1,0,107,0</INTEROP_RC_VERSION>
<INTEROP_INCLUDE_DIRECTORIES>src\core</INTEROP_INCLUDE_DIRECTORIES>
<INTEROP_LIBRARY_DIRECTORIES></INTEROP_LIBRARY_DIRECTORIES>
<INTEROP_LIBRARY_DEPENDENCIES></INTEROP_LIBRARY_DEPENDENCIES>
<INTEROP_DEBUG_DEFINES>INTEROP_DEBUG=0x31F;INTEROP_LOG=1;INTEROP_TEST_EXTENSION=1</INTEROP_DEBUG_DEFINES>
<INTEROP_EXTRA_DEFINES>INTEROP_PLACEHOLDER=1;INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_FTS5_EXTENSION=1;INTEROP_PERCENTILE_EXTENSION=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1;INTEROP_JSON1_EXTENSION=1;INTEROP_SHA1_EXTENSION=1;INTEROP_SESSION_EXTENSION=1</INTEROP_EXTRA_DEFINES>
<INTEROP_EXTRA_DEFINES>INTEROP_PLACEHOLDER=1;INTEROP_EXTENSION_FUNCTIONS=1;INTEROP_CODEC=1;INTEROP_VIRTUAL_TABLE=1;INTEROP_FTS5_EXTENSION=1;INTEROP_PERCENTILE_EXTENSION=1;INTEROP_TOTYPE_EXTENSION=1;INTEROP_REGEXP_EXTENSION=1;INTEROP_JSON1_EXTENSION=1;INTEROP_SHA1_EXTENSION=1;INTEROP_SESSION_EXTENSION=1</INTEROP_EXTRA_DEFINES>
<INTEROP_ASSEMBLY_RESOURCES>/ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteCommand.bmp,System.Data.SQLite.SQLiteCommand.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteConnection.bmp,System.Data.SQLite.SQLiteConnection.bmp /ASSEMBLYRESOURCE:..\System.Data.SQLite\Resources\SQLiteDataAdapter.bmp,System.Data.SQLite.SQLiteDataAdapter.bmp</INTEROP_ASSEMBLY_RESOURCES>
<INTEROP_KEY_FILE>$(ProjectDir)..\Keys\System.Data.SQLite.snk</INTEROP_KEY_FILE>
<INTEROP_NATIVE_NAME>SQLite.Interop</INTEROP_NATIVE_NAME>
<INTEROP_MIXED_NAME>System.Data.SQLite</INTEROP_MIXED_NAME>
</PropertyGroup>
<ItemGroup>
<BuildMacro Include="ConfigurationYear">
|
︙ | | |
Changes to SQLite.Interop/props/sqlite3.props.
︙ | | |
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
-
+
|
*
-->
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup Label="UserMacros">
<SQLITE_MANIFEST_VERSION>3.20.1.0</SQLITE_MANIFEST_VERSION>
<SQLITE_RC_VERSION>3,20,1,0</SQLITE_RC_VERSION>
<SQLITE_COMMON_DEFINES>_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_STAT4=1;SQLITE_ENABLE_FTS3=1;SQLITE_ENABLE_LOAD_EXTENSION=1;SQLITE_ENABLE_RTREE=1;SQLITE_SOUNDEX=1;SQLITE_ENABLE_MEMORY_MANAGEMENT=1;SQLITE_ENABLE_API_ARMOR=1;SQLITE_ENABLE_DBSTAT_VTAB=1;SQLITE_ENABLE_STMTVTAB=1</SQLITE_COMMON_DEFINES>
<SQLITE_EXTRA_DEFINES>SQLITE_PLACEHOLDER=1</SQLITE_EXTRA_DEFINES>
<SQLITE_EXTRA_DEFINES>SQLITE_PLACEHOLDER=1;SQLITE_HAS_CODEC=1</SQLITE_EXTRA_DEFINES>
<SQLITE_WINCE_200X_DEFINES>SQLITE_OMIT_WAL=1</SQLITE_WINCE_200X_DEFINES>
<SQLITE_WINCE_2013_DEFINES>HAVE_ERRNO_H=1;SQLITE_MSVC_LOCALTIME_API=1</SQLITE_WINCE_2013_DEFINES>
<SQLITE_DEBUG_DEFINES>SQLITE_DEBUG=1;SQLITE_MEMDEBUG=1;SQLITE_ENABLE_EXPENSIVE_ASSERT=1</SQLITE_DEBUG_DEFINES>
<SQLITE_RELEASE_DEFINES>SQLITE_WIN32_MALLOC=1</SQLITE_RELEASE_DEFINES>
<SQLITE_DISABLE_WARNINGS>4055;4100;4127;4146;4210;4232;4244;4245;4267;4306;4389;4701;4703;4706</SQLITE_DISABLE_WARNINGS>
<SQLITE_DISABLE_X64_WARNINGS></SQLITE_DISABLE_X64_WARNINGS>
</PropertyGroup>
|
︙ | | |
Changes to SQLite.Interop/props/sqlite3.vsprops.
︙ | | |
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
-
+
|
<UserMacro
Name="SQLITE_COMMON_DEFINES"
Value="_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_STAT4=1;SQLITE_ENABLE_FTS3=1;SQLITE_ENABLE_LOAD_EXTENSION=1;SQLITE_ENABLE_RTREE=1;SQLITE_SOUNDEX=1;SQLITE_ENABLE_MEMORY_MANAGEMENT=1;SQLITE_ENABLE_API_ARMOR=1;SQLITE_ENABLE_DBSTAT_VTAB=1;SQLITE_ENABLE_STMTVTAB=1"
PerformEnvironmentSet="true"
/>
<UserMacro
Name="SQLITE_EXTRA_DEFINES"
Value="SQLITE_PLACEHOLDER=1"
Value="SQLITE_PLACEHOLDER=1;SQLITE_HAS_CODEC=1"
PerformEnvironmentSet="true"
/>
<UserMacro
Name="SQLITE_WINCE_200X_DEFINES"
Value="SQLITE_OMIT_WAL=1"
PerformEnvironmentSet="true"
/>
|
︙ | | |
Changes to SQLite.Interop/src/core/sqlite3.c.
︙ | | |
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
|
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
|
-
+
|
**
** See also: [sqlite3_libversion()],
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
** [sqlite_version()] and [sqlite_source_id()].
*/
#define SQLITE_VERSION "3.21.0"
#define SQLITE_VERSION_NUMBER 3021000
#define SQLITE_SOURCE_ID "2017-10-16 11:50:12 700a3c694438ca6cca185d0097f24799e82717ef38cb47bd83666c80f0e3cb2f"
#define SQLITE_SOURCE_ID "2017-10-24 18:55:49 1a584e499906b5c87ec7d43d4abce641fdf017c42125b083109bc77c4de48827"
/*
** CAPI3REF: Run-Time Library Version Numbers
** KEYWORDS: sqlite3_version sqlite3_sourceid
**
** These interfaces provide the same information as the [SQLITE_VERSION],
** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros
|
︙ | | |
48683
48684
48685
48686
48687
48688
48689
48690
48691
48692
48693
48694
48695
48696
|
48683
48684
48685
48686
48687
48688
48689
48690
48691
48692
48693
48694
48695
48696
48697
48698
|
+
+
|
#if defined(SQLITE_ENABLE_ATOMIC_WRITE) \
|| defined(SQLITE_ENABLE_BATCH_ATOMIC_WRITE)
int dc; /* Device characteristics */
assert( isOpen(pPager->fd) );
dc = sqlite3OsDeviceCharacteristics(pPager->fd);
#else
UNUSED_PARAMETER(pPager);
#endif
#ifdef SQLITE_ENABLE_BATCH_ATOMIC_WRITE
if( dc&SQLITE_IOCAP_BATCH_ATOMIC ){
return -1;
}
#endif
|
︙ | | |
64491
64492
64493
64494
64495
64496
64497
64498
64499
64500
64501
64502
64503
64504
64505
64506
64507
64508
64509
64510
64511
64512
64513
64514
64515
64516
|
64493
64494
64495
64496
64497
64498
64499
64500
64501
64502
64503
64504
64505
64506
64507
64508
64509
64510
64511
64512
64513
64514
64515
64516
64517
64518
64519
64520
64521
64522
64523
|
-
+
+
-
-
-
+
+
+
+
+
+
+
|
** page of the database. The data might change or move the next time
** any btree routine is called.
*/
static const void *fetchPayload(
BtCursor *pCur, /* Cursor pointing to entry to read from */
u32 *pAmt /* Write the number of available bytes here */
){
u32 amt;
int amt;
assert( pCur!=0 && pCur->iPage>=0 && pCur->pPage);
assert( pCur->eState==CURSOR_VALID );
assert( sqlite3_mutex_held(pCur->pBtree->db->mutex) );
assert( cursorOwnsBtShared(pCur) );
assert( pCur->ix<pCur->pPage->nCell );
assert( pCur->info.nSize>0 );
assert( pCur->info.pPayload>pCur->pPage->aData || CORRUPT_DB );
assert( pCur->info.pPayload<pCur->pPage->aDataEnd ||CORRUPT_DB);
amt = pCur->info.nLocal;
amt = (int)(pCur->pPage->aDataEnd - pCur->info.pPayload);
if( pCur->info.nLocal<amt ) amt = pCur->info.nLocal;
*pAmt = amt;
if( amt>(int)(pCur->pPage->aDataEnd - pCur->info.pPayload) ){
/* There is too little space on the page for the expected amount
** of local content. Database must be corrupt. */
assert( CORRUPT_DB );
amt = MAX(0, (int)(pCur->pPage->aDataEnd - pCur->info.pPayload));
}
*pAmt = (u32)amt;
return (void*)pCur->info.pPayload;
}
/*
** For the entry that cursor pCur is point to, return as
** many bytes of the key or data as are available on the local
|
︙ | | |
83582
83583
83584
83585
83586
83587
83588
83589
83590
83591
83592
83593
83594
83595
83596
83597
83598
83599
83600
83601
83602
83603
|
83589
83590
83591
83592
83593
83594
83595
83596
83597
83598
83599
83600
83601
83602
83603
83604
83605
|
-
-
-
-
-
-
-
+
+
+
-
|
sqlite3VdbePreUpdateHook(p, pC, SQLITE_INSERT, zDb, pTab, x.nKey, pOp->p2);
}
if( pOp->p5 & OPFLAG_ISNOOP ) break;
#endif
if( pOp->p5 & OPFLAG_NCHANGE ) p->nChange++;
if( pOp->p5 & OPFLAG_LASTROWID ) db->lastRowid = x.nKey;
if( pData->flags & MEM_Null ){
x.pData = 0;
x.nData = 0;
}else{
assert( pData->flags & (MEM_Blob|MEM_Str) );
x.pData = pData->z;
x.nData = pData->n;
assert( pData->flags & (MEM_Blob|MEM_Str) );
x.pData = pData->z;
x.nData = pData->n;
}
seekResult = ((pOp->p5 & OPFLAG_USESEEKRESULT) ? pC->seekResult : 0);
if( pData->flags & MEM_Zero ){
x.nZero = pData->u.nZero;
}else{
x.nZero = 0;
}
x.pKey = 0;
|
︙ | | |
86460
86461
86462
86463
86464
86465
86466
86467
86468
86469
86470
86471
86472
86473
86474
86475
86476
86477
86478
|
86462
86463
86464
86465
86466
86467
86468
86469
86470
86471
86472
86473
86474
86475
86476
86477
86478
86479
86480
86481
|
-
+
-
-
+
+
+
|
/* Set the value of register r[1] in the SQL statement to integer iRow.
** This is done directly as a performance optimization
*/
v->aMem[1].flags = MEM_Int;
v->aMem[1].u.i = iRow;
/* If the statement has been run before (and is paused at the OP_ResultRow)
** then back it up to the point where it does the OP_SeekRowid. This could
** then back it up to the point where it does the OP_NotExists. This could
** have been down with an extra OP_Goto, but simply setting the program
** counter is faster. */
if( v->pc>3 ){
v->pc = 3;
if( v->pc>4 ){
v->pc = 4;
assert( v->aOp[v->pc].opcode==OP_NotExists );
rc = sqlite3VdbeExec(v);
}else{
rc = sqlite3_step(p->pStmt);
}
if( rc==SQLITE_ROW ){
VdbeCursor *pC = v->apCsr[0];
u32 type = pC->nHdrParsed>p->iCol ? pC->aType[p->iCol] : 0;
|
︙ | | |
91219
91220
91221
91222
91223
91224
91225
91226
91227
91228
91229
91230
91231
91232
91233
91234
91235
91236
91237
91238
|
91222
91223
91224
91225
91226
91227
91228
91229
91230
91231
91232
91233
91234
91235
91236
91237
91238
91239
|
-
-
|
ExprList *pEList;
sqlite3 *db;
int moreToDo = 1;
pOrderBy = pSelect->pOrderBy;
if( pOrderBy==0 ) return 0;
db = pParse->db;
#if SQLITE_MAX_COLUMN
if( pOrderBy->nExpr>db->aLimit[SQLITE_LIMIT_COLUMN] ){
sqlite3ErrorMsg(pParse, "too many terms in ORDER BY clause");
return 1;
}
#endif
for(i=0; i<pOrderBy->nExpr; i++){
pOrderBy->a[i].done = 0;
}
pSelect->pNext = 0;
while( pSelect->pPrior ){
pSelect->pPrior->pNext = pSelect;
pSelect = pSelect->pPrior;
|
︙ | | |
91316
91317
91318
91319
91320
91321
91322
91323
91324
91325
91326
91327
91328
91329
91330
91331
91332
91333
91334
91335
|
91317
91318
91319
91320
91321
91322
91323
91324
91325
91326
91327
91328
91329
91330
91331
91332
91333
91334
|
-
-
|
){
int i;
sqlite3 *db = pParse->db;
ExprList *pEList;
struct ExprList_item *pItem;
if( pOrderBy==0 || pParse->db->mallocFailed ) return 0;
#if SQLITE_MAX_COLUMN
if( pOrderBy->nExpr>db->aLimit[SQLITE_LIMIT_COLUMN] ){
sqlite3ErrorMsg(pParse, "too many terms in %s BY clause", zType);
return 1;
}
#endif
pEList = pSelect->pEList;
assert( pEList!=0 ); /* sqlite3SelectNew() guarantees this */
for(i=0, pItem=pOrderBy->a; i<pOrderBy->nExpr; i++, pItem++){
if( pItem->u.x.iOrderByCol ){
if( pItem->u.x.iOrderByCol>pEList->nExpr ){
resolveOutOfRangeError(pParse, zType, i+1, pEList->nExpr);
return 1;
|
︙ | | |
94476
94477
94478
94479
94480
94481
94482
94483
94484
94485
94486
94487
94488
94489
94490
|
94475
94476
94477
94478
94479
94480
94481
94482
94483
94484
94485
94486
94487
94488
94489
|
-
+
|
assert( sqlite3KeyInfoIsWriteable(pKeyInfo) );
pKeyInfo->aColl[0] = sqlite3ExprCollSeq(pParse, pExpr->pLeft);
}
/* Loop through each expression in <exprlist>. */
r1 = sqlite3GetTempReg(pParse);
r2 = sqlite3GetTempReg(pParse);
if( isRowid ) sqlite3VdbeAddOp2(v, OP_Null, 0, r2);
if( isRowid ) sqlite3VdbeAddOp4(v, OP_Blob, 0, r2, 0, "", P4_STATIC);
for(i=pList->nExpr, pItem=pList->a; i>0; i--, pItem++){
Expr *pE2 = pItem->pExpr;
int iValToIns;
/* If the expression is not constant then we will need to
** disable the test that was generated above that makes sure
** this code only executes once. Because for a non-constant
|
︙ | | |
101758
101759
101760
101761
101762
101763
101764
101765
101766
101767
101768
101769
101770
101771
101772
101773
101774
101775
101776
101777
|
101757
101758
101759
101760
101761
101762
101763
101764
101765
101766
101767
101768
101769
101770
101771
101772
101773
101774
|
-
-
|
Table *p;
int i;
char *z;
char *zType;
Column *pCol;
sqlite3 *db = pParse->db;
if( (p = pParse->pNewTable)==0 ) return;
#if SQLITE_MAX_COLUMN
if( p->nCol+1>db->aLimit[SQLITE_LIMIT_COLUMN] ){
sqlite3ErrorMsg(pParse, "too many columns on %s", p->zName);
return;
}
#endif
z = sqlite3DbMallocRaw(db, pName->n + pType->n + 2);
if( z==0 ) return;
memcpy(z, pName->z, pName->n);
z[pName->n] = 0;
sqlite3Dequote(z);
for(i=0; i<p->nCol; i++){
if( sqlite3_stricmp(z, p->aCol[i].zName)==0 ){
|
︙ | | |
112416
112417
112418
112419
112420
112421
112422
112423
112424
112425
112426
112427
112428
112429
112430
|
112413
112414
112415
112416
112417
112418
112419
112420
112421
112422
112423
112424
112425
112426
112427
|
-
+
|
void (*result_text16be)(sqlite3_context*,const void*,int,void(*)(void*));
void (*result_text16le)(sqlite3_context*,const void*,int,void(*)(void*));
void (*result_value)(sqlite3_context*,sqlite3_value*);
void * (*rollback_hook)(sqlite3*,void(*)(void*),void*);
int (*set_authorizer)(sqlite3*,int(*)(void*,int,const char*,const char*,
const char*,const char*),void*);
void (*set_auxdata)(sqlite3_context*,int,void*,void (*)(void*));
char * (*snprintf)(int,char*,const char*,...);
char * (*xsnprintf)(int,char*,const char*,...);
int (*step)(sqlite3_stmt*);
int (*table_column_metadata)(sqlite3*,const char*,const char*,const char*,
char const**,char const**,int*,int*,int*);
void (*thread_cleanup)(void);
int (*total_changes)(sqlite3*);
void * (*trace)(sqlite3*,void(*xTrace)(void*,const char*),void*);
int (*transfer_bindings)(sqlite3_stmt*,sqlite3_stmt*);
|
︙ | | |
112700
112701
112702
112703
112704
112705
112706
112707
112708
112709
112710
112711
112712
112713
112714
|
112697
112698
112699
112700
112701
112702
112703
112704
112705
112706
112707
112708
112709
112710
112711
|
-
+
|
#define sqlite3_result_text16 sqlite3_api->result_text16
#define sqlite3_result_text16be sqlite3_api->result_text16be
#define sqlite3_result_text16le sqlite3_api->result_text16le
#define sqlite3_result_value sqlite3_api->result_value
#define sqlite3_rollback_hook sqlite3_api->rollback_hook
#define sqlite3_set_authorizer sqlite3_api->set_authorizer
#define sqlite3_set_auxdata sqlite3_api->set_auxdata
#define sqlite3_snprintf sqlite3_api->snprintf
#define sqlite3_snprintf sqlite3_api->xsnprintf
#define sqlite3_step sqlite3_api->step
#define sqlite3_table_column_metadata sqlite3_api->table_column_metadata
#define sqlite3_thread_cleanup sqlite3_api->thread_cleanup
#define sqlite3_total_changes sqlite3_api->total_changes
#define sqlite3_trace sqlite3_api->trace
#ifndef SQLITE_OMIT_DEPRECATED
#define sqlite3_transfer_bindings sqlite3_api->transfer_bindings
|
︙ | | |
119375
119376
119377
119378
119379
119380
119381
119382
119383
119384
119385
119386
119387
119388
|
119372
119373
119374
119375
119376
119377
119378
119379
119380
119381
119382
119383
119384
119385
119386
|
+
|
Hash ht; /* Hash table of column names */
sqlite3HashInit(&ht);
if( pEList ){
nCol = pEList->nExpr;
aCol = sqlite3DbMallocZero(db, sizeof(aCol[0])*nCol);
testcase( aCol==0 );
if( nCol>32767 ) nCol = 32767;
}else{
nCol = 0;
aCol = 0;
}
assert( nCol==(i16)nCol );
*pnCol = nCol;
*paCol = aCol;
|
︙ | | |
122282
122283
122284
122285
122286
122287
122288
122289
122290
122291
122292
122293
122294
122295
122296
122297
122298
122299
122300
122301
|
122280
122281
122282
122283
122284
122285
122286
122287
122288
122289
122290
122291
122292
122293
122294
122295
122296
122297
|
-
-
|
}
}
}
}
sqlite3ExprListDelete(db, pEList);
p->pEList = pNew;
}
#if SQLITE_MAX_COLUMN
if( p->pEList && p->pEList->nExpr>db->aLimit[SQLITE_LIMIT_COLUMN] ){
sqlite3ErrorMsg(pParse, "too many columns in result set");
return WRC_Abort;
}
#endif
return WRC_Continue;
}
/*
** No-op routine for the parse-tree walker.
**
** When this routine is the Walker.xExprCallback then expression trees
|
︙ | | |
201075
201076
201077
201078
201079
201080
201081
201082
201083
201084
201085
201086
201087
201088
201089
|
201071
201072
201073
201074
201075
201076
201077
201078
201079
201080
201081
201082
201083
201084
201085
|
-
+
|
static void fts5SourceIdFunc(
sqlite3_context *pCtx, /* Function call context */
int nArg, /* Number of args */
sqlite3_value **apUnused /* Function arguments */
){
assert( nArg==0 );
UNUSED_PARAM2(nArg, apUnused);
sqlite3_result_text(pCtx, "fts5: 2017-10-16 11:50:12 700a3c694438ca6cca185d0097f24799e82717ef38cb47bd83666c80f0e3cb2f", -1, SQLITE_TRANSIENT);
sqlite3_result_text(pCtx, "fts5: 2017-10-24 18:55:49 1a584e499906b5c87ec7d43d4abce641fdf017c42125b083109bc77c4de48827", -1, SQLITE_TRANSIENT);
}
static int fts5Init(sqlite3 *db){
static const sqlite3_module fts5Mod = {
/* iVersion */ 2,
/* xCreate */ fts5CreateMethod,
/* xConnect */ fts5ConnectMethod,
|
︙ | | |
205343
205344
205345
205346
205347
205348
205349
205350
205351
205352
205353
205354
205355
205356
|
205339
205340
205341
205342
205343
205344
205345
205346
205347
205348
205349
205350
205351
205352
|
-
+
-
+
|
#endif
return rc;
}
#endif /* SQLITE_CORE */
#endif /* !defined(SQLITE_CORE) || defined(SQLITE_ENABLE_STMTVTAB) */
/************** End of stmt.c ************************************************/
#if __LINE__!=205350
#if __LINE__!=205346
#undef SQLITE_SOURCE_ID
#define SQLITE_SOURCE_ID "2017-10-16 11:50:12 700a3c694438ca6cca185d0097f24799e82717ef38cb47bd83666c80f0e3alt2"
#define SQLITE_SOURCE_ID "2017-10-24 18:55:49 1a584e499906b5c87ec7d43d4abce641fdf017c42125b083109bc77c4de4alt2"
#endif
/* Return the source-id for this library */
SQLITE_API const char *sqlite3_sourceid(void){ return SQLITE_SOURCE_ID; }
/************************** End of sqlite3.c ******************************/
|
Changes to SQLite.Interop/src/core/sqlite3.h.
︙ | | |
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
-
+
|
**
** See also: [sqlite3_libversion()],
** [sqlite3_libversion_number()], [sqlite3_sourceid()],
** [sqlite_version()] and [sqlite_source_id()].
*/
#define SQLITE_VERSION "3.21.0"
#define SQLITE_VERSION_NUMBER 3021000
#define SQLITE_SOURCE_ID "2017-10-16 11:50:12 700a3c694438ca6cca185d0097f24799e82717ef38cb47bd83666c80f0e3cb2f"
#define SQLITE_SOURCE_ID "2017-10-24 18:55:49 1a584e499906b5c87ec7d43d4abce641fdf017c42125b083109bc77c4de48827"
/*
** CAPI3REF: Run-Time Library Version Numbers
** KEYWORDS: sqlite3_version sqlite3_sourceid
**
** These interfaces provide the same information as the [SQLITE_VERSION],
** [SQLITE_VERSION_NUMBER], and [SQLITE_SOURCE_ID] C preprocessor macros
|
︙ | | |
Changes to SQLite.Interop/src/core/sqlite3ext.h.
︙ | | |
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
-
+
|
void (*result_text16be)(sqlite3_context*,const void*,int,void(*)(void*));
void (*result_text16le)(sqlite3_context*,const void*,int,void(*)(void*));
void (*result_value)(sqlite3_context*,sqlite3_value*);
void * (*rollback_hook)(sqlite3*,void(*)(void*),void*);
int (*set_authorizer)(sqlite3*,int(*)(void*,int,const char*,const char*,
const char*,const char*),void*);
void (*set_auxdata)(sqlite3_context*,int,void*,void (*)(void*));
char * (*snprintf)(int,char*,const char*,...);
char * (*xsnprintf)(int,char*,const char*,...);
int (*step)(sqlite3_stmt*);
int (*table_column_metadata)(sqlite3*,const char*,const char*,const char*,
char const**,char const**,int*,int*,int*);
void (*thread_cleanup)(void);
int (*total_changes)(sqlite3*);
void * (*trace)(sqlite3*,void(*xTrace)(void*,const char*),void*);
int (*transfer_bindings)(sqlite3_stmt*,sqlite3_stmt*);
|
︙ | | |
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
|
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
|
-
+
|
#define sqlite3_result_text16 sqlite3_api->result_text16
#define sqlite3_result_text16be sqlite3_api->result_text16be
#define sqlite3_result_text16le sqlite3_api->result_text16le
#define sqlite3_result_value sqlite3_api->result_value
#define sqlite3_rollback_hook sqlite3_api->rollback_hook
#define sqlite3_set_authorizer sqlite3_api->set_authorizer
#define sqlite3_set_auxdata sqlite3_api->set_auxdata
#define sqlite3_snprintf sqlite3_api->snprintf
#define sqlite3_snprintf sqlite3_api->xsnprintf
#define sqlite3_step sqlite3_api->step
#define sqlite3_table_column_metadata sqlite3_api->table_column_metadata
#define sqlite3_thread_cleanup sqlite3_api->thread_cleanup
#define sqlite3_total_changes sqlite3_api->total_changes
#define sqlite3_trace sqlite3_api->trace
#ifndef SQLITE_OMIT_DEPRECATED
#define sqlite3_transfer_bindings sqlite3_api->transfer_bindings
|
︙ | | |
Changes to SQLite.Interop/src/ext/fts5.c.
︙ | | |
17315
17316
17317
17318
17319
17320
17321
17322
17323
17324
17325
17326
17327
17328
17329
|
17315
17316
17317
17318
17319
17320
17321
17322
17323
17324
17325
17326
17327
17328
17329
|
-
+
|
static void fts5SourceIdFunc(
sqlite3_context *pCtx, /* Function call context */
int nArg, /* Number of args */
sqlite3_value **apUnused /* Function arguments */
){
assert( nArg==0 );
UNUSED_PARAM2(nArg, apUnused);
sqlite3_result_text(pCtx, "fts5: 2017-10-16 11:50:12 700a3c694438ca6cca185d0097f24799e82717ef38cb47bd83666c80f0e3cb2f", -1, SQLITE_TRANSIENT);
sqlite3_result_text(pCtx, "fts5: 2017-10-24 18:55:49 1a584e499906b5c87ec7d43d4abce641fdf017c42125b083109bc77c4de48827", -1, SQLITE_TRANSIENT);
}
static int fts5Init(sqlite3 *db){
static const sqlite3_module fts5Mod = {
/* iVersion */ 2,
/* xCreate */ fts5CreateMethod,
/* xConnect */ fts5ConnectMethod,
|
︙ | | |
Changes to SQLite.Interop/src/generic/interop.h.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
-
+
|
/*
* interop.h -
*
* Written by Joe Mistachkin.
* Released to the public domain, use at your own risk!
*/
#ifndef INTEROP_VERSION
#define INTEROP_VERSION "1.0.106.0"
#define INTEROP_VERSION "1.0.107.0"
#endif
#ifndef INTEROP_SOURCE_ID
#define INTEROP_SOURCE_ID "0000000000000000000000000000000000000000"
#endif
#ifndef INTEROP_SOURCE_TIMESTAMP
|
︙ | | |
Changes to SQLite.Interop/src/win/crypt.c.
︙ | | |
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
30
31
32
33
34
35
36
37
38
39
40
41
42
43
|
-
-
-
-
|
/* Needed for re-keying */
static void * sqlite3pager_get_codecarg(Pager *pPager)
{
return (pPager->xCodec) ? pPager->pCodec: NULL;
}
void sqlite3_activate_see(const char *info)
{
}
/* Create a cryptographic context. Use the enhanced provider because it is available on
** most platforms
*/
static BOOL InitializeProvider()
{
MUTEX_LOGIC( sqlite3_mutex *pMaster = sqlite3_mutex_alloc(SQLITE_MUTEX_STATIC_MASTER); )
sqlite3_mutex_enter(pMaster);
|
︙ | | |
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
|
-
+
|
{
CreateCryptBlock(pBlock->hReadKey, pBlock->pPager, pageSize, pBlock);
/* If this fails, pvCrypt will be NULL, and the next time sqlite3Codec() is called, it will result in an error */
}
}
/* Encrypt/Decrypt functionality, called by pager.c */
void * sqlite3Codec(void *pArg, void *data, Pgno nPageNum, int nMode)
static void *sqlite3Codec(void *pArg, void *data, Pgno nPageNum, int nMode)
{
LPCRYPTBLOCK pBlock = (LPCRYPTBLOCK)pArg;
DWORD dwPageSize;
LPVOID pvTemp = NULL;
if (!pBlock) return data;
if (pBlock->pvCrypt == NULL) return NULL; /* This only happens if CreateCryptBlock() failed to make scratch space */
|
︙ | | |
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
|
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
|
+
+
+
+
+
+
+
+
+
|
Btree *pbt = db->aDb[0].pBt;
Pager *p = sqlite3BtreePager(pbt);
LPCRYPTBLOCK pBlock = (LPCRYPTBLOCK)sqlite3pager_get_codecarg(p);
if (ppKey) *ppKey = 0;
if (pnKeyLen) *pnKeyLen = pBlock ? 1: 0;
}
SQLITE_API void sqlite3_activate_see(const char *info)
{
}
/* We do not attach this key to the temp store, only the main database. */
SQLITE_API int sqlite3_key_v2(sqlite3 *db, const char *zDbName, const void *pKey, int nKey)
{
return sqlite3CodecAttach(db, 0, pKey, nKey);
}
SQLITE_API int sqlite3_key(sqlite3 *db, const void *pKey, int nKey)
{
return sqlite3_key_v2(db, 0, pKey, nKey);
}
SQLITE_API int sqlite3_rekey(sqlite3 *db, const void *pKey, int nKey)
{
return sqlite3_rekey_v2(db, 0, pKey, nKey);
}
/* Changes the encryption key for an existing database. */
SQLITE_API int sqlite3_rekey_v2(sqlite3 *db, const char *zDbName, const void *pKey, int nKey)
{
Btree *pbt = db->aDb[0].pBt;
Pager *p = sqlite3BtreePager(pbt);
LPCRYPTBLOCK pBlock = (LPCRYPTBLOCK)sqlite3pager_get_codecarg(p);
|
︙ | | |
452
453
454
455
456
457
458
459
460
461
462
463
464
465
|
457
458
459
460
461
462
463
464
465
|
-
-
-
-
-
|
}
sqlite3_mutex_leave(db->mutex);
return rc;
}
SQLITE_API int sqlite3_rekey(sqlite3 *db, const void *pKey, int nKey)
{
return sqlite3_rekey_v2(db, 0, pKey, nKey);
}
#endif /* SQLITE_HAS_CODEC */
#endif /* SQLITE_OMIT_DISKIO */
|
Changes to Setup/build.bat.
︙ | | |
211
212
213
214
215
216
217
218
219
220
221
222
223
224
|
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
|
+
+
+
+
+
+
+
+
+
|
CALL :fn_CheckMsBuildDir 14.0
GOTO setup_buildToolDir
)
IF DEFINED NETFX47ONLY (
%_AECHO% Forcing the use of the .NET Framework 4.7...
SET YEAR=2017
CALL :fn_CheckFrameworkDir v4.0.30319
CALL :fn_CheckMsBuildDir 14.0
CALL :fn_CheckVisualStudioMsBuildDir 15.0 15.0
GOTO setup_buildToolDir
)
IF DEFINED NETFX471ONLY (
%_AECHO% Forcing the use of the .NET Framework 4.7.1...
SET YEAR=2017
CALL :fn_CheckFrameworkDir v4.0.30319
CALL :fn_CheckMsBuildDir 14.0
CALL :fn_CheckVisualStudioMsBuildDir 15.0 15.0
GOTO setup_buildToolDir
)
REM
|
︙ | | |
Changes to Setup/data/SQLite.iss.
︙ | | |
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
|
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
|
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
-
+
+
-
+
-
+
-
+
|
#if Year != "2005" && Year != "2008"
Components: Application\EF6; Tasks: ngen; Filename: {code:GetNetFx4InstallRoot|Ngen.exe}; Parameters: "install ""{app}\bin\System.Data.SQLite.EF6.dll"" /nologo"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
#endif
#if Pos("NativeOnly", AppConfiguration) == 0 && AppProcessor == "x86"
#if Year == "2005"
Components: {#InstallerCondition}; Tasks: gac\vs2005; Filename: {app}\bin\Installer.exe; Parameters: "-install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx35 true -noNetFx40 true -noNetFx45 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noVs2008 true -noVs2010 true -noVs2012 true -noVs2013 true -noVs2015 true -noVs2017 true -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx2Setup()
Components: {#InstallerCondition}; Tasks: gac\vs2005; Filename: {app}\bin\Installer.exe; Parameters: "-install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx35 true -noNetFx40 true -noNetFx45 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noNetFx471 true -noVs2008 true -noVs2010 true -noVs2012 true -noVs2013 true -noVs2015 true -noVs2017 true -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx2Setup()
#endif
#if Year == "2008"
Components: {#InstallerCondition}; Tasks: gac\vs2008; Filename: {app}\bin\Installer.exe; Parameters: "-install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx40 true -noNetFx45 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noVs2005 true -noVs2010 true -noVs2012 true -noVs2013 true -noVs2015 true -noVs2017 true -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx2Setup()
Components: {#InstallerCondition}; Tasks: gac\vs2008; Filename: {app}\bin\Installer.exe; Parameters: "-install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx40 true -noNetFx45 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noNetFx471 true -noVs2005 true -noVs2010 true -noVs2012 true -noVs2013 true -noVs2015 true -noVs2017 true -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx2Setup()
#endif
#if Year == "2010"
Components: {#InstallerCondition}; Tasks: gac\vs2010; Filename: {app}\bin\Installer.exe; Parameters: "-install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx45 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noVs2005 true -noVs2008 true -noVs2012 true -noVs2013 true -noVs2015 true -noVs2017 true -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
Components: {#InstallerCondition}; Tasks: gac\vs2010; Filename: {app}\bin\Installer.exe; Parameters: "-install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx45 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noNetFx471 true -noVs2005 true -noVs2008 true -noVs2012 true -noVs2013 true -noVs2015 true -noVs2017 true -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
#endif
#if Year == "2012"
Components: {#InstallerCondition}; Tasks: gac\vs2012; Filename: {app}\bin\Installer.exe; Parameters: "-install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx40 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noVs2005 true -noVs2008 true -noVs2010 true -noVs2013 true -noVs2015 true -noVs2017 true -configVersion 4.0.30319 -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
Components: {#InstallerCondition}; Tasks: gac\vs2012; Filename: {app}\bin\Installer.exe; Parameters: "-perUser true -install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx40 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noVs2005 true -noVs2008 true -noVs2010 true -noVs2013 true -noVs2015 true -noVs2017 true -configVersion 4.0.30319 -vsVersionSuffix _Config -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
Components: {#InstallerCondition}; Tasks: gac\vs2012; Filename: {app}\bin\Installer.exe; Parameters: "-install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx40 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noNetFx471 true -noVs2005 true -noVs2008 true -noVs2010 true -noVs2013 true -noVs2015 true -noVs2017 true -configVersion 4.0.30319 -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
Components: {#InstallerCondition}; Tasks: gac\vs2012; Filename: {app}\bin\Installer.exe; Parameters: "-perUser true -install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx40 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noNetFx471 true -noVs2005 true -noVs2008 true -noVs2010 true -noVs2013 true -noVs2015 true -noVs2017 true -configVersion 4.0.30319 -vsVersionSuffix _Config -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
#endif
#if Year == "2013"
Components: {#InstallerCondition}; Tasks: gac\vs2013; Filename: {app}\bin\Installer.exe; Parameters: "-install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx40 true -noNetFx45 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noVs2005 true -noVs2008 true -noVs2010 true -noVs2012 true -noVs2015 true -noVs2017 true -configVersion 4.0.30319 -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
Components: {#InstallerCondition}; Tasks: gac\vs2013; Filename: {app}\bin\Installer.exe; Parameters: "-install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx40 true -noNetFx45 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noNetFx471 true -noVs2005 true -noVs2008 true -noVs2010 true -noVs2012 true -noVs2015 true -noVs2017 true -configVersion 4.0.30319 -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
#endif
#if Year == "2015"
Components: {#InstallerCondition}; Tasks: gac\vs2015; Filename: {app}\bin\Installer.exe; Parameters: "-install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx40 true -noNetFx45 true -noNetFx451 true -noNetFx452 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noVs2005 true -noVs2008 true -noVs2010 true -noVs2012 true -noVs2013 true -noVs2017 true -configVersion 4.0.30319 -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
Components: {#InstallerCondition}; Tasks: gac\vs2015; Filename: {app}\bin\Installer.exe; Parameters: "-install true -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx40 true -noNetFx45 true -noNetFx451 true -noNetFx452 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noNetFx471 true -noVs2005 true -noVs2008 true -noVs2010 true -noVs2012 true -noVs2013 true -noVs2017 true -configVersion 4.0.30319 -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
#endif
#endif
[UninstallRun]
#if Pos("NativeOnly", AppConfiguration) == 0 && AppProcessor == "x86"
#if Year == "2015"
Components: {#InstallerCondition}; Tasks: gac\vs2015; Filename: {app}\bin\Installer.exe; Parameters: "-install false -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx40 true -noNetFx45 true -noNetFx451 true -noNetFx452 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noVs2005 true -noVs2008 true -noVs2010 true -noVs2012 true -noVs2013 true -noVs2017 true -configVersion 4.0.30319 -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
Components: {#InstallerCondition}; Tasks: gac\vs2015; Filename: {app}\bin\Installer.exe; Parameters: "-install false -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx40 true -noNetFx45 true -noNetFx451 true -noNetFx452 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noNetFx471 true -noVs2005 true -noVs2008 true -noVs2010 true -noVs2012 true -noVs2013 true -noVs2017 true -configVersion 4.0.30319 -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
#endif
#if Year == "2013"
Components: {#InstallerCondition}; Tasks: gac\vs2013; Filename: {app}\bin\Installer.exe; Parameters: "-install false -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx40 true -noNetFx45 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noVs2005 true -noVs2008 true -noVs2010 true -noVs2012 true -noVs2015 true -noVs2017 true -configVersion 4.0.30319 -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
Components: {#InstallerCondition}; Tasks: gac\vs2013; Filename: {app}\bin\Installer.exe; Parameters: "-install false -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx40 true -noNetFx45 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noNetFx471 true -noVs2005 true -noVs2008 true -noVs2010 true -noVs2012 true -noVs2015 true -noVs2017 true -configVersion 4.0.30319 -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
#endif
#if Year == "2012"
Components: {#InstallerCondition}; Tasks: gac\vs2012; Filename: {app}\bin\Installer.exe; Parameters: "-perUser true -install false -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx40 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noVs2005 true -noVs2008 true -noVs2010 true -noVs2013 true -noVs2015 true -noVs2017 true -configVersion 4.0.30319 -vsVersionSuffix _Config -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
Components: {#InstallerCondition}; Tasks: gac\vs2012; Filename: {app}\bin\Installer.exe; Parameters: "-install false -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx40 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noVs2005 true -noVs2008 true -noVs2010 true -noVs2013 true -noVs2015 true -noVs2017 true -configVersion 4.0.30319 -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
Components: {#InstallerCondition}; Tasks: gac\vs2012; Filename: {app}\bin\Installer.exe; Parameters: "-perUser true -install false -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx40 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noNetFx471 true -noVs2005 true -noVs2008 true -noVs2010 true -noVs2013 true -noVs2015 true -noVs2017 true -configVersion 4.0.30319 -vsVersionSuffix _Config -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
Components: {#InstallerCondition}; Tasks: gac\vs2012; Filename: {app}\bin\Installer.exe; Parameters: "-install false -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx40 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noNetFx471 true -noVs2005 true -noVs2008 true -noVs2010 true -noVs2013 true -noVs2015 true -noVs2017 true -configVersion 4.0.30319 -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
#endif
#if Year == "2010"
Components: {#InstallerCondition}; Tasks: gac\vs2010; Filename: {app}\bin\Installer.exe; Parameters: "-install false -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx45 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noVs2005 true -noVs2008 true -noVs2012 true -noVs2013 true -noVs2015 true -noVs2017 true -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
Components: {#InstallerCondition}; Tasks: gac\vs2010; Filename: {app}\bin\Installer.exe; Parameters: "-install false -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx20 true -noNetFx35 true -noNetFx45 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noNetFx471 true -noVs2005 true -noVs2008 true -noVs2012 true -noVs2013 true -noVs2015 true -noVs2017 true -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
#endif
#if Year == "2008"
Components: {#InstallerCondition}; Tasks: gac\vs2008; Filename: {app}\bin\Installer.exe; Parameters: "-install false -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx40 true -noNetFx45 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noVs2005 true -noVs2010 true -noVs2012 true -noVs2013 true -noVs2015 true -noVs2017 true -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx2Setup()
Components: {#InstallerCondition}; Tasks: gac\vs2008; Filename: {app}\bin\Installer.exe; Parameters: "-install false -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx40 true -noNetFx45 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noNetFx471 true -noVs2005 true -noVs2010 true -noVs2012 true -noVs2013 true -noVs2015 true -noVs2017 true -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx2Setup()
#endif
#if Year == "2005"
Components: {#InstallerCondition}; Tasks: gac\vs2005; Filename: {app}\bin\Installer.exe; Parameters: "-install false -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx35 true -noNetFx40 true -noNetFx45 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noVs2008 true -noVs2010 true -noVs2012 true -noVs2013 true -noVs2015 true -noVs2017 true -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx2Setup()
Components: {#InstallerCondition}; Tasks: gac\vs2005; Filename: {app}\bin\Installer.exe; Parameters: "-install false -wow64 true -installFlags AllExceptGlobalAssemblyCache -tracePriority Lowest -verbose true -noCompact true -noNetFx35 true -noNetFx40 true -noNetFx45 true -noNetFx451 true -noNetFx452 true -noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true -noNetFx471 true -noVs2008 true -noVs2010 true -noVs2012 true -noVs2013 true -noVs2015 true -noVs2017 true -whatIf false -confirm true"; Flags: skipifdoesntexist; Check: CheckIsNetFx2Setup()
#endif
#endif
#if Year != "2005" && Year != "2008"
Components: Application\EF6; Tasks: ngen; Filename: {code:GetNetFx4InstallRoot|Ngen.exe}; Parameters: "uninstall ""{app}\bin\System.Data.SQLite.EF6.dll"" /nologo"; Flags: skipifdoesntexist; Check: CheckIsNetFx4Setup()
#endif
|
︙ | | |
Changes to Setup/data/verify.lst.
︙ | | |
340
341
342
343
344
345
346
347
348
349
350
351
352
353
|
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
|
+
|
Setup/set_netFx45.bat
Setup/set_netFx451.bat
Setup/set_netFx452.bat
Setup/set_netFx46.bat
Setup/set_netFx461.bat
Setup/set_netFx462.bat
Setup/set_netFx47.bat
Setup/set_netFx471.bat
Setup/set_Release.bat
Setup/set_Release_ARMV7.bat
"Setup/set_Release_CEPC DevPlatform.bat"
"Setup/set_Release_Pocket PC 2003 (ARMV4).bat"
Setup/set_Release_Win32.bat
Setup/set_Release_x64.bat
Setup/set_Release_x64_2005.bat
|
︙ | | |
830
831
832
833
834
835
836
837
838
839
840
841
842
843
|
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
|
+
|
Tests/stress.eagle
Tests/template/
Tests/template/empty.eagle
Tests/thread.eagle
Tests/tkt-00f86f9739.eagle
Tests/tkt-0a32885109.eagle
Tests/tkt-0d5b1ef362.eagle
Tests/tkt-0e48e80333.eagle
Tests/tkt-0ed01c447c.eagle
Tests/tkt-17045010df.eagle
Tests/tkt-1c456ae75f.eagle
Tests/tkt-1f7bfff467.eagle
Tests/tkt-201128cc88.eagle
Tests/tkt-2556655d1b.eagle
Tests/tkt-2abbf2c244.eagle
|
︙ | | |
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
|
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
setupEf6Bundle setupX86Vs2017]
###############################################################################
set manifests(sqlite-netFx47-setup-bundle-x64-2017-.exe) [list sds \
setupCore setupBundle setupLinqCore setupEf6Core setupLinqBundle \
setupEf6Bundle setupX64Vs2017]
###############################################################################
################## Visual Studio 2017 / .NET Framework 4.7.1 ##################
############################### Binary Packages ###############################
###############################################################################
set manifests(sqlite-netFx471-binary-Win32-2017-.zip) [list sds \
binaryCore binaryLinq binaryEf6 binaryExtra binaryInterop]
###############################################################################
set manifests(sqlite-netFx471-binary-x64-2017-.zip) [list sds \
binaryCore binaryLinq binaryEf6 binaryExtra binaryInterop]
###############################################################################
set manifests(sqlite-netFx471-binary-bundle-Win32-2017-.zip) [list sds \
binaryCore binaryLinq binaryEf6 binaryExtra]
###############################################################################
set manifests(sqlite-netFx471-binary-bundle-x64-2017-.zip) [list sds \
binaryCore binaryLinq binaryEf6 binaryExtra]
###############################################################################
set manifests(sqlite-netFx471-static-binary-Win32-2017-.zip) [list sds \
binaryCore binaryLinq binaryEf6 binaryExtra binaryInterop]
###############################################################################
set manifests(sqlite-netFx471-static-binary-x64-2017-.zip) [list sds \
binaryCore binaryLinq binaryEf6 binaryExtra binaryInterop]
###############################################################################
set manifests(sqlite-netFx471-static-binary-bundle-Win32-2017-.zip) [list sds \
binaryCore binaryLinq binaryEf6 binaryExtra]
###############################################################################
set manifests(sqlite-netFx471-static-binary-bundle-x64-2017-.zip) [list sds \
binaryCore binaryLinq binaryEf6 binaryExtra]
###############################################################################
################## Visual Studio 2017 / .NET Framework 4.7.1 ##################
############################### Setup Packages ################################
###############################################################################
set manifests(sqlite-netFx471-setup-x86-2017-.exe) [list sds \
setupCore setupInterop setupLinqCore setupEf6Core setupLinqInterop \
setupEf6Interop setupX86Vs2017]
###############################################################################
set manifests(sqlite-netFx471-setup-x64-2017-.exe) [list sds \
setupCore setupInterop setupLinqCore setupEf6Core setupLinqInterop \
setupEf6Interop setupX64Vs2017]
###############################################################################
set manifests(sqlite-netFx471-setup-bundle-x86-2017-.exe) [list sds \
setupCore setupBundle setupLinqCore setupEf6Core setupLinqBundle \
setupEf6Bundle setupX86Vs2017]
###############################################################################
set manifests(sqlite-netFx471-setup-bundle-x64-2017-.exe) [list sds \
setupCore setupBundle setupLinqCore setupEf6Core setupLinqBundle \
setupEf6Bundle setupX64Vs2017]
###############################################################################
############################### NuGet Packages ################################
###############################################################################
set manifests(System.Data.SQLite..nupkg) [list sds \
nuGetMetadata nuGetPrimary]
|
︙ | | |
Changes to Setup/set_2005.bat.
︙ | | |
13
14
15
16
17
18
19
20
21
22
|
13
14
15
16
17
18
19
20
21
22
23
|
+
|
SET NETFX45ONLY=
SET NETFX451ONLY=
SET NETFX452ONLY=
SET NETFX46ONLY=
SET NETFX461ONLY=
SET NETFX462ONLY=
SET NETFX47ONLY=
SET NETFX471ONLY=
SET BUILD_ARGS=
VERIFY > NUL
|
Changes to Setup/set_2008.bat.
︙ | | |
13
14
15
16
17
18
19
20
21
22
|
13
14
15
16
17
18
19
20
21
22
23
|
+
|
SET NETFX45ONLY=
SET NETFX451ONLY=
SET NETFX452ONLY=
SET NETFX46ONLY=
SET NETFX461ONLY=
SET NETFX462ONLY=
SET NETFX47ONLY=
SET NETFX471ONLY=
SET BUILD_ARGS=
VERIFY > NUL
|
Changes to Setup/set_2010.bat.
︙ | | |
13
14
15
16
17
18
19
20
21
22
|
13
14
15
16
17
18
19
20
21
22
23
|
+
|
SET NETFX45ONLY=
SET NETFX451ONLY=
SET NETFX452ONLY=
SET NETFX46ONLY=
SET NETFX461ONLY=
SET NETFX462ONLY=
SET NETFX47ONLY=
SET NETFX471ONLY=
SET BUILD_ARGS=
VERIFY > NUL
|
Changes to Setup/set_2012.bat.
︙ | | |
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
+
|
SET NETFX45ONLY=1
SET NETFX451ONLY=
SET NETFX452ONLY=
SET NETFX46ONLY=
SET NETFX461ONLY=
SET NETFX462ONLY=
SET NETFX47ONLY=
SET NETFX471ONLY=
REM
REM HACK: Evidently, installing Visual Studio 2013 breaks using MSBuild to
REM build native projects that specify a platform toolset of "v110".
REM
SET BUILD_ARGS=/property:VisualStudioVersion=11.0
|
︙ | | |
Changes to Setup/set_2013.bat.
︙ | | |
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
+
|
SET NETFX45ONLY=
SET NETFX451ONLY=1
SET NETFX452ONLY=
SET NETFX46ONLY=
SET NETFX461ONLY=
SET NETFX462ONLY=
SET NETFX47ONLY=
SET NETFX471ONLY=
REM
REM HACK: Evidently, using MSBuild with Visual Studio 2013 requires some
REM extra magic to make it recognize the "v120" platform toolset.
REM
SET BUILD_ARGS=/property:VisualStudioVersion=12.0
|
︙ | | |
Changes to Setup/set_2015.bat.
︙ | | |
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
+
|
SET NETFX45ONLY=
SET NETFX451ONLY=
SET NETFX452ONLY=
SET NETFX46ONLY=1
SET NETFX461ONLY=
SET NETFX462ONLY=
SET NETFX47ONLY=
SET NETFX471ONLY=
REM
REM HACK: Evidently, using MSBuild with Visual Studio 2015 requires some
REM extra magic to make it recognize the "v140" platform toolset.
REM
SET BUILD_ARGS=/property:VisualStudioVersion=14.0
|
︙ | | |
Changes to Setup/set_2017.bat.
︙ | | |
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
+
|
SET NETFX45ONLY=
SET NETFX451ONLY=
SET NETFX452ONLY=
SET NETFX46ONLY=
SET NETFX461ONLY=
SET NETFX462ONLY=
SET NETFX47ONLY=1
SET NETFX471ONLY=
REM
REM HACK: Evidently, using MSBuild with Visual Studio 2017 requires some
REM extra magic to make it recognize the "v141" platform toolset.
REM
SET BUILD_ARGS=/property:VisualStudioVersion=15.0
|
︙ | | |
Changes to Setup/set_common.bat.
︙ | | |
84
85
86
87
88
89
90
91
92
93
94
95
96
97
|
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
|
+
|
SET FRAMEWORK2015=netFx46
REM SET FRAMEWORK2015=netFx461
REM SET FRAMEWORK2015=netFx462
)
IF NOT DEFINED FRAMEWORK2017 (
SET FRAMEWORK2017=netFx47
REM SET FRAMEWORK2015=netFx471
)
IF DEFINED YEARS GOTO end_of_file
IF NOT DEFINED NOVS2005 (
IF DEFINED VS2005SP (
SET YEARS=%YEARS% 2005
|
︙ | | |
Changes to Setup/set_netFx47.bat.
︙ | | |
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
-
+
|
::
IF NOT DEFINED ISNETFX2 (
SET ISNETFX2=False
)
IF NOT DEFINED VCRUNTIME (
SET VCRUNTIME=2017_VCU1
SET VCRUNTIME=2017_VCU3
)
IF NOT DEFINED CONFIGURATION (
SET CONFIGURATION=Release
)
IF NOT DEFINED PLATFORM (
|
︙ | | |
Added Setup/set_netFx471.bat.
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
@ECHO OFF
::
:: set_netFx471.bat --
::
:: Written by Joe Mistachkin.
:: Released to the public domain, use at your own risk!
::
IF NOT DEFINED ISNETFX2 (
SET ISNETFX2=False
)
IF NOT DEFINED VCRUNTIME (
SET VCRUNTIME=2017_VCU3
)
IF NOT DEFINED CONFIGURATION (
SET CONFIGURATION=Release
)
IF NOT DEFINED PLATFORM (
SET PLATFORM=Win32
)
IF NOT DEFINED PROCESSOR (
SET PROCESSOR=x86
)
IF NOT DEFINED YEAR (
SET YEAR=2017
)
IF NOT DEFINED FRAMEWORK (
SET FRAMEWORK=netFx471
)
:end_of_file
|
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | |
Changes to Setup/set_x64_2017.bat.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
-
+
|
@ECHO OFF
::
:: set_x64_2017.bat --
::
:: Written by Joe Mistachkin.
:: Released to the public domain, use at your own risk!
::
SET ISNETFX2=False
SET VCRUNTIME=2017_VCU1
SET VCRUNTIME=2017_VCU3
SET PLATFORM=x64
SET PROCESSOR=x64
SET YEAR=2017
|
Changes to Setup/set_x86_2017.bat.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
-
+
|
@ECHO OFF
::
:: set_x86_2017.bat --
::
:: Written by Joe Mistachkin.
:: Released to the public domain, use at your own risk!
::
SET ISNETFX2=False
SET VCRUNTIME=2017_VCU1
SET VCRUNTIME=2017_VCU3
SET PLATFORM=Win32
SET PROCESSOR=x86
SET YEAR=2017
|
Changes to System.Data.SQLite.Linq/AssemblyInfo.cs.
︙ | | |
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
-
+
-
-
+
+
|
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
[assembly: CLSCompliant(true)]
#if !NET_40 && !NET_45 && !NET_451 && !NET_452 && !NET_46 && !NET_461 && !NET_462 && !NET_47
#if !NET_40 && !NET_45 && !NET_451 && !NET_452 && !NET_46 && !NET_461 && !NET_462 && !NET_47 && !NET_471
[assembly: AllowPartiallyTrustedCallers]
#endif
[assembly: ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Build and Revision Numbers
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.106.0")]
[assembly: AssemblyFileVersion("1.0.106.0")]
[assembly: AssemblyVersion("1.0.107.0")]
[assembly: AssemblyFileVersion("1.0.107.0")]
|
Changes to System.Data.SQLite.Linq/SQL Generation/InternalBase.cs.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
-
+
-
+
-
+
|
/********************************************************
* ADO.NET 2.0 Data Provider for SQLite Version 3.X
* Written by Robert Simpson (robert@blackcastlesoft.com)
*
* Released to the public domain, use at your own risk!
********************************************************/
using System.Text;
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471
using System.Runtime;
#endif
#if USE_ENTITY_FRAMEWORK_6
namespace System.Data.SQLite.EF6
#else
namespace System.Data.SQLite.Linq
#endif
{
internal abstract class InternalBase
{
// Methods
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
#endif
protected InternalBase()
{
}
internal abstract void ToCompactString(StringBuilder builder);
internal virtual string ToFullString()
{
StringBuilder builder = new StringBuilder();
this.ToFullString(builder);
return builder.ToString();
}
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
#endif
internal virtual void ToFullString(StringBuilder builder)
{
this.ToCompactString(builder);
}
|
︙ | | |
Changes to System.Data.SQLite.Linq/SQL Generation/KeyToListMap.cs.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
-
+
|
/********************************************************
* ADO.NET 2.0 Data Provider for SQLite Version 3.X
* Written by Robert Simpson (robert@blackcastlesoft.com)
*
* Released to the public domain, use at your own risk!
********************************************************/
using System.Collections.Generic;
using System.Text;
using System.Collections.ObjectModel;
using System.Collections;
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471
using System.Runtime;
#endif
#if USE_ENTITY_FRAMEWORK_6
namespace System.Data.SQLite.EF6
#else
namespace System.Data.SQLite.Linq
|
︙ | | |
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
|
-
+
|
{
return this.m_map.Keys;
}
}
internal IEnumerable<KeyValuePair<TKey, List<TValue>>> KeyValuePairs
{
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
#endif
get
{
return this.m_map;
}
}
}
}
|
Changes to System.Data.SQLite.Linq/SQL Generation/SqlChecker.cs.
︙ | | |
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
-
+
|
{
#if false
private static Type sql8rewriter;
static SqlChecker()
{
string version =
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471
"4.0.0.0";
#else
"3.5.0.0";
#endif
sql8rewriter = Type.GetType(String.Format("System.Data.SqlClient.SqlGen.Sql8ExpressionRewriter, System.Data.Entity, Version={0}, Culture=neutral, PublicKeyToken=b77a5c561934e089", version), false);
}
|
︙ | | |
Changes to System.Data.SQLite.Linq/SQL Generation/StringUtil.cs.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
-
+
|
/********************************************************
* ADO.NET 2.0 Data Provider for SQLite Version 3.X
* Written by Robert Simpson (robert@blackcastlesoft.com)
*
* Released to the public domain, use at your own risk!
********************************************************/
using System.Collections.Generic;
using System.Text;
using System.Globalization;
using System.Collections;
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471
using System.Runtime;
#endif
#if USE_ENTITY_FRAMEWORK_6
namespace System.Data.SQLite.EF6
#else
namespace System.Data.SQLite.Linq
|
︙ | | |
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
|
-
+
|
}
private static string InvariantConvertToString<T>(T value)
{
return string.Format(CultureInfo.InvariantCulture, "{0}", new object[] { value });
}
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
#endif
internal static bool IsNullOrEmptyOrWhiteSpace(string value)
{
return IsNullOrEmptyOrWhiteSpace(value, 0);
}
|
︙ | | |
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
|
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
|
-
+
|
}
internal static void ToSeparatedString(StringBuilder builder, IEnumerable list, string separator)
{
ToSeparatedStringPrivate(builder, list, separator, string.Empty, false);
}
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471
[TargetedPatchingOptOut("Performance critical to inline this type of method across NGen image boundaries")]
#endif
internal static void ToSeparatedString(StringBuilder stringBuilder, IEnumerable list, string separator, string nullValue)
{
ToSeparatedStringPrivate(stringBuilder, list, separator, nullValue, false);
}
|
︙ | | |
Changes to System.Data.SQLite.Linq/SQLiteProviderFactory.cs.
︙ | | |
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
+
|
namespace System.Data.SQLite.EF6
#else
namespace System.Data.SQLite.Linq
#endif
{
using System;
using System.Data.Common;
using System.Globalization;
#if USE_ENTITY_FRAMEWORK_6
using System.Data.Entity.Core.Common;
#endif
/// <summary>
/// SQLite implementation of <see cref="DbProviderFactory" />.
|
︙ | | |
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
|
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
|
+
+
+
+
+
+
+
+
+
+
|
public object GetService(
Type serviceType
)
{
if ((serviceType == typeof(ISQLiteSchemaExtensions)) ||
(serviceType == typeof(DbProviderServices)))
{
SQLiteLog.LogMessage(HelperMethods.StringFormat(
CultureInfo.CurrentCulture,
"IServiceProvider.GetService for type \"{0}\" (success).",
serviceType));
return SQLiteProviderServices.Instance;
}
SQLiteLog.LogMessage(HelperMethods.StringFormat(
CultureInfo.CurrentCulture,
"IServiceProvider.GetService for type \"{0}\" (failure).",
serviceType));
return null;
}
#endregion
///////////////////////////////////////////////////////////////////////
|
︙ | | |
Changes to System.Data.SQLite.Linq/System.Data.SQLite.Core.2012.csproj.
︙ | | |
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
-
+
+
|
<Reference Include="EntityFramework"
Condition="'$(NetFx45)' != 'false' Or
'$(NetFx451)' != 'false' Or
'$(NetFx452)' != 'false' Or
'$(NetFx46)' != 'false' Or
'$(NetFx461)' != 'false' Or
'$(NetFx462)' != 'false' Or
'$(NetFx47)' != 'false'">
'$(NetFx47)' != 'false' Or
'$(NetFx471)' != 'false'">
<HintPath>$(SQLiteNetDir)\Externals\EntityFramework\lib\net45\EntityFramework.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
|
︙ | | |
Changes to System.Data.SQLite.Linq/System.Data.SQLite.Core.2013.csproj.
︙ | | |
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
-
+
+
|
<Reference Include="EntityFramework"
Condition="'$(NetFx45)' != 'false' Or
'$(NetFx451)' != 'false' Or
'$(NetFx452)' != 'false' Or
'$(NetFx46)' != 'false' Or
'$(NetFx461)' != 'false' Or
'$(NetFx462)' != 'false' Or
'$(NetFx47)' != 'false'">
'$(NetFx47)' != 'false' Or
'$(NetFx471)' != 'false'">
<HintPath>$(SQLiteNetDir)\Externals\EntityFramework\lib\net45\EntityFramework.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
|
︙ | | |
Changes to System.Data.SQLite.Linq/System.Data.SQLite.Core.2015.csproj.
︙ | | |
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
|
-
+
+
|
<Reference Include="EntityFramework"
Condition="'$(NetFx45)' != 'false' Or
'$(NetFx451)' != 'false' Or
'$(NetFx452)' != 'false' Or
'$(NetFx46)' != 'false' Or
'$(NetFx461)' != 'false' Or
'$(NetFx462)' != 'false' Or
'$(NetFx47)' != 'false'">
'$(NetFx47)' != 'false' Or
'$(NetFx471)' != 'false'">
<HintPath>$(SQLiteNetDir)\Externals\EntityFramework\lib\net45\EntityFramework.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="AssemblyInfo.cs" />
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
|
︙ | | |
Changes to System.Data.SQLite/AssemblyInfo.cs.
︙ | | |
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
|
-
+
-
+
-
+
-
+
-
+
|
// Setting ComVisible to false makes the types in this assembly not visible
// to COM componenets. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
[assembly: ComVisible(false)]
[assembly: CLSCompliant(true)]
[assembly: InternalsVisibleTo("System.Data.SQLite.Linq, PublicKey=" + System.Data.SQLite.SQLite3.PublicKey)]
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471
[assembly: InternalsVisibleTo("System.Data.SQLite.EF6, PublicKey=" + System.Data.SQLite.SQLite3.PublicKey)]
#endif
[assembly: NeutralResourcesLanguage("en")]
#if !PLATFORM_COMPACTFRAMEWORK
#if !NET_40 && !NET_45 && !NET_451 && !NET_452 && !NET_46 && !NET_461 && !NET_462 && !NET_47
#if !NET_40 && !NET_45 && !NET_451 && !NET_452 && !NET_46 && !NET_461 && !NET_462 && !NET_47 && !NET_471
[assembly: AllowPartiallyTrustedCallers]
#endif
[assembly: ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471
//
// NOTE: This attribute is only available in .NET Framework 4.0 or higher.
//
[assembly: SecurityRules(SecurityRuleSet.Level1)]
#endif
#endif
// Version information for an assembly consists of the following four values:
//
// Major Version
// Minor Version
// Build Number
// Revision
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
[assembly: AssemblyVersion("1.0.106.0")]
[assembly: AssemblyVersion("1.0.107.0")]
#if !PLATFORM_COMPACTFRAMEWORK
[assembly: AssemblyFileVersion("1.0.106.0")]
[assembly: AssemblyFileVersion("1.0.107.0")]
#endif
|
Changes to System.Data.SQLite/Configurations/System.Data.SQLite.dll.config.
︙ | | |
152
153
154
155
156
157
158
159
160
161
162
163
164
165
|
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
|
+
+
+
+
+
+
+
+
+
|
useful in ASP.NET and other hosted environments where direct
control of the location of the managed assemblies is not under
the control of the application.
-->
<!--
<add key="PreLoadSQLite_BaseDirectory" value="" />
-->
<!--
NOTE: If this configuration variable is set [to anything], the native
library pre-loader subsystem will attempt to give the interactive
user an opportunity to attach a debugger to the current process.
-->
<!--
<add key="PreLoadSQLite_BreakIntoDebugger" value="1" />
-->
<!--
NOTE: If this configuration variable is set [to anything], it will be
used as the base file name (without directory information) for
the native SQLite library to be pre-loaded (e.g. "sqlite3.dll"
or "libsqlite3.so.0").
-->
|
︙ | | |
Changes to System.Data.SQLite/ISQLiteNativeModule.cs.
︙ | | |
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
-
+
|
/// been reported up to the application.
/// </para>
/// <para>
/// If the xCreate method is omitted (left as a NULL pointer) then the
/// virtual table is an eponymous-only virtual table. New instances of
/// the virtual table cannot be created using CREATE VIRTUAL TABLE and the
/// virtual table can only be used via its module name.
/// Note that SQLite versions prior to 3.9.0 do not understand
/// Note that SQLite versions prior to 3.9.0 (2015-10-14) do not understand
/// eponymous-only virtual tables and will segfault if an attempt is made
/// to CREATE VIRTUAL TABLE on an eponymous-only virtual table because
/// the xCreate method was not checked for null.
/// </para>
/// <para>
/// If the xCreate method is the exact same pointer as the xConnect method,
/// that indicates that the virtual table does not need to initialize backing
|
︙ | | |
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
|
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
|
-
-
-
-
+
+
+
+
+
+
+
+
+
|
/// virtual table implementation. But SQLite does assume that the PRIMARY KEY
/// constraint is valid - that the identified columns really are UNIQUE and
/// NOT NULL - and it uses that assumption to optimize queries against the
/// virtual table.
/// </para>
/// <para>
/// The rowid column is not accessible on a
/// WITHOUT ROWID virtual table (of course). Furthermore, since the
/// xUpdate method depends on having a valid rowid, the xUpdate method
/// must be NULL for a WITHOUT ROWID virtual table. That in turn means that
/// WITHOUT ROWID virtual tables must be read-only.
/// WITHOUT ROWID virtual table (of course).
/// </para>
/// <para>
/// The xUpdate method was originally designed around having a
/// ROWID as a single value. The xUpdate method has been expanded to
/// accommodate an arbitrary PRIMARY KEY in place of the ROWID, but the
/// PRIMARY KEY must still be only one column. For this reason, SQLite
/// will reject any WITHOUT ROWID virtual table that has more than one
/// PRIMARY KEY column and a non-NULL xUpdate method.
/// </para>
/// </summary>
/// <param name="pDb">
/// The native database connection handle.
/// </param>
/// <param name="pAux">
/// The original native pointer value that was provided to the
|
︙ | | |
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
|
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
|
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/// to access these fields in an sqlite3_index_info structure created by an
/// older version of SQLite are undefined.
/// </para>
/// <para>
/// In addition, there are some defined constants:
/// </para>
/// <para><code>
/// #define SQLITE_INDEX_CONSTRAINT_EQ 2
/// #define SQLITE_INDEX_CONSTRAINT_GT 4
/// #define SQLITE_INDEX_CONSTRAINT_LE 8
/// #define SQLITE_INDEX_CONSTRAINT_LT 16
/// #define SQLITE_INDEX_CONSTRAINT_GE 32
/// #define SQLITE_INDEX_CONSTRAINT_MATCH 64
/// #define SQLITE_INDEX_CONSTRAINT_LIKE 65 /* 3.10.0 and later only */
/// #define SQLITE_INDEX_CONSTRAINT_GLOB 66 /* 3.10.0 and later only */
/// #define SQLITE_INDEX_CONSTRAINT_REGEXP 67 /* 3.10.0 and later only */
/// #define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */
/// #define SQLITE_INDEX_CONSTRAINT_EQ 2
/// #define SQLITE_INDEX_CONSTRAINT_GT 4
/// #define SQLITE_INDEX_CONSTRAINT_LE 8
/// #define SQLITE_INDEX_CONSTRAINT_LT 16
/// #define SQLITE_INDEX_CONSTRAINT_GE 32
/// #define SQLITE_INDEX_CONSTRAINT_MATCH 64
/// #define SQLITE_INDEX_CONSTRAINT_LIKE 65 /* 3.10.0 and later */
/// #define SQLITE_INDEX_CONSTRAINT_GLOB 66 /* 3.10.0 and later */
/// #define SQLITE_INDEX_CONSTRAINT_REGEXP 67 /* 3.10.0 and later */
/// #define SQLITE_INDEX_CONSTRAINT_NE 68 /* 3.21.0 and later */
/// #define SQLITE_INDEX_CONSTRAINT_ISNOT 69 /* 3.21.0 and later */
/// #define SQLITE_INDEX_CONSTRAINT_ISNOTNULL 70 /* 3.21.0 and later */
/// #define SQLITE_INDEX_CONSTRAINT_ISNULL 71 /* 3.21.0 and later */
/// #define SQLITE_INDEX_CONSTRAINT_IS 72 /* 3.21.0 and later */
/// #define SQLITE_INDEX_SCAN_UNIQUE 1 /* Scan visits at most 1 row */
/// </code></para>
/// <para>
/// The SQLite core calls the xBestIndex method when it is compiling a query
/// that involves a virtual table. In other words, SQLite calls this method
/// when it is running sqlite3_prepare() or the equivalent.
/// By calling this method, the
/// SQLite core is saying to the virtual table that it needs to access
|
︙ | | |
1042
1043
1044
1045
1046
1047
1048
1049
1050
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
|
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
|
-
-
+
+
+
-
-
+
+
+
+
-
-
-
+
+
+
+
+
+
-
-
+
+
+
-
+
+
|
/// must choose a rowid for the newly inserted row. Subsequent argv[]
/// entries contain values of the columns of the virtual table, in the
/// order that the columns were declared. The number of columns will
/// match the table declaration that the xConnect or xCreate method made
/// using the sqlite3_declare_vtab() call. All hidden columns are included.
/// </para>
/// <para>
/// When doing an insert without a rowid (argc>1, argv[1] is an SQL NULL), the
/// implementation must set *pRowid to the rowid of the newly inserted row;
/// When doing an insert without a rowid (argc>1, argv[1] is an SQL NULL),
/// on a virtual table that uses ROWID (but not on a WITHOUT ROWID virtual table,
/// the implementation must set *pRowid to the rowid of the newly inserted row;
/// this will become the value returned by the sqlite3_last_insert_rowid()
/// function. Setting this value in all the other cases is a harmless no-op;
/// the SQLite engine ignores the *pRowid return value if argc==1 or
/// argv[1] is not an SQL NULL.
/// </para>
/// <para>
/// Each call to xUpdate will fall into one of cases shown below.
/// Not that references to <![CDATA[<b>]]>argv[i]<![CDATA[</b>]]> mean the SQL value
/// held within the argv[i] object, not the argv[i]
/// object itself.
/// </para>
/// <para><code>
/// <![CDATA[<dl>]]>
/// <![CDATA[<dt>]]><![CDATA[<b>]]>argc = 1<![CDATA[</b>]]>
/// <![CDATA[</dt>]]><![CDATA[<dd>]]>The single row with rowid equal to argv[0] is deleted. No insert occurs.
/// <![CDATA[<dt>]]><![CDATA[<b>]]>argc = 1 <![CDATA[<br>]]> argv[0] ≠ NULL<![CDATA[</b>]]>
/// <![CDATA[</dt>]]><![CDATA[<dd>]]>
/// The single row with rowid or PRIMARY KEY equal to argv[0] is deleted.
/// No insert occurs.
/// <![CDATA[</dd>]]><![CDATA[<dt>]]><![CDATA[<b>]]>argc > 1 <![CDATA[<br>]]> argv[0] = NULL<![CDATA[</b>]]>
/// <![CDATA[</dt>]]><![CDATA[<dd>]]>A new row is inserted with a rowid argv[1] and column values in
/// argv[2] and following. If argv[1] is an SQL NULL,
/// the a new unique rowid is generated automatically.
/// <![CDATA[</dt>]]><![CDATA[<dd>]]>
/// A new row is inserted with column values taken from
/// argv[2] and following. In a rowid virtual table, if argv[1] is an SQL NULL,
/// then a new unique rowid is generated automatically. The argv[1] will be NULL
/// for a WITHOUT ROWID virtual table, in which case the implementation should
/// take the PRIMARY KEY value from the appropiate column in argv[2] and following.
/// <![CDATA[</dd>]]><![CDATA[<dt>]]><![CDATA[<b>]]>argc > 1 <![CDATA[<br>]]> argv[0] ≠ NULL <![CDATA[<br>]]> argv[0] = argv[1]<![CDATA[</b>]]>
/// <![CDATA[</dt>]]><![CDATA[<dd>]]>The row with rowid argv[0] is updated with new values
/// in argv[2] and following parameters.
/// <![CDATA[</dt>]]><![CDATA[<dd>]]>
/// The row with rowid or PRIMARY KEY argv[0] is updated with new values
/// in argv[2] and following parameters.
/// <![CDATA[</dd>]]><![CDATA[<dt>]]><![CDATA[<b>]]>argc > 1 <![CDATA[<br>]]> argv[0] ≠ NULL <![CDATA[<br>]]> argv[0] ≠ argv[1]<![CDATA[</b>]]>
/// <![CDATA[</dt>]]><![CDATA[<dd>]]> The row with rowid argv[0] is updated with rowid argv[1]
/// <![CDATA[</dt>]]><![CDATA[<dd>]]> The row with rowid or PRIMARY KEY argv[0] is updated with
/// the rowid or PRIMARY KEY in argv[1]
/// and new values in argv[2] and following parameters. This will occur
/// when an SQL statement updates a rowid, as in the statement:
/// <para><code>
/// UPDATE table SET rowid=rowid+1 WHERE ...;
/// </code></para>
/// <![CDATA[</dd>]]><![CDATA[</dl>]]>
/// </code></para>
|
︙ | | |
Changes to System.Data.SQLite/LINQ/SQLiteFactory_Linq.cs.
︙ | | |
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
-
+
|
SQLiteErrorCode.Ok, SQLiteConvert.ToUTF8("logging initialized."));
}
#endif
SQLiteLog.Initialize();
string version =
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471
"4.0.0.0";
#else
"3.5.0.0";
#endif
_dbProviderServicesType = Type.GetType(HelperMethods.StringFormat(CultureInfo.InvariantCulture, "System.Data.Common.DbProviderServices, System.Data.Entity, Version={0}, Culture=neutral, PublicKeyToken=b77a5c561934e089", version), false);
}
|
︙ | | |
Changes to System.Data.SQLite/SQLite3.cs.
︙ | | |
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
|
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
-
+
+
-
+
|
internal const string PublicKey =
"002400000480000094000000060200000024000052534131000400000100010005a288de5687c4e1" +
"b621ddff5d844727418956997f475eb829429e411aff3e93f97b70de698b972640925bdd44280df0" +
"a25a843266973704137cbb0e7441c1fe7cae4e2440ae91ab8cde3933febcb1ac48dd33b40e13c421" +
"d8215c18a4349a436dd499e3c385cc683015f886f6c10bd90115eb2bd61b67750839e3a19941dc9c";
#if !PLATFORM_COMPACTFRAMEWORK
internal const string DesignerVersion = "1.0.106.0";
internal const string DesignerVersion = "1.0.107.0";
#endif
/// <summary>
/// The opaque pointer returned to us by the sqlite provider
/// </summary>
protected internal SQLiteConnectionHandle _sql;
protected string _fileName;
protected SQLiteConnectionFlags _flags;
private bool _setLogCallback;
protected bool _usePool;
protected int _poolVersion;
private int _cancelCount;
#if (NET_35 || NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47) && !PLATFORM_COMPACTFRAMEWORK
#if (NET_35 || NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471) && !PLATFORM_COMPACTFRAMEWORK
private bool _buildingSchema;
#endif
/// <summary>
/// The user-defined functions registered on this connection
/// </summary>
protected Dictionary<SQLiteFunctionAttribute, SQLiteFunction> _functions;
|
︙ | | |
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
|
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
|
-
+
|
// release unmanaged resources here...
//////////////////////////////////////
#if INTEROP_VIRTUAL_TABLE
DisposeModules();
#endif
Close(false); /* Disposing, cannot throw. */
Close(true); /* Disposing, cannot throw. */
}
}
finally
{
base.Dispose(disposing);
//
|
︙ | | |
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
|
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
|
-
+
+
+
-
+
+
|
///////////////////////////////////////////////////////////////////////////////////////////////
// It isn't necessary to cleanup any functions we've registered. If the connection
// goes to the pool and is resurrected later, re-registered functions will overwrite the
// previous functions. The SQLiteFunctionCookieHandle will take care of freeing unmanaged
// resources belonging to the previously-registered functions.
internal override void Close(bool canThrow)
internal override void Close(bool disposing)
{
if (_sql != null)
{
if (!_sql.OwnHandle)
{
_sql = null;
return;
}
bool unbindFunctions = ((_flags & SQLiteConnectionFlags.UnbindFunctionsOnClose)
== SQLiteConnectionFlags.UnbindFunctionsOnClose);
retry:
if (_usePool)
{
if (SQLiteBase.ResetConnection(_sql, _sql, canThrow))
if (SQLiteBase.ResetConnection(_sql, _sql, !disposing) &&
UnhookNativeCallbacks(true, !disposing))
{
if (unbindFunctions)
{
if (SQLiteFunction.UnbindAllFunctions(this, _flags, false))
{
#if !NET_COMPACT_20 && TRACE_CONNECTION
Trace.WriteLine(HelperMethods.StringFormat(
|
︙ | | |
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
|
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
326
327
328
329
330
331
332
333
334
335
336
337
338
|
-
+
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
|
#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 }));
typeof(SQLite3), !disposing, _fileName, _poolVersion }));
#if !NET_COMPACT_20 && TRACE_CONNECTION
Trace.WriteLine(HelperMethods.StringFormat(
CultureInfo.CurrentCulture,
"Close (Pool) Success: {0}",
HandleToString()));
#endif
}
#if !NET_COMPACT_20 && TRACE_CONNECTION
else
{
#if !NET_COMPACT_20 && TRACE_CONNECTION
Trace.WriteLine(HelperMethods.StringFormat(
CultureInfo.CurrentCulture,
"Close (Pool) Failure: {0}",
HandleToString()));
#endif
}
#endif
//
// NOTE: This connection cannot be added to the pool;
// therefore, just use the normal disposal
// procedure on it.
//
_usePool = false;
goto retry;
}
}
else
{
/* IGNORED */
UnhookNativeCallbacks(disposing, !disposing);
if (unbindFunctions)
{
if (SQLiteFunction.UnbindAllFunctions(this, _flags, false))
{
#if !NET_COMPACT_20 && TRACE_CONNECTION
Trace.WriteLine(HelperMethods.StringFormat(
CultureInfo.CurrentCulture,
|
︙ | | |
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
|
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
|
-
+
|
{
//
// NOTE: If the database connection is currently open, attempt to
// close it now. This must be done because the file name or
// other parameters that may impact the underlying database
// connection may have changed.
//
if (_sql != null) Close(true);
if (_sql != null) Close(false);
//
// NOTE: If the connection was not closed successfully, throw an
// exception now.
//
if (_sql != null)
throw new SQLiteException("connection handle is still active");
|
︙ | | |
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
|
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
|
-
+
|
}
if (cmd != null)
cmd.SetTypes(typedefs);
return cmd;
}
#if (NET_35 || NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47) && !PLATFORM_COMPACTFRAMEWORK
#if (NET_35 || NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471) && !PLATFORM_COMPACTFRAMEWORK
else if (_buildingSchema == false && String.Compare(GetLastError(), 0, "no such table: TEMP.SCHEMA", 0, 26, StringComparison.OrdinalIgnoreCase) == 0)
{
strRemain = String.Empty;
_buildingSchema = true;
try
{
ISQLiteSchemaExtensions ext = ((IServiceProvider)SQLiteFactory.Instance).GetService(typeof(ISQLiteSchemaExtensions)) as ISQLiteSchemaExtensions;
|
︙ | | |
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
|
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/// <param name="func">The callback function to invoke.</param>
/// <returns>Returns a result code</returns>
internal override SQLiteErrorCode SetLogCallback(SQLiteLogCallback func)
{
SQLiteErrorCode rc = UnsafeNativeMethods.sqlite3_config_log(
SQLiteConfigOpsEnum.SQLITE_CONFIG_LOG, func, IntPtr.Zero);
if (rc == SQLiteErrorCode.Ok)
_setLogCallback = (func != null);
return rc;
}
///////////////////////////////////////////////////////////////////////////////////////////////
/// <summary>
/// Appends an error message and an appropriate line-ending to a <see cref="StringBuilder" />
/// instance. This is useful because the .NET Compact Framework has a slightly different set
/// of supported methods for the <see cref="StringBuilder" /> class.
/// </summary>
/// <param name="builder">
/// The <see cref="StringBuilder" /> instance to append to.
/// </param>
/// <param name="message">
/// The message to append. It will be followed by an appropriate line-ending.
/// </param>
private static void AppendError(
StringBuilder builder,
string message
)
{
if (builder == null)
return;
#if !PLATFORM_COMPACTFRAMEWORK
builder.AppendLine(message);
#else
builder.Append(message);
builder.Append("\r\n");
#endif
}
///////////////////////////////////////////////////////////////////////////////////////////////
/// <summary>
/// This method attempts to cause the SQLite native library to invalidate
/// its function pointers that refer to this instance. This is necessary
/// to prevent calls from native code into delegates that may have been
/// garbage collected. Normally, these types of issues can only arise for
/// connections that are added to the pool; howver, it is good practice to
/// unconditionally invalidate function pointers that may refer to objects
/// being disposed.
/// <param name="includeGlobal">
/// Non-zero to also invalidate global function pointers (i.e. those that
/// are not directly associated with this connection on the native side).
/// </param>
/// <param name="canThrow">
/// Non-zero if this method is being executed within a context where it can
/// throw an exception in the event of failure; otherwise, zero.
/// </param>
/// </summary>
/// <returns>
/// Non-zero if this method was successful; otherwise, zero.
/// </returns>
private bool UnhookNativeCallbacks(
bool includeGlobal,
bool canThrow
)
{
//
// NOTE: Initially, this method assumes success. Then, if any attempt
// to invalidate a function pointer fails, the overall result is
// set to failure. However, this will not prevent further
// attempts, if any, to invalidate subsequent function pointers.
//
bool result = true;
SQLiteErrorCode rc = SQLiteErrorCode.Ok;
StringBuilder builder = new StringBuilder();
///////////////////////////////////////////////////////////////////////////////////////////
#region Rollback Hook (Per-Connection)
try
{
SetRollbackHook(null); /* throw */
}
#if !NET_COMPACT_20 && TRACE_CONNECTION
catch (Exception e)
#else
catch (Exception)
#endif
{
#if !NET_COMPACT_20 && TRACE_CONNECTION
try
{
Trace.WriteLine(HelperMethods.StringFormat(
CultureInfo.CurrentCulture,
"Failed to unset rollback hook: {0}",
e)); /* throw */
}
catch
{
// do nothing.
}
#endif
AppendError(builder, "failed to unset rollback hook");
rc = SQLiteErrorCode.Error;
result = false;
}
#endregion
///////////////////////////////////////////////////////////////////////////////////////////
#region Trace Callback (Per-Connection)
try
{
SetTraceCallback(null); /* throw */
}
#if !NET_COMPACT_20 && TRACE_CONNECTION
catch (Exception e)
#else
catch (Exception)
#endif
{
#if !NET_COMPACT_20 && TRACE_CONNECTION
try
{
Trace.WriteLine(HelperMethods.StringFormat(
CultureInfo.CurrentCulture,
"Failed to unset trace callback: {0}",
e)); /* throw */
}
catch
{
// do nothing.
}
#endif
AppendError(builder, "failed to unset trace callback");
rc = SQLiteErrorCode.Error;
result = false;
}
#endregion
///////////////////////////////////////////////////////////////////////////////////////////
#region Commit Hook (Per-Connection)
try
{
SetCommitHook(null); /* throw */
}
#if !NET_COMPACT_20 && TRACE_CONNECTION
catch (Exception e)
#else
catch (Exception)
#endif
{
#if !NET_COMPACT_20 && TRACE_CONNECTION
try
{
Trace.WriteLine(HelperMethods.StringFormat(
CultureInfo.CurrentCulture,
"Failed to unset commit hook: {0}",
e)); /* throw */
}
catch
{
// do nothing.
}
#endif
AppendError(builder, "failed to unset commit hook");
rc = SQLiteErrorCode.Error;
result = false;
}
#endregion
///////////////////////////////////////////////////////////////////////////////////////////
#region Update Hook (Per-Connection)
try
{
SetUpdateHook(null); /* throw */
}
#if !NET_COMPACT_20 && TRACE_CONNECTION
catch (Exception e)
#else
catch (Exception)
#endif
{
#if !NET_COMPACT_20 && TRACE_CONNECTION
try
{
Trace.WriteLine(HelperMethods.StringFormat(
CultureInfo.CurrentCulture,
"Failed to unset update hook: {0}",
e)); /* throw */
}
catch
{
// do nothing.
}
#endif
AppendError(builder, "failed to unset update hook");
rc = SQLiteErrorCode.Error;
result = false;
}
#endregion
///////////////////////////////////////////////////////////////////////////////////////////
#region Authorizer Hook (Per-Connection)
try
{
SetAuthorizerHook(null); /* throw */
}
#if !NET_COMPACT_20 && TRACE_CONNECTION
catch (Exception e)
#else
catch (Exception)
#endif
{
#if !NET_COMPACT_20 && TRACE_CONNECTION
try
{
Trace.WriteLine(HelperMethods.StringFormat(
CultureInfo.CurrentCulture,
"Failed to unset authorizer hook: {0}",
e)); /* throw */
}
catch
{
// do nothing.
}
#endif
AppendError(builder, "failed to unset authorizer hook");
rc = SQLiteErrorCode.Error;
result = false;
}
#endregion
///////////////////////////////////////////////////////////////////////////////////////////
#region Progress Hook (Per-Connection)
try
{
SetProgressHook(0, null); /* throw */
}
#if !NET_COMPACT_20 && TRACE_CONNECTION
catch (Exception e)
#else
catch (Exception)
#endif
{
#if !NET_COMPACT_20 && TRACE_CONNECTION
try
{
Trace.WriteLine(HelperMethods.StringFormat(
CultureInfo.CurrentCulture,
"Failed to unset progress hook: {0}",
e)); /* throw */
}
catch
{
// do nothing.
}
#endif
AppendError(builder, "failed to unset progress hook");
rc = SQLiteErrorCode.Error;
result = false;
}
#endregion
///////////////////////////////////////////////////////////////////////////////////////////
#region Log Callback (Global)
//
// NOTE: We have to be careful here because the log callback
// is not per-connection on the native side. It should
// only be unset by this method if this instance was
// responsible for setting it.
//
if (includeGlobal && _setLogCallback)
{
try
{
SQLiteErrorCode rc2 = SetLogCallback(null); /* throw */
if (rc2 != SQLiteErrorCode.Ok)
{
AppendError(builder, "could not unset log callback");
rc = rc2;
result = false;
}
}
#if !NET_COMPACT_20 && TRACE_CONNECTION
catch (Exception e)
#else
catch (Exception)
#endif
{
#if !NET_COMPACT_20 && TRACE_CONNECTION
try
{
Trace.WriteLine(HelperMethods.StringFormat(
CultureInfo.CurrentCulture,
"Failed to unset log callback: {0}",
e)); /* throw */
}
catch
{
// do nothing.
}
#endif
AppendError(builder, "failed to unset log callback");
rc = SQLiteErrorCode.Error;
result = false;
}
}
#endregion
///////////////////////////////////////////////////////////////////////////////////////////
if (!result && canThrow)
throw new SQLiteException(rc, builder.ToString());
return result;
}
///////////////////////////////////////////////////////////////////////////////////////////////
/// <summary>
/// Creates a new SQLite backup object based on the provided destination
/// database connection. The source database connection is the one
/// associated with this object. The source and destination database
|
︙ | | |
Changes to System.Data.SQLite/SQLite3_UTF16.cs.
︙ | | |
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
-
+
|
{
//
// NOTE: If the database connection is currently open, attempt to
// close it now. This must be done because the file name or
// other parameters that may impact the underlying database
// connection may have changed.
//
if (_sql != null) Close(true);
if (_sql != null) Close(false);
//
// NOTE: If the connection was not closed successfully, throw an
// exception now.
//
if (_sql != null)
throw new SQLiteException("connection handle is still active");
|
︙ | | |
Changes to System.Data.SQLite/SQLiteBase.cs.
︙ | | |
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
-
-
+
+
|
/// <summary>
/// Closes the currently-open database.
/// </summary>
/// <remarks>
/// After the database has been closed implemeters should call SQLiteFunction.UnbindFunctions() to deallocate all interop allocated
/// memory associated with the user-defined functions and collating sequences tied to the closed connection.
/// </remarks>
/// <param name="canThrow">Non-zero if the operation is allowed to throw exceptions, zero otherwise.</param>
internal abstract void Close(bool canThrow);
/// <param name="disposing">Non-zero if connection is being disposed, zero otherwise.</param>
internal abstract void Close(bool disposing);
/// <summary>
/// Sets the busy timeout on the connection. SQLiteCommand will call this before executing any command.
/// </summary>
/// <param name="nTimeoutMS">The number of milliseconds to wait before returning SQLITE_BUSY</param>
internal abstract void SetTimeout(int nTimeoutMS);
/// <summary>
/// Returns the text of the last error issued by SQLite
|
︙ | | |
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
|
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
|
+
+
+
+
+
+
+
+
+
+
+
+
|
/// <summary>
/// When returning column values, always return <see cref="Decimal" />
/// values as though they were plain text (i.e. not <see cref="Double" />,
/// which is the legacy behavior).
/// </summary>
GetDecimalAsText = 0x20000000000,
/// <summary>
/// When binding <see cref="Decimal" /> parameter values, always use
/// the invariant culture when converting their values to strings.
/// </summary>
BindInvariantDecimal = 0x40000000000,
/// <summary>
/// When returning <see cref="Decimal" /> column values, always use
/// the invariant culture when converting their values from strings.
/// </summary>
GetInvariantDecimal = 0x80000000000,
/// <summary>
/// When binding parameter values or returning column values, always
/// treat them as though they were plain text (i.e. no numeric,
/// date/time, or other conversions should be attempted).
/// </summary>
BindAndGetAllAsText = BindAllAsText | GetAllAsText,
|
︙ | | |
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
|
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
|
-
+
-
+
-
+
+
+
+
+
+
|
LogModuleException,
#else
LogAll = LogPrepare | LogPreBind | LogBind |
LogCallbackException | LogBackup,
#endif
/// <summary>
/// The default extra flags for new connections.
/// The default logging related flags for new connections.
/// </summary>
#if INTEROP_VIRTUAL_TABLE
Default = LogCallbackException | LogModuleException,
LogDefault = LogCallbackException | LogModuleException,
#else
Default = LogCallbackException,
LogDefault = LogCallbackException,
#endif
/// <summary>
/// The default extra flags for new connections.
/// </summary>
Default = LogDefault | BindInvariantDecimal | GetInvariantDecimal,
/// <summary>
/// The default extra flags for new connections with all logging enabled.
/// </summary>
DefaultAndLogAll = Default | LogAll
}
/// <summary>
|
︙ | | |
Changes to System.Data.SQLite/SQLiteConnection.cs.
︙ | | |
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
|
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
|
-
+
+
+
-
+
+
|
/// Backs up the database, using the specified database connection as the
/// destination.
/// </summary>
/// <param name="destination">The destination database connection.</param>
/// <param name="destinationName">The destination database name.</param>
/// <param name="sourceName">The source database name.</param>
/// <param name="pages">
/// The number of pages to copy or negative to copy all remaining pages.
/// The number of pages to copy at a time -OR- a negative value to copy all
/// pages. When a negative value is used, the <paramref name="callback" />
/// may never be invoked.
/// </param>
/// <param name="callback">
/// The method to invoke between each step of the backup process. This
/// parameter may be null (i.e. no callbacks will be performed).
/// parameter may be null (i.e. no callbacks will be performed). If the
/// callback returns false -OR- throws an exception, the backup is canceled.
/// </param>
/// <param name="retryMilliseconds">
/// The number of milliseconds to sleep after encountering a locking error
/// during the backup process. A value less than zero means that no sleep
/// should be performed.
/// </param>
public void BackupDatabase(
|
︙ | | |
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
|
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
|
-
+
|
_sql = null;
_enlistment = null;
}
#endif
if (_sql != null)
{
_sql.Close(!_disposing);
_sql.Close(_disposing);
_sql = null;
}
_transactionLevel = 0;
_transactionSequence = 0;
}
StateChangeEventArgs eventArgs = null;
|
︙ | | |
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
|
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
|
-
+
|
_connectionState = oldstate;
StateChangeEventArgs eventArgs = null;
OnStateChange(ConnectionState.Open, ref eventArgs);
OnChanged(this, new ConnectionEventArgs(
SQLiteConnectionEventType.Opened, eventArgs, null, null, null,
null, null, null));
null, _connectionString, new object[] { opts }));
}
catch
{
_connectionState = oldstate;
throw;
}
}
|
︙ | | |
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
|
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
|
-
+
|
public SQLiteErrorCode Shutdown()
{
CheckDisposed();
if (_sql == null)
throw new InvalidOperationException("Database connection not valid for shutdown.");
_sql.Close(true); /* NOTE: MUST be closed before shutdown. */
_sql.Close(false); /* NOTE: MUST be closed before shutdown. */
SQLiteErrorCode rc = _sql.Shutdown();
#if !NET_COMPACT_20 && TRACE_CONNECTION
if (rc != SQLiteErrorCode.Ok)
System.Diagnostics.Trace.WriteLine(HelperMethods.StringFormat(
CultureInfo.CurrentCulture,
"Shutdown (Instance) Failed: {0}", rc));
|
︙ | | |
5428
5429
5430
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
|
5431
5432
5433
5434
5435
5436
5437
5438
5439
5440
5441
5442
5443
5444
5445
|
-
+
|
return tbl;
}
/// <summary>
/// Build a Columns schema
/// </summary>
/// <param name="strCatalog">The catalog (attached database) to query, can be null</param>
/// <param name="strTable">The table to retrieve schema information for, must not be null</param>
/// <param name="strTable">The table to retrieve schema information for, can be null</param>
/// <param name="strColumn">The column to retrieve schema information for, can be null</param>
/// <returns>DataTable</returns>
private DataTable Schema_Columns(string strCatalog, string strTable, string strColumn)
{
DataTable tbl = new DataTable("Columns");
DataRow row;
|
︙ | | |
Changes to System.Data.SQLite/SQLiteConvert.cs.
︙ | | |
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
|
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
|
-
-
-
-
+
-
+
+
+
|
#if !NET_COMPACT_20 && TRACE_WARNING
DefaultTypeNameWarning(dbType, flags, defaultTypeName);
#endif
return defaultTypeName;
}
lock (_syncRoot)
{
if (_typeNames == null)
_typeNames = GetSQLiteDbTypeMap();
SQLiteDbTypeMapping value;
if ((_typeNames != null) &&
if (_typeNames.TryGetValue(dbType, out value))
_typeNames.TryGetValue(dbType, out value))
{
return value.typeName;
}
}
if (defaultTypeName != null)
return defaultTypeName;
defaultTypeName = GetDefaultTypeName(connection);
|
︙ | | |
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
|
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
|
-
-
-
-
-
+
|
#if !NET_COMPACT_20 && TRACE_WARNING
DefaultDbTypeWarning(typeName, flags, defaultDbType);
#endif
return (DbType)defaultDbType;
}
lock (_syncRoot)
{
if (_typeNames == null)
_typeNames = GetSQLiteDbTypeMap();
if (typeName != null)
if ((_typeNames != null) && (typeName != null))
{
SQLiteDbTypeMapping value;
if (_typeNames.TryGetValue(typeName, out value))
{
return value.dataType;
}
|
︙ | | |
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
|
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
|
-
-
+
|
DefaultDbTypeWarning(typeName, flags, defaultDbType);
#endif
return (DbType)defaultDbType;
}
#endregion
private static object _syncRoot = new object();
private static SQLiteDbTypeMap _typeNames = null;
private static readonly SQLiteDbTypeMap _typeNames = GetSQLiteDbTypeMap();
}
/// <summary>
/// SQLite has very limited types, and is inherently text-based. The first 5 types below represent the sum of all types SQLite
/// understands. The DateTime extension to the spec is for internal use only.
/// </summary>
public enum TypeAffinity
|
︙ | | |
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
|
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
|
-
-
-
-
+
-
|
//
// NOTE: The only thing that we must guarantee here, according
// to the MSDN documentation for IEqualityComparer, is
// that for two given strings, if Equals return true then
// the two strings must hash to the same value.
//
if (value != null)
#if !PLATFORM_COMPACTFRAMEWORK
return value.ToLowerInvariant().GetHashCode();
#else
return value.ToLower().GetHashCode();
return StringComparer.OrdinalIgnoreCase.GetHashCode(value);
#endif
else
throw new ArgumentNullException("value");
}
#endregion
///////////////////////////////////////////////////////////////////////////
|
︙ | | |
Changes to System.Data.SQLite/SQLiteDataReader.cs.
︙ | | |
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
|
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
|
+
+
+
+
+
+
-
+
|
}
}
if (i >= PrivateVisibleFieldCount && _keyInfo != null)
return _keyInfo.GetDecimal(i - PrivateVisibleFieldCount);
VerifyType(i, DbType.Decimal);
CultureInfo cultureInfo = CultureInfo.CurrentCulture;
if ((_flags & SQLiteConnectionFlags.GetInvariantDecimal) == SQLiteConnectionFlags.GetInvariantDecimal)
cultureInfo = CultureInfo.InvariantCulture;
return Decimal.Parse(_activeStatement._sql.GetText(_activeStatement, i), NumberStyles.AllowDecimalPoint | NumberStyles.AllowExponent | NumberStyles.AllowLeadingSign, CultureInfo.InvariantCulture);
return Decimal.Parse(_activeStatement._sql.GetText(_activeStatement, i), NumberStyles.AllowDecimalPoint | NumberStyles.AllowExponent | NumberStyles.AllowLeadingSign, cultureInfo);
}
/// <summary>
/// Returns the column as a double
/// </summary>
/// <param name="i">The index of the column.</param>
/// <returns>double</returns>
|
︙ | | |
Changes to System.Data.SQLite/SQLiteDefineConstants.cs.
︙ | | |
131
132
133
134
135
136
137
138
139
140
141
142
143
144
|
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
|
+
+
+
+
|
#if NET_462
"NET_462",
#endif
#if NET_47
"NET_47",
#endif
#if NET_471
"NET_471",
#endif
#if NET_COMPACT_20
"NET_COMPACT_20",
#endif
#if PLATFORM_COMPACTFRAMEWORK
"PLATFORM_COMPACTFRAMEWORK",
|
︙ | | |
Changes to System.Data.SQLite/SQLiteModule.cs.
︙ | | |
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
|
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
|
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/// This value represents the GLOB operator.
/// </summary>
Glob = 66,
/// <summary>
/// This value represents the REGEXP operator.
/// </summary>
Regexp = 67
Regexp = 67,
/// <summary>
/// This value represents the inequality operator.
/// </summary>
NotEqualTo = 68,
/// <summary>
/// This value represents the IS NOT operator.
/// </summary>
IsNot = 69,
/// <summary>
/// This value represents the IS NOT NULL operator.
/// </summary>
IsNotNull = 70,
/// <summary>
/// This value represents the IS NULL operator.
/// </summary>
IsNull = 71,
/// <summary>
/// This value represents the IS operator.
/// </summary>
Is = 72
}
#endregion
///////////////////////////////////////////////////////////////////////////
#region SQLiteIndexFlags Enumeration
/// <summary>
|
︙ | | |
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
|
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
|
-
+
+
|
SQLiteMarshal.WriteInt32(pIndex, offset,
outputs.IndexNumber);
offset = SQLiteMarshal.NextOffsetOf(
offset, sizeof(int), IntPtr.Size);
SQLiteMarshal.WriteIntPtr(pIndex, offset,
SQLiteString.Utf8IntPtrFromString(outputs.IndexString));
SQLiteString.Utf8IntPtrFromString(
outputs.IndexString, false)); /* OK: FREED BY CORE*/
offset = SQLiteMarshal.NextOffsetOf(
offset, IntPtr.Size, sizeof(int));
//
// NOTE: We just allocated the IndexString field; therefore, we
// need to set make sure the NeedToFreeIndexString field
|
︙ | | |
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
|
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
|
-
+
+
+
|
///////////////////////////////////////////////////////////////////////
#region Memory Allocation Helper Methods
/// <summary>
/// Allocates at least the specified number of bytes of native memory
/// via the SQLite core library sqlite3_malloc() function and returns
/// the resulting native pointer.
/// the resulting native pointer. If the TRACK_MEMORY_BYTES option
/// was enabled at compile-time, adjusts the number of bytes currently
/// allocated by this class.
/// </summary>
/// <param name="size">
/// The number of bytes to allocate.
/// </param>
/// <returns>
/// The native pointer that points to a block of memory of at least the
/// specified size -OR- <see cref="IntPtr.Zero" /> if the memory could
|
︙ | | |
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
|
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
-
+
+
|
return pMemory;
}
///////////////////////////////////////////////////////////////////////
/// <summary>
/// Allocates at least the specified number of bytes of native memory
/// via the SQLite core library sqlite3_malloc() function and returns
/// the resulting native pointer without adjusting the number of
/// allocated bytes currently tracked by this class. This is useful
/// when dealing with blocks of memory that will be freed directly by
/// the SQLite core library.
/// </summary>
/// <param name="size">
/// The number of bytes to allocate.
/// </param>
/// <returns>
/// The native pointer that points to a block of memory of at least the
/// specified size -OR- <see cref="IntPtr.Zero" /> if the memory could
/// not be allocated.
/// </returns>
public static IntPtr AllocateUntracked(int size)
{
return UnsafeNativeMethods.sqlite3_malloc(size);
}
///////////////////////////////////////////////////////////////////////
/// <summary>
/// Gets and returns the actual size of the specified memory block that
/// was previously obtained from the <see cref="Allocate" /> method.
/// Gets and returns the actual size of the specified memory block
/// that was previously obtained from the <see cref="Allocate" /> or
/// <see cref="AllocateUntracked" /> methods or directly from the
/// SQLite core library.
/// </summary>
/// <param name="pMemory">
/// The native pointer to the memory block previously obtained from the
/// <see cref="Allocate" /> method.
/// <see cref="Allocate" /> or <see cref="AllocateUntracked" /> methods
/// or directly from the SQLite core library.
/// </param>
/// <returns>
/// The actual size, in bytes, of the memory block specified via the
/// native pointer.
/// </returns>
public static int Size(IntPtr pMemory)
{
|
︙ | | |
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
|
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
|
-
+
+
+
|
#endif
}
///////////////////////////////////////////////////////////////////////
/// <summary>
/// Frees a memory block previously obtained from the
/// <see cref="Allocate" /> method.
/// <see cref="Allocate" /> method. If the TRACK_MEMORY_BYTES option
/// was enabled at compile-time, adjusts the number of bytes currently
/// allocated by this class.
/// </summary>
/// <param name="pMemory">
/// The native pointer to the memory block previously obtained from the
/// <see cref="Allocate" /> method.
/// </param>
public static void Free(IntPtr pMemory)
{
|
︙ | | |
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
|
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
{
bytesAllocated -= blockSize;
}
}
}
#endif
UnsafeNativeMethods.sqlite3_free(pMemory);
}
///////////////////////////////////////////////////////////////////////
/// <summary>
/// Frees a memory block previously obtained from the SQLite core
/// library without adjusting the number of allocated bytes currently
/// tracked by this class. This is useful when dealing with blocks of
/// memory that were not allocated using this class.
/// </summary>
/// <param name="pMemory">
/// The native pointer to the memory block previously obtained from the
/// SQLite core library.
/// </param>
public static void FreeUntracked(IntPtr pMemory)
{
UnsafeNativeMethods.sqlite3_free(pMemory);
}
#endregion
}
#endregion
///////////////////////////////////////////////////////////////////////////
|
︙ | | |
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
|
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
+
|
/// <returns>
/// The native NUL-terminated UTF-8 string pointer or
/// <see cref="IntPtr.Zero" /> upon failure.
/// </returns>
public static IntPtr Utf8IntPtrFromString(
string value
)
{
return Utf8IntPtrFromString(value, true);
}
///////////////////////////////////////////////////////////////////////
/// <summary>
/// Converts the specified managed string into a native NUL-terminated
/// UTF-8 string pointer using memory obtained from the SQLite core
/// library.
/// </summary>
/// <param name="value">
/// The managed string to convert.
/// </param>
/// <param name="tracked">
/// Non-zero to obtain memory from the SQLite core library without
/// adjusting the number of allocated bytes currently being tracked
/// by the <see cref="SQLiteMemory" /> class.
/// </param>
/// <returns>
/// The native NUL-terminated UTF-8 string pointer or
/// <see cref="IntPtr.Zero" /> upon failure.
/// </returns>
public static IntPtr Utf8IntPtrFromString(
string value,
bool tracked
)
{
int length = 0;
return Utf8IntPtrFromString(value, ref length);
return Utf8IntPtrFromString(value, tracked, ref length);
}
///////////////////////////////////////////////////////////////////////
/// <summary>
/// Converts the specified managed string into a native NUL-terminated
/// UTF-8 string pointer using memory obtained from the SQLite core
/// library.
/// </summary>
/// <param name="value">
/// The managed string to convert.
/// </param>
/// <param name="length">
/// The length of the native string, in bytes.
/// </param>
/// <returns>
/// The native NUL-terminated UTF-8 string pointer or
/// <see cref="IntPtr.Zero" /> upon failure.
/// </returns>
public static IntPtr Utf8IntPtrFromString(
string value,
ref int length
)
{
return Utf8IntPtrFromString(value, true, ref length);
}
///////////////////////////////////////////////////////////////////////
/// <summary>
/// Converts the specified managed string into a native NUL-terminated
/// UTF-8 string pointer using memory obtained from the SQLite core
/// library.
/// </summary>
/// <param name="value">
/// The managed string to convert.
/// </param>
/// <param name="tracked">
/// Non-zero to obtain memory from the SQLite core library without
/// adjusting the number of allocated bytes currently being tracked
/// by the <see cref="SQLiteMemory" /> class.
/// </param>
/// <param name="length">
/// The length of the native string, in bytes.
/// </param>
/// <returns>
/// The native NUL-terminated UTF-8 string pointer or
/// <see cref="IntPtr.Zero" /> upon failure.
/// </returns>
public static IntPtr Utf8IntPtrFromString(
string value,
bool tracked,
ref int length
)
{
if (value == null)
return IntPtr.Zero;
IntPtr result = IntPtr.Zero;
byte[] bytes = GetUtf8BytesFromString(value);
if (bytes == null)
return IntPtr.Zero;
length = bytes.Length;
if (tracked)
result = SQLiteMemory.Allocate(length + 1);
result = SQLiteMemory.Allocate(length + 1);
else
result = SQLiteMemory.AllocateUntracked(length + 1);
if (result == IntPtr.Zero)
return IntPtr.Zero;
Marshal.Copy(bytes, 0, result, length);
Marshal.WriteByte(result, length, 0);
|
︙ | | |
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
|
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
|
+
+
+
+
+
-
+
+
-
+
|
/// <summary>
/// Converts an array of managed strings into an array of native
/// NUL-terminated UTF-8 string pointers.
/// </summary>
/// <param name="values">
/// The array of managed strings to convert.
/// </param>
/// <param name="tracked">
/// Non-zero to obtain memory from the SQLite core library without
/// adjusting the number of allocated bytes currently being tracked
/// by the <see cref="SQLiteMemory" /> class.
/// </param>
/// <returns>
/// The array of native NUL-terminated UTF-8 string pointers or null
/// upon failure.
/// </returns>
public static IntPtr[] Utf8IntPtrArrayFromStringArray(
string[] values
string[] values,
bool tracked
)
{
if (values == null)
return null;
IntPtr[] result = new IntPtr[values.Length];
for (int index = 0; index < result.Length; index++)
result[index] = Utf8IntPtrFromString(values[index]);
result[index] = Utf8IntPtrFromString(values[index], tracked);
return result;
}
#endregion
}
#endregion
|
︙ | | |
Changes to System.Data.SQLite/SQLiteSession.cs.
︙ | | |
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
|
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
|
-
+
|
rawData = SQLiteBytes.FromIntPtr(pData, nData);
}
finally
{
if (pData != IntPtr.Zero)
{
SQLiteMemory.Free(pData);
SQLiteMemory.FreeUntracked(pData);
pData = IntPtr.Zero;
}
}
}
///////////////////////////////////////////////////////////////////////
|
︙ | | |
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
|
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
|
-
+
|
rawData = SQLiteBytes.FromIntPtr(pData, nData);
}
finally
{
if (pData != IntPtr.Zero)
{
SQLiteMemory.Free(pData);
SQLiteMemory.FreeUntracked(pData);
pData = IntPtr.Zero;
}
}
}
///////////////////////////////////////////////////////////////////////
|
︙ | | |
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
|
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
|
-
+
|
rawData = SQLiteBytes.FromIntPtr(pData, nData);
}
finally
{
if (pData != IntPtr.Zero)
{
SQLiteMemory.Free(pData);
SQLiteMemory.FreeUntracked(pData);
pData = IntPtr.Zero;
}
}
}
///////////////////////////////////////////////////////////////////////
|
︙ | | |
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
|
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
|
-
+
|
"sqlite3session_diff", error));
}
}
finally
{
if (pError != IntPtr.Zero)
{
SQLiteMemory.Free(pError);
SQLiteMemory.FreeUntracked(pError);
pError = IntPtr.Zero;
}
}
}
#endregion
///////////////////////////////////////////////////////////////////////
|
︙ | | |
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
|
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
|
-
+
|
return new SQLiteMemoryChangeSet(
newData, GetHandle(), GetFlags());
}
finally
{
if (pOutData != IntPtr.Zero)
{
SQLiteMemory.Free(pOutData);
SQLiteMemory.FreeUntracked(pOutData);
pOutData = IntPtr.Zero;
}
if (pInData != IntPtr.Zero)
{
SQLiteMemory.Free(pInData);
pInData = IntPtr.Zero;
|
︙ | | |
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
|
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
|
-
+
|
return new SQLiteMemoryChangeSet(
newData, GetHandle(), GetFlags());
}
finally
{
if (pOutData != IntPtr.Zero)
{
SQLiteMemory.Free(pOutData);
SQLiteMemory.FreeUntracked(pOutData);
pOutData = IntPtr.Zero;
}
if (pInData2 != IntPtr.Zero)
{
SQLiteMemory.Free(pInData2);
pInData2 = IntPtr.Zero;
|
︙ | | |
Changes to System.Data.SQLite/SQLiteStatement.cs.
︙ | | |
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
|
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
|
+
+
+
-
+
|
_sql.Bind_Text(this, _flags, index, invariantText ?
SQLiteConvert.ToStringWithProvider(obj, invariantCultureInfo) :
SQLiteConvert.ToStringWithProvider(obj, cultureInfo));
}
return;
}
bool invariantDecimal = ((_flags & SQLiteConnectionFlags.BindInvariantDecimal)
== SQLiteConnectionFlags.BindInvariantDecimal);
if ((_flags & SQLiteConnectionFlags.BindDecimalAsText) == SQLiteConnectionFlags.BindDecimalAsText)
{
if (obj is Decimal)
{
_sql.Bind_Text(this, _flags, index, invariantText ?
_sql.Bind_Text(this, _flags, index, invariantText || invariantDecimal ?
SQLiteConvert.ToStringWithProvider(obj, invariantCultureInfo) :
SQLiteConvert.ToStringWithProvider(obj, cultureInfo));
return;
}
}
|
︙ | | |
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
|
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
|
-
-
-
-
+
+
+
|
break;
case DbType.UInt64:
_sql.Bind_UInt64(this, _flags, index, Convert.ToUInt64(obj, cultureInfo));
break;
case DbType.Single:
case DbType.Double:
case DbType.Currency:
//case DbType.Decimal: // Dont store decimal as double ... loses precision
_sql.Bind_Double(this, _flags, index, Convert.ToDouble(obj, cultureInfo));
break;
case DbType.Binary:
_sql.Bind_Blob(this, _flags, index, (byte[])obj);
break;
case DbType.Guid:
if (_command.Connection._binaryGuid == true)
{
_sql.Bind_Blob(this, _flags, index, ((Guid)obj).ToByteArray());
}
else
{
_sql.Bind_Text(this, _flags, index, invariantText ?
SQLiteConvert.ToStringWithProvider(obj, invariantCultureInfo) :
SQLiteConvert.ToStringWithProvider(obj, cultureInfo));
}
break;
case DbType.Decimal: // Dont store decimal as double ... loses precision
_sql.Bind_Text(this, _flags, index, invariantText ?
SQLiteConvert.ToStringWithProvider(Convert.ToDecimal(obj, cultureInfo), invariantCultureInfo) :
SQLiteConvert.ToStringWithProvider(Convert.ToDecimal(obj, cultureInfo), cultureInfo));
_sql.Bind_Text(this, _flags, index, invariantText || invariantDecimal ?
SQLiteConvert.ToStringWithProvider(Convert.ToDecimal(obj, cultureInfo), invariantCultureInfo) :
SQLiteConvert.ToStringWithProvider(Convert.ToDecimal(obj, cultureInfo), cultureInfo));
break;
default:
_sql.Bind_Text(this, _flags, index, invariantText ?
SQLiteConvert.ToStringWithProvider(obj, invariantCultureInfo) :
SQLiteConvert.ToStringWithProvider(obj, cultureInfo));
break;
}
|
︙ | | |
Changes to System.Data.SQLite/Targets/System.Data.SQLite.Files.targets.
︙ | | |
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
|
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
-
+
+
-
+
+
|
'$(NetFx40)' != 'false' Or
'$(NetFx45)' != 'false' Or
'$(NetFx451)' != 'false' Or
'$(NetFx452)' != 'false' Or
'$(NetFx46)' != 'false' Or
'$(NetFx461)' != 'false' Or
'$(NetFx462)' != 'false' Or
'$(NetFx47)' != 'false'"
'$(NetFx47)' != 'false' Or
'$(NetFx471)' != 'false'"
Include="LINQ\SQLiteConnection_Linq.cs">
<SubType>Component</SubType>
</Compile>
<Compile Condition="'$(NetFx35)' != 'false' Or
'$(NetFx40)' != 'false' Or
'$(NetFx45)' != 'false' Or
'$(NetFx451)' != 'false' Or
'$(NetFx452)' != 'false' Or
'$(NetFx46)' != 'false' Or
'$(NetFx461)' != 'false' Or
'$(NetFx462)' != 'false' Or
'$(NetFx47)' != 'false'"
'$(NetFx47)' != 'false' Or
'$(NetFx471)' != 'false'"
Include="LINQ\SQLiteFactory_Linq.cs">
<SubType>Code</SubType>
</Compile>
<EmbeddedResource Include="Resources\SQLiteCommand.bmp" />
<EmbeddedResource Include="Resources\SQLiteConnection.bmp" />
<EmbeddedResource Include="Resources\SQLiteDataAdapter.bmp" />
</ItemGroup>
|
︙ | | |
Changes to System.Data.SQLite/Targets/System.Data.SQLite.Properties.targets.
︙ | | |
113
114
115
116
117
118
119
120
121
122
123
124
125
126
|
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
+
+
+
+
+
+
+
+
+
+
+
|
Framework 4.7 (if necessary, it will typically be enabled from
within the project file itself).
-->
<PropertyGroup Condition="'$(NetFx47)' != 'false'">
<DefineConstants>$(DefineConstants);NET_47</DefineConstants>
</PropertyGroup>
<!--
NOTE: Only use functionality available in the .NET Framework 4.7.1? By
default, this is disabled. This must be enabled to successfully
build the project using Visual Studio 2017 and/or the .NET
Framework 4.7.1 (if necessary, it will typically be enabled from
within the project file itself).
-->
<PropertyGroup Condition="'$(NetFx471)' != 'false'">
<DefineConstants>$(DefineConstants);NET_471</DefineConstants>
</PropertyGroup>
<!--
NOTE: Only use functionality available in the .NET Compact Framework 2.0?
By default, this is disabled. This must be enabled to successfully
build the project using Visual Studio 2005 and/or the .NET Compact
Framework 2.0 (if necessary, it will typically be enabled from
within the project file itself).
-->
|
︙ | | |
Changes to System.Data.SQLite/UnsafeNativeMethods.cs.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
-
+
-
+
|
/********************************************************
* ADO.NET 2.0 Data Provider for SQLite Version 3.X
* Written by Robert Simpson (robert@blackcastlesoft.com)
*
* Released to the public domain, use at your own risk!
********************************************************/
namespace System.Data.SQLite
{
using System;
using System.Globalization;
#if !NET_COMPACT_20 && (TRACE_DETECTION || TRACE_SHARED || TRACE_PRELOAD || TRACE_HANDLE)
#if TRACE_DETECTION || TRACE_SHARED || TRACE_PRELOAD || TRACE_HANDLE
using System.Diagnostics;
#endif
using System.Collections.Generic;
using System.IO;
using System.Reflection;
#if !PLATFORM_COMPACTFRAMEWORK
using System.Security;
#endif
using System.Runtime.InteropServices;
#if (NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47) && !PLATFORM_COMPACTFRAMEWORK
#if (NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471) && !PLATFORM_COMPACTFRAMEWORK
using System.Runtime.Versioning;
#endif
using System.Text;
#if !PLATFORM_COMPACTFRAMEWORK || COUNT_HANDLE
using System.Threading;
|
︙ | | |
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
|
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
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
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
/////////////////////////////////////////////////////////////////////////
/// <summary>
/// Keeps track of whether we are running on Mono. Initially null, it is
/// set by the <see cref="IsMono" /> method on its first call. Later, it
/// is returned verbatim by the <see cref="IsMono" /> method.
/// </summary>
private static bool? isMono = null;
/////////////////////////////////////////////////////////////////////////
/// <summary>
/// Keeps track of whether we successfully invoked the
/// <see cref="Debugger.Break" /> method. Initially null, it is set by
/// the <see cref="MaybeBreakIntoDebugger" /> method on its first call.
/// </summary>
private static bool? debuggerBreak = null;
#endregion
/////////////////////////////////////////////////////////////////////////
#region Private Methods
/// <summary>
/// Determines the ID of the current process. Only used for debugging.
/// </summary>
/// <returns>
/// The ID of the current process -OR- zero if it cannot be determined.
/// </returns>
private static int GetProcessId()
{
Process process = Process.GetCurrentProcess();
if (process == null)
return 0;
return process.Id;
}
///////////////////////////////////////////////////////////////////////
/// <summary>
/// Determines whether or not this assembly is running on Mono.
/// </summary>
/// <returns>
/// Non-zero if this assembly is running on Mono.
/// </returns>
private static bool IsMono()
|
︙ | | |
303
304
305
306
307
308
309
310
311
312
313
314
315
316
|
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
|
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
|
return false;
}
#endregion
/////////////////////////////////////////////////////////////////////////
#region Internal Methods
/// <summary>
/// If the "PreLoadSQLite_BreakIntoDebugger" configuration setting is
/// present (e.g. via the environment), give the interactive user an
/// opportunity to attach a debugger to the current process; otherwise,
/// do nothing.
/// </summary>
internal static void MaybeBreakIntoDebugger()
{
lock (staticSyncRoot)
{
if (debuggerBreak != null)
return;
}
if (UnsafeNativeMethods.GetSettingValue(
"PreLoadSQLite_BreakIntoDebugger", null) != null)
{
//
// NOTE: Attempt to use the Console in order to prompt the
// interactive user (if any). This may fail for any
// number of reasons. Even in those cases, we still
// want to issue the actual request to break into the
// debugger.
//
try
{
Console.WriteLine(StringFormat(
CultureInfo.CurrentCulture,
"Attach a debugger to process {0} " +
"and press any key to continue.",
GetProcessId()));
#if PLATFORM_COMPACTFRAMEWORK
Console.ReadLine();
#else
Console.ReadKey();
#endif
}
#if !NET_COMPACT_20 && TRACE_SHARED
catch (Exception e)
#else
catch (Exception)
#endif
{
#if !NET_COMPACT_20 && TRACE_SHARED
try
{
Trace.WriteLine(HelperMethods.StringFormat(
CultureInfo.CurrentCulture,
"Failed to issue debugger prompt, " +
"{0} may be unusable: {1}",
typeof(Console), e)); /* throw */
}
catch
{
// do nothing.
}
#endif
}
try
{
Debugger.Break();
lock (staticSyncRoot)
{
debuggerBreak = true;
}
}
catch
{
lock (staticSyncRoot)
{
debuggerBreak = false;
}
throw;
}
}
}
/////////////////////////////////////////////////////////////////////////
/// <summary>
/// Determines if preparing a query should be logged.
/// </summary>
/// <param name="flags">
/// The flags associated with the parent connection object.
/// </param>
/// <returns>
|
︙ | | |
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
|
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
|
+
+
+
+
+
+
-
+
|
/////////////////////////////////////////////////////////////////////////
/// <summary>
/// Attempts to initialize this class by pre-loading the native SQLite
/// library for the processor architecture of the current process.
/// </summary>
internal static void Initialize()
{
//
// NOTE: Check if a debugger needs to be attached before doing any
// real work.
//
HelperMethods.MaybeBreakIntoDebugger();
#if SQLITE_STANDARD || USE_INTEROP_DLL || PLATFORM_COMPACTFRAMEWORK
#if PRELOAD_NATIVE_LIBRARY
//
// NOTE: If the "No_PreLoadSQLite" environment variable is set (to
// anything), skip all our special code and simply return.
// anything), skip all of our special code and simply return.
//
if (GetSettingValue("No_PreLoadSQLite", null) != null)
return;
#endif
#endif
#region Debug Build Only
|
︙ | | |
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
|
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
|
-
+
|
/// </returns>
private static string GetAssemblyTargetFramework(
Assembly assembly
)
{
if (assembly != null)
{
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47
#if NET_40 || NET_45 || NET_451 || NET_452 || NET_46 || NET_461 || NET_462 || NET_47 || NET_471
try
{
if (assembly.IsDefined(
typeof(TargetFrameworkAttribute), false))
{
TargetFrameworkAttribute targetFramework =
(TargetFrameworkAttribute)
|
︙ | | |
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
|
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
|
-
+
|
//
// NOTE: On the .NET Compact Framework, the native interop assembly must
// be used because it provides several workarounds to .NET Compact
// Framework limitations important for proper operation of the core
// System.Data.SQLite functionality (e.g. being able to bind
// parameters and handle column values of types Int64 and Double).
//
internal const string SQLITE_DLL = "SQLite.Interop.106.dll";
internal const string SQLITE_DLL = "SQLite.Interop.107.dll";
#elif SQLITE_STANDARD
//
// NOTE: Otherwise, if the standard SQLite library is enabled, use it.
//
internal const string SQLITE_DLL = "sqlite3";
#elif USE_INTEROP_DLL
//
|
︙ | | |
Changes to Targets/SQLite.NET.Settings.targets.
︙ | | |
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
+
+
+
+
+
|
Exists('$(SQLiteNetDir)\Targets\SQLite.NET.Settings.targets.netFx462')" />
<Import Project="$(SQLiteNetDir)\Targets\SQLite.NET.Settings.targets.netFx47"
Condition="'$(NetFx47)' != '' And '$(NetFx47)' != 'false' And
('$(NetFx47Settings)' == '' Or '$(NetFx47Settings)' != 'false') And
Exists('$(SQLiteNetDir)\Targets\SQLite.NET.Settings.targets.netFx47')" />
<Import Project="$(SQLiteNetDir)\Targets\SQLite.NET.Settings.targets.netFx471"
Condition="'$(NetFx471)' != '' And '$(NetFx471)' != 'false' And
('$(NetFx471Settings)' == '' Or '$(NetFx471Settings)' != 'false') And
Exists('$(SQLiteNetDir)\Targets\SQLite.NET.Settings.targets.netFx471')" />
<!--
******************************************************************************
** [Fairly] Generic Properties **
******************************************************************************
-->
<PropertyGroup>
|
︙ | | |
223
224
225
226
227
228
229
230
231
232
233
234
235
236
|
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
|
+
+
+
+
+
+
+
+
+
|
default, this is disabled. This must be enabled to successfully
build the project using Visual Studio 2017 and/or the .NET
Framework 4.7 (if necessary, it will typically be enabled from
within the project file itself).
-->
<NetFx47 Condition="'$(NetFx47)' == ''">false</NetFx47>
<!--
NOTE: Only use functionality available in the .NET Framework 4.7.1? By
default, this is disabled. This must be enabled to successfully
build the project using Visual Studio 2017 and/or the .NET
Framework 4.7.1 (if necessary, it will typically be enabled from
within the project file itself).
-->
<NetFx471 Condition="'$(NetFx471)' == ''">false</NetFx471>
<!--
NOTE: Load the version-specific settings for the .NET Framework 2.0?
By default, this is disabled. If this is enabled when compiling
for the .NET Framework 2.0, the version-specific settings file
"SQLite.NET.Settings.targets.netFx20" will be loaded if it is
actually present, before any other settings in this file are
processed.
|
︙ | | |
322
323
324
325
326
327
328
329
330
331
332
333
334
335
|
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
|
+
+
+
+
+
+
+
+
+
+
|
By default, this is disabled. If this is enabled when compiling
for the .NET Framework 4.7, the version-specific settings file
"SQLite.NET.Settings.targets.netFx47" will be loaded if it is
actually present, before any other settings in this file are
processed.
-->
<NetFx47Settings Condition="'$(NetFx47Settings)' == ''">false</NetFx47Settings>
<!--
NOTE: Load the version-specific settings for the .NET Framework 4.7.1?
By default, this is disabled. If this is enabled when compiling
for the .NET Framework 4.7.1, the version-specific settings file
"SQLite.NET.Settings.targets.netFx471" will be loaded if it is
actually present, before any other settings in this file are
processed.
-->
<NetFx471Settings Condition="'$(NetFx471Settings)' == ''">false</NetFx471Settings>
</PropertyGroup>
<!--
******************************************************************************
** Feature Properties **
******************************************************************************
-->
|
︙ | | |
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
|
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
588
589
590
591
592
|
-
-
+
+
-
+
|
for the corresponding version(s) of Visual Studio.
-->
<InteropToTypeExtension Condition="'$(InteropToTypeExtension)' == ''">true</InteropToTypeExtension>
<!--
NOTE: Enable exposing the CryptoAPI based codec from the custom built
interop DLL (i.e. "SQLite.Interop.dll")? By default, this is
disabled. If this is enabled, support for databases encrypted
using the CryptoAPI will be available. If this is enabled, it
enabled. If this is disabled, support for databases encrypted
using the CryptoAPI will be unavailable. If this is enabled, it
must also be enabled via the "SQLITE_HAS_CODEC=1" preprocessor
define being present in the "SQLITE_EXTRA_DEFINES" macro in the
build properties file:
"SQLite.Interop\props\sqlite3.[vs]props"
AND via the "INTEROP_CODEC=1" preprocessor define being present in
the "INTEROP_EXTRA_DEFINES" macro in the build properties file:
"SQLite.Interop\props\SQLite.Interop.20YY.[vs]props"
both for the corresponding version(s) of Visual Studio.
-->
<InteropCodec Condition="'$(InteropCodec)' == ''">false</InteropCodec>
<InteropCodec Condition="'$(InteropCodec)' == ''">true</InteropCodec>
<!--
NOTE: Enable including SEE with the custom built interop DLL (i.e.
"SQLite.Interop.dll")? By default, this is disabled. If this is
enabled, the "see.c" file will be included from the extensions
directory. If this is enabled, it must also be enabled via the
"SQLITE_HAS_CODEC=1" preprocessor define being present in the
|
︙ | | |
Changes to Targets/SQLite.NET.Settings.targets.netFx35.
︙ | | |
36
37
38
39
40
41
42
43
44
45
46
47
48
|
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
+
|
<NetFx45>false</NetFx45>
<NetFx451>false</NetFx451>
<NetFx452>false</NetFx452>
<NetFx46>false</NetFx46>
<NetFx461>false</NetFx461>
<NetFx462>false</NetFx462>
<NetFx47>false</NetFx47>
<NetFx471>false</NetFx471>
<TargetFrameworkVersion>v3.5</TargetFrameworkVersion>
<TargetFrameworkProfile></TargetFrameworkProfile>
<Prefer32Bit>false</Prefer32Bit>
<!-- <PlatformToolset>v110</PlatformToolset> -->
</PropertyGroup>
</Project>
|
Changes to Targets/SQLite.NET.Settings.targets.netFx40.
︙ | | |
38
39
40
41
42
43
44
45
46
47
48
49
|
38
39
40
41
42
43
44
45
46
47
48
49
50
|
+
|
<NetFx45>false</NetFx45>
<NetFx451>false</NetFx451>
<NetFx452>false</NetFx452>
<NetFx46>false</NetFx46>
<NetFx461>false</NetFx461>
<NetFx462>false</NetFx462>
<NetFx47>false</NetFx47>
<NetFx471>false</NetFx471>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<Prefer32Bit>false</Prefer32Bit>
<!-- <PlatformToolset>v100</PlatformToolset> -->
</PropertyGroup>
</Project>
|
Changes to Tests/all.eagle.
︙ | | |
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
+
|
#
# NOTE: Pre-load the assembly and the necessary helper procedures now, so that
# they do not count as being "leaked" (i.e. the test framework has no way
# to know who procedures actually belong to).
#
package require System.Data.SQLite.Test
runSQLiteTestPrologue
runSQLiteTestFilesPrologue
###############################################################################
set no(prologue.eagle) true
set no(epilogue.eagle) true
#
|
︙ | | |
65
66
67
68
69
70
71
72
73
|
66
67
68
69
70
71
72
73
74
75
|
+
|
unset no(epilogue.eagle)
unset no(prologue.eagle)
if {[array size no] == 0} then {unset no}
###############################################################################
runSQLiteTestFilesEpilogue
runSQLiteTestEpilogue
runTestEpilogue
|
Changes to Tests/basic.eagle.
︙ | | |
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
|
-
-
+
+
|
set code [catch {
#
# NOTE: For the sake of backward compatibility, the "-autoRun" argument
# must be first.
#
testClrExec $testExeFile [list -eventflags Wait -directory \
[file dirname $testExeFile] -stdout output -success 0] -autoRun \
-fileName [appendArgs \" [file nativename $fileName] \"]
[file dirname $testExeFile] -stdout output -success Success] \
-autoRun -fileName [appendArgs \" [file nativename $fileName] \"]
} error]
set successCount [regexp -all -- {\tSucceeded\t} $output]
set failureCount [regexp -all -- {\tFailed\t} $output]
set totalCount [expr {$successCount + $failureCount}]
tputs $test_channel [appendArgs \
|
︙ | | |
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
-
+
|
object invoke Console OutputEncoding $encoding
} -body {
set output ""
set code [catch {
testClrExec $testLinqExeFile [list -eventflags Wait -directory \
[file dirname $testLinqExeFile] -stdout output -success 0]
[file dirname $testLinqExeFile] -stdout output -success Success]
} error]
tlog "---- BEGIN STDOUT OUTPUT\n"
tlog $output
tlog "\n---- END STDOUT OUTPUT\n"
list $code [string equal $output [readFile $testLinqOutFile]] \
|
︙ | | |
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
-
+
|
object invoke Console OutputEncoding $encoding
} -body {
set output ""
set code [catch {
testClrExec $testEf6ExeFile [list -eventflags Wait -directory \
[file dirname $testEf6ExeFile] -stdout output -success 0]
[file dirname $testEf6ExeFile] -stdout output -success Success]
} error]
tlog "---- BEGIN STDOUT OUTPUT\n"
tlog $output
tlog "\n---- END STDOUT OUTPUT\n"
list $code [string equal $output [readFile $testLinqOutFile]] \
|
︙ | | |
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
|
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
|
-
+
-
+
-
+
-
+
-
+
-
+
|
sql execute $db \
"INSERT INTO t1 (x, y) VALUES(3, 'Wednesday, 16 December 2009 12:00:00');"
sql execute $db "INSERT INTO t1 (x, y) VALUES(4, '12/16/2009');"
sql execute $db "INSERT INTO t1 (x, y) VALUES(5, '12:00');"
sql execute $db "INSERT INTO t1 (x, y) VALUES(6, '12/16/2009 12:00');"
sql execute $db "INSERT INTO t1 (x, y) VALUES(7, ?);" \
sql execute -datetimekind Utc $db "INSERT INTO t1 (x, y) VALUES(7, ?);" \
[list param1 DateTime "Wednesday, 16 December 2009"]
sql execute $db "INSERT INTO t1 (x, y) VALUES(8, ?);" \
sql execute -datetimekind Utc $db "INSERT INTO t1 (x, y) VALUES(8, ?);" \
[list param1 DateTime 12:00:00]
sql execute $db "INSERT INTO t1 (x, y) VALUES(9, ?);" \
sql execute -datetimekind Utc $db "INSERT INTO t1 (x, y) VALUES(9, ?);" \
[list param1 DateTime "Wednesday, 16 December 2009 12:00:00"]
sql execute $db "INSERT INTO t1 (x, y) VALUES(10, ?);" \
sql execute -datetimekind Utc $db "INSERT INTO t1 (x, y) VALUES(10, ?);" \
[list param1 DateTime 12/16/2009]
sql execute $db "INSERT INTO t1 (x, y) VALUES(11, ?);" \
sql execute -datetimekind Utc $db "INSERT INTO t1 (x, y) VALUES(11, ?);" \
[list param1 DateTime 12:00]
sql execute $db "INSERT INTO t1 (x, y) VALUES(12, ?);" \
sql execute -datetimekind Utc $db "INSERT INTO t1 (x, y) VALUES(12, ?);" \
[list param1 DateTime "12/16/2009 12:00"]
sql execute -execute reader -datetimeformat [getDateTimeFormat] $db \
"SELECT x, CAST(y AS TEXT) AS y2 FROM t1 ORDER BY x;"
foreach name [lsort -integer [array names rows -regexp {^\d+$}]] {
lappend result [list $name $rows($name)]
|
︙ | | |
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
|
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
|
-
+
-
+
-
+
-
+
-
+
-
+
|
sql execute $db \
"INSERT INTO t1 (x, y) VALUES(3, 'Wednesday, 16 December 2009 12:00:00');"
sql execute $db "INSERT INTO t1 (x, y) VALUES(4, '12/16/2009');"
sql execute $db "INSERT INTO t1 (x, y) VALUES(5, '12:00');"
sql execute $db "INSERT INTO t1 (x, y) VALUES(6, '12/16/2009 12:00');"
sql execute $db "INSERT INTO t1 (x, y) VALUES(7, ?);" \
sql execute -datetimekind Utc $db "INSERT INTO t1 (x, y) VALUES(7, ?);" \
[list param1 DateTime "Wednesday, 16 December 2009"]
sql execute $db "INSERT INTO t1 (x, y) VALUES(8, ?);" \
sql execute -datetimekind Utc $db "INSERT INTO t1 (x, y) VALUES(8, ?);" \
[list param1 DateTime 12:00:00]
sql execute $db "INSERT INTO t1 (x, y) VALUES(9, ?);" \
sql execute -datetimekind Utc $db "INSERT INTO t1 (x, y) VALUES(9, ?);" \
[list param1 DateTime "Wednesday, 16 December 2009 12:00:00"]
sql execute $db "INSERT INTO t1 (x, y) VALUES(10, ?);" \
sql execute -datetimekind Utc $db "INSERT INTO t1 (x, y) VALUES(10, ?);" \
[list param1 DateTime 12/16/2009]
sql execute $db "INSERT INTO t1 (x, y) VALUES(11, ?);" \
sql execute -datetimekind Utc $db "INSERT INTO t1 (x, y) VALUES(11, ?);" \
[list param1 DateTime 12:00]
sql execute $db "INSERT INTO t1 (x, y) VALUES(12, ?);" \
sql execute -datetimekind Utc $db "INSERT INTO t1 (x, y) VALUES(12, ?);" \
[list param1 DateTime "12/16/2009 12:00"]
sql execute -execute reader -datetimeformat [getDateTimeFormat] $db \
"SELECT x, CAST(y AS TEXT) AS y2 FROM t1 ORDER BY x;"
foreach name [lsort -integer [array names rows -regexp {^\d+$}]] {
lappend result [list $name $rows($name)]
|
︙ | | |
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
|
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
|
-
-
+
+
|
set result
} -cleanup {
cleanupDb $fileName
unset -nocomplain error result db fileName
} -constraints {eagle System.Data.SQLite.Encryption monoBug28 command.sql\
compile.DATA SQLite System.Data.SQLite} -result {1 {file is encrypted or is not\
a database} 1 {file is encrypted or is not a database} 0 1 0 2}}
compile.DATA SQLite System.Data.SQLite} -result {1 {file is not a database} 1\
{file is not a database} 0 1 0 2}}
###############################################################################
runTest {test data-1.40 {encrypted database, wrong password} -setup {
setupDb [set fileName data-1.40.db] "" "" "" "" "Password=12345;"
} -body {
sql execute $db "CREATE TABLE t1(x);"
|
︙ | | |
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
|
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
|
-
-
+
+
|
set result
} -cleanup {
cleanupDb $fileName
unset -nocomplain error result db fileName
} -constraints {eagle System.Data.SQLite.Encryption monoBug28 command.sql\
compile.DATA SQLite System.Data.SQLite} -result {1 {file is encrypted or is not\
a database} 1 {file is encrypted or is not a database} 0 1 0 2}}
compile.DATA SQLite System.Data.SQLite} -result {1 {file is not a database} 1\
{file is not a database} 0 1 0 2}}
###############################################################################
runTest {test data-1.41 {encrypted database, password w/start-space} -setup {
setupDb [set fileName data-1.41.db] "" "" "" "" "Password= 1234;"
} -body {
sql execute $db "CREATE TABLE t1(x);"
|
︙ | | |
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
|
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
|
-
-
+
+
|
set result
} -cleanup {
cleanupDb $fileName
unset -nocomplain error result db fileName
} -constraints {eagle System.Data.SQLite.Encryption monoBug28 command.sql\
compile.DATA SQLite System.Data.SQLite} -result {1 {file is encrypted or is not\
a database} 1 {file is encrypted or is not a database} 0 1 0 2}}
compile.DATA SQLite System.Data.SQLite} -result {1 {file is not a database} 1\
{file is not a database} 0 1 0 2}}
###############################################################################
runTest {test data-1.43 {encrypted database, password w/mid-space} -setup {
setupDb [set fileName data-1.43.db] "" "" "" "" "Password=12 45;"
} -body {
sql execute $db "CREATE TABLE t1(x);"
|
︙ | | |
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
|
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
|
-
-
+
+
|
set result
} -cleanup {
cleanupDb $fileName
unset -nocomplain error result db fileName
} -constraints {eagle System.Data.SQLite.Encryption monoBug28 command.sql\
compile.DATA SQLite System.Data.SQLite} -result {1 {file is encrypted or is not\
a database} 1 {file is encrypted or is not a database} 0 1 0 2}}
compile.DATA SQLite System.Data.SQLite} -result {1 {file is not a database} 1\
{file is not a database} 0 1 0 2}}
###############################################################################
runTest {test data-1.44 {encrypted database, password w/end-space} -setup {
setupDb [set fileName data-1.44.db] "" "" "" "" "Password=1234 ;"
} -body {
sql execute $db "CREATE TABLE t1(x);"
|
︙ | | |
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
|
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
|
-
-
+
+
|
set result
} -cleanup {
cleanupDb $fileName
unset -nocomplain error result db fileName
} -constraints {eagle System.Data.SQLite.Encryption monoBug28 command.sql\
compile.DATA SQLite System.Data.SQLite} -result {1 {file is encrypted or is not\
a database} 1 {file is encrypted or is not a database} 0 1 0 2}}
compile.DATA SQLite System.Data.SQLite} -result {1 {file is not a database} 1\
{file is not a database} 0 1 0 2}}
###############################################################################
runTest {test data-1.46 {encrypted database, password via builder} -setup {
setupDb [set fileName data-1.46.db] "" "" "" "" "Password=67 89;"
} -body {
sql execute $db "CREATE TABLE t1(x);"
|
︙ | | |
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
|
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
|
-
+
|
set result [list]
set output ""
set code [catch {
testClrExec $testLinqExeFile [list -eventflags Wait -directory \
[file dirname $testLinqExeFile] -nocarriagereturns -stdout output \
-success 0] -substring
-success Success] -substring
} error]
tlog "---- BEGIN STDOUT OUTPUT\n"
tlog $output
tlog "\n---- END STDOUT OUTPUT\n"
lappend result $code
|
︙ | | |
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
|
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
|
-
+
-
+
|
$code(5) [extractSystemDataSQLiteExceptionMessage $result(5)] \
$code(6) [extractSystemDataSQLiteExceptionMessage $result(6)] \
$code(7) [extractSystemDataSQLiteExceptionMessage $result(7)] \
$code(8) [extractSystemDataSQLiteExceptionMessage $result(8)] \
$code(9) [extractSystemDataSQLiteExceptionMessage $result(9)] \
$result(10)
} -cleanup {
cleanupDb $fileName
freeDbConnection
freeDbConnection
cleanupDb $fileName
unset -nocomplain result code command connection db fileName
} -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\
System.Data.SQLite} -match regexp -result {^0 \{\} 0 \{\} 0 \{\} 1 \{SQL logic\
error( or missing database)? -- no such table: t2\} 1 \{SQL logic error( or\
missing database)? -- near "BAD": syntax error\} 0 \{\} 1 \{SQL logic error( or\
missing database)? -- no such table: t2\} 1 \{SQL logic error( or missing\
|
︙ | | |
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
|
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
|
-
-
+
+
|
unset -nocomplain reader
cleanupDb $fileName
unset -nocomplain result db fileName
} -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\
System.Data.SQLite SQLiteInterop} -match regexp -result {^\{\{SELECT \* FROM\
sqlite_stmt;\} 11 1 1 0 0 0 0 0 1 \d+ \{SELECT \* FROM t1;\} 1 1 1 0 0 0 9 0 1\
\d+\} \{\{SELECT \* FROM sqlite_stmt;\} 11 1 1 0 0 0 0 0 1 \d+\}$}}
sqlite_stmt;\} 11 1 1 0 0 0 0 0 1 \d+ \{SELECT \* FROM t1;\} 1 1 1 0 0 0\
(?:7|9) 0 1 \d+\} \{\{SELECT \* FROM sqlite_stmt;\} 11 1 1 0 0 0 0 0 1 \d+\}$}}
###############################################################################
runTest {test data-1.91 {Password error (no encryption support)} -body {
list [catch {
setupDb [set fileName data-1.91.db] "" "" "" "" "Password=1234;"
} msg] [extractSystemDataSQLiteExceptionMessage $msg]
|
︙ | | |
Changes to Tests/installer.eagle.
︙ | | |
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
-
+
-
-
+
+
|
cleanupFile $fileName
} -body {
set output ""
set code [catch {
testClrExec $installerExeFile [list -eventflags Wait -stdout output \
-success 0] -debugPriority Lowest -tracePriority MediumHigh \
-success Success] -debugPriority Lowest -tracePriority MediumHigh \
-noRuntimeVersion true -noCompact true -noNetFx35 true \
-noNetFx40 true -noNetFx45 true -noNetFx451 true -noNetFx452 true \
-noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true \
-noVs2008 true -noVs2010 true -noVs2012 true -noVs2013 true \
-noVs2015 true -noVs2017 true \
-noNetFx471 true -noVs2008 true -noVs2010 true -noVs2012 true \
-noVs2013 true -noVs2015 true -noVs2017 true \
-whatIf true -verbose true -confirm true -install true -debug true \
-wow64 true -directory [file nativename [getBuildDirectory false]] \
-logFileName [appendArgs \" [file nativename $fileName] \"] \
-traceFormat [appendArgs \" "#{0}: {2}" \"]
} error]
tlog "---- BEGIN STDOUT OUTPUT\n"
|
︙ | | |
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
|
-
+
-
-
+
+
|
cleanupFile $fileName
} -body {
set output ""
set code [catch {
testClrExec $installerExeFile [list -eventflags Wait -stdout output \
-success 0] -debugPriority Lowest -tracePriority MediumHigh \
-success Success] -debugPriority Lowest -tracePriority MediumHigh \
-noRuntimeVersion true -noCompact true -noNetFx35 true \
-noNetFx40 true -noNetFx45 true -noNetFx451 true -noNetFx452 true \
-noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true \
-noVs2008 true -noVs2010 true -noVs2012 true -noVs2013 true \
-noVs2015 true -noVs2017 true \
-noNetFx471 true -noVs2008 true -noVs2010 true -noVs2012 true \
-noVs2013 true -noVs2015 true -noVs2017 true \
-whatIf true -verbose true -confirm true -install false -debug true \
-wow64 true -directory [file nativename [getBuildDirectory false]] \
-logFileName [appendArgs \" [file nativename $fileName] \"] \
-traceFormat [appendArgs \" "#{0}: {2}" \"]
} error]
tlog "---- BEGIN STDOUT OUTPUT\n"
|
︙ | | |
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
|
-
+
-
-
-
+
+
+
|
cleanupFile $fileName
} -body {
set output ""
set code [catch {
testClrExec $installerExeFile [list -eventflags Wait -stdout output \
-success 0] -debugPriority Lowest -tracePriority MediumHigh \
-success Success] -debugPriority Lowest -tracePriority MediumHigh \
-noRuntimeVersion true -noCompact true -noNetFx40 true \
-noNetFx45 true -noNetFx451 true -noNetFx452 true -noNetFx46 true \
-noNetFx461 true -noNetFx462 true -noNetFx47 true -noVs2005 true \
-noVs2010 true -noVs2012 true -noVs2013 true -noVs2015 true \
-noVs2017 true -whatIf true \
-noNetFx461 true -noNetFx462 true -noNetFx47 true -noNetFx471 true \
-noVs2005 true -noVs2010 true -noVs2012 true -noVs2013 true \
-noVs2015 true -noVs2017 true -whatIf true \
-verbose true -confirm true -install true -debug true -wow64 true \
-directory [file nativename [getBuildDirectory false]] \
-logFileName [appendArgs \" [file nativename $fileName] \"] \
-traceFormat [appendArgs \" "#{0}: {2}" \"]
} error]
tlog "---- BEGIN STDOUT OUTPUT\n"
|
︙ | | |
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
|
-
+
-
-
-
+
+
+
|
cleanupFile $fileName
} -body {
set output ""
set code [catch {
testClrExec $installerExeFile [list -eventflags Wait -stdout output \
-success 0] -debugPriority Lowest -tracePriority MediumHigh \
-success Success] -debugPriority Lowest -tracePriority MediumHigh \
-noRuntimeVersion true -noCompact true -noNetFx40 true \
-noNetFx45 true -noNetFx451 true -noNetFx452 true -noNetFx46 true \
-noNetFx461 true -noNetFx462 true -noNetFx47 true -noVs2005 true \
-noVs2010 true -noVs2012 true -noVs2013 true -noVs2015 true \
-noVs2017 true -whatIf true \
-noNetFx461 true -noNetFx462 true -noNetFx47 true -noNetFx471 true \
-noVs2005 true -noVs2010 true -noVs2012 true -noVs2013 true \
-noVs2015 true -noVs2017 true -whatIf true \
-verbose true -confirm true -install false -debug true -wow64 true \
-directory [file nativename [getBuildDirectory false]] \
-logFileName [appendArgs \" [file nativename $fileName] \"] \
-traceFormat [appendArgs \" "#{0}: {2}" \"]
} error]
tlog "---- BEGIN STDOUT OUTPUT\n"
|
︙ | | |
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
|
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
|
-
+
-
-
+
+
|
cleanupFile $fileName
} -body {
set output ""
set code [catch {
testClrExec $installerExeFile [list -eventflags Wait -stdout output \
-success 0] -debugPriority Lowest -tracePriority MediumHigh \
-success Success] -debugPriority Lowest -tracePriority MediumHigh \
-noRuntimeVersion true -noCompact true -noNetFx20 true \
-noNetFx35 true -noNetFx45 true -noNetFx451 true -noNetFx452 true \
-noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true \
-noVs2005 true -noVs2008 true -noVs2012 true -noVs2013 true \
-noVs2015 true -noVs2017 true \
-noNetFx471 true -noVs2005 true -noVs2008 true -noVs2012 true \
-noVs2013 true -noVs2015 true -noVs2017 true \
-whatIf true -verbose true -confirm true -install true -debug true \
-wow64 true -directory [file nativename [getBuildDirectory false]] \
-logFileName [appendArgs \" [file nativename $fileName] \"] \
-traceFormat [appendArgs \" "#{0}: {2}" \"]
} error]
tlog "---- BEGIN STDOUT OUTPUT\n"
|
︙ | | |
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
|
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
|
-
+
-
-
+
+
|
cleanupFile $fileName
} -body {
set output ""
set code [catch {
testClrExec $installerExeFile [list -eventflags Wait -stdout output \
-success 0] -debugPriority Lowest -tracePriority MediumHigh \
-success Success] -debugPriority Lowest -tracePriority MediumHigh \
-noRuntimeVersion true -noCompact true -noNetFx20 true \
-noNetFx35 true -noNetFx45 true -noNetFx451 true -noNetFx452 true \
-noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true \
-noVs2005 true -noVs2008 true -noVs2012 true -noVs2013 true \
-noVs2015 true -noVs2017 true \
-noNetFx471 true -noVs2005 true -noVs2008 true -noVs2012 true \
-noVs2013 true -noVs2015 true -noVs2017 true \
-whatIf true -verbose true -confirm true -install false -debug true \
-wow64 true -directory [file nativename [getBuildDirectory false]] \
-logFileName [appendArgs \" [file nativename $fileName] \"] \
-traceFormat [appendArgs \" "#{0}: {2}" \"]
} error]
tlog "---- BEGIN STDOUT OUTPUT\n"
|
︙ | | |
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
|
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
|
-
+
-
-
+
+
|
cleanupFile $fileName
} -body {
set output ""
set code [catch {
testClrExec $installerExeFile [list -eventflags Wait -stdout output \
-success 0] -debugPriority Lowest -tracePriority MediumHigh \
-success Success] -debugPriority Lowest -tracePriority MediumHigh \
-noRuntimeVersion true -noCompact true -noNetFx20 true \
-noNetFx35 true -noNetFx40 true -noNetFx451 true -noNetFx452 true \
-noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true \
-noVs2005 true -noVs2008 true -noVs2010 true -noVs2013 true \
-noVs2015 true -noVs2017 true \
-noNetFx471 true -noVs2005 true -noVs2008 true -noVs2010 true \
-noVs2013 true -noVs2015 true -noVs2017 true \
-whatIf true -verbose true -confirm true -install true -debug true \
-wow64 true -configVersion 4.0.30319 \
-directory [file nativename [getBuildDirectory false]] \
-logFileName [appendArgs \" [file nativename $fileName] \"] \
-traceFormat [appendArgs \" "#{0}: {2}" \"]
} error]
|
︙ | | |
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
|
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
|
-
+
-
-
+
+
|
cleanupFile $fileName
} -body {
set output ""
set code [catch {
testClrExec $installerExeFile [list -eventflags Wait -stdout output \
-success 0] -debugPriority Lowest -tracePriority MediumHigh \
-success Success] -debugPriority Lowest -tracePriority MediumHigh \
-noRuntimeVersion true -noCompact true -noNetFx20 true \
-noNetFx35 true -noNetFx40 true -noNetFx451 true -noNetFx452 true \
-noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true \
-noVs2005 true -noVs2008 true -noVs2010 true -noVs2013 true \
-noVs2015 true -noVs2017 true \
-noNetFx471 true -noVs2005 true -noVs2008 true -noVs2010 true \
-noVs2013 true -noVs2015 true -noVs2017 true \
-whatIf true -verbose true -confirm true -install false -debug true \
-wow64 true -configVersion 4.0.30319 \
-directory [file nativename [getBuildDirectory false]] \
-logFileName [appendArgs \" [file nativename $fileName] \"] \
-traceFormat [appendArgs \" "#{0}: {2}" \"]
} error]
|
︙ | | |
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
|
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
|
-
+
-
-
+
+
|
cleanupFile $fileName
} -body {
set output ""
set code [catch {
testClrExec $installerExeFile [list -eventflags Wait -stdout output \
-success 0] -debugPriority Lowest -tracePriority MediumHigh \
-success Success] -debugPriority Lowest -tracePriority MediumHigh \
-noRuntimeVersion true -noCompact true -noNetFx20 true \
-noNetFx35 true -noNetFx40 true -noNetFx45 true -noNetFx452 true \
-noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true \
-noVs2005 true -noVs2008 true -noVs2010 true -noVs2012 true \
-noVs2015 true -noVs2017 true \
-noNetFx471 true -noVs2005 true -noVs2008 true -noVs2010 true \
-noVs2012 true -noVs2015 true -noVs2017 true \
-whatIf true -verbose true -confirm true -install true -debug true \
-wow64 true -configVersion 4.0.30319 \
-directory [file nativename [getBuildDirectory false]] \
-logFileName [appendArgs \" [file nativename $fileName] \"] \
-traceFormat [appendArgs \" "#{0}: {2}" \"]
} error]
|
︙ | | |
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
|
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
|
-
+
-
-
+
+
|
cleanupFile $fileName
} -body {
set output ""
set code [catch {
testClrExec $installerExeFile [list -eventflags Wait -stdout output \
-success 0] -debugPriority Lowest -tracePriority MediumHigh \
-success Success] -debugPriority Lowest -tracePriority MediumHigh \
-noRuntimeVersion true -noCompact true -noNetFx20 true \
-noNetFx35 true -noNetFx40 true -noNetFx45 true -noNetFx452 true \
-noNetFx46 true -noNetFx461 true -noNetFx462 true -noNetFx47 true \
-noVs2005 true -noVs2008 true -noVs2010 true -noVs2012 true \
-noVs2015 true -noVs2017 true \
-noNetFx471 true -noVs2005 true -noVs2008 true -noVs2010 true \
-noVs2012 true -noVs2015 true -noVs2017 true \
-whatIf true -verbose true -confirm true -install false -debug true \
-wow64 true -configVersion 4.0.30319 \
-directory [file nativename [getBuildDirectory false]] \
-logFileName [appendArgs \" [file nativename $fileName] \"] \
-traceFormat [appendArgs \" "#{0}: {2}" \"]
} error]
|
︙ | | |
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
|
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
|
-
+
-
-
+
+
|
cleanupFile $fileName
} -body {
set output ""
set code [catch {
testClrExec $installerExeFile [list -eventflags Wait -stdout output \
-success 0] -debugPriority Lowest -tracePriority MediumHigh \
-success Success] -debugPriority Lowest -tracePriority MediumHigh \
-noRuntimeVersion true -noCompact true -noNetFx20 true \
-noNetFx35 true -noNetFx40 true -noNetFx45 true -noNetFx451 true \
-noNetFx452 true -noNetFx461 true -noNetFx462 true -noNetFx47 true \
-noVs2005 true -noVs2008 true -noVs2010 true -noVs2012 true \
-noVs2013 true -noVs2017 true \
-noNetFx471 true -noVs2005 true -noVs2008 true -noVs2010 true \
-noVs2012 true -noVs2013 true -noVs2017 true \
-whatIf true -verbose true -confirm true -install true -debug true \
-wow64 true -configVersion 4.0.30319 \
-directory [file nativename [getBuildDirectory false]] \
-logFileName [appendArgs \" [file nativename $fileName] \"] \
-traceFormat [appendArgs \" "#{0}: {2}" \"]
} error]
|
︙ | | |
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
|
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
|
-
+
-
-
+
+
|
cleanupFile $fileName
} -body {
set output ""
set code [catch {
testClrExec $installerExeFile [list -eventflags Wait -stdout output \
-success 0] -debugPriority Lowest -tracePriority MediumHigh \
-success Success] -debugPriority Lowest -tracePriority MediumHigh \
-noRuntimeVersion true -noCompact true -noNetFx20 true \
-noNetFx35 true -noNetFx40 true -noNetFx45 true -noNetFx451 true \
-noNetFx452 true -noNetFx461 true -noNetFx462 true -noNetFx47 true \
-noVs2005 true -noVs2008 true -noVs2010 true -noVs2012 true \
-noVs2013 true -noVs2017 true \
-noNetFx471 true -noVs2005 true -noVs2008 true -noVs2010 true \
-noVs2012 true -noVs2013 true -noVs2017 true \
-whatIf true -verbose true -confirm true -install false -debug true \
-wow64 true -configVersion 4.0.30319 \
-directory [file nativename [getBuildDirectory false]] \
-logFileName [appendArgs \" [file nativename $fileName] \"] \
-traceFormat [appendArgs \" "#{0}: {2}" \"]
} error]
|
︙ | | |
Changes to Tests/linq.eagle.
︙ | | |
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
-
+
|
set result [list]
set output ""
set code [catch {
testClrExec $testLinqExeFile [list -eventflags Wait -directory \
[file dirname $testLinqExeFile] -nocarriagereturns -stdout output \
-success 0] -update
-success Success] -update
} error]
tlog "---- BEGIN STDOUT OUTPUT\n"
tlog $output
tlog "\n---- END STDOUT OUTPUT\n"
lappend result $code
|
︙ | | |
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
|
-
+
|
set result [list]
set output ""
set code [catch {
testClrExec $testLinqExeFile [list -eventflags Wait -directory \
[file dirname $testLinqExeFile] -nocarriagereturns -stdout output \
-success 0] -round
-success Success] -round
} error]
tlog "---- BEGIN STDOUT OUTPUT\n"
tlog $output
tlog "\n---- END STDOUT OUTPUT\n"
lappend result $code
|
︙ | | |
Changes to Tests/session.eagle.
︙ | | |
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
|
-
+
+
+
+
+
|
package require System.Data.SQLite.Test
runSQLiteTestPrologue
###############################################################################
#
# HACK: When running on Mono, always insert a "-parametertypes" option when
# calling method overloads that require a Stream.
# calling method overloads that require a Stream, due to their broken
# (as of 5.0) implementation of the Type.IsAssignableFrom method.
# Without this option, the Eagle core marshaller will select the wrong
# method overload, which will cause all tests that use a stream-based
# method overload to fail.
#
proc useStreamMaybeWithMono { args } {
if {[isMono]} then {
set args [linsert $args 1 -parametertypes [list System.IO.Stream]]
}
return [uplevel 1 $args]
|
︙ | | |
Changes to Tests/tkt-00f86f9739.eagle.
︙ | | |
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
|
-
+
|
foreach value [list "" a b z 1+1 don notthere] {
set output ""
set code [catch {
testClrExec $testLinqExeFile [list -eventflags Wait -directory \
[file dirname $testLinqExeFile] -nocarriagereturns -stdout output \
-success 0] -startsWith $value
-success Success] -startsWith $value
} error]
tlog "---- BEGIN STDOUT OUTPUT\n"
tlog $output
tlog "\n---- END STDOUT OUTPUT\n"
lappend result $code
|
︙ | | |
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
-
+
|
foreach value [list "" a b z 1+1 don notthere] {
set output ""
set code [catch {
testClrExec $testEf6ExeFile [list -eventflags Wait -directory \
[file dirname $testEf6ExeFile] -nocarriagereturns -stdout output \
-success 0] -startsWith $value
-success Success] -startsWith $value
} error]
tlog "---- BEGIN STDOUT OUTPUT\n"
tlog $output
tlog "\n---- END STDOUT OUTPUT\n"
lappend result $code
|
︙ | | |
Changes to Tests/tkt-0a32885109.eagle.
︙ | | |
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
-
+
|
set result [list]
set output ""
set code [catch {
testClrExec $testLinqExeFile [list -eventflags Wait -directory \
[file dirname $testLinqExeFile] -nocarriagereturns -stdout output \
-success 0] -unionall
-success Success] -unionall
} error]
tlog "---- BEGIN STDOUT OUTPUT\n"
tlog $output
tlog "\n---- END STDOUT OUTPUT\n"
lappend result $code
|
︙ | | |
Added Tests/tkt-0e48e80333.eagle.