Index: third_party/sqlite/sqlite-src-3070603/test/tkt3841.test |
diff --git a/third_party/sqlite/sqlite-src-3070603/test/tkt3841.test b/third_party/sqlite/sqlite-src-3070603/test/tkt3841.test |
new file mode 100644 |
index 0000000000000000000000000000000000000000..df6de5c2f3972689f6c8d722804506c3cead5476 |
--- /dev/null |
+++ b/third_party/sqlite/sqlite-src-3070603/test/tkt3841.test |
@@ -0,0 +1,48 @@ |
+# 2009 May 7 |
+# |
+# The author disclaims copyright to this source code. In place of |
+# a legal notice, here is a blessing: |
+# |
+# May you do good and not evil. |
+# May you find forgiveness for yourself and forgive others. |
+# May you share freely, never taking more than you give. |
+# |
+#*********************************************************************** |
+# |
+# Ticket #3841 |
+# |
+# The sqlite3_aggregate_count() is not being reset when an aggregate |
+# functio is used in a correlated subquery. |
+# |
+set testdir [file dirname $argv0] |
+source $testdir/tester.tcl |
+ |
+ifcapable !subquery { |
+ finish_test |
+ return |
+} |
+ |
+do_test tkt3841.1 { |
+ execsql { |
+ CREATE TABLE table2 (key TEXT, x TEXT); |
+ CREATE TABLE list (key TEXT, value TEXT); |
+ |
+ INSERT INTO table2 VALUES ("a", "alist"); |
+ INSERT INTO table2 VALUES ("b", "blist"); |
+ INSERT INTO list VALUES ("a", 1); |
+ INSERT INTO list VALUES ("a", 2); |
+ INSERT INTO list VALUES ("a", 3); |
+ INSERT INTO list VALUES ("b", 4); |
+ INSERT INTO list VALUES ("b", 5); |
+ INSERT INTO list VALUES ("b", 6); |
+ |
+ SELECT |
+ table2.x, |
+ (SELECT group_concat(list.value) |
+ FROM list |
+ WHERE list.key = table2.key) |
+ FROM table2; |
+ } |
+} {alist 1,2,3 blist 4,5,6} |
+ |
+finish_test |