CoolFace
Modelpublic

AryaWu/sqlite

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
tkt3080.test78 linesDownload Raw Back to test
1# 2008 April 272#3# The author disclaims copyright to this source code.  In place of4# 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 #308013#14# Make sure that application-defined functions are able to recursively15# invoke SQL statements that create and drop virtual tables.16#17# $Id: tkt3080.test,v 1.2 2008/11/05 16:37:35 drh Exp $18#19 20set testdir [file dirname $argv0]21source $testdir/tester.tcl22 23do_test tkt3080.1 {24  db function execsql execsql25  db eval {26    SELECT execsql('CREATE TABLE t1(x)');27  }28  execsql {SELECT name FROM sqlite_master}29} {t1}30do_test tkt3080.2 {31  db eval {32    INSERT INTO t1 VALUES('CREATE TABLE t2(y);');33    SELECT execsql(x) FROM t1;34  }35  db eval {36    SELECT name FROM sqlite_master;37  }38} {t1 t2}39do_test tkt3080.3 {40  execsql {41    INSERT INTO t1 VALUES('CREATE TABLE t3(z); DROP TABLE t3;');42  }43  catchsql {44    SELECT execsql(x) FROM t1 WHERE rowid=2;45  }46} {1 {database table is locked}}47do_test tkt3080.4 {48  db eval {49    SELECT name FROM sqlite_master;50  }51} {t1 t2 t3}52 53ifcapable vtab {54  register_echo_module [sqlite3_connection_pointer db]55  do_test tkt3080.10 {56     set sql {57       CREATE VIRTUAL TABLE t4 USING echo(t2);58       INSERT INTO t4 VALUES(123);59       DROP TABLE t4;60     }61     execsql {62       DELETE FROM t1;63       INSERT INTO t1 VALUES($sql);64     }65     db eval {66       SELECT execsql(x) FROM t167     }68     execsql {SELECT name FROM sqlite_master}69  } {t1 t2 t3}70  do_test tkt3080.11 {71     execsql {SELECT * FROM t2}72  } {123}73}74  75 76 77finish_test78