CoolFace
Modelpublic

AryaWu/sqlite

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
mmap3.test102 linesDownload Raw Back to test
1# 2013-05-232#3# The author disclaims copyright to this source code.  In place of4# a legal notice, here is a blessing:5#6#    May you do good and not evil.7#    May you find forgiveness for yourself and forgive others.8#    May you share freely, never taking more than you give.9#10#***********************************************************************11#12 13set testdir [file dirname $argv0]14source $testdir/tester.tcl15ifcapable !mmap||!vtab {16  finish_test17  return18}19source $testdir/lock_common.tcl20set testprefix mmap321 22# A codec shuts down memory-mapped I/O23if {[nonzero_reserved_bytes]} {finish_test; return;}24 25do_test mmap3-1.0 {26  load_static_extension db wholenumber27  db eval {28    PRAGMA mmap_size=100000;29    CREATE TABLE t1(x, y);30    CREATE VIRTUAL TABLE nums USING wholenumber;31    INSERT INTO t1 SELECT value, randomblob(value) FROM nums32                    WHERE value BETWEEN 1 and 1000;33    SELECT sum(x), sum(length(y)) from t1;34    PRAGMA mmap_size;35  }36} {100000 500500 500500 100000}37do_test mmap3-1.2 {38  db eval {39    PRAGMA mmap_size=50000;40    CREATE TABLE t2(a,b);41    SELECT name FROM sqlite_master WHERE type='table' ORDER BY 1;42    PRAGMA quick_check;43    PRAGMA mmap_size;44  }45} {50000 nums t1 t2 ok 50000}46do_test mmap3-1.3 {47  db eval {48    PRAGMA mmap_size=250000;49    DROP TABLE t2;50    SELECT name FROM sqlite_master WHERE type='table' ORDER BY 1;51    PRAGMA quick_check;52    PRAGMA mmap_size;53  }54} {250000 nums t1 ok 250000}55do_test mmap3-1.4 {56  db eval {SELECT x FROM t1 WHERE +x BETWEEN 10 AND 15} {57    db eval {PRAGMA mmap_size=150000}58  }59  db eval {60    PRAGMA quick_check;61    PRAGMA mmap_size;62  }63} {ok 250000}64do_test mmap3-1.5 {65  db eval {SELECT x FROM t1 WHERE +x BETWEEN 10 AND 15} {66    db eval {PRAGMA mmap_size=0}67  }68  db eval {69    PRAGMA quick_check;70    PRAGMA mmap_size;71  }72} {ok 250000}73do_test mmap3-1.6 {74  db eval {SELECT x FROM t1 WHERE +x BETWEEN 10 AND 15} {75    set x [db one {PRAGMA mmap_size}]76  }77  set x [concat $x [db eval {78    PRAGMA quick_check;79    PRAGMA mmap_size;80  }]]81} {250000 ok 250000}82do_test mmap3-1.7 {83  db eval {84    PRAGMA mmap_size(0);85    CREATE TABLE t3(a,b,c);86    SELECT name FROM sqlite_master WHERE type='table' ORDER BY 1;87    PRAGMA quick_check;88    PRAGMA mmap_size;89  }90} {0 nums t1 t3 ok 0}91do_test mmap3-1.8 {92  db eval {SELECT x FROM t1 WHERE +x BETWEEN 10 AND 15} {93    db eval {PRAGMA mmap_size=75000}94  }95  db eval {96    PRAGMA quick_check;97    PRAGMA mmap_size;98  }99} {ok 75000}100 101finish_test102