1
0
mirror of https://github.com/sqlite/sqlite.git synced 2025-07-29 08:01:23 +03:00

In-progress changes - do not use; Removed prefix support; Added file control interface to enable/disable and adjust chunk size;

added app-def function for same;

FossilOrigin-Name: bc02d0c193225bd49a8d8a3295aeac752d3c2e30
This commit is contained in:
shaneh
2011-03-29 05:06:46 +00:00
parent d9523b97ec
commit d50deeeb7a
5 changed files with 263 additions and 177 deletions

View File

@ -32,13 +32,17 @@ proc multiplex_name {name chunk} {
}
# This saves off the parameters and calls the
# underlying sqlite3_multiplex_set() API.
proc multiplex_set {chunk_size max_chunks} {
# underlying sqlite3_multiplex_control() API.
proc multiplex_set {db name chunk_size max_chunks} {
global g_chunk_size
global g_max_chunks
set g_chunk_size $chunk_size
set g_max_chunks $max_chunks
sqlite3_multiplex_set $chunk_size $max_chunks
set rc [catch {sqlite3_multiplex_control $db $name chunk_size $chunk_size} msg]
if { $rc==0 } {
set rc [catch {sqlite3_multiplex_control $db $name max_chunks $max_chunks} msg]
}
list $msg
}
# This attempts to delete the base file and
@ -71,14 +75,15 @@ do_test multiplex-1.7 { sqlite3_multiplex_initialize "" 1 } {SQLITE_OK}
do_test multiplex-1.8 { sqlite3_multiplex_shutdown } {SQLITE_OK}
do_test multiplex-1.9 { sqlite3_multiplex_initialize "" 1 } {SQLITE_OK}
do_test multiplex-1.10.1 { multiplex_set 32768 16 } {SQLITE_OK}
do_test multiplex-1.10.2 { multiplex_set 32768 -1 } {SQLITE_MISUSE}
do_test multiplex-1.10.3 { multiplex_set -1 16 } {SQLITE_MISUSE}
do_test multiplex-1.10.4 { multiplex_set 31 16 } {SQLITE_MISUSE}
do_test multiplex-1.10.5 { multiplex_set 32768 100 } {SQLITE_MISUSE}
sqlite3 db test.db
do_test multiplex-1.10.1 { multiplex_set db main 32768 16 } {SQLITE_OK}
do_test multiplex-1.10.2 { multiplex_set db main 32768 -1 } {SQLITE_MISUSE}
do_test multiplex-1.10.3 { multiplex_set db main -1 16 } {SQLITE_MISUSE}
do_test multiplex-1.10.4 { multiplex_set db main 31 16 } {SQLITE_MISUSE}
do_test multiplex-1.10.5 { multiplex_set db main 32768 100 } {SQLITE_MISUSE}
db close
do_test multiplex-1.11 { sqlite3_multiplex_shutdown } {SQLITE_OK}
#-------------------------------------------------------------------------
# Some simple warm-body tests with a single database file in rollback
# mode:
@ -89,7 +94,7 @@ do_test multiplex-1.11 { sqlite3_multiplex_shutdown } {SQLITE_OK}
#
# multiplex-2.3.*: Open and close a second db.
#
# multiplex-2.4.*: Try to shutdown the multiplex system before closing the db
# multiplex-2.4.*: Try to shutdown the multiplex system befor e closing the db
# file. Check that this fails and the multiplex system still works
# afterwards. Then close the database and successfully shut
# down the multiplex system.
@ -100,7 +105,7 @@ do_test multiplex-1.11 { sqlite3_multiplex_shutdown } {SQLITE_OK}
# well as varying journal mode.
sqlite3_multiplex_initialize "" 1
multiplex_set 32768 16
multiplex_set db main 32768 16
do_test multiplex-2.1.2 {
sqlite3 db test.db
@ -130,6 +135,7 @@ do_test multiplex-2.3.1 {
db2 close
} {}
do_test multiplex-2.4.1 {
sqlite3_multiplex_shutdown
} {SQLITE_MISUSE}
@ -146,11 +152,11 @@ do_test multiplex-2.4.99 {
do_test multiplex-2.5.1 {
multiplex_delete test.db
sqlite3_multiplex_initialize "" 1
multiplex_set 4096 16
sqlite3 db test.db
multiplex_set db main 4096 16
} {SQLITE_OK}
do_test multiplex-2.5.2 {
sqlite3 db test.db
execsql {
PRAGMA page_size = 1024;
PRAGMA journal_mode = delete;
@ -197,6 +203,9 @@ do_test multiplex-2.5.99 {
sqlite3_multiplex_shutdown
} {SQLITE_OK}
return
# TBD fix the below
set all_journal_modes {delete persist truncate memory off}
foreach jmode $all_journal_modes {
@ -205,7 +214,7 @@ foreach jmode $all_journal_modes {
do_test multiplex-2.6.1.$sz.$jmode {
multiplex_delete test.db
sqlite3_multiplex_initialize "" 1
multiplex_set $sz 32
multiplex_set db main $sz 32
} {SQLITE_OK}
do_test multiplex-2.6.2.$sz.$jmode {
@ -255,7 +264,7 @@ foreach jmode $all_journal_modes {
do_test multiplex-3.1.1 {
multiplex_delete test.db
sqlite3_multiplex_initialize "" 1
multiplex_set 32768 16
multiplex_set db main 32768 16
} {SQLITE_OK}
do_test multiplex-3.1.2 {
sqlite3 db test.db
@ -341,7 +350,7 @@ do_test multiplex-3.2.X {
#
sqlite3_multiplex_initialize "" 1
multiplex_set 32768 16
multiplex_set db main 32768 16
# Return a list of all currently defined multiplexs.
proc multiplex_list {} {
@ -403,7 +412,7 @@ do_test multiplex-4.1.12 {
#
sqlite3_multiplex_initialize "" 1
multiplex_set 32768 16
multiplex_set db main 32768 16
do_faultsim_test multiplex-5.1 -prep {
catch {db close}
@ -448,7 +457,7 @@ do_faultsim_test multiplex-5.5 -prep {
catch { sqlite3_multiplex_shutdown }
} -body {
sqlite3_multiplex_initialize "" 1
multiplex_set 32768 16
multiplex_set db main 32768 16
}
# test that mismatch filesize is detected
@ -481,7 +490,7 @@ if {0==[info exists ::G(perm:presql)] || $::G(perm:presql) == ""} {
}
db close
sqlite3_multiplex_initialize "" 1
multiplex_set 4096 16
multiplex_set db main 4096 16
sqlite3 db test.db
} {}
do_test multiplex-5.6.3.$jmode {