1# 2018 Dec 22
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 script is testing the FTS5 module.
13#
14
15source [file join [file dirname [info script]] fts5_common.tcl]
16set testprefix fts5circref
17
18# If SQLITE_ENABLE_FTS5 is not defined, omit this file.
19ifcapable !fts5 {
20  finish_test
21  return
22}
23
24do_execsql_test 1.0 {
25  CREATE VIRTUAL TABLE tt USING fts5(a);
26  SELECT name FROM sqlite_master ORDER BY 1;
27} {
28  tt tt_config tt_content tt_data tt_docsize tt_idx
29}
30db_save_and_close
31
32foreach {tn schema sql} {
33  1 {
34    CREATE TRIGGER tr1 AFTER INSERT ON tt_config BEGIN
35      SELECT * FROM tt;
36    END;
37  } {
38    INSERT INTO tt(tt, rank) VALUES('usermerge', 4);
39  }
40
41  2 {
42    CREATE TRIGGER tr1 AFTER INSERT ON tt_docsize BEGIN
43      SELECT * FROM tt;
44    END;
45  } {
46    INSERT INTO tt(a) VALUES('one two three');
47  }
48
49  3 {
50    CREATE TRIGGER tr1 AFTER INSERT ON tt_content BEGIN
51      SELECT * FROM tt;
52    END;
53  } {
54    INSERT INTO tt(a) VALUES('one two three');
55  }
56
57  4 {
58    CREATE TRIGGER tr1 AFTER INSERT ON tt_data BEGIN
59      SELECT * FROM tt;
60    END;
61  } {
62    INSERT INTO tt(a) VALUES('one two three');
63  }
64
65  5 {
66    CREATE TRIGGER tr1 AFTER INSERT ON tt_idx BEGIN
67      SELECT * FROM tt;
68    END;
69  } {
70    INSERT INTO tt(a) VALUES('one two three');
71  }
72} {
73  db_restore_and_reopen
74  do_execsql_test 1.1.$tn.1 $schema
75  do_catchsql_test 1.1.$tn.2 $sql {1 {SQL logic error}}
76  db close
77}
78
79
80finish_test
81