gitlab.com/CoiaPrant/sqlite3@v1.19.1/testdata/tcl/tkt-f67b41381a.test (about)

     1  # 2014 April 26
     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  # Test that ticket f67b41381a has been resolved.
    12  #
    13  
    14  set testdir [file dirname $argv0]
    15  source $testdir/tester.tcl
    16  set testprefix tkt-f67b41381a
    17  
    18  ifcapable !altertable {
    19    finish_test
    20    return
    21  }
    22  
    23  do_execsql_test 1.0 {
    24    CREATE TABLE t1(a);
    25    INSERT INTO t1 VALUES(1);
    26    ALTER TABLE t1 ADD COLUMN b DEFAULT 2;
    27    CREATE TABLE t2(a, b);
    28    INSERT INTO t2 SELECT * FROM t1;
    29    SELECT * FROM t2;
    30  } {1 2}
    31  
    32  db cache size 0
    33  foreach {tn tbls xfer} {
    34    1 { CREATE TABLE t1(a, b); CREATE TABLE t2(a, b)             }             1
    35    2 { CREATE TABLE t1(a, b DEFAULT 'x'); CREATE TABLE t2(a, b) }             0
    36    3 { CREATE TABLE t1(a, b DEFAULT 'x'); CREATE TABLE t2(a, b DEFAULT 'x') } 1
    37    4 { CREATE TABLE t1(a, b DEFAULT NULL); CREATE TABLE t2(a, b) }            0
    38    5 { CREATE TABLE t1(a DEFAULT 2, b); CREATE TABLE t2(a DEFAULT 1, b) }     1
    39    6 { CREATE TABLE t1(a DEFAULT 1, b); CREATE TABLE t2(a DEFAULT 1, b) }     1
    40    7 { CREATE TABLE t1(a DEFAULT 1, b DEFAULT 1);
    41        CREATE TABLE t2(a DEFAULT 3, b DEFAULT 1) }                            1
    42    8 { CREATE TABLE t1(a DEFAULT 1, b DEFAULT 1);
    43        CREATE TABLE t2(a DEFAULT 3, b DEFAULT 3) }                            0
    44  
    45  } {
    46  
    47    execsql { DROP TABLE t1; DROP TABLE t2 }
    48    execsql $tbls
    49  
    50    set res 1
    51    db eval { EXPLAIN INSERT INTO t1 SELECT * FROM t2 } {
    52      if {$opcode == "Column"} { set res 0 }
    53    }
    54  
    55    do_test 2.$tn [list set res] $xfer
    56  }
    57  
    58  finish_test