Merge sqlite-release(3.43.1) into prerelease-integration
[sqlcipher.git] / test / pragma5.test
blob6d9b5bbcdcd71dba828c988c4af38699d1731ce6
1 # 2017 August 25
3 # The author disclaims copyright to this source code.  In place of
4 # a legal notice, here is a blessing:
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.
10 #***********************************************************************
11 # This file implements regression tests for SQLite library.
13 # This file implements tests for the PRAGMA command. Specifically,
14 # those pragmas that are not disabled at build time by setting:
16 #   -DSQLITE_OMIT_INTROSPECTION_PRAGMAS
19 set testdir [file dirname $argv0]
20 source $testdir/tester.tcl
21 set testprefix pragma5
23 if { [catch {db one "SELECT count(*) FROM pragma_function_list"}] } {
24   finish_test
25   return
28 db function external external
30 do_execsql_test 1.0 {
31   PRAGMA table_info(pragma_function_list)
32 } {
33   0 name {} 0 {} 0 
34   1 builtin {} 0 {} 0
35   2 type {} 0 {} 0
36   3 enc {} 0 {} 0
37   4 narg {} 0 {} 0
38   5 flags {} 0 {} 0
40 do_execsql_test 1.1 {
41   SELECT DISTINCT name, builtin
42     FROM pragma_function_list WHERE name='upper' AND builtin
43 } {upper 1}
44 do_execsql_test 1.2 {
45   SELECT DISTINCT name, builtin
46     FROM pragma_function_list WHERE name LIKE 'exter%';
47 } {external 0}
49 ifcapable fts5 {
50   do_execsql_test 2.0 {
51     PRAGMA table_info(pragma_module_list)
52   } {
53     0 name {} 0 {} 0 
54   }
55   do_execsql_test 2.1 {
56     SELECT * FROM pragma_module_list WHERE name='fts5'
57   } {fts5}
60 do_execsql_test 3.0 {
61   PRAGMA table_info(pragma_pragma_list)
62 } {
63   0 name {} 0 {} 0 
65 do_execsql_test 3.1 {
66   SELECT * FROM pragma_pragma_list WHERE name='pragma_list'
67 } {pragma_list}
70 finish_test