github.com/jdgcs/sqlite3@v1.12.1-0.20210908114423-bc5f96e4dd51/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  do_execsql_test 1.0 {
    19    CREATE TABLE t1(a);
    20    INSERT INTO t1 VALUES(1);
    21    ALTER TABLE t1 ADD COLUMN b DEFAULT 2;
    22    CREATE TABLE t2(a, b);
    23    INSERT INTO t2 SELECT * FROM t1;
    24    SELECT * FROM t2;
    25  } {1 2}
    26  
    27  db cache size 0
    28  foreach {tn tbls xfer} {
    29    1 { CREATE TABLE t1(a, b); CREATE TABLE t2(a, b)             }             1
    30    2 { CREATE TABLE t1(a, b DEFAULT 'x'); CREATE TABLE t2(a, b) }             0
    31    3 { CREATE TABLE t1(a, b DEFAULT 'x'); CREATE TABLE t2(a, b DEFAULT 'x') } 1
    32    4 { CREATE TABLE t1(a, b DEFAULT NULL); CREATE TABLE t2(a, b) }            0
    33    5 { CREATE TABLE t1(a DEFAULT 2, b); CREATE TABLE t2(a DEFAULT 1, b) }     1
    34    6 { CREATE TABLE t1(a DEFAULT 1, b); CREATE TABLE t2(a DEFAULT 1, b) }     1
    35    7 { CREATE TABLE t1(a DEFAULT 1, b DEFAULT 1);
    36        CREATE TABLE t2(a DEFAULT 3, b DEFAULT 1) }                            1
    37    8 { CREATE TABLE t1(a DEFAULT 1, b DEFAULT 1);
    38        CREATE TABLE t2(a DEFAULT 3, b DEFAULT 3) }                            0
    39  
    40  } {
    41  
    42    execsql { DROP TABLE t1; DROP TABLE t2 }
    43    execsql $tbls
    44  
    45    set res 1
    46    db eval { EXPLAIN INSERT INTO t1 SELECT * FROM t2 } {
    47      if {$opcode == "Column"} { set res 0 }
    48    }
    49  
    50    do_test 2.$tn [list set res] $xfer
    51  }
    52  
    53  finish_test