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:
@ -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 {
|
||||
|
Reference in New Issue
Block a user