xref: /sqlite-3.40.0/test/tkt3832.test (revision 75cbd984)
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 2009/05/01 02:08:04 drh Exp $
18
19set testdir [file dirname $argv0]
20source $testdir/tester.tcl
21ifcapable {!trigger} {
22  finish_test
23  return
24}
25
26
27do_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
41finish_test
42