xref: /titanic_52/usr/src/lib/libsqlite/test/fkey1.test (revision c5c4113dfcabb1eed3d4bdf7609de5170027a794)
1*c5c4113dSnw141292
2*c5c4113dSnw141292#pragma ident	"%Z%%M%	%I%	%E% SMI"
3*c5c4113dSnw141292
4*c5c4113dSnw141292# 2001 September 15
5*c5c4113dSnw141292#
6*c5c4113dSnw141292# The author disclaims copyright to this source code.  In place of
7*c5c4113dSnw141292# a legal notice, here is a blessing:
8*c5c4113dSnw141292#
9*c5c4113dSnw141292#    May you do good and not evil.
10*c5c4113dSnw141292#    May you find forgiveness for yourself and forgive others.
11*c5c4113dSnw141292#    May you share freely, never taking more than you give.
12*c5c4113dSnw141292#
13*c5c4113dSnw141292#***********************************************************************
14*c5c4113dSnw141292# This file implements regression tests for SQLite library.
15*c5c4113dSnw141292#
16*c5c4113dSnw141292# This file implements tests for foreign keys.
17*c5c4113dSnw141292#
18*c5c4113dSnw141292
19*c5c4113dSnw141292set testdir [file dirname $argv0]
20*c5c4113dSnw141292source $testdir/tester.tcl
21*c5c4113dSnw141292
22*c5c4113dSnw141292# Create a table and some data to work with.
23*c5c4113dSnw141292#
24*c5c4113dSnw141292do_test fkey1-1.0 {
25*c5c4113dSnw141292  execsql {
26*c5c4113dSnw141292    CREATE TABLE t1(
27*c5c4113dSnw141292      a INTEGER PRIMARY KEY,
28*c5c4113dSnw141292      b INTEGER
29*c5c4113dSnw141292           REFERENCES t1 ON DELETE CASCADE
30*c5c4113dSnw141292           REFERENCES t2,
31*c5c4113dSnw141292      c TEXT,
32*c5c4113dSnw141292      FOREIGN KEY (b,c) REFERENCES t2(x,y) ON UPDATE CASCADE
33*c5c4113dSnw141292    );
34*c5c4113dSnw141292  }
35*c5c4113dSnw141292} {}
36*c5c4113dSnw141292do_test fkey1-1.1 {
37*c5c4113dSnw141292  execsql {
38*c5c4113dSnw141292    CREATE TABLE t2(
39*c5c4113dSnw141292      x INTEGER PRIMARY KEY,
40*c5c4113dSnw141292      y TEXT
41*c5c4113dSnw141292    );
42*c5c4113dSnw141292  }
43*c5c4113dSnw141292} {}
44*c5c4113dSnw141292do_test fkey1-1.2 {
45*c5c4113dSnw141292  execsql {
46*c5c4113dSnw141292    CREATE TABLE t3(
47*c5c4113dSnw141292      a INTEGER REFERENCES t2,
48*c5c4113dSnw141292      b INTEGER REFERENCES t1,
49*c5c4113dSnw141292      FOREIGN KEY (a,b) REFERENCES t2(x,y)
50*c5c4113dSnw141292    );
51*c5c4113dSnw141292  }
52*c5c4113dSnw141292} {}
53*c5c4113dSnw141292
54*c5c4113dSnw141292
55*c5c4113dSnw141292
56*c5c4113dSnw141292finish_test
57