System.Data.SQLite
Check-in [c2d27a493d]
Not logged in

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Prevent stress test from running out of memory due to large result sets. Also, increase several of the default workload argument values.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: c2d27a493d17ac0b335c7055d7b182b854b2b22d
User & Date: mistachkin 2012-10-13 19:11:43
Context
2012-10-13
20:26
In the SQLiteDataReader, try to stop processing query results if the underlying connection is closed. check-in: 441fd3e40b user: mistachkin tags: trunk
19:11
Prevent stress test from running out of memory due to large result sets. Also, increase several of the default workload argument values. check-in: c2d27a493d user: mistachkin tags: trunk
19:09
Add object disposal diagnostic support for the sqlite3_changes() API. check-in: 32459aa7cd user: mistachkin tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to Tests/stress.eagle.

111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
...
201
202
203
204
205
206
207

208
209
210
211
212
213
214
215
...
252
253
254
255
256
257
258
259
260








261
262
263
264
265
266
267
...
278
279
280
281
282
283
284
285
286








287
288
289
290
291
292
293
  #
  set logFileName [appendArgs $test_log .trace]
  setupLogging $logFileName

  #############################################################################

  set count(0) 1
  set count(1) 5
  set count(2) 300
  set count(3) 57
  set count(4) 10000000
  set noWorkload [list]

  if {[info exists argv] && [llength $argv] > 0} then {
    parse options -flags \
        {-StopOnUnknownOption +IgnoreOnUnknownOption SkipOnUnknownOption} -- \
        [list [list null MustHaveIntegerValue -1 -1 -count0 $count(0)] \
................................................................................
    # NOTE: Workload #1, CREATE TABLE statements.
    #
    lappend ::times(1) [lindex [time {
      setupDb $dstFileName "" "" "" "" "" true false
      for {set index 2} {$index <= $count1} {incr index} {
        if {[catch {
          sql execute $db [appendArgs \

              "CREATE TABLE IF NOT EXISTS t" $index "(x PRIMARY KEY, y, z);"]
          showTest A
        } error]} then {
          if {[expectedError $error]} then {
            showTest a
          } else {
            failTest $error
          }
................................................................................
    #
    # NOTE: Workload #3, "small" SELECT statements.
    #
    lappend ::times(3) [lindex [time {
      setupDb $dstFileName "" "" "" "" "" true false
      for {set index 1} {$index <= $count1} {incr index} {
        if {[catch {
          sql execute -execute reader $db [appendArgs \
              "SELECT x, y FROM " $table " WHERE z = 'small';"]








          showTest C
        } error]} then {
          if {[expectedError $error]} then {
            showTest c
          } else {
            failTest $error
          }
................................................................................
    #
    # NOTE: Workload #4, "big" SELECT statements.
    #
    lappend ::times(4) [lindex [time {
      setupDb $dstFileName "" "" "" "" "" true false
      for {set index 1} {$index <= $count1} {incr index} {
        if {[catch {
          sql execute -execute reader $db [appendArgs \
              "SELECT x, y FROM " $table " WHERE z = 'big';"]








          showTest D
        } error]} then {
          if {[expectedError $error]} then {
            showTest d
          } else {
            failTest $error
          }







|
|
|







 







>
|







 







|

>
>
>
>
>
>
>
>







 







|

>
>
>
>
>
>
>
>







111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
...
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
...
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
...
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
  #
  set logFileName [appendArgs $test_log .trace]
  setupLogging $logFileName

  #############################################################################

  set count(0) 1
  set count(1) 100
  set count(2) 200
  set count(3) 2000
  set count(4) 10000000
  set noWorkload [list]

  if {[info exists argv] && [llength $argv] > 0} then {
    parse options -flags \
        {-StopOnUnknownOption +IgnoreOnUnknownOption SkipOnUnknownOption} -- \
        [list [list null MustHaveIntegerValue -1 -1 -count0 $count(0)] \
................................................................................
    # NOTE: Workload #1, CREATE TABLE statements.
    #
    lappend ::times(1) [lindex [time {
      setupDb $dstFileName "" "" "" "" "" true false
      for {set index 2} {$index <= $count1} {incr index} {
        if {[catch {
          sql execute $db [appendArgs \
              "CREATE TABLE IF NOT EXISTS t" \
              $index "(x PRIMARY KEY, y, z);"]
          showTest A
        } error]} then {
          if {[expectedError $error]} then {
            showTest a
          } else {
            failTest $error
          }
................................................................................
    #
    # NOTE: Workload #3, "small" SELECT statements.
    #
    lappend ::times(3) [lindex [time {
      setupDb $dstFileName "" "" "" "" "" true false
      for {set index 1} {$index <= $count1} {incr index} {
        if {[catch {
          set sql [appendArgs \
              "SELECT x, y FROM " $table " WHERE z = 'small';"]
          set reader [sql execute -execute reader \
              -format dataReader -alias $db $sql]
          while {[$reader Read]} {
            #
            # NOTE: Do nothing.
            #
          }
          unset -nocomplain reader
          showTest C
        } error]} then {
          if {[expectedError $error]} then {
            showTest c
          } else {
            failTest $error
          }
................................................................................
    #
    # NOTE: Workload #4, "big" SELECT statements.
    #
    lappend ::times(4) [lindex [time {
      setupDb $dstFileName "" "" "" "" "" true false
      for {set index 1} {$index <= $count1} {incr index} {
        if {[catch {
          set sql [appendArgs \
              "SELECT x, y FROM " $table " WHERE z = 'big';"]
          set reader [sql execute -execute reader \
              -format dataReader -alias $db $sql]
          while {[$reader Read]} {
            #
            # NOTE: Do nothing.
            #
          }
          unset -nocomplain reader
          showTest D
        } error]} then {
          if {[expectedError $error]} then {
            showTest d
          } else {
            failTest $error
          }