/ Check-in [12386197]
Login

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

Overview
Comment:Make sure the multiplexor does not create unnecessary overflow files.
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 1238619756c0c26e43d3c1c873cbdeca22ce9d61
User & Date: drh 2012-01-09 13:41:59
References
2012-01-09
14:57
Cherry-pick the fix to surplus overflow files in the multiplexor, check-in [1238619756c0c] in the trunk. check-in: 2f8c62c3 user: drh tags: nx-devkit
Context
2012-01-09
14:19
Cosmetic changes to lemon. No changes to core functionality nor impact on SQLite. check-in: 393fc78a user: drh tags: trunk
13:41
Make sure the multiplexor does not create unnecessary overflow files. check-in: 12386197 user: drh tags: trunk
11:37
Have test_multiplex.c add a second nul-terminator byte to the strings that it passes to the xOpen method of the underlying VFS, in case that VFS passes the string to sqlite3_uri_parameter() or similar. check-in: 12f5b8c9 user: dan tags: trunk
Changes
Hide Diffs Unified Diffs Ignore Whitespace Patch

Changes to src/test_multiplex.c.

324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
    return 0;
  }
#endif

  *rc = multiplexSubFilename(pGroup, iChunk);
  if( (*rc)==SQLITE_OK && (pSubOpen = pGroup->aReal[iChunk].p)==0 ){
    int flags, bExists;
    createFlag = (pGroup->flags & SQLITE_OPEN_CREATE)!=0;
    flags = pGroup->flags;
    if( createFlag ){
      flags |= SQLITE_OPEN_CREATE;
    }else if( iChunk==0 ){
      /* Fall through */
    }else if( pGroup->aReal[iChunk].z==0 ){
      return 0;







<







324
325
326
327
328
329
330

331
332
333
334
335
336
337
    return 0;
  }
#endif

  *rc = multiplexSubFilename(pGroup, iChunk);
  if( (*rc)==SQLITE_OK && (pSubOpen = pGroup->aReal[iChunk].p)==0 ){
    int flags, bExists;

    flags = pGroup->flags;
    if( createFlag ){
      flags |= SQLITE_OPEN_CREATE;
    }else if( iChunk==0 ){
      /* Fall through */
    }else if( pGroup->aReal[iChunk].z==0 ){
      return 0;

Changes to test/multiplex.test.

152
153
154
155
156
157
158



159
160
161
162
163
164
165
...
188
189
190
191
192
193
194
195
196






197
198
199
200
201
202
203
204
205
206
#   multiplex-2.7.*: Disable/enable tests.
#

sqlite3_multiplex_initialize "" 1
multiplex_set db main 32768 16

forcedelete test.x



do_test multiplex-2.1.2 {
  sqlite3 db test.x
  execsql {
    PRAGMA page_size=1024;
    PRAGMA auto_vacuum=OFF;
    PRAGMA journal_mode=DELETE;
  }
................................................................................
do_test multiplex-2.4.1 {
  sqlite3_multiplex_shutdown
} {SQLITE_MISUSE}
do_test multiplex-2.4.2 {
  execsql { INSERT INTO t1 VALUES(3, randomblob(1100)) }
} {}
do_test multiplex-2.4.4 { file size [multiplex_name test.x 0] } {7168}
do_test multiplex-2.4.99 {
  db close






  sqlite3_multiplex_shutdown
} {SQLITE_OK}


do_test multiplex-2.5.1 {
  multiplex_delete test.x
  sqlite3_multiplex_initialize "" 1
  sqlite3 db test.x
  multiplex_set db main 4096 16
} {SQLITE_OK}







>
>
>







 







|

>
>
>
>
>
>


<







152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
...
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207

208
209
210
211
212
213
214
#   multiplex-2.7.*: Disable/enable tests.
#

sqlite3_multiplex_initialize "" 1
multiplex_set db main 32768 16

forcedelete test.x
foreach f [glob -nocomplain {test.x*[0-9][0-9][0-9]}] {
  forcedelete $f
}
do_test multiplex-2.1.2 {
  sqlite3 db test.x
  execsql {
    PRAGMA page_size=1024;
    PRAGMA auto_vacuum=OFF;
    PRAGMA journal_mode=DELETE;
  }
................................................................................
do_test multiplex-2.4.1 {
  sqlite3_multiplex_shutdown
} {SQLITE_MISUSE}
do_test multiplex-2.4.2 {
  execsql { INSERT INTO t1 VALUES(3, randomblob(1100)) }
} {}
do_test multiplex-2.4.4 { file size [multiplex_name test.x 0] } {7168}
do_test multiplex-2.4.5 {
  db close
  sqlite3 db test.x
  db eval vacuum
  db close
  glob test.x*
} {test.x}
do_test multiplex-2.4.99 {
  sqlite3_multiplex_shutdown
} {SQLITE_OK}


do_test multiplex-2.5.1 {
  multiplex_delete test.x
  sqlite3_multiplex_initialize "" 1
  sqlite3 db test.x
  multiplex_set db main 4096 16
} {SQLITE_OK}