1: # 2009 April 30
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: # Ticket #3832
13: #
14: # A segfault when using a BEFORE trigger on an INSERT and inserting
15: # a NULL into the INTEGER PRIMARY KEY.
16: #
17: # $Id: tkt3832.test,v 1.1.1.1 2012/02/21 17:04:16 misho Exp $
18:
19: set testdir [file dirname $argv0]
20: source $testdir/tester.tcl
21: ifcapable {!trigger} {
22: finish_test
23: return
24: }
25:
26:
27: do_test tkt3832-1.1 {
28: db eval {
29: CREATE TABLE t1(a INT, b INTEGER PRIMARY KEY);
30: CREATE TABLE log(x);
31: CREATE TRIGGER t1r1 BEFORE INSERT ON t1 BEGIN
32: INSERT INTO log VALUES(new.b);
33: END;
34: INSERT INTO t1 VALUES(NULL,5);
35: INSERT INTO t1 SELECT b, a FROM t1 ORDER BY b;
36: SELECT rowid, * FROM t1;
37: SELECT rowid, * FROM log;
38: }
39: } {5 {} 5 6 5 6 1 5 2 -1}
40:
41: finish_test
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>