CoolFace
Modelpublic

AryaWu/sqlite

sourceHugging Faceupdated 9mo agoView on Hugging Face
0likes
aggerror.test79 linesDownload Raw Back to test
1# 2006 January 202#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# This file implements regression tests for SQLite library.12#13# This file implements tests for calling sqlite3_result_error()14# from within an aggregate function implementation.15#16# $Id: aggerror.test,v 1.3 2006/05/03 23:34:06 drh Exp $17 18set testdir [file dirname $argv0]19source $testdir/tester.tcl20 21 22# Add the x_count aggregate function to the database handle.23# x_count will error out if its input is 40 or 41 or if its24# final results is 42.  Make sure that such errors are handled25# appropriately.26#27do_test aggerror-1.1 {28  set DB [sqlite3_connection_pointer db]29  sqlite3_create_aggregate $DB30  execsql {31    CREATE TABLE t1(a);32    INSERT INTO t1 VALUES(1);33    INSERT INTO t1 VALUES(2);34    INSERT INTO t1 SELECT a+2 FROM t1;35    INSERT INTO t1 SELECT a+4 FROM t1;36    INSERT INTO t1 SELECT a+8 FROM t1;37    INSERT INTO t1 SELECT a+16 FROM t1;38    INSERT INTO t1 SELECT a+32 FROM t1 ORDER BY a LIMIT 7;39    SELECT x_count(*) FROM t1;40  }41} {39}42do_test aggerror-1.2 {43  execsql {44    INSERT INTO t1 VALUES(40);45    SELECT x_count(*) FROM t1;46  }47} {40}48do_test aggerror-1.3 {49  catchsql {50    SELECT x_count(a) FROM t1;51  }52} {1 {value of 40 handed to x_count}}53ifcapable utf16 {54  do_test aggerror-1.4 {55    execsql {56      UPDATE t1 SET a=41 WHERE a=4057    }58    catchsql {59      SELECT x_count(a) FROM t1;60    }61  } {1 abc}62}63do_test aggerror-1.5 {64  execsql {65    SELECT x_count(*) FROM t166  }67} 4068do_test aggerror-1.6 {69  execsql {70    INSERT INTO t1 VALUES(40);71    INSERT INTO t1 VALUES(42);72  }73  catchsql {74    SELECT x_count(*) FROM t1;75  }76} {1 {x_count totals to 42}}77 78finish_test79