summaryrefslogtreecommitdiff
path: root/test/tkt3841.test
diff options
context:
space:
mode:
Diffstat (limited to 'test/tkt3841.test')
-rw-r--r--test/tkt3841.test48
1 files changed, 48 insertions, 0 deletions
diff --git a/test/tkt3841.test b/test/tkt3841.test
new file mode 100644
index 0000000..df6de5c
--- /dev/null
+++ b/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