modernc.org/cc@v1.0.1/v2/testdata/_sqlite/ext/lsm1/test/lsm1_simple.test (about)

     1  # 2017 July 14
     2  #
     3  # The author disclaims copyright to this source code.  In place of
     4  # 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  # This file implements regression tests for SQLite library.  The
    12  # focus of this script is testing the lsm1 virtual table module.
    13  #
    14  
    15  source [file join [file dirname [info script]] lsm1_common.tcl]
    16  set testprefix lsm1_simple
    17  return_if_no_lsm1
    18  load_lsm1_vtab db
    19  
    20  forcedelete testlsm.db
    21  
    22  do_execsql_test 100 {
    23    CREATE VIRTUAL TABLE x1 USING lsm1(testlsm.db,a,UINT,b,c,d);
    24    PRAGMA table_info(x1);
    25  } {
    26    0 a UINT 1 {} 1 
    27    1 b {} 0 {} 0 
    28    2 c {} 0 {} 0 
    29    3 d {} 0 {} 0
    30  }
    31  
    32  do_execsql_test 110 {
    33    INSERT INTO x1(a,b,c,d) VALUES(15, 11, 22, 33),(8,'banjo',x'333231',NULL),
    34        (12,NULL,3.25,-559281390);
    35    SELECT a, quote(b), quote(c), quote(d) FROM x1;
    36  } {8 'banjo' X'333231' NULL 12 NULL 3.25 -559281390 15 11 22 33}
    37  do_execsql_test 111 {
    38    SELECT a, quote(lsm1_key), quote(lsm1_value) FROM x1;
    39  } {8 X'08' X'2162616E6A6F1633323105' 12 X'0C' X'05320000000000000A401FFB42ABE9DB' 15 X'0F' X'4284C6'}
    40  
    41  do_execsql_test 120 {
    42    UPDATE x1 SET d = d+1.0 WHERE a=15;
    43    SELECT a, quote(b), quote(c), quote(d) FROM x1;
    44  } {8 'banjo' X'333231' NULL 12 NULL 3.25 -559281390 15 11 22 34.0}
    45  
    46  do_execsql_test 130 {
    47    UPDATE x1 SET a=123456789 WHERE a=12;
    48    SELECT a, quote(b), quote(c), quote(d) FROM x1;
    49  } {8 'banjo' X'333231' NULL 15 11 22 34.0 123456789 NULL 3.25 -559281390}
    50  do_execsql_test 131 {
    51    SELECT quote(lsm1_key), printf('0x%x',a) FROM x1 WHERE a > 100000000;
    52  } {X'FB075BCD15' 0x75bcd15}
    53  
    54  do_execsql_test 140 {
    55    DELETE FROM x1 WHERE a=15;
    56    SELECT a, quote(b), quote(c), quote(d) FROM x1;
    57  } {8 'banjo' X'333231' NULL 123456789 NULL 3.25 -559281390}
    58  
    59  do_test 150 {
    60    lsort [glob testlsm.db*]
    61  } {testlsm.db testlsm.db-log testlsm.db-shm}
    62  
    63  db close
    64  do_test 160 {
    65    lsort [glob testlsm.db*]
    66  } {testlsm.db}
    67  
    68  forcedelete testlsm.db
    69  forcedelete test.db
    70  sqlite3 db test.db
    71  load_lsm1_vtab db
    72  
    73  
    74  do_execsql_test 200 {
    75    CREATE VIRTUAL TABLE x1 USING lsm1(testlsm.db,a,TEXT,b,c,d);
    76    PRAGMA table_info(x1);
    77  } {
    78    0 a TEXT 1 {} 1 
    79    1 b {} 0 {} 0 
    80    2 c {} 0 {} 0 
    81    3 d {} 0 {} 0
    82  }
    83  do_execsql_test 210 {
    84    INSERT INTO x1(a,b,c,d) VALUES(15, 11, 22, 33),(8,'banjo',x'333231',NULL),
    85        (12,NULL,3.25,-559281390);
    86    SELECT quote(a), quote(b), quote(c), quote(d), '|' FROM x1;
    87  } {'12' NULL 3.25 -559281390 | '15' 11 22 33 | '8' 'banjo' X'333231' NULL |}
    88  do_execsql_test 211 {
    89    SELECT quote(a), quote(lsm1_key), quote(lsm1_value), '|' FROM x1;
    90  } {'12' X'3132' X'05320000000000000A401FFB42ABE9DB' | '15' X'3135' X'4284C6' | '8' X'38' X'2162616E6A6F1633323105' |}
    91  
    92  
    93  finish_test