Home | History | Annotate | Download | only in test
      1 # 2005 August 18
      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 file is testing corner cases of the DEFAULT syntax
     13 # on table definitions.
     14 #
     15 # $Id: default.test,v 1.3 2009/02/19 14:39:25 danielk1977 Exp $
     16 #
     17 
     18 set testdir [file dirname $argv0]
     19 source $testdir/tester.tcl
     20 
     21 ifcapable bloblit {
     22   do_test default-1.1 {
     23     execsql {
     24       CREATE TABLE t1(
     25         a INTEGER,
     26         b BLOB DEFAULT x'6869'
     27       );
     28       INSERT INTO t1(a) VALUES(1);
     29       SELECT * from t1;
     30     }
     31   } {1 hi}
     32 }
     33 do_test default-1.2 {
     34   execsql {
     35     CREATE TABLE t2(
     36       x INTEGER,
     37       y INTEGER DEFAULT NULL
     38     );
     39     INSERT INTO t2(x) VALUES(1);
     40     SELECT * FROM t2;
     41   }
     42 } {1 {}}
     43 do_test default-1.3 {
     44   catchsql {
     45     CREATE TABLE t3(
     46       x INTEGER,
     47       y INTEGER DEFAULT (max(x,5))
     48     )
     49   }
     50 } {1 {default value of column [y] is not constant}}
     51 
     52 ifcapable pragma {
     53   do_test default-2.1 {
     54     execsql {
     55       CREATE TABLE t4(c DEFAULT 'abc');
     56       PRAGMA table_info(t4);
     57     }
     58   } {0 c {} 0 'abc' 0}
     59   do_test default-2.2 {
     60     execsql {
     61       INSERT INTO t4 DEFAULT VALUES;
     62       PRAGMA table_info(t4);
     63     }
     64   } {0 c {} 0 'abc' 0}
     65 }
     66 
     67 finish_test
     68