blob: 0d8a30f94d7386617765b374e184ae4c586dac22 [file] [log] [blame]
danielk1977c7538b52009-07-27 10:05:04 +00001# 2001 September 15
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#
12# $Id: tkt3992.test,v 1.1 2009/07/27 10:05:06 danielk1977 Exp $
13
14set testdir [file dirname $argv0]
15source $testdir/tester.tcl
16
17do_test tkt3992-1.1 {
18 execsql {
19 CREATE TABLE parameters1(
20 mountcnt INT NOT NULL CHECK (typeof(mountcnt) == 'integer'),
21 version REAL NOT NULL
22 );
23 INSERT INTO parameters1(mountcnt, version) VALUES(1, 1.0);
24
25 CREATE TABLE parameters2(
26 mountcnt INT NOT NULL CHECK (typeof(mountcnt) == 'integer'),
27 version REAL CHECK (typeof(version) == 'real')
28 );
29 INSERT INTO parameters2(mountcnt, version) VALUES(1, 1.0);
30 }
31} {}
32
33do_test tkt3992-1.2 {
34 execsql {
35 UPDATE parameters1 SET mountcnt = mountcnt + 1;
36 SELECT * FROM parameters1;
37 }
38} {2 1.0}
39
40do_test tkt3992-1.3 {
41 execsql {
42 UPDATE parameters2 SET mountcnt = mountcnt + 1;
43 SELECT * FROM parameters2;
44 }
45} {2 1.0}
46
dan856ef1a2009-09-29 06:33:23 +000047ifcapable altertable {
48 do_test tkt3992-2.1 {
49 execsql {
50 CREATE TABLE t1(a, b);
51 INSERT INTO t1 VALUES(1, 2);
52 ALTER TABLE t1 ADD COLUMN c DEFAULT 3;
53 SELECT * FROM t1;
54 }
55 } {1 2 3}
56 do_test tkt3992-2.2 {
57 execsql {
58 UPDATE t1 SET a = 'one';
59 SELECT * FROM t1;
60 }
61 } {one 2 3}
62}
danielk1977c7538b52009-07-27 10:05:04 +000063
dan75cbd982009-09-21 16:06:03 +000064ifcapable trigger {
65 db function tcl eval
66 do_test tkt3992-2.3 {
67 execsql {
68 CREATE TABLE t2(a REAL, b REAL, c REAL);
69 INSERT INTO t2 VALUES(1, 2, 3);
70 CREATE TRIGGER tr2 BEFORE UPDATE ON t2 BEGIN
71 SELECT tcl('set res', typeof(new.c));
72 END;
73
74 UPDATE t2 SET a = 'I';
75 }
76 set res
77 } {real}
78}
danielk1977c7538b52009-07-27 10:05:04 +000079
80
81finish_test