| Index: third_party/sqlite/src/test/rowid.test
|
| diff --git a/third_party/sqlite/src/test/rowid.test b/third_party/sqlite/src/test/rowid.test
|
| index 4a9404defb526a09ad784e0d9a13897db57729b6..b00b5287fdf1673ab5d3f6b90fb5bea61eee2d0d 100644
|
| --- a/third_party/sqlite/src/test/rowid.test
|
| +++ b/third_party/sqlite/src/test/rowid.test
|
| @@ -12,7 +12,9 @@
|
| # focus of this file is testing the magic ROWID column that is
|
| # found on all tables.
|
| #
|
| -# $Id: rowid.test,v 1.21 2009/06/26 15:14:55 drh Exp $
|
| +# EVIDENCE-OF: R-36924-43758 By default, every row in SQLite has a
|
| +# special column, usually called the "rowid", that uniquely identifies
|
| +# that row within the table.
|
|
|
| set testdir [file dirname $argv0]
|
| source $testdir/tester.tcl
|
| @@ -657,7 +659,7 @@ do_test rowid-11.4 {
|
| # Test the automatic generation of rowids when the table already contains
|
| # a rowid with the maximum value.
|
| #
|
| -# Once the the maximum rowid is taken, rowids are normally chosen at
|
| +# Once the maximum rowid is taken, rowids are normally chosen at
|
| # random. By by reseting the random number generator, we can cause
|
| # the rowid guessing loop to collide with prior rowids, and test the
|
| # loop out to its limit of 100 iterations. After 100 collisions, the
|
| @@ -677,9 +679,9 @@ do_test rowid-12.2 {
|
| save_prng_state
|
| execsql {
|
| INSERT INTO t7 VALUES(NULL,'b');
|
| - SELECT x, y FROM t7;
|
| + SELECT x, y FROM t7 ORDER BY x;
|
| }
|
| -} {1 b 9223372036854775807 a}
|
| +} {/\d+ b 9223372036854775807 a/}
|
| execsql {INSERT INTO t7 VALUES(2,'y');}
|
| for {set i 1} {$i<100} {incr i} {
|
| do_test rowid-12.3.$i {
|
| @@ -699,5 +701,19 @@ do_test rowid-12.4 {
|
| }
|
| } {1 {database or disk is full}}
|
|
|
| +# INSERTs that happen inside of nested function calls are recorded
|
| +# by last_insert_rowid.
|
| +#
|
| +proc rowid_addrow_func {n} {
|
| + db eval {INSERT INTO t13(rowid,x) VALUES($n,$n*$n)}
|
| + return [db last_insert_rowid]
|
| +}
|
| +db function addrow rowid_addrow_func
|
| +do_execsql_test rowid-13.1 {
|
| + CREATE TABLE t13(x);
|
| + INSERT INTO t13(rowid,x) VALUES(1234,5);
|
| + SELECT rowid, x, addrow(rowid+1000), '|' FROM t13 LIMIT 3;
|
| + SELECT last_insert_rowid();
|
| +} {1234 5 2234 | 2234 4990756 3234 | 3234 10458756 4234 | 4234}
|
|
|
| finish_test
|
|
|