aboutsummaryrefslogtreecommitdiff
path: root/test/joinH.test
diff options
context:
space:
mode:
Diffstat (limited to 'test/joinH.test')
-rw-r--r--test/joinH.test70
1 files changed, 70 insertions, 0 deletions
diff --git a/test/joinH.test b/test/joinH.test
index 908b93dee..339200968 100644
--- a/test/joinH.test
+++ b/test/joinH.test
@@ -341,4 +341,74 @@ do_execsql_test 13.4 {
GROUP BY a1.a ORDER BY 1;
} {-1480 240 480}
+#-------------------------------------------------------------------------
+# 2025-05-30
+# https://sqlite.org/forum/forumpost/5028c785b6
+#
+reset_db
+
+do_execsql_test 14.0 {
+ CREATE TABLE t1(c0 INT);
+ CREATE TABLE t2(c0 BLOB);
+ CREATE TABLE t3(c0 BLOB);
+ CREATE TABLE t4(c4 BLOB);
+ INSERT INTO t1(c0) VALUES(0);
+ INSERT INTO t3(c0) VALUES('0');
+}
+
+do_execsql_test 14.1.1 {
+ SELECT * FROM t1 NATURAL LEFT JOIN t2 NATURAL JOIN t3;
+} {0}
+
+do_execsql_test 14.1.2 {
+ SELECT * FROM t1 NATURAL LEFT JOIN t2 NATURAL JOIN t3 FULL JOIN t4 ON true;
+} {0 {}}
+
+do_execsql_test 14.1.3 {
+ SELECT * FROM (t1 NATURAL LEFT JOIN t2 NATURAL JOIN t3) FULL JOIN t4 ON true;
+} {0 {}}
+
+do_execsql_test 14.1.4 {
+ SELECT *
+ FROM (t1 NATURAL LEFT JOIN t2 NATURAL JOIN t3) AS qq FULL JOIN t4 ON true;
+} {0 {}}
+
+do_execsql_test 14.2.1 {
+ SELECT * FROM t3 NATURAL LEFT JOIN t2 NATURAL JOIN t1;
+} {0}
+
+do_execsql_test 14.2.2 {
+ SELECT * FROM t3 NATURAL LEFT JOIN t2 NATURAL JOIN t1 FULL JOIN t4 ON true;
+} {0 {}}
+
+do_execsql_test 14.2.3 {
+ SELECT * FROM (t3 NATURAL LEFT JOIN t2 NATURAL JOIN t1) FULL JOIN t4 ON true;
+} {0 {}}
+
+do_execsql_test 14.2.4 {
+ SELECT *
+ FROM (t3 NATURAL LEFT JOIN t2 NATURAL JOIN t1) AS qq FULL JOIN t4 ON true;
+} {0 {}}
+
+# 2025-06-01
+#
+reset_db
+do_execsql_test 15.1 {
+ CREATE TABLE t0(c0);
+ CREATE TABLE t1(c0);
+ CREATE TABLE t2(c0);
+ INSERT INTO t0 VALUES ('1.0');
+ INSERT INTO t2(c0) VALUES (9);
+ SELECT t0.c0,t2.c0 FROM (SELECT CAST(t0.c0 as REAL) AS c0 FROM t0) as subquery NATURAL LEFT JOIN t1 NATURAL JOIN t0 RIGHT JOIN t2 ON 1;
+} {1.0 9}
+do_execsql_test 15.2 {
+ CREATE TABLE x1(x COLLATE nocase);
+ CREATE TABLE x2(x);
+ CREATE TABLE x3(x);
+ CREATE TABLE t4(y);
+ INSERT INTO x1 VALUES('ABC');
+ INSERT INTO x3 VALUES('abc');
+ SELECT lower(x), quote(y) FROM x1 LEFT JOIN x2 USING (x) JOIN x3 USING (x) FULL JOIN t4;
+} {abc NULL}
+
finish_test